SLIM (Modelos Interactivos Livianos y Escalables) es un sistema de optimización automática que genera representaciones livianas y optimizadas de Models y avatares de plataforma utilizando transcodificación en la nube (convirtiendo activos en formatos más eficientes). Cuando está habilitado, SLIM combina múltiples partes en menos llamadas de dibujo (comandos de renderizado enviados a la GPU) y genera múltiples niveles de detalle, permitiendo que el motor seleccione inteligentemente la mejor representación según la distancia, la capacidad del dispositivo y los recursos disponibles.


SLIM proporciona tres beneficios clave:
- Calidad visual— Los modelos distantes aparecen más detallados que el sistema de nivel de detalle de modelos heredados, manteniendo una fidelidad más cercana al original.
- Transiciones consistentes— Todas las partes dentro de un modelo cambian de nivel de detalle simultáneamente, eliminando transiciones bruscas por parte.
- Rendimiento— Las mallas compuestas reducen drásticamente las llamadas de dibujo, el conteo de triángulos y el uso de memoria, permitiendo escenas más ricas en todos los niveles de dispositivos.
Explora SLIM en estos juegos publicados:


Requisitos previos
SLIM requiere lo siguiente:
- StreamingEnabled debe estar habilitado en el objeto Workspace. Consulta también las propiedades de transmisión para configuraciones recomendadas relacionadas.
- El lugar debe estar guardado en Roblox (no un archivo local .rbxl), ya que SLIM utiliza la transcodificación en la nube para generar activos optimizados. Si estás probando localmente, publica el lugar y luego habilita SLIM.
- Team Create debe estar habilitado para el juego, ya que SLIM depende de propiedades asociadas para la generación de activos en la nube.
Comportamiento técnico
Cuando publicas o pruebas un juego con modelos habilitados para SLIM, el motor sube los datos del modelo a un servicio en la nube que genera mallas compuestas optimizadas con múltiples niveles de detalle. En tiempo de ejecución, los clientes obtienen estos activos del CDN y el motor selecciona el nivel de detalle apropiado según la distancia y la capacidad del dispositivo, clasificando cada modelo SLIM en zonas de renderizado según la distancia de la cámara:

| Rango | Comportamiento |
|---|---|
| Instancias completas transmitidas; renderizado tradicional parte por parte. | |
| Instancias completas transmitidas, pero el motor renderiza la composición SLIM cuando es más eficiente. | |
| Instancias transmitidas (solo existe un marcador mínimo en el DataModel, no la jerarquía completa del modelo), renderizado de composición SLIM. | |
| Marcador mínimo en el DataModel, no renderizado. |
SLIM para modelos
SLIM funciona mejor en modelos que representan geometría del mundo estática — edificios, props, vehículos, características del terreno y otros objetos del entorno que no cambian en el tiempo de ejecución. Agregar o eliminar partes, cambiar materiales o modificar geometría en tiempo de ejecución impide que SLIM renderice el modelo correctamente. Consulta la estructura del modelo para obtener orientación general sobre la estructura del modelo y las limitaciones para la lista completa de exclusiones.
Para habilitar SLIM en un modelo, establece su propiedad LevelOfDetail en SLIM en la ventana de Propiedades.

Cuando SLIM está configurado en un modelo, el motor:
- Serializa las propiedades relevantes para el renderizado del modelo (geometría, materiales, texturas, transformaciones) en una representación compacta. Los tipos de instancia admitidos dentro del modelo incluyen Part, MeshPart, Decal, Texture, SurfaceAppearance, PartOperation, NegateOperation y SpecialMesh.
- Sube estos datos al servicio de transcodificación en la nube en la primera publicación o prueba.
- El servicio en la nube genera una malla compuesta con múltiples niveles de detalle, eliminando geometría interna oculta y optimizando texturas.
- En tiempo de ejecución, los clientes obtienen el activo SLIM optimizado y lo renderizan cuando el motor transmite el modelo original o cuando SLIM es más eficiente que el modelo completo.
Si tu juego utiliza la configuración heredada StreamingMesh para Model.LevelOfDetail, puedes convertir modelos individuales seleccionándolos y cambiando la propiedad en la ventana de Propiedades, o puedes convertir por lotes múltiples modelos a la vez utilizando un script como el siguiente en la Barra de Comandos. Ten en cuenta que algunos modelos que funcionaron con StreamingMesh pueden necesitar ajustes para SLIM, particularmente aquellos con partes superpuestas o jerarquías complejas de PartOperation.
for _, descendant in workspace:GetDescendants() do
if descendant:IsA("Model") and descendant.LevelOfDetail ==
Enum.ModelLevelOfDetail.StreamingMesh then
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.SLIM
end
endSLIM para avatares
Los avatares de plataforma fuera del área transmitida actualmente no son visibles por defecto. Habilitar avatares SLIM renderiza personajes de jugador de rig estándar — independientemente de cuántos accesorios o capas de ropa tengan — como sustitutos livianos y animados que mantienen la fidelidad visual a una fracción del costo de renderizado.


La propiedad clave específica de SLIM para avatares es Workspace.EnableSLIMAvatars que debe configurarse en Enabled en la ventana de Propiedades, junto con LevelOfDetail configurado en SLIM en tus modelos del mundo que no son avatares.

Con EnableSLIMAvatars habilitado, el motor:
- Renderiza una versión SLIM cuando un modelo de avatar real se transmite.
- Cambia entre representaciones SLIM y de alta resolución según los recursos disponibles, incluso dentro del radio de transmisión.
- Limita las animaciones SLIM según la importancia de la escena y el ancho de banda disponible.
A diferencia de SLIM de modelos que puedes probar solo alejándote de un modelo hasta que se transmita, los avatares SLIM requieren múltiples jugadores en el juego para observar. Usa uno de estos modos de prueba para probar avatares SLIM:
- Prueba en Equipo — Únete con amigos o cuentas alternas para ver avatares SLIM a distancia.
- Servidor y Clientes — Lanza dos o más ventanas de cliente donde cada cliente muestra copias de avatar que los demás renderizan como SLIM cuando están a distancia.
Ten en cuenta que los avatares deben haber sido transcodificados en un juego habilitado para SLIM antes de que aparezcan como SLIM. Si los avatares no se renderizan como SLIM en tu primera prueba, vuelve a unirte al juego después de un momento para permitir que la transcodificación se complete.
Limitaciones
| Limitación | Detalles |
|---|---|
| Transmisión requerida | SLIM solo funciona con StreamingEnabled configurado en true. Sin transmisión, los modelos elegibles para SLIM vuelven al renderizado tradicional de nivel de detalle. |
| Modelos estáticos solamente | SLIM de modelos no admite modelos modificados en tiempo de ejecución (partes añadidas/eliminadas, propiedades cambiadas) o modelos que reproducen animaciones. |
| Instancias Humanoides | El motor excluye modelos que contienen un Humanoid del procesamiento de SLIM de modelos estático. Usa avatares SLIM para personajes de jugador animados. |
| Restricciones de Avatar | Avatares SLIM solo admiten personajes de jugador de rig estándar R15. Los rigs R6, NPCs y avatares con proporciones personalizadas vuelven al renderizado predeterminado. |
| Dependencia de la nube | El servicio en la nube genera y almacena activos SLIM en el CDN. Las pruebas fuera de línea o locales sin un lugar publicado no producen resultados SLIM. |
| Modelos de escala cero | El motor excluye modelos con un Scale de 0 del procesamiento SLIM. |
| Disponibilidad en la plataforma | En plataformas donde SLIM aún no es compatible, los modelos configurados en SLIM vuelven a Disabled. |
Solución de problemas
- Verifica que StreamingEnabled esté en true.
- Confirma que el lugar esté publicado en Roblox y que Team Create esté habilitado.
- Asegúrate de que LevelOfDetail esté configurado en SLIM para el modelo.
- Espera de 1 a 2 minutos después de la primera publicación para que la transcodificación en la nube se complete, luego vuelve a unirte.
- Asegúrate de que el modelo no contenga una instancia de Humanoid.
Las instancias de PartOperation para modelado sólido (uniones, intersecciones, negaciones) pueden no renderizarse correctamente en algunos modelos SLIM. Si una unión parece faltar o distorsionada en la representación SLIM, intenta separar la PartOperation afectada en su propio modelo o simplificar la operación CSG.
El Z-fighting puede ocurrir cuando las partes en el modelo original tienen caras superpuestas o coplanares. Para resolverlo:
- Mueve las partes superpuestas ligeramente apartadas (incluso 0.01 studs es suficiente).
- Evita superficies perfectamente planas entre partes adyacentes en el mismo modelo.
SLIM regenera los mapeos UV (cómo se proyectan las texturas en superficies 3D) durante la transcodificación. Los materiales predeterminados de Roblox pueden mostrar patrones de teselado ligeramente diferentes en comparación con el original. Para mitigar:
- Usa texturas personalizadas a través de SurfaceAppearance para superficies importantes.
- Agrupa partes visualmente relacionadas en el mismo modelo para asegurar una texturización consistente.
- Verifica que Workspace.EnableSLIMAvatars esté configurado en Enabled.
- Prueba con múltiples clientes usando el modo de prueba Servidor y Clientes (requiere al menos 2 clientes).
- Asegúrate de que el avatar use un rig estándar R15 sin proporciones personalizadas.
- Confirma que el juego no modifique el avatar después del evento Player.CharacterAppearanceLoaded.
Las animaciones de cuerpo completo o de dedos pueden mostrar ocasionalmente artefactos visuales debido al tiempo de replicación de huesos. Este es un problema conocido que se está mejorando activamente. Si el problema es severo, verifica que los scripts de animación no estén modificando las transformaciones de los huesos fuera de la tubería de animación estándar.
El panel de estadísticas de renderizado puede informar conteos de triángulos incorrectos cuando los avatares SLIM están habilitados. Este es un error de reporte conocido y no afecta el rendimiento real de renderizado.