【UE4】对自定义角色进行 动作捕捉面部捕捉

Xsens动作捕捉 2023-04-25 3355

【其他相关】

【导图】

【UE4】对自定义角色进行 动作捕捉面部捕捉  第5张

可以下载苹果官方的51个Blendshape上手测试一下。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第7张

自定义模型blendshape参考上面第三个链接。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第8张

一、制作51个Blendshape

【UE4】对自定义角色进行 动作捕捉面部捕捉  第9张
  • brown 眉毛 5个
  • eye 眼睛 14个
    • 左右眨眼 2个
    • 左右眼球上下左右转 8个
    • 挤眼睁眼 4个
  • cheek 脸颊 3个(cheekPuff 嘴充气)
  • nose 鼻子 2个
  • jaw 下巴 4个
  • mouth 嘴巴 23个

合计 51个

其实有些是可以重新归类,还有些是重复的(区别程度不大),有些不分左右。

比如 cheekSquintLeft/Right 是外眼睑区域收敛,eyeSquintLeft/Right 是内眼睑区域收敛。

eyeWideLeft/Right 就是 eyeOpenedMax,眼睛睁到最大。

【mouth】相近系列 14个

  • mouthSmileLeft/Right 的程度只比mouthDimpleLeft/Right(Dimple=酒窝)大一点点。
  • mouthPress Left/Right 嘴角端平
【UE4】对自定义角色进行 动作捕捉面部捕捉  第10张
  • mouthFrownLeft/Right,左右嘴角斜向下拉伸,愁眉苦脸状
  • mouthLowerDownLeft/Right,上嘴唇不动,下嘴唇动
  • mouthStretchLeft/Right(Stretch=拉伸),上嘴唇动,左右嘴角向各自下方拉伸,咦~
  • mouthUpperUpLeft/Right,下嘴唇不动,上嘴唇动
【UE4】对自定义角色进行 动作捕捉面部捕捉  第11张

【Lower Upper】系列 4个

  • mouthRollLower/Upper,上下抿嘴
  • mouthShrugLower/Upper(Shrug=耸肩),上下撅嘴
【UE4】对自定义角色进行 动作捕捉面部捕捉  第12张

【单个嘴变动大】系列 5个

  • mouthLeft/Right,大嘴左右挪动
  • mouthFunnel(漏斗),口型对应 失~
  • mouthClose,嘴关闭
  • mouthPucker(折叠/起皱),口型对应呜~
【UE4】对自定义角色进行 动作捕捉面部捕捉  第13张

14+4+5=23个,嘴的blendshape就这些了,其他都没啥。

Shift加选可以创建link,改一个其他也会变动,比如Ctrl+A,选中全部Morph Target,键入0,可以归零。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第14张

以下是Wrap自带的Blendshape。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第15张
【UE4】对自定义角色进行 动作捕捉面部捕捉  第16张

二、绑定骨骼刷权重

(其实只刷眼球就可以了,下巴已经有了blendshape,如果想让开合程度可调节的话,可以加上骨骼)

【UE4】对自定义角色进行 动作捕捉面部捕捉  第17张

如果人是个整体,不像小男孩只有个脑袋的话,就基本只有这些骨骼:

  • neck——控制脖子以上
  • head——控制脑袋整体
  • eye_left&right——控制左右眼球
  • jaw——控制下巴(张嘴用)

其他eyelid控制眼睑(眼皮),blendshape里面已经有一些了,可加可不加,当然加上效果更好一点。


【UE4】对自定义角色进行 动作捕捉面部捕捉  第18张

三、制作21帧 骨骼+相应Blendshape动画

这里的动画主要是骨骼动画(嘴巴和眼球),加上Blendshape进行混合制作。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第19张
【UE4】对自定义角色进行 动作捕捉面部捕捉  第20张

第一帧(0帧)一定要是空的,作为基础模型参照,跟blender中 shape keys 的Basis一样。

然后转换成Pose Asset 以供动画蓝图使用,其实就是把单帧抽离出来,跟blendshape一样通过0~1 来变换表情(眼球和口腔)。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第21张
  • cheek 2个(Squint)
  • eye 14 个
    • 左右眨眼 2个 (blink)
    • 左右眼球上下左右转 8个(look in/out left/right)
    • 挤眼睁眼 4个(squint +wide)
  • jaw 4个
    • 前、左右、张嘴

jawopen涉及到的口腔牙齿舌头动画可以做成blendshape,单独的牙齿舌头模型(一个jawopen blendshape),然后Shift加选主体脑袋(选中jaw open blendshape),然后Ctrl+J合并一下就好啦。

加上参考帧,共21帧。

涉及骨骼变动的有 9个 :

  • 左右眼 上下左右转 共 8个
  • 下巴(口腔) 张开 1个

如果你嫌做动画麻烦的话,可以把它们也整合到Blendshape当中。就不需要用Pose来驱动了。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第22张


【UE4】对自定义角色进行 动作捕捉面部捕捉  第23张

四、制作动画蓝图

注意以上blendshape/骨骼 命名要跟Face AR项目中的命名一样,这样就可以直接进行替换,省得再连线了。

【4.1】添加head Pitch/Roll/Yaw 曲线以控制 头部骨骼Rotation

【UE4】对自定义角色进行 动作捕捉面部捕捉  第24张
【UE4】对自定义角色进行 动作捕捉面部捕捉  第25张


【4.2】Modify Curve

所有导入进来的Morph Target 都会自动转换为Anim Curve以供动画蓝图使用。

  • 节点右键可添加/移除 Curve
  • 可以调节曲线混合模式(添加/覆盖/混合等,当时打包app,以为是设备的问题,面捕始终不起效,最后检查是这里的问题)
【UE4】对自定义角色进行 动作捕捉面部捕捉  第26张


【4.3】眨眼校正

眨眼有0~1,眼睛一闭一睁,还有中间不闭不争,嚎~

然后中间不闭不争的时候,比如眯眼的时候,眼睛还有上下左右移动(Blendshape,不是骨骼)

【UE4】对自定义角色进行 动作捕捉面部捕捉  第27张

【4.4】骨骼动画

通过Pose 驱动眼球旋转,口腔开合。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第28张


【UE4】对自定义角色进行 动作捕捉面部捕捉  第29张

五、录制动捕+面捕动画

当时用的是Orion 的Ikinema,效果很棒,毕竟是基于定位器的红外线捕捉嘛。

【5.1】用Layer Blend Per Bone 节点进行混合动捕面捕数据

用Layer Blend Per Bone 节点 混合身体动作和面部表情 。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第30张

如果想要在Sequencer定序器中混合面部和身体动画的话,需要添加Slot(相当于给动画打组,跟Blender Vertex Group给顶点打组一样)。

然后在定序器中右键指定动画的Slot插槽即可。

定序器预览毕竟方便嘛,可以左右来回拖动时间轴。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第31张

【5.2】用Sequence Recorder 进行录制动捕面捕动画

主页窗口,加选角色,用Sequence Recorder 进行录制动捕面捕动画。

【UE4】对自定义角色进行 动作捕捉面部捕捉  第32张

录制完成后当即生成动画序列。

  • 骨骼Transform数据——身体
  • Anim Curve 数据——面部
【UE4】对自定义角色进行 动作捕捉面部捕捉  第33张

然后Notify添加配音特效啥的。

录制过程,结果演示 开头第一个文章链接中已经有了,这里就不再放了。

The End