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个材质的物件