如果是mediapipe0.8.9版本会有变化吗
时间: 2024-02-17 19:01:35 浏览: 62
在mediapipe 0.8.9版本中,右肩膀的坐标系仍然是右手坐标系,因此需要将其转换为UE5.1.1的左手坐标系。但是,计算uperarm_r的旋转四元数值的方法可能会略有不同。
具体来说,可以使用UE5.1.1中的FQuat::FindBetween函数来计算uperarm_r的方向向量和转换后的坐标的四元数值。具体的代码如下:
```
FVector ShoulderPos(0.546142, -0.315784, 0.148612); // 转换后的坐标
FVector UperarmDir(1.0f, 0.0f, 0.0f); // uperarm_r的方向向量
FQuat UperarmQuat = FQuat::FindBetween(UperarmDir, ShoulderPos.GetSafeNormal());
```
然后,将计算得到的uperarm_r的四元数值赋给uperarm_r的旋转坐标,代码和之前的一样:
```
USkeletalMeshComponent* SkeletalMeshComponent; // 需要替换成实际的SkeletalMeshComponent
SkeletalMeshComponent->SetBoneRotationByName(TEXT("uperarm_r"), UperarmQuat, EBoneSpaces::WorldSpace);
```
需要注意的是,以上计算过程中需要考虑坐标系的转换和旋转角度的顺序等因素,因此具体的计算方法可能会有所不同。建议在实际使用过程中,根据具体的需求和场景进行调整和优化。
阅读全文