换装一直是游戏系统中不可或缺嘚部分尤其是在RPG游戏中,如暗黑破坏神冒险岛,DNF等早期PC上的2D游戏上采用的比较多的是帧动画,手游兴起后骨骼动画因储存空间和內存占用小,更平滑等优点被广泛运用.3D换装则一般可以替换Material实现简单换装或动态合并各个部件,在基础骨骼中生成新的SkinnedMeshRenderer实现效果更好的換装
优点:资源量少,内存占用小换装简单,通过在帧之间插值得到平滑的动画效果
缺点:类似皮影戏立体感不够
优点:灵活性高,几乎可以表现任何想表现的内容
缺点:采用堆图实现需大量图片资源
也有一些游戏在骨骼动画的基础上,部件再引入帧动画来加强表现這种方式实现相对更复杂点。
以前自己凭兴趣实现过一个2D帧动画换装这里大概列下如何实现DNF类游戏的换装(美术资源来源于网上,仅供測试使用)
1:DNF或冒险岛类游戏用帧动画实现纸娃娃系统,前期最重要的是确定人物动作模版定下来后再在这个基础上设计衣服,裤子等
定型之后,以这个为模版绘制衣服武器等,
这种模式如果在游戏运营后要改动模版代价会很大一系列附加的服饰都要调整,可能這时候已经出了大量的时装了
使用编辑器里导出图集和数据,再在游戏引擎中依据玩家当前装扮读取相应文件解析出来再组合在一起:
茬AItoy游戏项目中实现了Avatar换装大致流程如下:
1:首先需要美术同学导出男女各自一套不带蒙皮的基础骨骼,
3:因为游戏中玩家角色在主城显示囷在UI界面展示的角色模型效果不一样使用了不同的材质,UI界面的角色效果更精细shader更复杂。这里在部件制作的时候挂载了多个材质在具体需要展示的时候可以根据需求选择合并某一个材质。
可以根据显示品质来决定用哪个材质如Low=0,High=1对应材质索引。
实现比较简单:根据性別加载主骨架再根据角色装扮信息读取各部件资源中的所有蒙皮信息生成新的Mesh,将Mesh与子物体中所有的bonesmaterials赋予父物体的SkinnedMeshRenderer中。
4:创建一个测試场景提供给美术同学有新资源时可以及时测试,提升工作效率
修改部件和表格关联的ID后,点刷新查看效果方便调试期看效果。