Skip to main content

动画器详解

我们现在以Jerry的Template来作为示范的例子,因为从0开始创造有一定难度,所以我们不妨先来看看成品是怎么样的。

Jerry的Template地址在这里:VRCFT-Template

在早期版本,这个模板是直接在Asset目录下的,但在5.0版本之后,则需要在Package中寻找VRCFT - Jerry's Templates

值得一提的是,Jerry的模板是使用VRC Fury来安装的,最方便的办法其实是用VRCFury的预制件直接丢入模型当中,但我们只是为了分析动画器,所以就直接使用资产中的Animator啦

Jerry的模板每一个版本都有可能发生一些排版、参数命名上的变化,所以本版本(6.2.1)仅供参考,但万变不离其宗,我们需要学的是里面的内容而不是冷冰冰的模仿出一个一模一样的面捕控制器

image.png

image.png

在目录"VRCFT - Jerry's Templates\Animators\"中有各种标准的动画器,我们之前说过我们只使用UE标准,我们点击进入UE对应的Animator,FX - Face Tracking就是我们的对象啦。

image.png

image.png

正如我说的,不同版本之间差异很大,左图为6.2.1版本的Template,右图为6.3.3版本,他将左图中下面所有的图层整合进同一个图层了,方便分开学习,我们还是先使用左图来进行讲解

各个图层Layers的含义如下:

Tracking_State:用于调整Avatar的追踪状态,主要使用AnimatorTrackingControl组件,组件文档详见State Behaviors | VRChat Creation

Face_Tracking_Blendshape_Driver:用于直接驱动模型的形态键

Face_Tracking_OSCmooth_Binary_Gen:用于对参数进行二进制压缩,详见基本原理 | VRCD 文档库

Face_Tracking_Frame_Time_Counter:用于同步帧时间,缓解极高和极低帧率下的特殊情况

Face_Tracking_OSCmooth_Smoothing_Gen:用于对参数进行平滑处理,详见基本原理 | VRCD 文档库

image.pngimage.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

各个参数Parameters的含义如下:
参数名 动画器/本地 参数表/远程同步 描述
EyeTrackingActive Float Bool 眼球追踪开启
LipTrackingActive Float Bool 面部追踪开启
EyeDilationEnable Float Bool 瞳孔追踪开启(瞳孔放大缩小,仅Tobii系可用)
FacialExpressionsDisabled Bool Bool 关闭手势表情
VisemesEnable Bool Bool 口型同步开启
FT/v2/xxxxxx Float - 原始输入的浮点值
FT/v2/xxxxxx1;FT/v2/xxxxxx2;FT/v2/xxxxxx4 Bool Bool 原始输入的布尔值,之后会经由Binary转换为BinaryOut/FT/v2/xxxxxx
BinaryOut/FT/v2/xxxxxx Float - 经过Binary后的值,之后会经由Smooth转换为OSCm/Proxy/FT/v2/xxxxxx
OSCm/Proxy/FT/v2/xxxxxx Float - 经过Smooth后的值,之后会在Driver图层直接驱动形态键
OSCm/BlendSet Float - 混合树同时进行的关键参数,请保持为1
OSCm/Local/FloatSmoothing Float - 本地参数的通用平滑程度,越高平滑程度越高
OSCm/Local/PupilDilationSmoothing Float - 本地参数的瞳孔平滑程度,越高平滑程度越高
OSCm/Remote/EyeLidSmoothing Float - 远程参数的眨眼平滑程度,越高平滑程度越高
OSCm/Remote/FloatSmoothing Float - 远程参数的通用平滑程度,越高平滑程度越高
OSCm/Remote/PupilDilationSmoothing Float - 远程参数的瞳孔平滑程度,越高平滑程度越高