0. 面部动画的基本原理
之前做过的项目没有涉及过面部动画,所以最这方面不是很了解,一直以为面部动画也是通过骨骼来驱动的(理论上用骨骼驱动当然也是可以的),但很多时候面部动画更多是使用Morph Target(有些软件中也叫做BlendShape)来驱动,那么什么是Morph Target呢?它的原理很简单,下面我们用Blender还原一下表情动画的制作和使用过程。
1. 在Blender中制作表情动画
新建一个苏珊,给它加几级细分并应用细分
在它的属性栏里可以看到Shape Keys
点击一下右边的+号,会添加一个默认的Basis,Basis意味基准,后面再添加的Shape Keys都是以Basis为参照基准的
再次点击一下右边的+号,并将新的Shape Key命名为"Smile_Left",我们想把它定义为左嘴角微笑的控制器。注意我们要选定"Smile_Left"并把它的值设为1,因为接下来我们要对"Smile_Left"为1的状态进行调整,保持这种状态,进入雕刻模式。
在雕刻模式中,我用Grab笔刷将苏珊的左嘴角调整一下位置
切换回物体模式,选定"Smile_Left"并调整它的值,这时我们就可以看到,"Smile_Left"的值可以驱动苏珊的面部表情了
这里的“Smile_Left”就是一个Morph Target或者Blend Shape。
2. 导出表情动画
以下部分是我自己通过实验理解的,有不准确的地方敬请大家指正。
接下来我们要导出FBX文件,FBX中的Morph Target信息是记录在骨骼上的,所以要把苏珊绑定到一个骨骼上(过程略)
3. 将表情动画导入到UE5
导入到UE5时有两个选项需要注意
-
一定要勾选
Import Morph Targets
-
根据需要取消
Import Bone Tracks
的勾选
很多时候我们会通过BlendPosePerBone把表情动画叠加到骨骼动画上,所以表情动画本身是不应该有骨骼动画的,因此在导入表情动画时,酌情取消Import Bone Tracks
的勾选
4. 测试
打开苏珊的骨骼,在Anim Curves中就可以看到我们添加的Smile_Left,和在Blender中一样,调节它的值就可以驱动苏珊的表情动画了
5. 小结
表情动画的本质就是用这些Morph Target来驱动网格的形变,而Morph Target的本质就是动画曲线。