首先Physics Control Component是一个入口,具体的操作都是针对里面的各个Control实现的。
Control(FPhysicsControl)
Control可以对单个骨骼控制,也可以对肢体(比如从大腿到脚)整体控制。
找到具体的Control主要靠名字,ParentSpace的名字是 父骨骼名字_子骨骼名字_0 ,WorldSpace的名字是 骨骼名字_0 。当然如果包装成Limb的话,直接用Limb的名字从数组里面找也可以。
Control Setting(FPhysicsControlSettings)
设置一些Control的初始设置,比如是否使用动画数据。动画的速度的倍率,是否自动禁用,是否禁止碰撞等。
Body Modifier(FPhysicsBodyModifier)
Body Modifier针对单个Body Instance。
MovementType可以很方便地控制这个肢体的模拟方式(Static 静止/Kinematic 动画/Simulated 模拟)
CollisionType可以控制这个肢体的碰撞方式(要不要跟物理世界有接触),某些接触物体的肢体需要关闭碰撞,不然会抖动。
GravityMultiplier可以调整重力缩放。
其他参数没发现有用到的,先不讲解了。
Control Data(FPhysicsControlData)
ControlData主要控制关节弹簧的各种参数,Strength主要是控制力度,DampingRatio控制弹簧到达的方式,一般设为1(临界阻尼)。设置物理动画主要通过分别设置各个肢体的本地空间/世界空间的力度,这样可以让角色更好地表现物理。
Control Multipliers(FPhysicsControlMultipliers)
Control Multiplier主要是可以对ControlData乘以一个倍率,这样可以更精细地控制XYZ方向的各种力度,和更方便地设置角度弹簧的力度。
Control Target(FPhysicsControlTarget )