arkit动画模型规范

Neutral-静态的pose

519a52f414ff89a204d01f3719f869fc

一.创建Blendshape 曲线

苹果通过ARKit面部捕捉技术,提供开发者使用iphoneX以上的机器的前置摄像头,实现面部捕捉。blendshape名称是写死的,总共51个blendshape我们需要去实现,不过我们可以实现一些而不是全部。强烈建议的是,命名和功能需要保持一致。所有的值是在0-1之间.

eyeBlinkLeft
eyeLookDownLeft
eyeLookInLeft
eyeLookOutLeft
eyeLookUpLeft
eyeSquintLeft
eyeWideLeft
eyeBlinkRight
eyeLookDownRight
eyeLookInRight
eyeLookOutRight
eyeLookUpRight
eyeSquintRight
eyeWideRight
jawForward
jawRight
jawOpen
mouthClose
mouthFunnel
mouthPucker
mouthLeft
mouthRight
mouthSmileLeft
mouthSmileRight
mouthFrownLeft
mouthFrownRight
mouthDimpleLeft
mouthDimpleRight
mouthStretchLeft
mouthStretchRight
mouthRollLower
mouthRollUpper
mouthShrugLower
mouthShrugUpper
mouthPressLeft
mouthPressRight
mouthLowerDownLeft
mouthLowerDownRight
mouthUpperUpLeft
mouthUpperUpRight
browDownLeft
browDownRight
browInnerUp
browOuterUpLeft
cheekSquintRight
noseSneerLeft
noseSneerRight

eyeBlinkLeft ;eyeLookDownLeft ;eyeLookInLeft

eyeLookOutLeft eyeLookUpLeft eyeSquintLeft

eyeWideLeft eyeBlinkRight eyeLookDownRight

eyeLookInRight eyeLookOutRight eyeLookUpRight

eyeSquintRight eyeWideRight jawForward

jawLeft jawRight jawOpen

mouthClose mouthFunnel mouthPucker

mouthLeft mouthRight mouthSmileLeft

mouthSmileRight mouthFrownLeft mouthFrownRight

mouthDimpleLeft mouthDimpleRight mouthStretchLeft

mouthStretchRight mouthRollLower mouthRollUpper

mouthShrugLower mouthShrugUpper mouthPressLeft

mouthPressRight mouthLowerDownLeft mouthLowerDownRight

mouthUpperUpLeft mouthUpperUpRight browDownLeft

browDownRight browInnerUp browOuterUpLeft

browOuterUpRight cheekPuff cheekSquintLeft

cheekSquintRight noseSneerLeft noseSneerRight

二.处理头部旋转

通过HeadYaw, HeadPitch, HeadRoll控制,ARKit并没有提供,通过Modify Bone节点应用到joints.

三.创建必要的动画

  1. 第一帧是rest pose,没有任何变化的关键帧

  2. 对于第二帧以后,每一个帧应该是一个不同的关键帧的skeletal pose来完成苹果ARKit列表中的位姿。比如,第2帧是eyeBlinkLeft,第3帧是eyeLookDownLeft.

  3. 不必创建所有的,只需要创建需要joints驱动的。比如jawOpen通过关节旋转实现。不过,也有一个blend shape可以驱动面部来得到更自然的外观。

  4. 可以参考KiteBoyHead_JoinsAnim.

四.使用Joints纠正Blend Shapes

大多数角色并不仅仅通过blendshapes驱动.通常,会有一些面部骨骼来帮助控制面部部分的移动。尽管LiveLink实现能够驱动blend shapes,但是也可以在Pose Asset的帮助下驱动面部joints.

在使用ARKit驱动面部动画时,骨骼设置并不是必须的。这里主要是说明如果已经有了joints或者你知道如何使用骨骼动画。

在某一些情况下,比如使用joints驱动一个面部,你会发现你可能还需要一个blend shape来同时触发为了使运动看起来更加合理。此时的Blend shapes常常被称为 corrective blend shapes.修正Blend shapes.

比如,角色的jaw通过joint关节旋转打开时,可以使用一个corrective blend shape来改善。关节旋转与corrective blend shapes,要一直一起运作,二者不能单独使用。

五.More Corrective Blend Shapes

在Face AR的蓝图中,在动画蓝图的一个section中仅仅添加了corrective blend shapes.这主要是特殊的correctives,比如眼睛看向对角方向,比如都在左下角。这些位姿是使用传统的blend shapes处理的,因为ARKit并没有进行提供。