一种游戏角色的换装及渲染的方法与流程
- 国知局
- 2024-07-11 16:35:19
本发明涉及计算机图形学,特别涉及一种游戏角色的换装及渲染的方法。
背景技术:
1、在大型多人实时在线角色游戏扮演游戏中,同时存在大量不同的3d角色模型,每个模型又有各自的动作与部位,使用传统的animator制作与控制方式,性能效率较差,内存占用高,运行卡顿。
2、unity是实时3d互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助unity将创意变成现实。unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2d和3d内容,支持平台包括手机、平板电脑、pc、游戏主机、增强现实和虚拟现实设备。unity现有的animator(即unity引擎自带的动画组件,可以实现动画的播放,切换与过渡等功能)动画系统中,内存占用为animatorcontroller(即unity中负责控制动画切换与过渡的组件)和animiationclip(即unity中单个动画文件,包含了对应模型骨骼在某些关键帧的位移、旋转与缩放的数据,并在其间进行插值,以使得动画平滑);cpu消耗为animator逻辑,骨骼变换运算;gpu消耗为skinnedmesh(即unity中负责挂载带蒙皮模型的组件)绘制。随着绘制的角色数量增多,内存占用与cpu(即游戏运行设备上的中央处理器,主要负责处理数据与逻辑)、gpu(即游戏运行设备上的图形处理器,主要负责处理模型与渲染)消耗均会不断线性增长,最终导致程序无法流畅运行。
3、因此有必要提供一种游戏角色的换装及渲染的方法,以提高模型动画与换装的运行效率,以使多人实时在线角色类游戏在当前大多数桌面和移动设备上可以流畅运行。
技术实现思路
1、本发明的目的在于提供一种游戏角色的换装及渲染的方法,以提高模型动画与换装的运行效率,以使多人实时在线角色类游戏在当前大多数桌面和移动设备上可以流畅运行。
2、为了解决现有技术中存在的问题,本发明提供了一种游戏角色的换装及渲染的方法,包括以下步骤:
3、s1:转换骨骼动画数据格式,方式如下:
4、s11:遍历animator的每一个动画,采样动画的每一帧,将每个骨骼的变换矩阵,从本地坐标系变换到世界坐标系;
5、s12:将变换矩阵有效的前三行数值转为色值;
6、s13:将所有色值按bindpose的顺序排列,以得到一张包含所有动画变换信息的图片;
7、s14:将每个顶点的骨骼权重储存到mesh未被使用的任一套uv上;
8、s2:采用gpuanimation复刻骨骼动画;
9、s3:提取animator关键数据,重新构建出一套纯抽象数据型的系统,以控制gpuanimation所实现的动画;其中,关键数据包括animator中每个动画的序号、帧数、是否循环以及融合方式;
10、s4:采用dots控制动画。
11、可选的,在所述游戏角色的换装及渲染的方法中,采用gpuanimation复刻骨骼动画,方式如下:
12、s21:在shader的顶点着色器中,通过顶点序号,在uv中获取顶点的骨骼序号和权重;
13、s22:通过骨骼序号在色点图中采样得到复刻的骨骼变换矩阵;
14、s23:将复刻的多个骨骼的变换矩阵加权融合,最终得到每个顶点的变换矩阵,实现动画的复刻。
15、可选的,在所述游戏角色的换装及渲染的方法中,s3中,转化过的animator数据最终序列化为unityasset,运行时加载到dots的component中以备使用。
16、可选的,在所述游戏角色的换装及渲染的方法中,采用dots控制动画,方式如下:
17、s41:将动画状态名转为动作序号;
18、s42:根据s3中序列化数据得到对应动画的帧数,以定位对应骨骼动画数据在色值图中的位置;
19、s43:通过系统内部的帧数自循环,以控制动画。
20、可选的,在所述游戏角色的换装及渲染的方法中,s4还包括以下步骤:s44:实现动画融合,算法如下:
21、action=lerp(action1,action2,sin(t));
22、其中,action为融合结果,action1为前置动画,action2为后续动画,t为融合进度,t取值范围为[0,1],lerp为lerp函数。
23、可选的,在所述游戏角色的换装及渲染的方法中,还包括以下步骤:s5:部位的动画与换装,方式如下:
24、s51:采用部位挂点分离,将原本的部位节点挪到最外层;
25、s52:在骨骼动画数据格式转换的同时,将各个挂点的变换数据序列化,运行时加载到根节点的component中,随着自增的帧数分发给各个部位进行仿射变换;
26、s53:部位附加根节点的位移偏量与旋转偏量。
27、可选的,在所述游戏角色的换装及渲染的方法中,还包括以下步骤:s6:部位的更换,方式如下:
28、s61:dots中使用rendermesharray保存同一场景中所有的materials与meshes;
29、s62:通过materialmeshinfo引用特定的material与mesh;
30、s63:更换部位时,修改materialmeshinfo的meshid和materialid。
31、在本发明所提供的游戏角色的换装及渲染的方法中,(1)在游戏角色上百的情况下,帧数依然维持在最高水平,且dots系统的消耗总计在1ms以内。(2)采用unity dots与gpuanimation,提高了模型动画与换装的运行效率,以使多人实时在线角色类游戏在当前大多数桌面和移动设备上可以流畅运行。
技术特征:1.一种游戏角色的换装及渲染的方法,其特征在于,包括以下步骤:
2.如权利要求1所述的游戏角色的换装及渲染的方法,其特征在于,采用gpuanimation复刻骨骼动画,方式如下:
3.如权利要求1所述的游戏角色的换装及渲染的方法,其特征在于,s3中,转化过的animator数据最终序列化为unityasset,运行时加载到dots的component中以备使用。
4.如权利要求3所述的游戏角色的换装及渲染的方法,其特征在于,采用dots控制动画,方式如下:
5.如权利要求4所述的游戏角色的换装及渲染的方法,其特征在于,s4还包括以下步骤:s44:实现动画融合,算法如下:
6.如权利要求3所述的游戏角色的换装及渲染的方法,其特征在于,还包括以下步骤:s5:部位的动画与换装,方式如下:
7.如权利要求3所述的游戏角色的换装及渲染的方法,其特征在于,还包括以下步骤:s6:部位的更换,方式如下:
技术总结本发明涉及一种游戏角色的换装及渲染的方法,包括以下步骤:S1:转换骨骼动画数据格式;S2:采用GPUAnimation复刻骨骼动画;S3:提取Animator关键数据,重新构建出一套纯抽象数据型的系统,以控制GPUAnimation所实现的动画;其中,关键数据包括Animator中每个动画的序号、帧数、是否循环以及融合方式;S4:采用DOTS控制动画。本发明可以提高模型动画与换装的运行效率,以使多人实时在线角色类游戏在当前大多数桌面和移动设备上可以流畅运行。技术研发人员:梁校微,沈志文,黄睿琪受保护的技术使用者:巨人移动技术有限公司技术研发日:技术公布日:2024/5/29本文地址:https://www.jishuxx.com/zhuanli/20240615/80083.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。