45 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# 测试流程
							 | 
						|||
| 
								 | 
							
								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. (AMediaPipeMocapReceiverActor)Tick => OnGetMediaPipeData()  => **(TsMediaPipeSkeleton)Skeleton.OnGetMediaPipeData(Data)** ,这个函数逻辑在TsMediaPipeMocapReceiverActor。
							 | 
						|||
| 
								 | 
							
								2. (TsMediaPipeMocapReceiverActor)ReceiveTick() => UpdateAnimation() 对数据进行过滤调整之后,将**面捕数据塞入AnimNode_FacialExpression**。
							 |