45 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 测试流程
1. 需要手机与电脑处于同一个网段。
2. 设置MotionServer Ip设置、ARKitNetConfig.ini、MotionNetConfig.ini、MotionNetConfig2.ini
3. 打开FaceMask设置角色名称、电脑IP并且点连接。
4. 打开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
1. AMediaPipeMocapReceiverActorTick => OnGetMediaPipeData() => **(TsMediaPipeSkeleton)Skeleton.OnGetMediaPipeData(Data)** 这个函数逻辑在TsMediaPipeMocapReceiverActor。
2. TsMediaPipeMocapReceiverActorReceiveTick() => UpdateAnimation() 对数据进行过滤调整之后,将**面捕数据塞入AnimNode_FacialExpression**。