5.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			5.3 KiB
		
	
	
	
	
	
	
	
title, date, excerpt, tags, rating
| title | date | excerpt | tags | rating | 
|---|---|---|---|---|
| 动画蓝图修型相关 | 2023-01-12 17:03:24 | ⭐ | 
DAWA数字人
主资产(全裸身体模型)使用dawa_Skeleton_AnimBlueprint动画蓝图,后处理蓝图用于在编辑器中预览,大部分曲线用于控制材质效果(EPIC的数字人技术);其他衣服使用CopyPose将主资产的动画结果拷贝到模型的骨骼上。
PS.
- 调试时需要将后处理动画蓝图清除。
 - 动画蓝图的tick部分那么多节点完全可以使用c++以提高性能。
 
流程
- 表情使用苹果ARKit驱动表情。此外LiveLink Face 也可以用于驱动一些曲线来控制头部旋转,但需要使用EvaluateLiveLinkFrame节点。本项目没有使用。
 - AnimLayer biaoqing:主要用于计算与更新曲线数值,来实现一些材质/(Morph Target/Blend Shape)修型效果。该项目的动画资产并没有设置曲线值,所以这个层大部分逻辑都在空跑。
 - Kawaii节点用于制作乳摇。
 - SpringController 系列节点应该是没用作用的。
 - AnimLayer xiuxing:一堆PoseDriver节点与2个上臂骨骼偏移。主要是通过PoseDriver进行修型。
 - AnimLayer bonedriver:使用骨骼的一些数值对骨骼数值进行修改。
 - AnimLayer Shoes:根据高跟鞋的形状调整脚部骨骼形变。该项目对脚部骨骼调整了旋转。
 
Pose Driver
UE使用Pose Driver动画节点来实现修型,主要是通过几种类型的数据来驱动Pose Targets(Morph Target/Blend Shape)或者Curves。其主要参数是:
- 源骨骼(Source Bone) :由哪个骨骼进行驱动?
 - 驱动源(Drive Source):根据骨骼的哪个数据进行数据插值?有Rotation/Location。
 - 仅驱动骨骼(Only Drive Bones):Pose Driver节点仅修改阵列中指定的骨骼(Source Bone对应的修型Twist骨骼)。
- 相当于过滤器,相关的形变数据K在动画中,位于PoseAsset。
 
 - 姿势目标(Pose Targets):指定的用于驱动的Pose集。
- 着重需要设置好每个Pose的立面角。注意避免万向锁的产生。
 - 每个立面角最好保证有较小的重叠,以保证插值的正确性。
 
 - 驱动输出(Drive Output):选择驱动输出的是Curves/Poses。
 - RBFParams:插值参数。
 
小灰人的修型方案
主要分为Arm_Left/Right与Leg_Left/Right。修型的方案基本查看骨骼与MorphTarget的名字就可以看出来。
- Arm
- Clavicle
- clavicle_l/r_fwd_30
 - clavicle_l/r_down_20
 - clavicle_l/r_back_30
 - clavicle_l/r_up_40
 
 - Upperarm
- upperarm_l/r_back_45
 - upperarm_l/r_out_55
 - upperarm_l/r_out110_twist_in_70
 - lowerarm_l/r_in_35
 - upperarm_l/r_out_85
 - upperarm_l/r_fwd_110
 - upperarm_l/r_in_10
 - upperarm_l/r_out110_twist_out_70
 - upperarm_l/r_out_twist_a
 - upperarm_l/r_fwd_15
 - upperarm_l/r_out_15
 - upperarm_l/r_back_10
 - upperarm_l/r_out110
 - upperarm_l/r_fwd_twist_in_a
 - upperarm_l/r_fwd_90
 
 - Lowerarm
- lowerarm_l/r_in_110
 - lowerarm_l/r_out_35
 - lowerarm_l/r_in_50
 - lowerarm_l/r_in_75
 - lowerarm_l/r_out_10
 - lowerarm_l/r_in_90
 - lowerarm_l/r_in_10
 
 - Hand
- hand_l/r_down_90
 - hand_l/r_up_20
 - hand_l/r_up_90
 
 
 - Clavicle
 - Leg
- Calf
- calf_l/r_back_50
 - calf_l/r_back_120
 - calf_l/r_back_90
 - calf_l/r_back_150
 
 - Thigh
- thigh_l/r_bck_10
 - thigh_l/r_fwd_10
 - thigh_l/r_in_45_out_90
 - thigh_l/r_fwd_90
 - thigh_l/r_bck_90
 - thigh_l/r_bck_50
 - thigh_l/r_out_110
 - thigh_l/r_out_10
 - thigh_l/r_fwd_45
 - thigh_l/r_in_50
 - thigh_l/r_fwd_110
 - thigh_l/r_out_55
 - thigh_l/r_out_85
 
 - Foot
- foot_l/r_down_60
 - foot_l/r_up_35
 
 
 - Calf
 
其他
Maya中的类似操作
在Maya中通过Pose Editor可以通过指定Pose+Morph实现动捕修型。
使用Pose曲线驱动的程序动画
- 通过AnimSequence资产创建PoseAsset。
 - 使用PoseAsset->CreateAsset->CreateAnimation->ReferencePose,创建一个只有参考Pose的空AnimSequence资产。
 - 通过添加Variables Curve,对指定的Pose添加曲线来制作曲线驱动动画。
 
厄风女神Echo
角色蓝图没什么东西,主要的逻辑位于Echo_AnimBP
- Echo_AnimLayerInterface:被Echo_AnimBP引用。但里面没有东西。
 - Echo_LiveLink_AnimBP:演示基础的LinkLive用法。
 
后处理动画蓝图使用了Echo_PostProcess_AnimBP。
Echo_AnimBP
简化简洁的AdvancedLocomotionV4逻辑。动画蓝图层级为
- Locomotion
 - MainState
 - FullyBodyLayer(Echo_AnimLayerInterface)
 - AnimMontageSlot
 - Inertialization(过滤曲线?)
 - ControlRig
 
Echo_PostProcess_AnimBP
- 将C Biped开头的修型曲线归零。
 - 使用PoseDriver进行修型。
- neck_02
 - upperarm_l
 - lowerarm_l
 - calf_l
 - hand_l
 - upperarm_r
 - lowerarm_r
 - calf_r
 - hand_r
 
 
表情
UE5.3新添加的功能 PoseDriverConnect
- https://www.unrealengine.com/marketplace/zh-CN/product/pose-driver-connect
 - https://www.unrealengine.com/zh-CN/blog/create-more-realistic-animation-in-less-time-with-pose-driver-connect
 
主要的功能是通过PoseDriver来驱动其他次级PoseDriver,来此来得到更加好的修形效果。