【问题标题】:Why are the animation rotation value in Maya different from that in Unity?为什么 Maya 中的动画旋转值与 Unity 中的不同?
【发布时间】:2018-02-28 05:30:21
【问题描述】:

我有一个包含动画的 FBX 文件。当我将其导入 Maya(2017) 时,骨骼“arm_r_should”的旋转值如下所示:

但是导入Unity(5.6.1f1)后数值刚刚改变:

fbx 可以下载here

我的问题是,为什么这些值不同?我应该如何处理?

【问题讨论】:

  • 你能在maya中显示旋转轴和关节方向值的屏幕截图吗?它在属性编辑器中

标签: python animation rotation unity5 maya


【解决方案1】:

我想这是Rotate Order 和/或Order of Transformation 的问题。首先,在 Maya 中检查 Rotate Order,然后在 Unity 中检查。此参数在两个包中必须相同。

您可以使用以下代码行更改Rotate Order,但保留 Maya 中的整体转换:

import maya.cmds as cmds
cmds.xform(preserve=True, rotateOrder='yzx')

此外,还有欧拉旋转与四元数旋转方案:

import maya.cmds as cmds
cmds.rotationInterpolation('polyModel_rotateY', convert='quaternion')

阅读这篇文章以了解如何使用 Python 进行转换:Quaternion to Euler Rotations

【讨论】:

  • 感谢您的回答。我试过你的方法,y值似乎有问题。我创建了一些关节并将旋转顺序设置为zxy,值似乎是(-14.790, 106.457, -94.312),但是将其导入unity后,值变成了(-14.79, 30.179, 94.312)。跨度>
  • 检查方法:欧拉或四元数。
  • 请问哪里可以修改方法?在导出配置中还是...?
  • 首选项 - 动画 - 旋转插值。
  • 图形编辑器 - 曲线 - 更改旋转插值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多