1.6 KiB
Raw Blame History

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

  1. AMediaPipeMocapReceiverActorTick => OnGetMediaPipeData() => (TsMediaPipeSkeleton)Skeleton.OnGetMediaPipeData(Data) 这个函数逻辑在TsMediaPipeMocapReceiverActor。
  2. TsMediaPipeMocapReceiverActorReceiveTick() => UpdateAnimation() 对数据进行过滤调整之后,将面捕数据塞入AnimNode_FacialExpression