//@struct FKawaiiPhysicsModifyBone
void UpdatePoseTranform(const FBoneContainer& BoneContainer, FCSPose<FCompactPose>& Pose)
{
auto CompactPoseIndex = BoneRef.GetCompactPoseIndex(BoneContainer);
if (CompactPoseIndex < 0)
{
PoseLocation = FVector::ZeroVector;
PoseRotation = FQuat::Identity;
PoseScale = FVector::OneVector;
return;
}
auto ComponentSpaceTransform = Pose.GetComponentSpaceTransform(CompactPoseIndex);
PoseLocation = ComponentSpaceTransform.GetLocation();
PoseRotation = ComponentSpaceTransform.GetRotation();
PoseScale = ComponentSpaceTransform.GetScale3D();
}
Bone motion is too large when switching LOD.
When CompactPoseIndex < 0, maybe just keeping the information saved before works well.
Bone motion is too large when switching LOD.
When
CompactPoseIndex < 0, maybe just keeping the information saved before works well.