从0开始的Unity3D游戏开发 替换模型部件

发布于 2018-08-23  732 次阅读


本篇中讨论关于在游戏中实时替换模型中的部件
游戏中实时更换模型的一部分可以实现诸多效果,如:捏脸、更换装备,其中更换装备是MMO游戏中不可缺少的功能。

模型骨骼设定

打开Animation面板,观察一个Anim文件可以看到:

和UI动画一样,anim文件中记录着所有骨骼在每一帧的位置/旋转/比例;
每个anim文件都必须绑定指定的prefab文件或者gameObject;
在本例attck1动画片段中所有骨骼都是根目录,上面没有mesh和material
这样一来,当克隆一个GameObject并设置某根骨骼为父级时,就可以实现装载效果;
只要统一骨骼根目录名,就可以共用动画设置;

什么时候骨骼可以不变

骨骼在轮廓上代表了角色的外在形态,有基本的身高/胖瘦区别,所以人类/精灵/熊猫人应该使用不同的骨骼,男/女应该使用不同的骨骼;
骨骼数量的多少决定了骨骼动画的细腻程度,新出的角色如熊猫人往往比旧的模型骨骼数量更多,打个哈欠也能更生动些;

什么时候部件mesh可以不变

继续魔兽世界,同一个胸甲模型需要为人类男/人类女/牛头人男/牛头人女等分别做一份,穿在血精灵身上很苗条的衣服,穿在牛头人身上就膨胀了好几倍,当骨骼不同时应该使用不同的部件模型。
但是,不同的装备很多情况下只有颜色不同,在制作Prefab时简单替换material即可。

往往地图上一件通用的装备,有多少种骨骼可以穿就需要做多少份mesh,那么实际的mesh数量相当于 骨骼数X装备类型数;

如何减少开发压力

反复制作同一个部件mesh相当于不停造轮子,但是一个项目的确需要大量的装备充数;
可以选择:
降低模型精度/骨骼数量 但是通常来说美术标准与项目的性质有着强关联
共用骨骼/动作 在PC端游《天龙八部》中男性职业共用骨骼 男性近战共用动作 这样设计确实省力不少

捏脸

换装固然非常重要,但是这属于非常常见的事情。
有个好的捏脸系统足以成为宣传的亮点,同样,捏脸系统与项目性质也有关系,定制人物可以获得宅男和女性玩家好感。
理想中的捏脸操作是:移动滑动杆实现动态改变外形效果

所以这里面的设计就非常细节了,有专门负责动画的骨骼(父),有专门负责蒙皮的骨骼(子);
有控制眉毛的骨骼;有控制鼻子的骨骼;
仅仅是脸部就可能出现近50个骨骼,每个骨骼都存在可以调节的最大值和最小值;
恐怕只有多年研究捏脸系统的公司才能熟练掌握好这里面的细节;
参考关键词:动态模型;Blend Shapes;Morph Targets;DynaMesh

更多关于捏脸的消息可以关注I社的黄油消息,说不定哪天可以在Unity中实现以下。


关注成长,注重因果。