35 lines
1.6 KiB
Markdown
Raw Normal View History

2024-06-21 12:45:12 +08:00
## IdolAnimInstance
UpdateAnimation每帧执行PrepareMocapParameters()会获取TsMotionRetargetComponent的引用正常情况会获取IdolActor的Controller中的TsMotionRetargetComponent。
2024-06-21 15:23:12 +08:00
TsMotionRetargetComponent包含TsChingmuMocapReceiverActor => ChingmuMocapReceiverActor
# 相关动画节点
## AnimNode_FullBody
青瞳的动捕数据通过**AnimNode_FullBody**节点进行接收。具体是通过AMotionReceiverActor接收逻辑。
## AnimNode_FacialExpression
FaceMask面捕节点。
但具体的数据接收是在TsMediaPipeMocapReceiverActor与TsMotionRetargetComponent。
2024-06-21 16:05:23 +08:00
### FacialExpressionConfigAsset
用于设置表情各种数据。所有角色的表情资产位于`Content/LiveDirector/FaceExpressionConfig`
比较关键的曲线映射也就是将Arkit面捕数据从一个BlendShape0~1映射成5个对应的blendShape这样做到更加细腻的表情效果。比如tongueOut =>
tongueOut_1
tongueOut_2
tongueOut_3
tongueOut_4
tongueOut_5
BlendShape Maya源文件位于
2024-06-21 15:23:12 +08:00
## 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**。