骨骼绑定
动作预览
在绑定骨骼之前,我们先来看看未绑定之前是什么样子的。
一、导入测试动作包
下载测试动作包。
蓝奏云(c87w)导入
测试动作包到项目中。
提醒
包中文件对应动作
- Idle:站姿
- Lie down:躺姿
- Run:跑步
- TPose:T型姿态
- Walk 1:走路姿态 1
- Walk 2:走路姿态 2
二、添加 Gesture Manager
通过
Unity顶部菜单栏,为场景添加Gesture Manager。
从
Hierarchy中选中GestureManager,再从Inspector窗口中点击Enter Play-Mode按钮。
三、测试动作
你肯定已经发现了模型的一些问题,如人物
缺失关节。不要着急,我们先学会测试动作,这对于后续的检查骨骼绑定大有帮助。每一次运行后,会自动进入
Game窗口,我们先回到Scene窗口以方便观察。确保你在Hierarchy窗口中选中的对象为
GestureManager。看向Inspector窗口的
Gesture Manager组件,点击Tools按钮,展开Test Animation,将我们刚刚导入的动作任选其一(例如“Run”)拖入到Animation右侧的框中。点击
Play,人物开始播放相应的动画。
退出预览
测试动作时,你已直观的看见我们的衣物并没有跟随人物,所以接下来我们来学习骨骼绑定。
每一次预览完毕后,我们可以通过Unity上方中间的播放按钮,来退出预览。
骨骼绑定
故名思意,我们需要将衣物的骨骼绑定到人物身上,他们才能同时动起来。
主流的骨骼绑定方式有两种,一种是基于对象"父子级"的绑定,圈内又称之为“古法绑定”,另一种是使用插件绑定。要想更加高效的改模减少出错率,两种方式我们都必须掌握。
提醒
在继续绑定之前,你需要掌握对象的父子级
基于"父子级"的绑定
当你完成到这里时,我就默认你已经搞清楚了对象的父子级关系了。
思路梳理
骨骼绑定的操作就像我们在前面为史蒂夫装备钻石剑,只不过钻石剑只有一个,我们也只需要将它绑定至某一个关节下,它就可以随之运动,相当简单。
而在这里,实际上每一个骨骼就是一个单独的物体,或者说一把钻石剑。和我们此前装备钻石剑的区别在于,你无法直观的看见他,然后就是“钻石剑”的数量变多了。
每一个骨骼之间也是靠着父子级的关系驱动着,如头跟随脖子,脖子跟随胸,胸又跟随着某个父级物体,层层递进。
于是在你的角色模型下有着一个叫做Armature的东西,这里面包含着角色所有的骨骼,当你将他们层层展开时,就能看见骨骼之间的父子关系。
他们并不是凭空出现,而是模型作者们通过建模工具制作的。你可以尝试挪动角色的衣物,会发现无法挪动。那是因为作者们通过建模工具,已经将模型绑定在了这些骨骼的子级下,你只有挪动对应的骨骼,衣服才会“看起来”被挪动了。
因此总结下来就是,你能看见的衣物实际上是“骨骼”的子级,无法直接挪动。
当梳理完这些后,再展开我们自己将要添加的头发,或者衣物下的Armature:
不难发现,他们的结构都是相似的,因此绑定骨骼的操作,直白的说就是:将我们要添加的头发、衣服的骨骼,放在角色相同名称骨骼的子级下。
步骤
梳理完思路后,我们就可以来尝试绑定骨骼了。在开始绑定之前,记得我们讲的预制件吗?现在我们是无法直接挪动他们的,需要先将角色、头发和衣服的预制件解压缩。
备份场景(从
Project窗口找到场景文件,按Ctrl + D),留着一会学插件绑定骨骼。解压缩
Prefab(预制件),物体名称和图标全部变为白色。
头发骨骼绑定
展开头发下的
Armature,可以看见名为Head的对象。依次展开角色的
Armature - Hips - Spine - Chest - Neck,可以看见名为Head的对象。将我们头发下的
Head对象挪动至角色的Head对象的子级下。
这样我们的头发就绑定好了,你可以使用刚学会的操作,预览头发是否按照预期跟随角色运动。

- 衣服骨骼绑定
由于衣服的骨骼很多,为了不漏绑,先将所有的骨骼收起。
接下来就要开始“套娃”了,将
我们的衣服中Armature下的每一个骨骼(从Hips开始,包含Hips,不要动Armature),放在角色相同名称骨骼的子级下绑定前:

绑定后(图片大小有限,腿部绑定略):

提醒
- 从上往下看,每一个衣服中的骨骼,都需要挪到
角色相同名称骨骼的子级下,为方便观察我画了线,每一根线的头部是父,尾部是子。 - 有一种特殊情况,有些衣服自带一些小零件如铃铛、蝴蝶结等,会多出一些角色中没有的骨骼,这时只需要把这些骨骼保留在原骨骼下即可,无需挪动,也就是仅挪动有
相同名称的骨骼。
此时再进入动画预览,我们的衣服就可以按照预期跟随角色运动了。

当头发和衣物骨骼数量大,我们又需要修改头发或衣物时怎么办呢,这时候
古法绑骨的不便之处就体现出来了,我们很难对已绑定的对象进行修改,因此后续我们都需要使用插件。
使用“插件”绑定
在学会手动绑定后,便可以使用插件绑定了,这里我们使用Modular Avatar进行衣物绑定,他的好处在于骨骼只有在预览时或发布后,才会被合并到人物中,极大方便了后期维护。
思路梳理
为了减少出错率,我们要选择合适的绑定方案。试着考虑一下插件是如何做到骨骼绑定的,他们之间一定有某种规律。通过前面的操作,不难发现,我们绑骨骼操作实际上就是重复两个步骤,即找骨骼 - 将骨骼放置到角色相同的骨骼下。所以Modular Avatar可以替你完成这个重复的操作,接下来我们就来学习如何使用。
步骤
进入备份的场景。
按住
Ctrl可多选物体,同时选中头发和衣服的Armature,看向Inspector,点击Add Component,搜索MA,选择MA Merge Armature。
再分别选中和设置
头发和衣服的Armature,将人物的Armature拖入到组件的合并目标中。一些模型作者喜欢为骨骼添加后缀,因此还需要点击一下根据合并目标调整骨骼名称按钮。

进入预览,你大概率会发现一个问题:头发没有按照预期运动,而衣服正常。
提醒
还记得我们思路梳理中的结论吗?绑定骨骼就是重复两个步骤,而插件就是按照这套步骤,帮我们把骨骼一层层塞了进去。至于头发为什么没有按照预期运行,是因为我这里的头发骨骼下面只有一层Head,而衣服的骨骼结构,名称和角色的几乎一模一样,所以这里的头发骨骼不一致,导致了插件误判,没能帮你把骨骼塞到正确的位置。
- 解决方式为,选中
头发的Armature,将MA Merge Armature组件移除,然后选择Head骨骼,添加MA Bone Proxy组件,将角色的Head拖放到组件的目标框中。
提醒
为什么这里是将组件添加到Head上,而不是Armature上。顾名思义,MA Merge Armature一般是用在Armature上的,而MA Bone Proxy是用在Bone(骨骼)上的。



- 此时再进入动画预览,我们的衣服就可以按照预期跟随角色运动了。
总结
在前期,我们只会用到MA的两个组件,但注意每个组件指向的目标,弄反是频繁出错点。
提醒
- MA Bone Proxy(骨骼代理):将
带有此组件的对象放置在目标对象下,因此这个组件不止可以用于骨骼。只要是有移动需求的对象,都可以使用这个组件,只是名字叫“骨骼代理”而已。 - MA Merge Armature(合并骨架):将
带有此组件的对象的骨骼与目标的骨骼合并,但并不是100%成功,会受骨骼的结构和名称影响。
MA Merge Armature组件并不是万能的,为了避免插件误判的情况,就必须掌握古法绑骨的思路来使用MA Bone Proxy,甚至你可能一整套衣服都添加的MA Bone Proxy组件,而不是MA Merge Armature组件。
提醒
恭喜你已完成了骨骼绑定!
为了完成接下来的路,你需要先掌握形态键(BlendShapes)。