从 Blender 导入到 Unity 时如何保持对象的变换
How to maintain Transform of objects when importing from Blender to Unity
我已经将我的 Blender 模型导入到 Unity 中,并完成了正确设置动画的骨架。
但是,我现在想在 Unity 中操纵骨骼变换(例如,使头部骨骼 "look at" 成为玩家)。然而,头部骨骼(和许多其他骨骼)的变换在导入 Unity 后似乎发生了变化。例如。 'Z' 方向不再向上。如何确保 Blender 和 Unity 之间的变换一致?
下面是头部骨骼在 Blender 中的变换。
下面是头部骨骼导入Unity后的变换。
在 3D 环境中,当您指的是前、后、上、下时,有几种方法可以定位轴。 Blender 和 Unity(以及其他 3d 应用程序)使用不同的坐标系,其中 blender 的 +z 指向上方 Unity 的 +y。
您会发现从 blender 导出到 unity 会处理轴转换,以便轴与每个应用程序中使用的约定相匹配,这就是骨骼轴与您预期的不匹配的原因。
除非你的动画有问题,否则最简单的解决方案是习惯这两个应用程序为相同的模型使用不同的轴系统。
Be technical blender 使用 right-handed cartesian coordinate system +z 向上,这在 3D CAD 应用程序中更常见,并且匹配将图形放在您面前的桌子上并从中抬起 z 轴.对于一些 3D 应用程序来说,z 轴指向后方也很常见,因为它与 z 深度相匹配,z 深度指的是与相机的距离,并且适合 [=19= 左下角的 x0,y0 ].
在 FBX 导出设置中,select“骨架”
在主骨轴中,select“Z 轴”
在副骨轴中,select“-X 轴”
我已经将我的 Blender 模型导入到 Unity 中,并完成了正确设置动画的骨架。
但是,我现在想在 Unity 中操纵骨骼变换(例如,使头部骨骼 "look at" 成为玩家)。然而,头部骨骼(和许多其他骨骼)的变换在导入 Unity 后似乎发生了变化。例如。 'Z' 方向不再向上。如何确保 Blender 和 Unity 之间的变换一致?
下面是头部骨骼在 Blender 中的变换。
下面是头部骨骼导入Unity后的变换。
在 3D 环境中,当您指的是前、后、上、下时,有几种方法可以定位轴。 Blender 和 Unity(以及其他 3d 应用程序)使用不同的坐标系,其中 blender 的 +z 指向上方 Unity 的 +y。
您会发现从 blender 导出到 unity 会处理轴转换,以便轴与每个应用程序中使用的约定相匹配,这就是骨骼轴与您预期的不匹配的原因。
除非你的动画有问题,否则最简单的解决方案是习惯这两个应用程序为相同的模型使用不同的轴系统。
Be technical blender 使用 right-handed cartesian coordinate system +z 向上,这在 3D CAD 应用程序中更常见,并且匹配将图形放在您面前的桌子上并从中抬起 z 轴.对于一些 3D 应用程序来说,z 轴指向后方也很常见,因为它与 z 深度相匹配,z 深度指的是与相机的距离,并且适合 [=19= 左下角的 x0,y0 ].
在 FBX 导出设置中,select“骨架”
在主骨轴中,select“Z 轴”
在副骨轴中,select“-X 轴”