UE物理约束中Motor中的强度

UE物理约束中Motor中的强度

2025-02-01T13:55:25.png

可考虑二阶系统,对于目标方向马达而言,强度是位移项系数,因为目标是从A点->B点,力是基于位移和位移项系数计算的。对于目标速度而言,强度是微分项系数,因为速度的计算是通过阻尼(微分项系数)计算的。
这样在C++代码中使用

void FConstraintInstance::SetAngularDriveParams(float InSpring, float InDamping, float InForceLimit)

就清晰了,InSpring代表的是位移项系数,InDamping代表的是微分(速度)项系数,InForceLimit是最终出力的clamp,使用目标角度时应设置InSpring,使用目标速度时应设置InDamping。

看这个文本框的源码也是这样写的,target velocity这里的strength对应的是三个电机的damping

TSharedRef<SWidget> DampingSlerpWidget = ConstraintDetails::CreateTriFloatWidget(DampingSlerpProperty, TwistDriveProperty->GetChildHandle(GET_MEMBER_NAME_CHECKED(FConstraintDrive, Damping)), SwingDriveProperty->GetChildHandle(GET_MEMBER_NAME_CHECKED(FConstraintDrive, Damping)), LOCTEXT("EditStrength", "Edit Strength"));

target orientation的strength对应的是三个电机的stiffness

TSharedRef<SWidget> OrientationStrengthWidget = ConstraintDetails::CreateTriFloatWidget(StiffnessSlerpProperty, TwistDriveProperty->GetChildHandle(GET_MEMBER_NAME_CHECKED(FConstraintDrive, Stiffness)), SwingDriveProperty->GetChildHandle(GET_MEMBER_NAME_CHECKED(FConstraintDrive, Stiffness)), LOCTEXT("EditStrength", "Edit Strength"));
CC BY-NC-SA 4.0 Deed | 署名-非商业性使用-相同方式共享
最后更新时间:2025-02-01 21:58:35

0

    暂无讨论