2.1 KiB
测试流程
- 需要手机与电脑处于同一个网段。
- 设置MotionServer Ip设置、ARKitNetConfig.ini、MotionNetConfig.ini、MotionNetConfig2.ini
- 打开FaceMask,设置角色名称、电脑IP并且点连接。
- 打开MotionProcess,设置角色名称并且点连接。
可以直接打开Map_MotionProcess进行开发与测试。
Editor测试方式
GM_TsLiveDirectorGameMode => PC_TsDirectorController=> BP_MotionSender0 BP_MotionReceiver0
IdolAnimInstance
UpdateAnimation每帧执行PrepareMocapParameters(),会获取TsMotionRetargetComponent的引用(正常情况会获取IdolActor的Controller中的TsMotionRetargetComponent。
TsMotionRetargetComponent,包含TsChingmuMocapReceiverActor => ChingmuMocapReceiverActor
相关动画节点
AnimNode_FullBody
青瞳的动捕数据通过AnimNode_FullBody节点进行接收。具体是通过AMotionReceiverActor接收逻辑。
AnimNode_FacialExpression
FaceMask面捕节点。
但具体的数据接收是在TsMediaPipeMocapReceiverActor与TsMotionRetargetComponent。
FacialExpressionConfigAsset
用于设置表情各种数据。所有角色的表情资产位于Content/LiveDirector/FaceExpressionConfig
。
比较关键的曲线映射,也就是将Arkit面捕数据从一个BlendShape0~1映射成5个对应的blendShape,这样做到更加细腻的表情效果。比如tongueOut => tongueOut_1 tongueOut_2 tongueOut_3 tongueOut_4 tongueOut_5
BlendShape Maya源文件位于
HandPoseAnimNode(调整手部Pose?)
FName HandPoseDataTablePath = TEXT("DataTable'/Game/ResArt/HandPose/DT_HandPoseConfig.DT_HandPoseConfig'");
相关Actor
- AMotionReceiverActor:动捕数据接收。
- AMediaPipeMocapReceiverActor:面捕数据接收。
AMediaPipeMocapReceiverActor
- (AMediaPipeMocapReceiverActor)Tick => OnGetMediaPipeData() => (TsMediaPipeSkeleton)Skeleton.OnGetMediaPipeData(Data) ,这个函数逻辑在TsMediaPipeMocapReceiverActor。
- (TsMediaPipeMocapReceiverActor)ReceiveTick() => UpdateAnimation() 对数据进行过滤调整之后,将面捕数据塞入AnimNode_FacialExpression。