Blender to Unity旋转搞砸了

时间:2013-05-14 09:52:32

标签: rotation unity3d blender unityscript quaternions

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

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

P.S。:欧拉轮换不是一种选择,因为就我所知,它们是有损的......

1 个答案:

答案 0 :(得分:0)

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

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

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

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