Unity - MorphAnimation 超强变形动画编辑器(一) 蒙皮与变形

前言

忽略这个哗众取宠的标题,首先,为什么会有MorphAnimation,可能是我总觉得变形动画很有前途,因为看到一堆静态的东西我老是有一种想让他动一动的冲动,而骨骼蒙皮动画的前期准备工作又过于复杂了,起初我在Max里面蒙皮时,配顶点的权重信息搞得我晕头转向,所以我才想有一种很简单的能够让一个东西随心所欲的动起来的方法,至少能够跳过绑定骨骼和蒙皮的操作,然后我才发现,如果跳过了这两个步骤,那一切可能变得更加复杂,并不是Max做得不够好,而是某些东西本身就该这么复杂,所以我写了MorphAnimation,好吧,没看懂说了什么,这段独白权当做我发自内心深处的吐槽吧。

MorphAnimation的使用(一) 创建变形网格

首先,需要设置骨骼模式为四骨骼模式(Edit ->Project Setting -> Quality -> Other -> Blend Weights -> 4 Bones)。
然后导入MorphAnimation后,可以在任意静态模型的MeshFilter组件下点击Generate Morph Animation按钮,将模型网格转变为变形动画网格,转变后的网格会自动保存到工程Asset目录,记得不要删掉。
这里写图片描述

MorphAnimation的使用(二) 基本设置

转换成功后,GameObject会自动赋予MorphAnimation脚本,这是我们主要的编辑器,界面如下:

这里写图片描述

1、RenderSetting:渲染设置,继承至MeshRender的一些渲染设置。
2、MorphSetting:变形设置。
3、EditType:编辑模式,
Bone(骨骼层级):此模式下可以创建、修改、删除骨骼,并可以编辑骨骼的外封套、内封套,在骨骼层级编辑蒙皮信息。
Vertex(顶点层级):此模式下可以逐顶点查看或编辑每个顶点的蒙皮信息,比如更改绑定骨骼或重设权重值。
4、Apply按钮:全局应用,应用所有骨骼和顶点的变动信息,有新的改动之后最好点击一下此按钮。
5、3D Icon大小,
Vertex Size:在场景中,顶点图标的大小。
Bone Size:在场景中,骨骼图标的大小。
6、Done & Open In Editor Window按钮:结束骨骼绑定和蒙皮的操作,并打开至动画编辑界面,注意,结束之后,将无法再更改骨骼和蒙皮信息。

MorphAnimation的使用(三) 编辑骨骼

进入骨骼模式,可以创建、修改、删除骨骼,界面如下,这里我们以一个士兵的模型做讲解:
这里写图片描述

1、当前选中的骨骼,显示为明黄色,同时在编辑器中会以3D图标突出显示。
2、收缩与展开按钮:点击可以在编辑器界面收起或展开根骨骼。
3、Add按钮:添加无父骨骼的根骨骼。
4、AddSub按钮:(选中骨骼时)添加子骨骼至当前选中的骨骼。

注意:根骨骼之间无任何约束,可随意变形,但子骨骼会受到他直属父骨骼的约束:子骨骼与父骨骼之间无法被拉伸和压缩,只能做环绕运动,如果要创建随意变形动画,那就不要有子骨骼。

5、ReName按钮:(选中骨骼时)重命名当前选中的骨骼。
6、Delete按钮:(选中骨骼时)删除当前选中的骨骼,拥有子骨骼的骨骼无法删除,需要先删除子骨骼。
7、External Range骨骼外封套范围:在编辑器中表现为黄色外框,所有在此框内(同时在内封套外)的顶点将受到此骨骼的绑定,权重值随外封套的范围,越靠近边缘越小,但骨骼并未对该顶点拥有完全控制权,如果该顶点的绑定骨骼已达上限(4条),将不会接收到此骨骼的绑定影响。
8、Internal Range骨骼内封套范围:在编辑器中表现为青色外框,所有在此框内的顶点将受到此骨骼的绑定,骨骼将拥有对该顶点的完全控制权,权重值都为1,如果该顶点已有绑定骨骼,将会全部被此骨骼替换。
9、Apply Range按钮:应用封套范围,开始计算封套所影响的顶点。

注意:在骨骼编辑完成前,我们最好先不要应用封套,否则对于骨骼的移动、旋转、或缩放操作将会同时带动顶点。

然后我们继续添加骨骼,添加手臂:
这里写图片描述

添加臀部:

这里写图片描述

添加腿部:
这里写图片描述

添加脚部:
这里写图片描述

添加头部:
这里写图片描述

MorphAnimation的使用(四) 应用骨骼封套

我们调好骨骼的封套大小之后,点击Apply Range按钮应用封套,所有在骨骼封套范围内的顶点将会受到绑定影响,比如这里,我设置手部骨骼:
这里写图片描述

应用封套之后:
黄色的顶点表示受到外封套影响的顶点,该顶点将至少拥有一条绑定骨骼为此骨骼;
青色的顶点表示受到内封套影响的顶点,该顶点将完全绑定此骨骼,如果该顶点之前拥有绑定信息,这里都将会全部丢失,受到此骨骼的完全控制。
红色的顶点表示已经绑定了四条骨骼,不能再受到外封套的影响,可以进入顶点层级手动删掉他的绑定骨骼,重新应用封套。

MorphAnimation的使用(五) 编辑顶点权重

进入顶点模式,我们可以用鼠标左键单击选中模型身上的任意顶点,重新设置他的骨骼和权重信息,weight权重值越大,该顶点受到该骨骼的影响越大。

注意:顶点的四条骨骼的权重值的和必须等于1。

界面如下,被选中的顶点在编辑器中显示为青色3D图标,如图,我们当前选中的这个顶点由于在骨骼“左手”的内封套内,所以其完全受到“左手”的绑定,四条骨骼都为“左手”:
这里写图片描述

注意:进行这些操作之后都请点击Apply按钮,全部应用。

然后最麻烦的就是逐顶点校验骨骼和权重值,当然如果你只是需要一个简易模型的简单变形动画,这种细节的蒙皮操作你就可以直接跳过了,确保你的骨骼能够正常控制顶点就可以进入下一步了。

MorphAnimation的使用(六) 编辑动画

确定我们的骨骼和蒙皮信息无误以后,我们点击Done按钮,打开至动画编辑界面,界面如下:
这里写图片描述

1、预览动画按钮:点击之后可以对当前时间线上的关键帧进行播放预览。
2、Save Clip按钮:将当前时间线上的关键帧保存为动画剪辑文件。
3、Time Line时间线:当前时间线上的关键帧,只有处于时间线上的关键帧才能播放预览,或导出到剪辑。
4、添加按钮:从关键帧面板添加新的已有关键帧至时间线。
5、关键帧面板:显示未加入到时间线的关键帧。
6、Add Key Frame按钮:添加新的关键帧到关键帧面板。
7、动画的骨骼运动限制:
position:骨骼位置移动,开启之后骨骼的位置移动将会被记录到关键帧;
rotation:骨骼原地旋转,开启之后骨骼的原地旋转将会被记录到关键帧;
scale:骨骼原地缩放,开启之后骨骼的原地缩放将会被记录到关键帧;

我们选中关键帧面板的任意关键帧(显示为青色背景):
这里写图片描述

左侧为该关键帧的属性面板:
1、Bone List骨骼列表:该关键帧的骨骼列表(同时也是整个模型的骨骼列表),点击可选中某一骨骼(显示为红色背景),同时在场景中该骨骼被选中,可以执行移动、缩放、旋转等操作。

注意:这些操作将改变关键帧数据,将模型调节到新的形态后,记得点击Apply Bone按钮,应用所有骨骼数据到当前选中的关键帧,否则切换到其他关键帧后,你的改动会丢失。

2、Frame Name:关键帧全名。
3、Frame Time:关键帧时间,加入到时间线后,此关键帧的运行时间,1表示1秒,也就是说在播放动画时需要1秒钟才播放完此关键帧(同时会受到动画全局速度的影响),此值越大,动画在达到此关键帧时播放得越慢。
4、Apply Bone按钮:应用所有骨骼数据到当前选中的关键帧。
5、ReName按钮:(选中关键帧面板的关键帧时)重命名当前选中的关键帧。
6、Delete按钮:(选中关键帧面板的关键帧时)删除当前选中的关键帧。

点击时间线后面的加号按钮,我们将关键帧面板的任意关键帧加入到时间线,然后我们选中时间线上的任意关键帧(显示为青色背景):
这里写图片描述

1、Leave按钮:离开时间线,让当前选中的关键帧离开时间线并回到关键帧面板。
2、Insert按钮:插入关键帧,在当前位置插入关键帧,同时当前选中的关键帧及之后的关键帧位置后移。
3、Replace按钮:替换关键帧,将当前选中的关键帧替换为关键帧面板的其他关键帧。

MorphAnimation的使用(七) 预览动画

确保时间线上至少拥有两个关键帧后,我们点击预览动画按钮:
这里写图片描述

预览动画的按钮为红色表示动画在播放中,再次点击可结束预览。

MorphAnimation的使用(八) 导出动画剪辑

点击Save Clip按钮,将当前时间线上的所有关键帧导出为一个动画剪辑资源文件,之后这个资源文件便可以被MorphAnimationPlayer引用。

MorphAnimation的使用(九) 播放动画

我们为MorphAnimation所在的物体添加MorphAnimationPlayer脚本,将刚才保存的动画剪辑拖拽到Clip属性,勾选Play On Awake,运行场景便可以看到动画效果。

这里写图片描述

注意:刚才导出的动画剪辑只能用于之前编辑动画时的MorphAnimation所在的物体,如果需要第二个物体也能使用,克隆这个物体就可以了,当然,MorphAnimation脚本可以删除,只不过留在这里可以用于以后制作新的动画剪辑。

相对来说,制作一些简单的变形动画还是很可观的,要非常细致的蒙皮的话,那注定会是非常麻烦的,总之我这里为那个士兵模型的蒙皮最后就被我放弃了,因为实在是太繁琐了。

github源码链接:https://github.com/SaiTingHu/Morph-Animation

一起学习和进步

——by MeshEditor

猜你喜欢

转载自blog.csdn.net/qq992817263/article/details/78288356
今日推荐