SLIM (Modèles Interactifs Légers et Scalables) est un système d'optimisation automatique qui génère des représentations légères et optimisées de Models et des avatars de plateforme en utilisant le transcodage basé sur le cloud (conversion des ressources en formats plus efficaces). Lorsqu'il est activé, SLIM combine plusieurs parties en moins d'appels de rendu (commandes de rendu envoyées au GPU) et génère plusieurs niveaux de détail, permettant au moteur de sélectionner intelligemment la meilleure représentation en fonction de la distance, de la capacité de l'appareil et des ressources disponibles.


SLIM offre trois avantages clés :
- Qualité visuelle— Les modèles éloignés apparaissent plus détaillés que le système de niveau de détail des modèles hérités, maintenant une fidélité plus proche de l'original.
- Transitions cohérentes— Toutes les parties d'un modèle changent de niveau de détail simultanément, éliminant les transitions brusques par partie.
- Performance— Les maillages composites réduisent considérablement les appels de rendu, le nombre de triangles et l'utilisation de la mémoire, permettant des scènes plus riches sur tous les niveaux d'appareils.
Explorez SLIM dans ces jeux publiés :


Prérequis
SLIM nécessite les éléments suivants :
- StreamingEnabled doit être activé sur l'objet Workspace. Voir aussi propriétés de streaming pour les paramètres recommandés associés.
- Le lieu doit être sauvegardé sur Roblox (pas un fichier local .rbxl), car SLIM utilise le transcodage cloud pour générer des ressources optimisées. Si vous testez localement, publiez le lieu puis activez SLIM.
- Team Create doit être activé pour le jeu, car SLIM dépend des propriétés associées pour la génération de ressources cloud.
Comportement technique
Lorsque vous publiez ou testez un jeu avec des modèles activés par SLIM, le moteur télécharge les données du modèle vers un service cloud qui génère des maillages composites optimisés avec plusieurs niveaux de détail. Au moment de l'exécution, les clients récupèrent ces ressources depuis le CDN et le moteur sélectionne le niveau de détail approprié en fonction de la distance et de la capacité de l'appareil, classifiant chaque modèle SLIM en zones de rendu en fonction de la distance par rapport à la caméra :

| Plage | Comportement |
|---|---|
| Instances complètes diffusées ; rendu traditionnel par partie. | |
| Instances complètes diffusées, mais le moteur rend le composite SLIM lorsque cela est plus efficace. | |
| Instances diffusées (seulement un espace réservé minimal existe dans le DataModel, pas la hiérarchie complète du modèle), rendu composite SLIM. | |
| Placeholder minimal dans le DataModel, non rendu. |
SLIM pour les modèles
SLIM fonctionne mieux sur les modèles qui représentent la géométrie statique du monde — bâtiments, accessoires, véhicules, caractéristiques de terrain et autres objets d'environnement qui ne changent pas au moment de l'exécution. Ajouter ou supprimer des parties, changer des matériaux ou modifier la géométrie au moment de l'exécution empêche SLIM de rendre le modèle correctement. Voir structure du modèle pour des conseils généraux sur la structure des modèles et limitations pour la liste complète des exclusions.
Pour activer SLIM sur un modèle, définissez sa propriété LevelOfDetail sur SLIM dans la fenêtre Propriétés.

Lorsque SLIM est défini sur un modèle, le moteur :
- Sérialise les propriétés pertinentes pour le rendu du modèle (géométrie, matériaux, textures, transformations) en une représentation compacte. Les types d'instances pris en charge dans le modèle incluent Part, MeshPart, Decal, Texture, SurfaceAppearance, PartOperation, NegateOperation, et SpecialMesh.
- Télécharge ces données vers le service de transcodage cloud lors de la première publication ou du premier test.
- Le service cloud génère un maillage composite avec plusieurs niveaux de détail, supprimant la géométrie interne cachée et optimisant les textures.
- Au moment de l'exécution, les clients récupèrent la ressource SLIM optimisée et la rendent lorsque le moteur diffuse le modèle original ou lorsque SLIM est plus efficace que le modèle complet.
Si votre jeu utilise le paramètre hérité StreamingMesh pour Model.LevelOfDetail, vous pouvez convertir des modèles individuels en les sélectionnant et en changeant la propriété dans la fenêtre Propriétés, ou vous pouvez convertir plusieurs modèles en lot à la fois en utilisant un script comme le suivant dans la Barre de Commande. Notez que certains modèles qui fonctionnaient avec StreamingMesh pourraient nécessiter des ajustements pour SLIM, en particulier ceux avec des parties qui se chevauchent ou des hiérarchies complexes 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 pour les avatars
Les avatars de plateforme en dehors de la zone actuellement diffusée ne sont pas visibles par défaut. L'activation des avatars SLIM rend les personnages joueurs standard‑rig — peu importe combien d'accessoires ou de couches de vêtements ils ont — en remplacements légers et animés qui maintiennent la fidélité visuelle à une fraction du coût de rendu.


La propriété clé spécifique à SLIM pour les avatars est Workspace.EnableSLIMAvatars qui doit être définie sur Enabled dans la fenêtre Propriétés, aux côtés de LevelOfDetail défini sur SLIM pour vos modèles du monde non-avatar.

Avec EnableSLIMAvatars activé, le moteur :
- Rend une version SLIM lorsqu'un modèle d'avatar réel est diffusé.
- Alterne entre les représentations SLIM et en pleine résolution en fonction des ressources disponibles, même à l'intérieur du rayon de diffusion.
- Limite les animations SLIM en fonction de l'importance de la scène et de la bande passante disponible.
Contrairement à SLIM pour les modèles que vous pouvez tester seul en vous éloignant d'un modèle jusqu'à ce qu'il soit diffusé, les avatars SLIM nécessitent plusieurs joueurs dans le jeu pour être observés. Utilisez l'un de ces modes de test pour tester les avatars SLIM :
- Test d'équipe — Rejoignez des amis ou des comptes alternatifs pour voir les avatars SLIM à distance.
- Serveur et Clients — Lancez deux fenêtres client ou plus où chaque client affiche des copies d'avatar que les autres rendent comme SLIM lorsqu'ils sont à distance.
Notez que les avatars doivent avoir été transcodés dans un jeu activé par SLIM avant d'apparaître comme SLIM. Si les avatars ne se rendent pas comme SLIM lors de votre premier test, rejoignez à nouveau le jeu après un moment pour permettre au transcodage de se terminer.
Limitations
| Limitation | Détails |
|---|---|
| Streaming requis | SLIM ne fonctionne qu'avec StreamingEnabled défini sur true. Sans streaming, les modèles éligibles à SLIM reviennent au rendu traditionnel par niveau de détail. |
| Modèles statiques uniquement | SLIM pour les modèles ne prend pas en charge les modèles modifiés au moment de l'exécution (parties ajoutées/supprimées, propriétés modifiées) ou les modèles qui jouent des animations. |
| Instances Humanoïdes | Le moteur exclut les modèles contenant un Humanoid du traitement SLIM pour les modèles statiques. Utilisez les avatars SLIM pour les personnages joueurs animés. |
| Restrictions sur les avatars | Les avatars SLIM ne prennent en charge que les personnages joueurs R15 standard‑rig. Les rigs R6, les NPC et les avatars avec des proportions personnalisées reviennent au rendu par défaut. |
| Dépendance au cloud | Le service cloud génère et stocke les ressources SLIM sur le CDN. Les tests hors ligne ou locaux sans un lieu publié ne produisent pas de résultats SLIM. |
| Modèles à échelle zéro | Le moteur exclut les modèles avec une Scale de 0 du traitement SLIM. |
| Disponibilité sur la plateforme | Sur les plateformes où SLIM n'est pas encore pris en charge, les modèles définis sur SLIM reviennent à Disabled. |
Dépannage
- Vérifiez que StreamingEnabled est true.
- Confirmez que le lieu est publié sur Roblox et que Team Create est activé.
- Vérifiez que LevelOfDetail est défini sur SLIM pour le modèle.
- Attendez 1 à 2 minutes après la première publication pour que le transcodage cloud se termine, puis rejoignez à nouveau.
- Assurez-vous que le modèle ne contient pas d'instance Humanoid.
Les instances PartOperation pour la modélisation solide (unis, intersections, négations) peuvent ne pas rendre correctement dans certains modèles SLIM. Si une union semble manquante ou déformée dans la représentation SLIM, essayez de séparer l'PartOperation affectée dans son propre modèle ou de simplifier l'opération CSG.
Le Z-fighting peut se produire lorsque des parties dans le modèle original ont des faces qui se chevauchent ou sont coplanaires. Pour résoudre :
- Déplacez légèrement les parties qui se chevauchent (même 0.01 studs est suffisant).
- Évitez les surfaces parfaitement affleurantes entre les parties adjacentes dans le même modèle.
SLIM régénère les mappages UV (comment les textures sont projetées sur des surfaces 3D) lors du transcodage. Les matériaux Roblox par défaut peuvent montrer des motifs de carrelage légèrement différents par rapport à l'original. Pour atténuer :
- Utilisez des textures personnalisées via SurfaceAppearance pour les surfaces importantes.
- Regroupez les parties visuellement liées dans le même modèle pour garantir un texturage cohérent.
- Vérifiez que Workspace.EnableSLIMAvatars est défini sur Enabled.
- Testez avec plusieurs clients en utilisant le mode de test Serveur et Clients (nécessite au moins 2 clients).
- Assurez-vous que l'avatar utilise un rig R15 standard sans proportions personnalisées.
- Confirmez que le jeu ne modifie pas l'avatar après l'événement Player.CharacterAppearanceLoaded.
Les animations de corps entier ou de doigts peuvent parfois montrer des artefacts visuels en raison du timing de réplication des os. C'est un problème connu qui est activement amélioré. Si le problème est sévère, vérifiez que les scripts d'animation ne modifient pas les transformations des os en dehors du pipeline d'animation standard.
Le panneau des statistiques de rendu peut rapporter des nombres de triangles incorrects lorsque les avatars SLIM sont activés. C'est un bug de rapport connu et cela n'affecte pas les performances de rendu réelles.