制作/修改动画器
其实制作动画器,真正需要手动操作的,只有上一页面提到的Driver层,其他可以通过OSCmooth来一键生成,当然如果想做到新版本Jerry模版那些细致的功能,可能需要我们去修改代码或者手动更改。
1. 创建一个属于自己的BlendTree
选做:从零开始自己建立混合树
只需要在空白处右键选择From New Blend Tree,就可以自动生成一个混合树,双击进入,初始的BlendTree是什么都没有的,参数也是默认的GestureLeftWeight。
修改为Direct类型,然后从加号处添加新的混合树
在新的混合树中添加控制形态键的动画,同时调整参数为对应的FT/v2/xxxxxx
参数没有的话需要自己手动添加,具体使用何种参数,请参考VRCFaceTracking Parameters | VRCFaceTracking (vrcft.io)
参数在这个阶段是"FT/v2/"前缀,这是没有经过平滑的,后期会经由OSCmooth自动转化为"OSCm/Proxy/FT/v2"前缀
反复进行这些操作,可以制作出来一份完整的Driver图层,但是从头开始做不仅麻烦,还可能会漏掉一些动作,徒增一些没必要的参数消耗,所以我们这里可以选择第二套方案,从模版中进行拷贝动画器,然后使用OSCmooth还原动画器。
从模板中还原动画器
一般来说在Package中的文件比较难加以修改,所以我们可以直接把Jerry的模版从Package中移动到Asset中
这个操作也许需要一点时间,而且期间Unity不会有卡顿感,这会让你觉得没有移动成功,几分钟后切换一下窗口,模版就移动过来啦~
移动成功后,把我们需要的动画器(不想动源文件可以Ctrl+D复制一份)放入一个模型当中,本文以夏菲为例
这时候导入我们的OSCmooth-Github,将我们的模型拖入到其中
选择下方的Revert OSCmooth from Layer,这样就可以将Driver层所有参数的"OSCm/Proxy/FT/v2"前缀,转化回原始的"FT/v2/"前缀,这时候,应该只有Driver一个State,没有Binary图层和Smooth图层。
我们也需要删除一些参数,需要保留的仅有"FT/v2/"前缀的参数,并且不是1/2/4的二进制压缩参数
参数名 | 动画器/本地 | 参数表/远程同步 | 描述 |
EyeTrackingActive | Float | Bool | 眼球追踪开启 |
LipTrackingActive | Float | Bool | 面部追踪开启 |
EyeDilationEnable | Float | Bool | 瞳孔追踪开启(瞳孔放大缩小,仅Tobii系可用) |
FacialExpressionsDisabled | Bool | Bool | 关闭手势表情 |
VisemesEnable | Bool | Bool | 口型同步开启 |
FT/v2/xxxxxx | Float | - | 原始输入的浮点值 |
下面是需要删除的参数,特别注意FT/v2/xxxxxx是要保留的,FT/v2/xxxxxx1;FT/v2/xxxxxx2;FT/v2/xxxxxx4是要删除的
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 | - | 远程参数的瞳孔平滑程度 |
其实正常的删除参数的话,能删除就说明该参数已经没有对应的动画器占用了,所以只要删掉能删掉的就行,如果出现这个提示,说明就是这个参数是不能删的。(前提是已经删掉了Binary和Smooth层)
这时候就可以开始编辑我们想要的Driver层了
修改动画器