5.0 KiB
5.0 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