GSmGpE6CwX2y9JjB25B8
We use cookies on this site to enhance your user experience

网格部件 – 导入模型

网格部件 – 导入模型

Oct 18 2019, 2:42 PM PST 10 min

本文概述了如何通过使用 Autodesk Maya 和 Blender 等创建的模型将网格上传到 Roblox。

上传网格

最简便的网格上传方法是使用 Game Explorer(游戏资源管理器)窗口(**View(查看)**选项卡 → Game Explorer(游戏资源管理器)底部的 **Import(导入)**按钮。

完成后,将在 **Meshes(网格)**树中创建一个或多个网格资源:

网格拆分

如果你导入包含多个网格的文件,Studio 会将它们作为单独的网格导入:


限制
  • 如果任何子网格包含 5000 个以上的多边形,则父网格将被拒绝。
  • 如果父网格包含 50 个以上的子网格,则所有子网格都将被拒绝。

插入网格

若要将网格插入到你的游戏中,请右键单击该对象,然后选择 Insert(插入)。或者,如果网格包含位置数据,则可以在插入时通过选择 Insert with location(随位置一起插入)来保留数据。

这将随应用的网格一起插入一个 MeshPart 实例:

应用纹理

网格文件可以定义网格纹理的路径。如果设置了此选项并且路径有效,则插入网格时将自动应用纹理。

如果未自动插入纹理,则可以在 Studio 中或运行时通过脚本设置纹理的 MeshPart/TextureID|TextureID 来将纹理应用于 MeshPart

要在 Studio 中应用网格纹理:

  1. 在游戏编辑器视图或资源管理器层次结构中选择 MeshPart 对象。
  2. 在 **Properties(属性)**窗口中,单击它的 TextureID 字段。

在上下文弹出窗口中,可以通过多种方式应用纹理:

  • 选择以前上传的任何图像(纹理)。
  • 通过滚动到弹出窗口的底部并单击 Add Image…(添加图像…)上传纹理。
  • 如果知道纹理的 Roblox 资源 ID,例如 rbxassetid://0123456789,可以将其粘贴到弹出窗口顶部的URL字段中。

碰撞几何体

UnionOperation|UnionOperations 一样,MeshPart|MeshParts 具有 CollisionFidelity 属性。此设置确定对象的视觉表示形式与对象的物理边界的匹配程度。有关详细信息,请参阅 MeshPart/CollisionFidelity|CollisionFidelity

详细级别

默认情况下,无论网格距游戏镜头有多远,网格将始终以精确的保真度显示。这可以改善从任何距离观看时的外观,但如果某个场景有大量的详细网格,则可能会降低整个游戏的articles/Improving Performance|性能

若要动态控制网格部件的详细程度,请将其 enum/RenderFidelity|RenderFidelity 属性更改为 Automatic(自动)。这将导致网格根据其与镜头的距离以不同的详细级别进行渲染:

与镜头的距离 渲染保真度
低于 250 格 最高
250-500 格 中等
500 或以上格 最低
最高(12348 个三角形)
中等(5587 个三角形)
最低(2709 个三角形)

错误排查

使用网格导入,可能会出现某些问题。其中大多数问题是由于误解 Roblox 允许导入的内容造成的。以下是一些常见问题以及如何解决这些问题的概述。

情景 解决方案
使用复杂的多网格 FBX 文件的导入问题 复杂的 .fbx 多网格 文件可能未正确导入,导致意外的网格位置或旋转。一种解决方法是改用 Wavefront (.obj) 格式。如果要从混合器导出,请确保每个网格都以群组的形式导出:
  • 取消选中 Objects as OBJ Objects(作为 OBJ 对象的对象)复选框。
  • 选中 Objects as OBJ Groups(作为 OBJ 群组的对象)复选框。
模型包含装配或动画数据 Studio 当前不支持动画或装配数据导入。如果网格依赖于基于动画/装配数据的初始变换,则不会保留该变换,并且网格可能看起来不正确。若要解决此问题,请移除动画/装配节点并再次上传网格。
从混合器导出的超大 FBX 文件 混合器可以在将网格导出为 .fbx 文件时应用比例因子,具体取决于其设置。这可能会导致导入 Studio 时网格过大。至少有两种方法可以防止混合器应用比例因子:
  • 以 Wavefront (.obj) 格式导出,而不是 .fbx 格式。混合器不会应用任何比例因子,因此 Blender(混合器)中的一个单位将等于 Roblox 中的一个格。
  • 使用centimeters(厘米)作为默认单位,而不是米(这可以在混合器的 Scene 属性中更改)。
界外 UV UV 将纹理的位置映射到网格上的某个位置。绘制纹理边界之外的 UV 就好像它们仍在纹理内一样,从而生成平铺的纹理。可以通过在 0 和 1 的边界内使用 UV 重新映射网格来解决此问题。