SLIM

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

SLIM (Modelos Interativos Leves e Escaláveis) é um sistema de otimização automática que gera representações leves e otimizadas de Models e avatares de plataforma usando transcodificação baseada em nuvem (convertendo ativos em formatos mais eficientes). Quando ativado, o SLIM combina várias partes em menos chamadas de desenho (comandos de renderização enviados para a GPU) e gera múltiplos níveis de detalhe, permitindo que o mecanismo selecione inteligentemente a melhor representação com base na distância, capacidade do dispositivo e recursos disponíveis.

Sem SLIM — modelos transmitidos estão invisíveis
Com SLIM — substitutos otimizados permanecem visíveis

O SLIM oferece três benefícios principais:

  • Qualidade visual
    — Modelos distantes parecem mais detalhados do que o sistema de nível de detalhe de modelo legado, mantendo uma fidelidade mais próxima ao original.
  • Transições consistentes
    — Todas as partes dentro de um modelo trocam de níveis de detalhe simultaneamente, eliminando transições abruptas por parte.
  • Desempenho
    — Malhas compostas reduzem drasticamente chamadas de desenho, contagens de triângulos e uso de memória, permitindo cenas mais ricas em todos os níveis de dispositivo.

Explore o SLIM nestes jogos publicados:

Modelo SLIM de Cidade, Pessoas e Carros — Modelos do mundo com SLIM ativado

Avatares de Plataforma SLIM — 200 avatares animados renderizados com SLIM

Pré-requisitos

O SLIM requer o seguinte:

  1. StreamingEnabled deve estar ativado no objeto Workspace. Veja também propriedades de streaming para configurações recomendadas relacionadas.
  2. O lugar deve ser salvo no Roblox (não um arquivo local .rbxl), pois o SLIM usa transcodificação na nuvem para gerar ativos otimizados. Se você estiver testando localmente, publique o lugar e, em seguida, ative o SLIM.
  3. Team Create deve estar ativado para o jogo, pois o SLIM depende de propriedades associadas para a geração de ativos na nuvem.

Comportamento técnico

Quando você publica ou testa um jogo com modelos habilitados para SLIM, o mecanismo envia dados do modelo para um serviço em nuvem que gera malhas compostas otimizadas com múltiplos níveis de detalhe. Em tempo de execução, os clientes buscam esses ativos do CDN e o mecanismo seleciona o nível de detalhe apropriado com base na distância e na capacidade do dispositivo, classificando cada modelo SLIM em zonas de renderização com base na distância da câmera:

Diagrama mostrando as quatro zonas de renderização SLIM irradiando de um personagem jogador.
FaixaComportamento
Instâncias completas transmitidas; renderização tradicional parte por parte.
Instâncias completas transmitidas, mas o mecanismo renderiza a composição SLIM quando mais eficiente.
Instâncias transmitidas (apenas um espaço reservado mínimo existe no DataModel, não a hierarquia completa do modelo), renderização de composição SLIM.
Espaço reservado mínimo no DataModel, não renderizado.

SLIM para modelos

O SLIM funciona melhor em modelos que representam geometria do mundo estática — edifícios, objetos, veículos, características do terreno e outros objetos do ambiente que não mudam em tempo de execução. Adicionar ou remover partes, mudar materiais ou modificar geometria em tempo de execução impede que o SLIM renderize o modelo corretamente. Veja estrutura do modelo para orientações gerais sobre a estrutura do modelo e limitações para a lista completa de exclusões.

Para habilitar o SLIM em um modelo, defina a propriedade LevelOfDetail como SLIM na janela de Propriedades.

A janela de Propriedades com a propriedade LevelOfDetail definida como SLIM.

Quando o SLIM é definido em um modelo, o mecanismo:

  1. Serializa as propriedades relevantes para renderização do modelo (geometria, materiais, texturas, transformações) em uma representação compacta. Os tipos de instância suportados dentro do modelo incluem Part, MeshPart, Decal, Texture, SurfaceAppearance, PartOperation, NegateOperation e SpecialMesh.
  2. Envia esses dados para o serviço de transcodificação na nuvem na primeira publicação ou teste.
  3. O serviço em nuvem gera uma malha composta com múltiplos níveis de detalhe, removendo geometria interna oculta e otimizando texturas.
  4. Em tempo de execução, os clientes buscam o ativo SLIM otimizado e o renderizam quando o mecanismo transmite o modelo original ou quando o SLIM é mais eficiente do que o modelo completo.

Se seu jogo usa a configuração legado StreamingMesh para Model.LevelOfDetail, você pode converter modelos individuais selecionando-os e alterando a propriedade na janela de Propriedades, ou pode converter em lote vários modelos de uma vez usando um script como o seguinte na Barra de Comando. Observe que alguns modelos que funcionavam com StreamingMesh podem precisar de ajustes para o SLIM, particularmente aqueles com partes sobrepostas ou hierarquias complexas de PartOperation.

Converter em Lote StreamingMesh para 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 para avatares

Avatares de plataforma fora da área atualmente transmitida não são visíveis por padrão. Habilitar avatares SLIM renderiza personagens de jogador rig padrão — independentemente de quantos acessórios ou camadas de roupas eles tenham — como substitutos leves e animados que mantêm a fidelidade visual a uma fração do custo de renderização.


A propriedade SLIM específica para avatares é Workspace.EnableSLIMAvatars que deve ser definida como Enabled na janela de Propriedades, juntamente com LevelOfDetail definido como SLIM em seus modelos de mundo não-avatar.

A janela de Propriedades com a propriedade EnableSLIMAvatars definida como Ativado.

Com EnableSLIMAvatars ativado, o mecanismo:

  • Renderiza uma versão SLIM quando um modelo de avatar real é transmitido.
  • Alterna entre representações SLIM e de alta resolução com base nos recursos disponíveis, mesmo dentro do raio de streaming.
  • Limita animações SLIM com base na importância da cena e na largura de banda disponível.

Diferente do SLIM de modelo que você pode testar sozinho movendo-se para longe de um modelo até que ele seja transmitido, avatares SLIM requerem múltiplos jogadores no jogo para serem observados. Use um desses modos de teste para testar avatares SLIM:

  • Teste em Equipe — Junte-se a amigos ou contas alternativas para ver avatares SLIM à distância.
  • Servidor e Clientes — Inicie duas ou mais janelas de cliente onde cada cliente exibe cópias de avatar que os outros renderizam como SLIM quando à distância.

Observe que os avatares devem ter sido transcodificados em um jogo habilitado para SLIM antes de aparecerem como SLIM. Se os avatares não renderizarem como SLIM em seu primeiro teste, entre novamente no jogo após um momento para permitir que a transcodificação seja concluída.

Limitações

LimitaçãoDetalhes
Streaming necessárioO SLIM só funciona com StreamingEnabled definido como true. Sem streaming, modelos elegíveis para SLIM voltam à renderização tradicional de nível de detalhe.
Modelos estáticos apenasSLIM de modelo não suporta modelos modificados em tempo de execução (partes adicionadas/removidas, propriedades alteradas) ou modelos que reproduzem animações.
Instâncias HumanoidesO mecanismo exclui modelos contendo um Humanoid do processamento de SLIM de modelo estático. Use avatares SLIM para personagens de jogador animados.
Restrições de AvatarAvatares SLIM suportam apenas personagens de jogador R15 rig padrão. Rigs R6, NPCs e avatares com proporções personalizadas voltam à renderização padrão.
Dependência da nuvemO serviço em nuvem gera e armazena ativos SLIM no CDN. Testes offline ou locais sem um lugar publicado não produzem resultados SLIM.
Modelos de escala zeroO mecanismo exclui modelos com uma Scale de 0 do processamento SLIM.
Disponibilidade na plataformaEm plataformas onde o SLIM ainda não é suportado, modelos definidos como SLIM voltam para Disabled.

Solução de Problemas

  • Verifique se StreamingEnabled está true.
  • Confirme se o lugar está publicado no Roblox e se Team Create está ativado.
  • Verifique se LevelOfDetail está definido como SLIM para o modelo.
  • Aguarde de 1 a 2 minutos após a primeira publicação para que a transcodificação na nuvem seja concluída, e então entre novamente.
  • Certifique-se de que o modelo não contenha uma instância de Humanoid.

Instâncias de PartOperation para modelagem sólida (uniões, interseções, negações) podem não renderizar corretamente em alguns modelos SLIM. Se uma união parecer ausente ou distorcida na representação SLIM, tente separar a PartOperation afetada em seu próprio modelo ou simplificar a operação CSG.

Z-fighting pode ocorrer quando partes no modelo original têm faces sobrepostas ou coplanares. Para resolver:

  • Mova partes sobrepostas ligeiramente para longe (mesmo 0.01 studs é suficiente).
  • Evite superfícies perfeitamente alinhadas entre partes adjacentes no mesmo modelo.

O SLIM regenera mapeamentos UV (como texturas são projetadas em superfícies 3D) durante a transcodificação. Materiais padrão do Roblox podem mostrar padrões de tiling ligeiramente diferentes em comparação com o original. Para mitigar:

  • Use texturas personalizadas via SurfaceAppearance para superfícies importantes.
  • Agrupe partes visualmente relacionadas no mesmo modelo para garantir texturização consistente.

Animações de corpo inteiro ou de dedos podem ocasionalmente mostrar artefatos visuais devido ao tempo de replicação dos ossos. Este é um problema conhecido que está sendo ativamente melhorado. Se o problema for severo, verifique se os scripts de animação não estão modificando as transformações dos ossos fora do pipeline de animação padrão.

O painel de estatísticas de renderização pode relatar contagens de triângulos incorretas quando avatares SLIM estão habilitados. Este é um bug de relatório conhecido e não afeta o desempenho real de renderização.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.