SLIM

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

SLIM(可扩展轻量级交互模型)是一个自动优化系统,使用基于云的转码(将资产转换为更高效的格式)生成轻量级、优化的 Models 和平台头像表示。当启用时,SLIM 将多个部分合并为更少的绘制调用(发送到 GPU 的渲染命令),并生成多个细节级别,使引擎能够根据距离、设备能力和可用资源智能选择最佳表示。

未启用 SLIM — 流式模型不可见
启用 SLIM — 优化的替代品保持可见

SLIM 提供三个主要好处:

  • 视觉质量
    — 远处模型的细节比传统模型的细节级别系统更高,保持与原始模型更接近的保真度。
  • 一致的过渡
    — 模型内的所有部分同时切换细节级别,消除令人不安的逐部分过渡。
  • 性能
    — 复合网格显著减少绘制调用、三角形数量和内存使用,使所有设备层次的场景更加丰富。

在这些已发布的游戏中探索 SLIM:

城市人群汽车 SLIM 模板 — 启用 SLIM 的世界模型

SLIM 平台头像 — 200 个使用 SLIM 渲染的动画头像

前提条件

SLIM 需要以下条件:

  1. StreamingEnabled 必须在 Workspace 对象上启用。有关相关推荐设置,请参见 流式属性
  2. 场所必须 保存到 Roblox(而不是本地 .rbxl 文件),因为 SLIM 使用云转码生成优化的资产。如果您在本地测试,请发布场所,然后启用 SLIM。
  3. 游戏必须启用 团队创建,因为 SLIM 依赖于相关属性进行云资产生成。

技术行为

当您发布或测试一个启用 SLIM 的模型的游戏时,引擎会将模型数据上传到云服务,该服务生成具有多个细节级别的优化复合网格。在运行时,客户端从 CDN 获取这些资产,引擎根据距离和设备能力选择适当的细节级别,将每个 SLIM 模型分类到基于与相机距离的渲染区域:

显示从玩家角色辐射出的四个 SLIM 渲染区域的图示。
范围行为
完全实例流入;传统的逐部分渲染。
完全实例流入,但引擎在更高效时渲染 SLIM 复合体。
实例流出(在 DataModel 中仅存在最小占位符,而不是完整的模型层次结构),SLIM 复合渲染。
DataModel 中的最小占位符,不渲染。

SLIM 对模型的支持

SLIM 最适合表示 静态世界几何 的模型 — 建筑、道具、车辆、地形特征和其他在运行时不变的环境对象。在运行时添加或删除部分、改变材料或修改几何形状会阻止 SLIM 正确渲染模型。有关一般模型结构指导,请参见 模型结构限制 的完整排除列表。

要在模型上启用 SLIM,请在 属性 窗口中将其 LevelOfDetail 属性设置为 SLIM

属性窗口中 LevelOfDetail 属性设置为 SLIM。

当 SLIM 在模型上设置时,引擎:

  1. 将模型的渲染相关属性(几何形状、材料、纹理、变换)序列化为紧凑表示。模型内支持的实例类型包括 PartMeshPartDecalTextureSurfaceAppearancePartOperationNegateOperationSpecialMesh
  2. 在首次发布或播放时将此数据上传到云转码服务。
  3. 云服务生成具有多个细节级别的复合网格,去除隐藏的内部几何形状并优化纹理。
  4. 在运行时,客户端获取优化的 SLIM 资产,并在引擎流出原始模型或 SLIM 比完整模型更高效时渲染它。

如果您的游戏使用传统的 StreamingMesh 设置来设置 Model.LevelOfDetail,您可以通过选择单个模型并在 属性 窗口中更改属性来转换它们,或者您可以使用以下脚本在 命令栏 中批量转换多个模型。请注意,一些与 StreamingMesh 一起使用的模型可能需要针对 SLIM 进行调整,特别是那些具有重叠部分或复杂的 PartOperation 层次结构的模型。

批量转换 StreamingMesh 到 SLIM
for _, descendant in workspace:GetDescendants() do
if descendant:IsA("Model") and descendant.LevelOfDetail ==
Enum.ModelLevelOfDetail.StreamingMesh then
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.SLIM
end
end

SLIM 对头像的支持

默认情况下,当前流式区域外的头像不可见。启用 SLIM 头像会将 标准‑骨架 玩家角色 — 无论他们有多少配件或服装层 — 渲染为轻量级、动画替代品,在渲染成本的很小一部分中保持视觉保真度。


头像的关键 SLIM 特定属性是 Workspace.EnableSLIMAvatars,应在 属性 窗口中设置为 Enabled,同时在您的非头像世界模型上将 LevelOfDetail 设置为 SLIM

属性窗口中 EnableSLIMAvatars 属性设置为启用。

启用 EnableSLIMAvatars 后,引擎:

  • 当实际头像模型流出时,渲染 SLIM 版本。
  • 根据可用资源在 SLIM 和全分辨率表示之间切换,即使在流式半径内。
  • 根据场景重要性和可用带宽限制 SLIM 动画。

与您可以通过远离模型直到其流出而单独测试的 模型 SLIM 不同,SLIM 头像需要游戏中有多个玩家进行观察。使用以下 测试模式 之一来测试 SLIM 头像:

  • 团队测试 — 与朋友或备用帐户加入以查看远处的 SLIM 头像。
  • 服务器和客户端 — 启动两个或更多客户端窗口,每个客户端显示其他客户端在远处渲染为 SLIM 的头像副本。

请注意,头像必须在启用 SLIM 的游戏中进行转码,才能显示为 SLIM。如果头像在您的第一次测试中未渲染为 SLIM,请稍等片刻后重新加入游戏,以允许转码完成。

限制

限制详细信息
需要流式处理SLIM 仅在 StreamingEnabled 设置为 true 时有效。没有流式处理,符合 SLIM 条件的模型将回退到传统的细节级别渲染。
仅限静态模型模型 SLIM 不支持在运行时修改的模型(添加/删除部分、改变属性)或播放动画的模型。
人形实例引擎排除包含 Humanoid 的模型进行静态 模型 SLIM 处理。使用 SLIM 头像 处理动画玩家角色。
头像限制SLIM 头像 仅支持 R15 标准‑骨架 玩家角色。R6 骨架、NPC 和具有自定义比例的头像将回退到默认渲染。
云依赖云服务在 CDN 上生成和存储 SLIM 资产。离线或本地测试而没有发布的场所不会产生 SLIM 结果。
零缩放模型引擎排除缩放为 0Scale 模型进行 SLIM 处理。
平台可用性在尚不支持 SLIM 的平台上,设置为 SLIM 的模型将回退到 Disabled

故障排除

  • 验证 StreamingEnabled 是否为 true
  • 确认场所已发布到 Roblox,并且已启用 团队创建
  • 检查模型的 LevelOfDetail 是否设置为 SLIM
  • 在首次发布后等待 1-2 分钟以完成云转码,然后重新加入。
  • 确保模型不包含 Humanoid 实例。

用于 固体建模PartOperation 实例(联合、交集、否定)在某些 SLIM 模型中可能未正确渲染。如果联合在 SLIM 表示中缺失或扭曲,请尝试将受影响的 PartOperation 分离到其自己的模型中或简化 CSG 操作。

当原始模型中的部分具有重叠或共面的面时,可能会发生 Z 争斗。要解决:

  • 将重叠部分稍微分开(即使 0.01 studs 也足够)。
  • 避免在同一模型中相邻部分之间的完全平整表面。

SLIM 在转码过程中重新生成 UV 映射(纹理如何投影到 3D 表面)。默认的 Roblox 材料可能会显示与原始材料略有不同的平铺模式。为减轻:

  • 通过 SurfaceAppearance 为重要表面使用自定义纹理。
  • 将视觉相关的部分分组到同一模型中,以确保一致的纹理。

全身或手指动画可能偶尔会由于骨骼复制时机而显示视觉伪影。这是一个已知问题,正在积极改进。如果问题严重,请验证动画脚本是否未在标准动画管道之外修改骨骼变换。

当启用 SLIM 头像时,渲染统计面板可能会报告不正确的三角形计数。这是一个已知的报告错误,不会影响实际的渲染性能。

©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。