Assembler une bibliothèque d'actifs

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Assembler une bibliothèque d'actifs est le processus d'importation et de configuration d'une collection d'actifs dans un emplacement central au sein de votre jeu pour un accès et une réutilisation faciles. Ce processus peut vous faire gagner un temps considérable lors de la préparation de la construction de votre environnement, surtout si vous configurez les valeurs de chaque actif pour améliorer les performances et optimiser l'utilisation de la mémoire sur des appareils de milieu à bas de gamme.

En utilisant le fichier Art Environnemental - Assemblage .rbxl comme référence, cette section du curriculum d'art environnemental vous montre comment assembler une bibliothèque d'actifs à partir de vos actifs polis, y compris des instructions étape par étape sur :

  • La création de matériaux personnalisés pour votre terrain à partir de vos textures répétables.
  • La création d'objets SurfaceAppearance pour votre feuille de finition, et leur application sur des maillages dépliés dans votre bibliothèque d'actifs.
  • La définition des paramètres de rendu pour vos actifs afin d'assurer des performances optimales sur tous les appareils.
  • La conversion de vos actifs en paquets afin que vous puissiez les mettre à jour et les réutiliser dans tous vos projets.

Après avoir terminé cette section, vous apprendrez à utiliser votre bibliothèque d'actifs de manière créative pour remplacer ou convertir l'environnement en boîte grise, et ajouter les touches finales qui améliorent l'espace 3D global.

Le kit modulaire et de props du jeu de laser tag d'exemple.

Créer des matériaux personnalisés

Studio représente les matériaux personnalisés sous forme d'objets MaterialVariant au sein de MaterialService. Ces objets MaterialVariant ont quatre propriétés qui combinent les quatre cartes de texture répétables pour créer un matériau personnalisé de haute qualité avec des caractéristiques physiques :

Après avoir fourni les cartes de texture à ces propriétés, vous pouvez appliquer votre nouveau matériau personnalisé à la fois sur des parties, des maillages et des terrains. Vous pouvez utiliser ou modifier les fichiers de carte de texture d'exemple .png pour créer les matériaux personnalisés Lumpy Moss, Flowering Lumpy Moss, Lumpy Moss with Stones, et Stones dans l'environnement final d'exemple de laser tag, ou vous pouvez utiliser les vôtres que vous avez conçus dans la section précédente du tutoriel.

Pour créer des objets MaterialVariant pour vos textures répétables :

  1. Dans le menu Fenêtre3D, sélectionnez Matériau pour ouvrir le Gestionnaire de Matériaux.

  2. Dans la liste Matériaux, sélectionnez le matériau de base qui s'aligne le plus avec votre texture répétable. Par exemple, si vous créiez un objet MaterialVariant pour la texture répétable Lumpy Moss, choisissez le matériau de sol par défaut afin que le matériau hérite de ses propriétés physiques.

  3. Dans la barre d'outils supérieure, cliquez sur l'icône . Un nouveau MaterialVariant s'affiche dans la palette avec une icône dans le coin inférieur droit indiquant qu'il s'agit d'un matériau personnalisé.

    Nouvelle tuile MaterialVariant dans le Gestionnaire de Matériaux avec une icône pour indiquer un matériau personnalisé
  4. Dans l'Inspecteur, accédez à la section Général, puis renommez le matériau pour qu'il corresponde au nom de votre texture répétable.

    La vue de l'Inspecteur avec le nom du matériau mis en surbrillance.
  5. Dans la section Cartes de Texture, sur le côté droit de Couleur, cliquez sur le bouton Importer. Un navigateur de fichiers s'affiche.

    La section Cartes de Texture de la vue de l'Inspecteur avec le bouton Importer mis en surbrillance.
  6. Dans le navigateur de fichiers, sélectionnez le fichier de carte de texture Albédo .png pour la texture répétable correspondante, puis cliquez sur le bouton Ouvrir. Le navigateur de fichiers se ferme, et la nouvelle carte de couleur s'affiche avec son ID d'actif.

  7. Répétez ce processus pour les cartes de texture Metalness, Normal, et Roughness. Le matériau personnalisé se met à jour pour refléter les cartes de texture.

    Toutes les cartes de texture pour le matériau Moss_Lumpy_A.
    Partie sphérique avec le matériau Moss_Lumpy_A appliqué.
  8. Dans la section Remplacements, activez le commutateur Définir comme Remplacement pour vous assurer que lorsque vous appliquez le sol à votre terrain, Studio utilise ce matériau personnalisé.

    Le commutateur Définir comme Remplacement activé.
  9. OPTIONNEL
    Si vous créez un matériau personnalisé qui représente un matériau organique,

    1. Dans la section Tiling, cliquez sur le menu déroulant Pattern.
    2. Sélectionnez Organique pour randomiser la sortie et réduire le carrelage visible.
    La section Tiling de la vue de l'Inspecteur avec ses paramètres.
  10. Répétez ce processus pour chaque texture répétable que vous souhaitez inclure dans votre jeu.

Créer des paquets SurfaceAppearance

Studio utilise des feuilles de finition au sein d'objets SurfaceAppearance que vous pouvez parenté à MeshParts contenant des données UV. Semblable aux matériaux personnalisés, les objets SurfaceAppearance ont quatre propriétés qui combinent les quatre cartes de texture de la feuille de finition pour créer un traitement de surface visuel 3D de haute qualité :

SurfaceAppearance.ColorMap – Représente la carte de texture albédo.
SurfaceAppearance.MetalnessMap – Représente la carte de texture de métal.
SurfaceAppearance.NormalMap – Représente la carte de texture normale.
SurfaceAppearance.RoughnessMap – Représente la carte de texture de rugosité.

Après avoir fourni les cartes de texture à ces propriétés, vous pouvez faire de l'objet SurfaceAppearance un enfant d'un MeshPart avec des données UV qui correspondent à votre feuille de finition, et les données UV s'appliquent automatiquement au maillage parent. C'est pour cette raison qu'il est utile de faire de l'objet SurfaceAppearance un paquet afin que vous puissiez réutiliser le même objet SurfaceAppearance dans tous vos actifs modulaires et props. Par exemple, les maillages suivants ont tous des données UV qui correspondent à la même disposition de feuille de finition représentée dans un seul paquet d'objet SurfaceAppearance.

Vous pouvez utiliser ou modifier les fichiers de carte de texture d'exemple .png pour créer un objet SurfaceAppearance qui respecte les données UV pour les actifs modulaires et props d'exemple dans l'environnement final de laser tag, ou vous pouvez utiliser les vôtres que vous avez conçus dans la section précédente du tutoriel qui s'appliquent à vos propres actifs modulaires et props.

Pour créer des paquets SurfaceAppearance que vous pouvez parenté à votre kit modulaire et vos props :

  1. Insérez un objet SurfaceAppearance dans Workspace.

  2. Sélectionnez l'objet SurfaceAppearance, puis dans la fenêtre Propriétés, sélectionnez la propriété ColorMap. Un pop-up s'affiche.

  3. Cliquez sur le bouton Ajouter une image…. Un navigateur de fichiers s'affiche.

    Le pop-up ColorMap avec le bouton Ajouter une image mis en surbrillance.
  4. Sélectionnez la carte de texture Albédo pour la texture répétable correspondante, puis cliquez sur le bouton Ouvrir. Le navigateur de fichiers se ferme, et la propriété ColorMap se met à jour avec un nouvel ID d'actif.

  5. Répétez ce processus pour les propriétés MetalnessMap, NormalMap, et RoughnessMap, en sélectionnant leurs cartes de texture respectives dans le navigateur de fichiers.

  6. Dans la fenêtre Explorateur, faites un clic droit sur l'objet SurfaceAppearance, puis sélectionnez Convertir en Paquet dans le menu contextuel. La boîte de dialogue Convertir en Paquet s'affiche.

  7. Remplissez les champs Titre et Description, définissez la propriété à vous-même ou à un groupe, puis cliquez sur le bouton Soumettre. Une fois terminé, un symbole de chaîne s'affiche sur l'icône de l'objet SurfaceAppearance pour l'identifier comme un paquet.

    L'icône de Surface Appearance avec un symbole de chaîne.
  8. OPTIONNEL
    Sélectionnez l'objet enfant PackageLink de l'objet SurfaceAppearance, puis dans la fenêtre Propriétés, activez AutoUpdate pour mettre à jour automatiquement le paquet si vous apportez des modifications à l'objet SurfaceAppearance.

Importer des actifs modulaires et des props

Studio représente les actifs modulaires et les props que vous importez sous forme d'objets Model avec des enfants MeshParts pour chaque composant de l'actif. Par exemple, si vous importez une section de mur avec une finition supérieure, une finition inférieure et un composant de mur, Studio représente le fichier .fbx ou .obj comme un Wall_Section Model avec des enfants séparés Top_Trim, Bottom_Trim, et Wall MeshParts.

En utilisant l'Importateur, vous pouvez importer le kit modulaire d'exemple et les props dans Studio pour les utiliser dans votre bibliothèque d'actifs, ou vous pouvez importer tous les actifs que vous avez conçus dans la section précédente du tutoriel. Pour plus d'informations sur la fonctionnalité de cet outil, consultez Importateur.

Pour importer vos actifs modulaires et props dans le jeu :

  1. Dans le menu Fichier, sélectionnez Importer. Un navigateur de fichiers s'affiche.

  2. Sélectionnez un fichier .fbx pour un actif modulaire ou un prop.

  3. Vérifiez l'aperçu de l'objet et assurez-vous que les paramètres d'importation sont corrects pour votre objet.

  4. Cliquez sur Importer. L'actif s'affiche dans la fenêtre Explorateur et dans la vue.

  5. Répétez ce processus pour chaque actif modulaire et prop.

  6. Déplacez tous vos actifs dans une zone de votre jeu près de votre géométrie en boîte grise. Cette zone est votre bibliothèque d'actifs.

Appliquer les données SurfaceAppearance

Lorsque vous passez par le processus de dépliage des UV d'un maillage dans un logiciel de modélisation tiers, le logiciel stocke les données UV dans le fichier .fbx ou .obj du maillage. Lorsque vous importez ce maillage dans Studio, l'objet MeshPart résultant conserve ces données, mais vous devez toujours appliquer un objet SurfaceAppearance avec des propriétés de carte de texture de votre feuille de finition afin d'afficher vos textures de finition sur l'actif.

Pour appliquer les données de carte de texture SurfaceAppearance à des maillages dépliés dans votre bibliothèque d'actifs :

  1. Dans la fenêtre Explorateur, cliquez sur votre paquet SurfaceAppearance, puis appuyez sur CtrlD (D) pour le dupliquer.
  2. Parenté le paquet SurfaceAppearance dupliqué à un actif modulaire ou un prop. L'actif applique ses données UV aux cartes de texture et affiche son traitement visuel.
  3. Répétez ce processus pour chaque actif modulaire et prop.

Définir les paramètres de physique et de rendu

Maintenant que vous avez vos actifs dans Studio, il est important de définir des paramètres de physique et de rendu qui permettent aux actifs de conserver la meilleure qualité visuelle possible sur des appareils avec des limitations de mémoire et de GPU. En général, plus vous respectez les conseils de cette section, plus vous améliorez les performances de votre jeu. Cependant, il est important de considérer attentivement le contexte dans lequel vous prévoyez de placer chaque actif dans l'environnement global pour vous assurer de maintenir vos objectifs esthétiques et vos exigences de gameplay.

Ancré

La propriété BasePart.Anchored détermine si le système de physique du moteur Roblox affecte la position de l'objet. Lorsque vous activez cette propriété pour un Part ou un MeshPart, cela retire l'objet des calculs physiques de la simulation dynamique qui fonctionne toujours dans le jeu, ce qui signifie que l'objet ne changera jamais de position en raison de la gravité ou de la collision avec d'autres objets.

Les objets qui ne simulent pas une réponse physique sont moins coûteux à rendre car ils n'occupent pas le GPU nécessaire pour ces calculs physiques. Lorsque vous libérez du GPU, vous améliorez les performances de votre jeu, surtout sur des appareils bas de gamme qui doivent économiser du GPU pour un gameplay rapide. C'est pour cette raison que chaque actif à l'exception des portes dans l'environnement final de laser tag d'exemple est ancré.

CanCollide

La propriété BasePart.CanCollide détermine si l'objet peut interagir physiquement avec d'autres objets. Lorsque vous activez cette propriété pour un Part ou un MeshPart, l'objet est impénétrable, et le moteur Roblox en tient compte dans les calculs physiques. Ces calculs peuvent impacter les performances de votre jeu lorsque de nombreux objets doivent être pris en compte dans ses calculs physiques.

Pour atténuer une partie de cet impact sur les performances, désactivez cette propriété pour les objets avec lesquels l'utilisateur n'interagira jamais. Par exemple, l'environnement final de laser tag désactive cette propriété pour toute la végétation.

CanTouch

La propriété BasePart.CanTouch détermine si les événements Touched et TouchEnded se déclenchent sur l'objet. Lorsque vous activez cette propriété pour un Part ou un MeshPart, le moteur Roblox vérifie l'état de l'événement de contact de l'objet pour voir s'il doit déclencher ou arrêter un événement.

Ce processus se produit pour chaque image, ce qui peut consommer une quantité significative de mémoire si le moteur doit vérifier l'état de l'événement de contact pour de nombreux objets à la fois. Pour atténuer une partie de cet impact sur la mémoire, activez cette propriété uniquement pour les objets qui doivent déclencher un événement.

CanQuery

La propriété BasePart.CanQuery détermine si le moteur Roblox considère l'objet lors des opérations de requête spatiale, telles que le raycasting. Studio active cette propriété pour chaque Part ou MeshPart par défaut, ce qui signifie que le moteur vérifie si chaque objet doit appeler une opération de requête spatiale. Ce processus se produit pour chaque image, ce qui peut consommer une quantité significative de mémoire lorsque le moteur doit effectuer ces vérifications pour de nombreux objets à la fois.

Pour cette raison, il est recommandé de désactiver cette propriété pour les objets que le moteur Roblox n'a pas besoin de considérer pour les opérations de requête spatiale. Lorsque vous prenez des décisions sur où désactiver cette propriété, considérez comment chaque actif impacte le gameplay. Par exemple, l'environnement final de laser tag garde cette propriété activée pour chaque mur du bâtiment car le moteur doit tenir compte de ces surfaces lorsque les utilisateurs tirent des lasers avec leur pistolet de laser tag. Si le moteur ne tient pas compte de ces actifs, alors le laser passerait à travers le bâtiment comme s'il n'était pas là du tout.

CastShadow

La propriété BasePart.CastShadow détermine si l'objet projette une ombre. Lorsque vous activez cette propriété pour un Part ou un MeshPart, le moteur Roblox calcule chaque emplacement de sommet de l'objet à l'exécution, puis trace un raycast du soleil vers n'importe lequel de ses objets voisins jusqu'à ce qu'il entre en collision avec un autre objet pour créer l'ombre.

Ces calculs peuvent avoir un coût en performances, surtout lorsque vous avez de nombreux objets de complexité géométrique. Cela est dû au fait que les objets avec une complexité géométrique ont plus de polygones que les objets géométriquement simples, ce qui signifie qu'ils ont plus de sommets que le moteur doit calculer pour l'ombre de l'objet. Moins il y a de polygones dans un objet, plus l'opération est rapide et moins son ombre est coûteuse.

Une section de mur avec peu de polygones, et une plante avec de nombreux polygones projetant des ombres sur un mur blanc.

Les ombres peuvent fournir un grand sens du réalisme aux objets avec une profondeur géométrique 3D, donc lorsque vous décidez où désactiver cette propriété, considérez où les objets apportent une amélioration visuelle significative à l'environnement, et où les utilisateurs remarqueront des ombres manquantes. Par exemple, les ombres complexes de la végétation peuvent fournir un grand sens d'immersion dans l'espace extérieur où les utilisateurs sont susceptibles de les voir, mais cette même immersion n'est pas nécessaire pour la végétation qui dépasse à travers le plafond avec laquelle les utilisateurs n'interagiront jamais.

DoubleSided

La propriété MeshPart.DoubleSided détermine si les deux faces ou polygones dans le maillage doivent être rendus. Lorsque vous activez cette propriété pour un MeshPart plan, tel que des feuilles, des cheveux ou des cartes de tissu, le moteur Roblox rend les deux faces ou polygones dans le maillage pour permettre aux utilisateurs de voir la plénitude de l'objet peu importe l'angle sous lequel ils regardent l'objet. Par exemple, les feuilles d'arbre suivantes sont des maillages plans à face unique, et lorsque vous activez cette propriété, toutes les feuilles qui font face à l'opposé de la caméra deviennent visibles pour l'utilisateur.

Cette propriété est utile pour ajouter du réalisme à votre environnement, mais elle a un coût en performances car le moteur doit rendre les polygones de l'objet deux fois : une fois pour la direction qui fait face à la caméra de l'utilisateur, et à nouveau pour tous les maillages qui font face à l'opposé de la caméra de l'utilisateur. Pour atténuer une partie de cet impact sur les performances, l'environnement final de laser tag d'exemple n'active cette propriété que pour la végétation car elle a un fort impact visuel pour le réalisme dans l'espace 3D.

CollisionFidelity

La propriété MeshPart.CollisionFidelity détermine à quel point la boîte de collision physique d'un maillage ou d'une union correspond à sa représentation visuelle. Par défaut, ce paramètre rend une boîte de collision qui correspond à peu près à la forme polygonale du maillage, ce qui signifie que l'endroit où les utilisateurs entrent en collision avec l'objet est similaire à la géométrie réelle du maillage. Par exemple, le maillage de château dans les images suivantes a une boîte de collision par défaut qui correspond presque à la forme de sa géométrie.

Un maillage de château gris.
Maillage Original
Le même maillage de château avec une boîte de collision colorée qui montre où les utilisateurs peuvent entrer en collision avec le château.
Par défaut

Vous pouvez définir cette propriété à une valeur différente pour réduire la précision de la boîte de collision d'un maillage. Par exemple, lorsque vous définissez cette propriété sur Hull, le moteur Roblox réduit considérablement les sommets de la boîte de collision du maillage, et lorsque vous définissez cette propriété sur Box, le moteur réduit la boîte de collision du maillage à un cube qui entoure le maillage. De plus, si vous souhaitez augmenter la précision de la boîte de collision d'un maillage, vous pouvez définir cette propriété sur PreciseConvexDecomposition pour augmenter le nombre de sommets dans la boîte de collision.

Le même maillage de château avec une boîte de collision cubique qui montre où les utilisateurs peuvent entrer en collision avec le château.
Box
Le même maillage de château avec une boîte de collision cylindrique qui montre où les utilisateurs peuvent entrer en collision avec le château.
Hull
Le même maillage de château avec une boîte de collision colorée qui montre où les utilisateurs peuvent entrer en collision avec le château. Cette version montre plus de faces colorées que la boîte de collision par défaut.
PreciseConvexDecomposition

Semblable à BasePart.CastShadow, plus le moteur Roblox doit rendre de sommets, plus le coût en performances est élevé. Pour cette raison, il est important de considérer comment vous souhaitez que les utilisateurs interagissent avec chaque maillage pour voir si vous pouvez réduire le nombre de sommets que le moteur doit rendre pour la boîte de collision du maillage. Dans les cas où il n'est pas nécessaire qu'une boîte de collision soit précise, définissez cette propriété sur Box ou Hull.

Pour démontrer ce concept, référez-vous aux images suivantes qui affichent la boîte de collision de chaque maillage du modèle de mur qui fournit une élévation entre le premier et le deuxième étage de l'environnement final de laser tag d'exemple. La boîte de collision par défaut pour le mur principal a beaucoup de géométrie inutile alors qu'elle n'a besoin que de fournir une surface pour empêcher l'utilisateur de se déplacer dans cette direction. Si vous définissez la propriété sur Box pour ce maillage, vous pouvez supprimer cette géométrie redondante tout en gardant l'objectif de la boîte de collision intact.

Un modèle de mur qui fournit une élévation.
Maillage Original
Le même modèle de mur avec une boîte de collision colorée qui montre où les utilisateurs peuvent entrer en collision avec le mur.
Par défaut
Le même modèle de mur avec une boîte de collision colorée pour la finition, mais seulement une boîte de collision pour le maillage du mur.
Box

Alors que vous prenez ces décisions, il est important de considérer comment le changement de la valeur par défaut peut affecter négativement les utilisateurs alors qu'ils naviguent dans votre environnement. Par exemple, si vous définissez la propriété sur Box pour les maillages de finition du modèle de mur, les utilisateurs entreraient en collision avec la boîte de collision s'ils essaient de sauter près du mur. Au lieu de cela, définissez ces maillages sur Hull afin de réduire leur nombre de sommets tout en gardant la boîte de collision plus proche de la forme de la géométrie du maillage.

Un modèle de mur avec une boîte de collision pour la finition supérieure. Comme la boîte dépasse, les utilisateurs peuvent entrer en collision involontairement avec la finition supérieure.
Box
Le même modèle de mur avec une boîte de collision pour la finition supérieure. Comme la boîte de collision de forme hull se conforme beaucoup plus près du haut du modèle, permettant aux utilisateurs d'éviter de entrer en collision avec la finition.
Hull

Notez qu'il peut être important d'avoir une boîte de collision qui se conforme précisément à la forme de votre maillage, surtout lorsque vous devez contrôler exactement comment les utilisateurs entrent en collision avec sa forme. Par exemple, dans l'environnement final de laser tag d'exemple, il est important que les utilisateurs n'entrent en collision qu'avec les bords de la porte et non avec la porte elle-même, sinon ils ne pourraient jamais entrer ou sortir d'une poche de combat.

Un modèle de porte avec des maillages de boîte de collision optimisés.

RenderFidelity

La propriété MeshPart.RenderFidelity détermine le niveau de détail du maillage qui s'affiche à l'utilisateur. Lorsque vous définissez cette propriété sur Enum.RenderFidelity.Automatic, le moteur Roblox réduit la fidélité du maillage plus l'utilisateur est éloigné du maillage, et lorsque vous définissez cette propriété sur Enum.RenderFidelity.Precise, chaque sommet de votre maillage se rend exactement comme vous le souhaitez peu importe la distance entre eux.

Plus le moteur doit rendre précisément des objets à l'utilisateur à partir de n'importe quelle distance, surtout s'ils ont un nombre élevé de sommets, plus le coût en performances est élevé. Pour atténuer une partie de cet impact sur les performances, définissez cette propriété sur Enum.RenderFidelity.Performance pour les objets avec une complexité géométrique, tels que la végétation dans la bibliothèque d'actifs d'exemple, car ils n'ont pas besoin d'être affichés dans leur intégralité à distance pour une exigence de gameplay. Cela réduit le nombre de polygones de votre jeu sans sacrifier la qualité visuelle globale.

Convertir les actifs en paquets

Maintenant que tous vos actifs modulaires sont dans Studio avec des paramètres de rendu configurés pour conserver leur haute qualité visuelle pour tous les utilisateurs, il est temps de les convertir en paquets. Il est important de convertir vos actifs en paquets car cela vous permet de les réutiliser plusieurs fois dans votre jeu actuel et d'autres projets. De plus, vous pouvez facilement apporter des modifications à un paquet qui se répercutent instantanément sur toutes ses instances, vous faisant gagner beaucoup de temps dans le processus d'itération.

Comme vos objets SurfaceAppearance sont déjà des paquets, lorsque vous convertissez vos objets Model en paquets, ils deviennent des paquets imbriqués. Les paquets imbriqués vous permettent de maintenir des hiérarchies complexes d'objets enfants que vous pouvez modifier indépendamment du paquet d'objet Model. Cela vous donne un meilleur contrôle sur les composants individuels de vos actifs.

Pour convertir vos actifs modulaires et props en paquets :

  1. Dans la fenêtre Explorateur, faites un clic droit sur un actif modulaire ou un prop, puis sélectionnez Convertir en Paquet dans le menu contextuel. La boîte de dialogue Convertir en Paquet s'affiche.

  2. Remplissez les champs Titre et Description, définissez la propriété à vous-même ou à un groupe, puis cliquez sur le bouton Soumettre. Une fois terminé, un symbole de chaîne s'affiche sur l'icône du modèle pour l'identifier comme un paquet.

    L'icône du Modèle avec un symbole de chaîne.
  3. Répétez ce processus pour chaque actif modulaire et prop.

Une fois que vous êtes satisfait de la disposition générale de votre bibliothèque d'actifs, vous pouvez passer à la décoration de l'environnement avec vos actifs nouvellement polis, et configurer des éléments supplémentaires de l'espace 3D pour donner vie à votre monde.

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.