Unity场景、模型等资源转UE4
共同点
在世界空间和模型空间内,UE4、Unity均为左手系
不同点
轴向
模型空间内,UE4、Unity轴向的对应关系如下:
轴向 | UE4 | Unity |
向前 | +x | +z |
向右 | +y | +x |
向上 | +z | +y |
旋转
欧拉角(Euler Angles)使用三个角度值来描述物体在三维空间的任意朝向
它的基本思想是让物体开始于“标准”方位(物体坐标轴和惯性坐标轴对齐),每次让其绕着物体坐标系某个轴进行旋转,通过三次旋转就可以达到最终朝向
如果从惯性坐标系到物体坐标系,欧拉角顺序为:m-n-p;那么,从物体坐标系到惯性坐标系,旋转的顺序就是相反的,为p-n-m
合法的欧拉角组中,唯一的限制是,任何两个连续的旋转,必须绕着不同的转动轴旋转,因此,一共有12种顺规。
欧拉角分为两大类:
别种欧拉角组(Proper Euler angles,仅绕两个不同的轴进行旋转): z-x-z、x-y-x,、y-z-y、z-y-z、x-z-x、y-x-y
泰特-布萊恩角(Tait–Bryan angles,三次都绕不同的轴进行旋转) :x-y-z、y-z-x、z-x-y、x-z-y、z-y-x、y-x-z
游戏中使用的是泰特-布萊恩角(Tait–Bryan angles)
泰特-布萊恩角(Tait–Bryan angles)又称Cardan angles; nautical angles; heading, elevation, and bank; or yaw, pitch, and roll
Yaw(shaking your head to say "no") ,又称heading,方位角
Pitch (think nodding to say "yes"),又称elevation, 俯仰角
Roll (tilting your head sideways while looking in a specific direction) ,又称bank,横滚角
UE4欧拉角顺序为:Yaw-Pitch-Roll
欧拉角 | 旋转轴方向 | 存储分量 |
横滚角(Roll) | -x(向后) | x |
俯仰角(Pitch) | -y(向左) | y |
方位角(Yaw) | +z(向上) | z |
Unity欧拉角顺序为:Yaw-Pitch-Roll
欧拉角 | 旋转轴方向 | 存储分量 |
横滚角(Roll) | +z(向前) | z |
俯仰角(Pitch) | +x(向右) | x |
方位角(Yaw) | +y(向上) | y |
值得注意地是,虽然UE4和Unity的欧拉角顺序相同,但两者在Pitch和Roll分量的旋转方向是相反的
若要将Unity的场景转换到UE4中,需要进行如下操作:
(1) 计算场景中GameObject在世界坐标系中Location、Rotation和Scale,然后按照如下对应关系写入到UE4中
string.format("RelativeLocation=(X={0:F6},Y={1:F6},Z={2:F6})", UnityWorldPosition.Z * 100, UnityWorldPosition.X * 100, UnityWorldPosition.Y * 100); string.format("RelativeRotation=(Roll={2:F6},Pitch={0:F6},Yaw={1:F6})", -UnityWorldRotation.Z, -UnityWorldRotation.X, UnityWorldRotation.Y); string.format("RelativeScale3D=(X={0:F6},Y={1:F6},Z={2:F6})", UnityWorldScale.Z, UnityWorldScale.X, UnityWorldScale.Y);
注:Location要乘以100,原因是untiy的单位是m,而UE4的单位是cm
(2)mesh模型导入到UE4中时,需要将Yaw方位角设置成 90,Roll横滚角设置成-90,另外Location也要乘以100
扩展
Unity导出的模型在Blender中编辑,首先需要切换到Edit Mode。如果要沿某个轴对模型镜像,可使用菜单 Mesh -- Mirror 中提供的功能来完成
需要注意地是,镜像后,法线会反向,可使用Mesh Tools面板上的Normals -- Flip Direction来修正(或使用菜单 Mesh -- Normals)
测试场景【2个物体,3个材质】:
obj导出选项
obj文件内容如下
# Blender v2.72 (sub 0) OBJ File: '' # www.blender.org o Cylinder v -0.284460 -0.645782 -0.619485 v -0.284460 1.354218 -0.619485 v -0.089369 -0.645782 -0.600270 v -0.089369 1.354218 -0.600270 v 0.098224 -0.645782 -0.543364 v 0.098224 1.354218 -0.543364 v 0.271111 -0.645782 -0.450954 v 0.271111 1.354218 -0.450954 v 0.422647 -0.645782 -0.326592 v 0.422647 1.354218 -0.326592 v 0.547010 -0.645782 -0.175055 v 0.547010 1.354218 -0.175055 v 0.639420 -0.645782 -0.002168 v 0.639420 1.354218 -0.002168 v 0.696326 -0.645782 0.185425 v 0.696326 1.354218 0.185425 v 0.715540 -0.645782 0.380515 v 0.715540 1.354218 0.380515 v 0.696326 -0.645782 0.575605 v 0.696326 1.354218 0.575605 v 0.639420 -0.645782 0.763198 v 0.639420 1.354218 0.763198 v 0.547010 -0.645782 0.936085 v 0.547010 1.354218 0.936085 v 0.422647 -0.645782 1.087622 v 0.422647 1.354218 1.087622 v 0.271111 -0.645782 1.211985 v 0.271111 1.354218 1.211985 v 0.098224 -0.645782 1.304395 v 0.098224 1.354218 1.304395 v -0.089370 -0.645782 1.361300 v -0.089370 1.354218 1.361300 v -0.284460 -0.645782 1.380515 v -0.284460 1.354218 1.380515 v -0.479550 -0.645782 1.361300 v -0.479550 1.354218 1.361300 v -0.667143 -0.645782 1.304394 v -0.667143 1.354218 1.304394 v -0.840030 -0.645782 1.211984 v -0.840030 1.354218 1.211984 v -0.991567 -0.645782 1.087621 v -0.991567 1.354218 1.087621 v -1.115930 -0.645782 0.936085 v -1.115930 1.354218 0.936085 v -1.208339 -0.645782 0.763198 v -1.208339 1.354218 0.763198 v -1.265245 -0.645782 0.575605 v -1.265245 1.354218 0.575605 v -1.284460 -0.645782 0.380514 v -1.284460 1.354218 0.380514 v -1.265245 -0.645782 0.185424 v -1.265245 1.354218 0.185424 v -1.208339 -0.645782 -0.002169 v -1.208339 1.354218 -0.002169 v -1.115929 -0.645782 -0.175056 v -1.115929 1.354218 -0.175056 v -0.991565 -0.645782 -0.326593 v -0.991565 1.354218 -0.326593 v -0.840029 -0.645782 -0.450955 v -0.840029 1.354218 -0.450955 v -0.667142 -0.645782 -0.543365 v -0.667142 1.354218 -0.543365 v -0.479548 -0.645782 -0.600270 v -0.479548 1.354218 -0.600270 vn 0.098000 0.000000 -0.995200 vn 0.290300 0.000000 -0.956900 vn 0.471400 0.000000 -0.881900 vn 0.634400 0.000000 -0.773000 vn 0.773000 0.000000 -0.634400 vn 0.881900 0.000000 -0.471400 vn 0.956900 0.000000 -0.290300 vn 0.995200 0.000000 -0.098000 vn 0.995200 0.000000 0.098000 vn 0.956900 0.000000 0.290300 vn 0.881900 0.000000 0.471400 vn 0.773000 0.000000 0.634400 vn 0.634400 0.000000 0.773000 vn 0.471400 0.000000 0.881900 vn 0.290300 0.000000 0.956900 vn 0.098000 0.000000 0.995200 vn -0.098000 0.000000 0.995200 vn -0.290300 0.000000 0.956900 vn -0.471400 0.000000 0.881900 vn -0.634400 0.000000 0.773000 vn -0.773000 0.000000 0.634400 vn -0.881900 0.000000 0.471400 vn -0.956900 0.000000 0.290300 vn -0.995200 0.000000 0.098000 vn -0.995200 0.000000 -0.098000 vn -0.956900 0.000000 -0.290300 vn -0.881900 0.000000 -0.471400 vn -0.773000 0.000000 -0.634400 vn -0.634400 0.000000 -0.773000 vn -0.471400 0.000000 -0.881900 vn 0.000000 1.000000 0.000000 vn -0.098000 0.000000 -0.995200 vn -0.290300 0.000000 -0.956900 vn 0.000000 -1.000000 -0.000000 g Cylinder_Cylinder_Material.001 s off f 1//1 2//1 4//1 3//1 f 3//2 4//2 6//2 5//2 f 5//3 6//3 8//3 7//3 f 7//4 8//4 10//4 9//4 f 9//5 10//5 12//5 11//5 f 11//6 12//6 14//6 13//6 f 13//7 14//7 16//7 15//7 f 15//8 16//8 18//8 17//8 f 17//9 18//9 20//9 19//9 f 19//10 20//10 22//10 21//10 f 21//11 22//11 24//11 23//11 f 23//12 24//12 26//12 25//12 f 25//13 26//13 28//13 27//13 f 27//14 28//14 30//14 29//14 f 29//15 30//15 32//15 31//15 f 31//16 32//16 34//16 33//16 f 33//17 34//17 36//17 35//17 f 35//18 36//18 38//18 37//18 f 37//19 38//19 40//19 39//19 f 39//20 40//20 42//20 41//20 f 41//21 42//21 44//21 43//21 f 43//22 44//22 46//22 45//22 f 45//23 46//23 48//23 47//23 f 47//24 48//24 50//24 49//24 f 49//25 50//25 52//25 51//25 f 51//26 52//26 54//26 53//26 f 53//27 54//27 56//27 55//27 f 55//28 56//28 58//28 57//28 f 57//29 58//29 60//29 59//29 f 59//30 60//30 62//30 61//30 f 4//31 2//31 64//31 62//31 60//31 58//31 56//31 54//31 52//31 50//31 48//31 46//31 44//31 42//31 40//31 38//31 36//31 34//31 32//31 30//31 28//31 26//31 24//31 22//31 20//31 18//31 16//31 14//31 12//31 10//31 8//31 6//31 f 63//32 64//32 2//32 1//32 f 61//33 62//33 64//33 63//33 f 1//34 3//34 5//34 7//34 9//34 11//34 13//34 15//34 17//34 19//34 21//34 23//34 25//34 27//34 29//34 31//34 33//34 35//34 37//34 39//34 41//34 43//34 45//34 47//34 49//34 51//34 53//34 55//34 57//34 59//34 61//34 63//34 o Cube v 1.607892 -1.000000 -4.405646 v 1.607892 -1.000000 -2.405647 v -1.000000 -1.000000 -2.405647 v -1.000000 -1.000000 -4.405647 v 1.607892 1.000000 -4.405646 v 1.607891 1.000000 -2.405646 v -1.000000 1.000000 -2.405647 v -1.000000 1.000000 -4.405646 vn 0.000000 -1.000000 0.000000 vn 0.000000 1.000000 0.000000 vn -0.000000 -0.000000 1.000000 vn -1.000000 -0.000000 -0.000000 vn 0.000000 0.000000 -1.000000 vn 1.000000 -0.000000 0.000000 g Cube_Cube_Material s off f 65//35 66//35 67//35 68//35 f 69//36 72//36 71//36 70//36 f 66//37 70//37 71//37 67//37 f 67//38 71//38 72//38 68//38 f 69//39 65//39 68//39 72//39 g Cube_Cube_Material.002 f 65//40 69//40 70//40 66//40
UE4导入选项(选项说明:FBX导入选项参考)
导入后,合并成一个关联了3个材质的物件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)