【问题标题】:How to maintain Transform of objects when importing from Blender to Unity从 Blender 导入 Unity 时如何保持对象的变换
【发布时间】:2017-04-09 06:24:41
【问题描述】:

我已将我的 Blender 模型导入 Unity,并带有正确动画的骨架。

但是,我现在想在 Unity 中操作骨骼变换(例如,让头部骨骼“看着”玩家)。然而,头部骨骼(和许多其他骨骼)的变换在导入 Unity 后似乎发生了变化。例如。 “Z”方向不再向上。如何确保 Blender 和 Unity 之间的变换是一致的?

下面是Blender中头部骨骼的变换。

这是导入Unity后头部骨骼的变换。

【问题讨论】:

  • 您必须在 Blender 或 Cheetah3D 中正确设置原点。
  • 请注意,您必须使用“z forward”进行建模。您必须将“z”作为狗的前进方向。
  • 感谢您的帮助。据我所知,我用“z forward”建模。如果我在 Unity 中选择狼模型父级,则 z 显示为朝前。只有当我选择骨架节点和骨架的任何子节点时,Z 才会显示为向前以外的任何内容。我的第二张截图特别显示了头骨的变换。
  • 嘿乔尼。你知道......当你这样做的时候让我们说汽车。汽车的每一部分都必须是 Z 轴前移。经常引起人们注意的东西:您会看到左右轮。将左轮模型转过来制作正确的模型是很自然的。但你不能!建模者必须实际制作一个面向左和面向右的车轮。恐怕我不知道狼零件的情况!呵呵。正如您所说...“导入Unity后似乎发生了变化”...这可能确实是问题所在。你必须让 Y 向上和 Z 向前...

标签: unity3d blender


【解决方案1】:

在 3D 环境中,当您指的是前、后、上、下时,有多种方法可以确定轴的方向。 Blender 和 Unity(以及其他 3d 应用程序)使用不同的坐标系,其中 Blender 的 +z 指向上方 Unity 有 +y。

您会发现从 blender 导出到 unity 会处理坐标轴转换,因此坐标轴与每个应用程序中使用的约定相匹配,这就是为什么骨骼坐标轴与您的预期不匹配。

除非您的动画出错有问题,否则最简单的解决方案是让这两个应用习惯使用相同模型的不同轴系。

作为技术搅拌器使用 +z 向上的right-handed cartesian coordinate system,这在 3D CAD 应用程序中更常见,并且匹配将图形放在您面前的桌子上并从中提升 z 轴。对于一些 3D 应用程序来说,z 轴指向后也是很常见的,因为它与 z 深度相匹配,z 深度是指到相机的距离,并且适合在窗口左下方有 x0,y0。

【讨论】:

    【解决方案2】:
    • 在 FBX 导出设置中,选择“骨架”

    • 在 Primary Bone Axis 中,选择“Z Axis”

    • 在Secondary Bone Axis中,选择“-X Axis”

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 2020-05-16
      • 2014-10-27
      • 2020-10-09
      • 2021-04-22
      • 2014-03-30
      • 2020-08-28
      • 2021-12-04
      • 2012-02-11
      相关资源
      最近更新 更多