跳到主要内容

无穿戴 SDK 使用说明

简介

本 SDK 基于 MediaPipeUnityPlugin 项目开发,可以运行在除 WebGL 之外的 Unity 平台。

数据类型

Dollars.MoCapMode

动捕模式

枚举型,取值为 jump, flat, upperbody

Dollars.DominantEye

面捕主视眼

枚举型,取值为 none, left, right

Sensitivity

动捕灵敏度

整型,1-5,1 为最稳定,5 为最灵敏

Strength

面捕强度

浮点型,取值无限制,建议 0.5 至 2 之间

AvatarBody

用于推算骨骼数据

InitFilter(int sensitivity)

SetMoCapMode(Dollars.MoCapMode mode)

SetSensitivity(int sensitivity)

Calibrate()

说明:

根据当前 MediaPipe 的输出将人体立直,双脚站在地面。

MediaPipe 推算的人体整体会前倾(见下图),前倾程度根据摄像头参数,人物大小等因素不定,因此为了取得较好的动捕效果,建议在开始前进行一次校准。

校准时放松目视前方即可。

ResetCalibration()

说明:用于重置校准数据,推荐更换摄像头以及视频文件时调用。

AvatarFace

用于返回面捕数据

Calibrate()

说明:

将当前各面捕表情参数作为面捕基准

ResetCalibration()

说明:用于重置校准数据,推荐与 AvatarBody.ResetCalibration() 同时调用

SetStrength(float strength)

设置面捕强度系数

SetDominantEye(Dollars.DominantEye eye)

设置主视眼

使用

约定

在开始动捕前,调用

AvatarBody.InitFilter(5);

AvatarBody.SetMoCapMode(MoCapMode.jump);

初始化过滤器并且设置动捕模式,顺序不可改变。

如示例项目中的 MoCapManager.cs。

另外通过指定执行顺序确保 MoCapManager.cs 在动捕相关代码前执行。

动捕相关顺序请保持图中顺序。

为模型添加动捕

设置模型 Rig 为 Humanoid 并正确配置各骨骼

将模型添加至场景中,增加 MoCapSrc 组件

如果模型默认不是 TPose,调节骨骼角度,将模型调整为 TPose

MoCapSrc 组件中的 src 变量,设置为场景中的 MoCap 对象

完成!

为模型添加面捕

为需要面捕的模型添加 Face Cap Controller 组件,并将其中的 Fcr 变量设置为场景中 MoCap 下的 robotDAC。

新建一个 Face Capture Mapping

在 Mapping 文件的 To 栏目中,填入各面捕表情对应的 blendshape 名,注意区分大小写

Face Capture Controller 的 Skinned Mesh Renderers 数组中,填入面捕表情控制的模型,Mapping 数组中,填入新建的对应关系

注意点:

  • 如果不存在某面捕对应的 blendshape,mapping 文件中对应的位置置空即可。
  • mapping 文件中 TongueOut 及之后的栏目可忽略。
  • 如果需要使用同一个面捕表情控制多个 blendshape,可以将同一个 mesh 多次加入 Skinned Mesh Renderers 数组,并且分别对应不同的 mapping。
  • Skinned Mesh Renderers 和 Mappings 数组长度及对应顺序需一致。