理解导入fbx时的Scale

在Unity中点击GameObject菜单->3D Object->Cube,创建一个1x1x1的单位立方体。将立方体的位置设为(0.5, 0.5, 0.5),可以看到立方体正好能放进场景编辑窗口里的一个网格里。

在Maya中点击Create菜单 -> Polygon Primitives -> Cube,同样也创建一个1x1x1的单位立方体。

在Maya中选中立方体,点击File -> Export Selection,将立方体导出为fbx。在导出对话框中,可以看到File Type Specific Options -> Advanced Options -> Units -> File units converted to: 的值是Centimeters。说明Maya里的长度单位默认是厘米。

以默认的导出选项将fbx导出到Unity工程之后,在Unity编辑器中选中导出的fbx文件可以在Inspector中看到其Import Settings -> Model -> Meshes -> File Scale的值为0.01。

将从Maya导入进Unity工程的立方体fbx(以下简称为Maya立方体)拖进场景,可以看到,跟之前在Unity中直接创建的单位立方体(以下简称为Unity立方体)相比,Maya立方体只有一丁点儿大。

选中的是Maya导入的立方体。背后的巨大白色立方体是在Unity中直接创建的单位立方体。

将Maya立方体Transform的Scale设为(100, 100, 100),它就会变得和Unity立方体一样大。这是因为Maya立方体原始大小的边长是1厘米,而Unity中的长度单位是米,单位立方体的边长是1米。

也可以通过将Maya立方体fbx的Import Settings -> Model -> Meshes -> Scale Factor设为100,Transform保持为(1, 1, 1)来达到同样的效果。这相当于Maya立方体的边长在文件层面就被放大了100倍。

或者将Transform保持为(1, 1, 1),Import Settings中的Scale Factor也保持为1,但是取消选中Use File Scale。这样就和Unity立方体等价了。

我们还可以试着在Maya导出的时候,将导出设置中的 File units converted to: 改为Meters。这就意味着Maya里的1x1x1也是1立方米。导入Unity后fbx的Scale Factor和File Scale都是1。但不同的是,将Maya立方体拖入Unity编辑器后,其Transform的Scale会默认被设为(0.01, 0.01, 0.01)。也就是说刚拖进场景时的默认视觉效果始终是1立方厘米。只是当你将Transform设为(1, 1, 1)时,它就会变成1立方米。

发表评论

电子邮件地址不会被公开。 必填项已用*标注