1

我设法在搅拌机的控制台上进行旋转,但是当我尝试在 Unity 中应用它时,这是非常错误的。我Quaternion.Set 用来设置所需的旋转。我知道搅拌机使用(WXYZ)四元数,但是当我得到这些值并将其正确设置为 Unity3D(XYZW)时,它给了我无意义的旋转。

http://pastebin.com/bKzUVCih 这里是我的脚本的链接。请帮我指出那里有什么问题。

PS:欧拉旋转不是一种选择,因为据我所知它们是有损的......

4

1 回答 1

1

我已经满意地解决了这个问题。问题是 Unity 的 XYZ 旋转与 Blender 的不同。如果您希望将对象的定位和旋转完美地从 Blender 转换为 Unity,请使用以下步骤:

  1. 在 X 轴上将对象旋转 -90 度。
  2. 计算 Blender 四元数。请记住,Blender 四元数将以 WXYZ 矩阵出现,而 Unity 四元数将使用 XYZW 顺序。
  3. 将对象在 X 轴上向后旋转 90 度,使用实验性“应用变换”复选框导出到 FBX。
  4. 使用 Blender 中的翻译在 Unity 中翻译您的对象,但使用 (-X, Z, -Y) 的等价物进行翻译。

如果您正在寻找一个 Python 脚本来从 Blender 中取出四元数,我已经将其中的大部分放在了一起

我不妨把一个 YouTube 剪辑放在一起,这很简单,但很难弄清楚。

于 2021-04-11T07:53:46.223 回答