[发明专利]Unity中群集动画快速渲染的方法、存储介质有效
申请号: | 201911139457.X | 申请日: | 2019-11-20 |
公开(公告)号: | CN112825197B | 公开(公告)日: | 2023-09-15 |
发明(设计)人: | 刘德建;谢曦;林琛 | 申请(专利权)人: | 福建天晴数码有限公司 |
主分类号: | G06T13/20 | 分类号: | G06T13/20 |
代理公司: | 福州市博深专利事务所(普通合伙) 35214 | 代理人: | 段惠存 |
地址: | 350000 福建省福州市开发区君竹路8*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | unity 群集 动画 快速 渲染 方法 存储 介质 | ||
1.一种Unity中群集动画快速渲染的方法,其特征在于,包括:
创建模型动画的模型动画序列帧,通过Mesh数组存储所述模型动画序列帧的每一动画帧;
创建一渲染对象数组,所述渲染对象数组内的各个元素对应存储待渲染的群集动画中各个单位的渲染对象数据;
监听到对应群集动画的更新消息后,遍历所述渲染对象数组,依据所述Mesh数组对当前遍历到的模型动画的待渲染动画帧进行渲染;
所述创建模型动画的模型动画序列帧,通过Mesh数组存储所述模型动画序列帧的每一动画帧,具体为:
创建模型动画的预制体;
依据所述预制体,创建模型动画的模型动画序列帧资源,并存储在Mesh数组;
所述依据所述预制体,创建模型动画的模型动画序列帧资源,并存储在Mesh数组,具体为:
实例化所述预制体,创建对应的游戏对象;
获取所述游戏对象上的动画组件和蒙皮网格渲染器组件;
获取所述蒙皮网格渲染器组建上的材质对象,保存到变量mat;
创建Mesh数组,其长度为预设的帧计数;
获取动画组件中的动画时长,保存到变量length;
遍历所述Mesh数组,对当前遍历到的模型顶点执行包括:变量i取值从0至帧计数-1,设置动画组件的动画进度为i*length/帧计数,以及调用蒙皮网格渲染器组件烘培当前遍历到的模型顶点变形后的模型顶点,并保存烘焙后的模型顶点至所述Mesh数组的第i个元素;
所述依据所述Mesh数组对当前遍历到的模型动画的待渲染动画帧进行渲染,具体为:
控制将当前遍历到的模型动画的当前动画时间设置为其下一个动画时间;
计算当前遍历到的模型动画对应所述当前动画时间时,对应所述Mesh数组的当前动画帧序号;
对所述当前动画帧序号对应的动画帧进行渲染,得到对应的动画。
2.如权利要求1所述的一种Unity中群集动画快速渲染的方法,其特征在于,所述渲染对象数组中的各个元素对应存储各个模型动画包括位置、旋转和当前动画时间的帧信息;
所述方法还包括:
初始化所述渲染对象数组时,将所述渲染对象数组中的各个元素的当前动画时间在0至所述模型动画的帧计数范围内随机赋值。
3.如权利要求1所述的一种Unity中群集动画快速渲染的方法,其特征在于,所述方法还包括:
创建一个序列帧渲染类,且所述序列帧渲染类监听所述渲染对象数组的更新消息;
将所述渲染对象数组和所述Mesh数组分别添加到所述序列帧渲染类中;
在所述序列帧渲染类中设置模型动画的帧率。
4.如权利要求1所述的一种Unity中群集动画快速渲染的方法,其特征在于,所述方法还包括:
创建N个结构体,所述N与集群动画中模型动画的数量对应;
将各个模型动画的帧信息分别存放至各个结构体中;
将所述N个结构体添加至所述渲染对象数组中,作为所述渲染对象数组的元素。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-4任意一项所述的一种Unity中群集动画快速渲染的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴数码有限公司,未经福建天晴数码有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911139457.X/1.html,转载请声明来源钻瓜专利网。