Assembler une bibliothèque d'objets est le processus d'importation et de configuration d'une collection d'objets dans un lieu central dans votre expérience pour un accès facile et une réutilisation. Ce processus peut vous sauver un temps important au fur et à mesure que vous vous préparez à construire votre environnement, surtout si vous configurez les valeurs de chaque contenupour améliorer les performances et optimiser l'utilisation de la mémoire sur les appareils de milieu à bas de gamme.
En utilisant le Environment Art - Assembling .rbxl fichier comme référence, cette section du curriculum de l'art environnemental vous montre comment assembler une bibliothèque d'objets à partir de vos ressources polies, y compris des instructions étape par étape sur :
- Créer des matériaux personnalisés pour votre terrain à partir de vos textures carrelables.
- Créer des objets de surface pour votre feuille de découpe, et les appliquer à des mailles non déroulées dans votre bibliothèque de ressources.
- Définir des paramètres de rendu pour vos ressources afin d'assurer des performances optimales sur tous les appareils.
- Convertir vos ressources en packages pour pouvoir les mettre à jour et les réutiliser dans tous vos projets.
Après avoir terminé cette section, vous apprendrez à utiliser votre bibliothèque de ressources de manière créative pour remplacer ou convertir l'environnement de la boîte grise, et ajouter des touches finales qui améliorent l'espace 3D global.
Créer des matériaux personnalisés
Studio représente les matériaux personnalisés en tant qu'objets MaterialVariant dans le MaterialService. Ces objets MaterialVariant ont quatre propriétés qui combinent les quatre cartes de texture 1> pour créer un matériau personnalisé de haute qualité avec des propriétés physiques :
- MaterialVariant.ColorMap – Représente la carte de texture albedo.
- MaterialVariant.MetalnessMap – Représente la carte de texture de métal.
- MaterialVariant.NormalMap – Représente la carte de texture normale.
- MaterialVariant.RoughnessMap – Représente la carte de texture de la rupture.
Après avoir fourni les cartes de texture à ces propriétés, vous pouvez appliquer votre nouveau matériau personnalisé à both parts, meshes et terrain. Vous pouvez utiliser ou modifier le .png files de texte d'échantillons pour créer le Lumpy Moss, Flowering Lumpy Moss, Lumpy Moss avec des pierres, et les matériaux de pierres personnalisés dans l'environnement de tag laser final, ou vous pouvez utiliser votre propre
Pour créer des objets MaterialVariant pour vos textures de carrelage :
Dans l'Accueil ou Modèle onglet de la barre de menu, cliquez sur le bouton Gestionnaire de matériaux. La 2> fenêtre Matériaux Gestionnaire2> s'ouvre.
Dans la liste Matériaux , sélectionnez le matériau de base qui correspond le plus à votre texture de tuileable. Par exemple, si vous créiez un objet MaterialVariant pour la tuileable texture Lumpy Moss, choisissez le matériau de base pour que le matériau hérite de ses propriétés physiques.
Dans la boîte à outils, cliquez sur l'icône ⊕. Un nouveau MaterialVariant est affiché dans la palette avec une icône dans le coin inférieur droit qui indique que c'est un matériau personnalisé.
Dans l' Inspecteur, naviguez dans la section Général, puis renommez le matériau pour qu'il soit en accord avec le nom de votre texture à placer.
Dans la section Maps de textures de la droite de Couleur, cliquez sur le bouton Importer. Un gestionnaire de fichiers s'affiche.
Dans le navigateurde fichiers, sélectionnez la carte de texture Albedo .png pour la texture correspondante, puis le bouton Ouvrir . Le lecteur de fichiers ferme et la nouvelle carte de couleurs s'affiche avec son ID de ressource.
Répétez ce processus pour les Metalness, Normal, et Roughness cartes de texture. La carte de matériau personnalisée reflète les cartes de texture.
Dans la section Forcer comme Override , activez le bouton Mettre en tant qu'Override pour vous assurer que lorsque vous appliquez le terrain à votre terrain, Studio utilise ce matériau personnalisé.
(Facultatif) Si vous créez un matériau personnalisé qui représente un matériau organique,
- Dans la section Carreaux, cliquez sur le motif dropdown.
- Sélectionnez Organic pourRandomiser la sortie et réduire la tessonnerie visible.
Répétez ce processus pour chaque texture de tuile que vous souhaitez inclure dans votre expérience.
Créer des packs de surface
Studio utilise des feuilles de découpe dans SurfaceAppearance objets que vous pouvez parent à MeshParts qui contiennent des données UV. Semblable aux matériaux personnalisés, SurfaceAppearance objets ont quatre propriétés qui combinent les quatre cartes de texture de feuille pour créer un traitement visuel 3D de haute qualité :
SurfaceAppearance.ColorMap – Représente la carte de texture alvédo. SurfaceAppearance.MetalnessMap – Représente la carte de texture métal. SurfaceAppearance.NormalMap – Représente la carte de texture normale. 0> Class.Surface0> – Représente la carte de texture rouge.
Après avoir fourni les cartes de texture à ces propriétés, vous pouvez rendre l'objet SurfaceAppearance un enfant d'
Vous pouvez utiliser ou modifier les fichiers de texture d'échantillons .png pour créer un objet SurfaceAppearance qui respecte les données uv pour les ressources modulaires et les éléments dans l'environnement de laser de pointe finale, ou vous pouvez utiliser le vôtre que vous avez conçu dans la section précédente du tutoriel qui s'applique à vos propres ressources modulaires et éléments.
Pour créer des SurfaceAppearance packs que vous pouvez enfouir dans votre kit modulaire et accessoires :
Insérez un objet SurfaceAppearance dans le Workspace.
Sélectionnez l'objet SurfaceAppearance, puis dans la fenêtre propriétés, sélectionnez la propriété ColorMap. Une pop-up s'affiche.
Cliquez sur le bouton Ajouter une image... . Un gestionnaire de fichiers s'affiche.
Sélectionnez la carte de texture Albedo pour la texture correspondante, puis le bouton Ouvrir . Le navigateur de fichiers ferme, et la propriété Carte de couleur est mise à jour avec un nouveau 1>ID de ressource1>.
Répétez ce processus pour les propriétés MetalnessMap , NormalMap et RoughnessMap , sélectionnant leurs cartes de texture respectives dans le navigateur de fichiers.
Dans la fenêtre Explorateur, faites un clic droit sur l'objet Surface, puis sélectionnez Convertir en pack dans le menu contextuel. La 2> boîte de dialogue5>Convertir en package5> s'affiche.
Remplissez les champs Titre et Description , définissez la propriété à vous-même ou à un groupe, puis cliquez sur le bouton Envoyer . Une fois terminé, un symbole de chaîne s'affiche sur l'icône de la objetpour l'identifier comme un package.
(Facultatif) Sélectionnez l'objet Appearance de surface objet enfant PackageLink objet, puis dans la 0>fenêtre propriétés0>, activez 3>Mise à jour automatique3> pour mettre à jour automatiquement le package si vous apportez des modifications à l'objet 6>SurfaceAppearance 6>.
Importer des ressources et des éléments modulaires
Studio représente les ressources et les éléments modulaires que vous importez en tant que Model objets
En utilisant l'importateur 3D, vous pouvez importer le kit modulaire de l'échantillon et les accessoires dans Studio pour l'utiliser dans votre bibliothèque de ressources, ou vous pouvez importer n'importe quelle ressource que vous avez conçue dans la section précédente du tutoriel. Pour plus d'informations sur la fonctionnalité de cet outil, voir importateur 3D .
Pour importer vos ressources et éléments modulaires dans l'expérience :
Dans l'Accueil ou Avatar onglet, cliquez sur le bouton Importer 3D. Un navigateur de fichiers s'affiche.
Sélectionnez un fichier .fbx pour un élément modulaire ou un élément pièce de décoration.
Vérifiez la prévisualisation de l'objet et assurez-vous que les paramètres d'importation sont corrects pour votre objet.
Vérifiez n'importe quelle avertissement ou message d'erreur.
Cliquez sur Importer . La ressource s'affiche dans la fenêtre Explorateur et dans la fenêtre de jeud'aperçu.
Répétez ce processus pour chaque ressource modulaire et pièce de décoration.
Déplacez toutes vos ressources dans une seule zone de votre expérience près de votre géométrie de boîte grise. Cette zone est votre bibliothèque de ressources.
Appliquer les données de surface
Lorsque vous passez par le processus de déballage des UV d'un maillage dans le logiciel de modélisation tiers-party, le logiciel stocke les données des UV dans le fichier .fbx ou .obj du maillage. Lorsque vous importez ce maillage dans Studio, l
Pour appliquer la SurfaceAppearance texture map data to unwrapped meshes dans votre bibliothèque de ressources :
- Dans la fenêtre Explorer, cliquez sur votre pack Surface, puis appuyez sur Ctrl 1> D 1> ( 4> ⌘ 4> 7> D7> ) pour le dupliquer.
- Enfant le package SurfaceAppearance du duplicat à une ressource modulaire ou un pièce de décoration. La ressource applique ses données UV à la maillage de textures et affiche son traitement visuel.
- Répétez ce processus pour chaque ressource modulaire et pièce de décoration.
Définir les paramètres physiques et de rendu
Maintenant que vous avez vos ressources dans Studio, il est important de définir des paramètres physiques et de rendu qui permettent aux ressources de conserver la plus haute qualité visuelle possible sur les appareils avec des limites de mémoire et deGPU. Dans l'général, plus vous adhérez étroitement aux lignes directrices dans cette section, plus vous rendez votre expérience plus performante. Cependant, il est important de prendre soin de la contextualisation de l'endroit où vous prévoyez placer
Ancré
La propriété BasePart.Anchored détermine si le système physique de Roblox affecte la position de l'objet. Lorsque vous activez cette propriété pour un Part ou un MeshPart, l'objet est retiré des calculs physiques de la simulation dynamique qui s'exécute toujours dans l'expérience, ce qui signifie que l'objet
Les objets qui ne simulent pas de réponse physique sont moins chers à rendre parce qu'ils ne prennent pas le GPS qui est nécessaire pour ces calculs physiques. Lorsque vous libérez le GPS, vous améliorez les performances pour votre expérience, surtout sur les appareils low-end qui nécessitent de sauvegarder le GPS pour une expérience de partierapide. C'est pour cette raison que chaque ressource côté porte dans l'environnement de balise laser de la prédation
Peut-il se collider
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 impenétrable, et le moteur Roblox le compte dans les calculs physiques. Ces calculs peuvent avoir un impact sur les performances de votre exp
Pour atténuer une partie de cet impact sur les performances, désactivez cette propriété pour les objets que l'utilisateur ne sera jamais avec. Par exemple, l'environnement de marque laser final désactive cette propriété pour tout le feuillage.
CanTouch
La propriété BasePart.CanTouch détermine si Touched et TouchEnded les événements se déclenchent sur l'objet. Lorsque vous activez cette propriété pour un 1> Class
Ce processus se produit pour chaque cadre, ce qui peut prendre une quantité significative de mémoire si le moteur doit vérifier l'état de l'événement tactile pour de nombreux objets à la fois. Pour atténuer une partie de cet impact sur la mémoire, n'activez cette propriété que pour les objets qui doivent déclencher un événement.
Peut-être requis
La propriété BasePart.CanQuery détermine si le moteur Roblox prend en compte l'objet pendant les 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 Roblox vérifie
Pour cette raison, il est recommandé de désactiver cette propriété pour les objets que le moteur Roblox ne nécessite pas de prendre en compte pour les opérations de requête spatiale. Lors de la prise de décisions sur l'endroit où désactiver cette propriété, tenez compte de l'impact que cela a sur le partieen termes de performances. Par exemple, l'environnement de balise laser finale garde cette propriété activée pour chaque
CasterL'ombre
La propriété BasePart.CastShadow détermine si l'objet caste une ombre. Lorsque vous activez cette propriété pour un Part ou un MeshPart, le moteur Roblox calcule chaque emplacement de vérité de l'objet au moment de l'temps d'exécution, puis dessine un raycast du soleil à l'un de ses voisins objets jusqu'à ce qu'
Ces calculs peuvent coûter des performances, surtout lorsque vous avez de nombreux objets de complexité géométrique. C'est parce que les objets avec une complexité géométrique ont plus de polygones que les objets qui sont géométiquement simples, ce qui signifie qu'ils ont plus de vérités que l'Engine doit calculer pour l'ombre de l'objet. Plus il y a de vérités dans un objet, plus l'opération est plus rapide et moins chère.
Les ombres peuvent fournir une grande sensibilité au 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 fournissent une amélioration visuelle significative de l'environnement, et où les utilisateurs remarqueront l'ombre manquant. Par exemple, les ombres complexes des feuilles peuvent fournir une grande sensibilité au réalisme dans l'espace extérieur
Double face
La propriété MeshPart.DoubleSided détermine si afficher les deux côtés ou les polygones dans le maillage. Lorsque vous activez cette propriété pour un MeshPart planar, comme les feuilles, les cheveux ou les cartes de tissu, le
Cette propriété est utile pour ajouter du réalisme à votre environnement, mais elle est à un coût de performance parce que le moteur doit rendre les polygones de l'objet deux fois : une fois pour la direction qui face à la caméra de l'utilisateur, et une fois pour les maillages qui face à la caméra de l'utilisateur. Pour atténuer une partie de cet impact sur les performances, l'environnement de balise laser final ne permet que cette propriété pour les foliages car il a un impact visuel
CollisionFidelity
La propriété MeshPart.CollisionFidelity détermine à quel point la hitbox physique d'une maille ou d'une union correspond à sa représentation visuelle. Par défaut, ce paramètre rend une hitbox qui est environ la même que la forme polygonale de la maillage, ce qui signifie que l'endroit où les utilisateurs colligent avec l'objet est similaire à la géométrie actuelle de la maillage. Par exemple, la maille
Vous pouvez définir cette propriété sur une valeur différente pour réduire la précision d'une boîte de dialogue de maillage. Par exemple, lorsque vous définissez cette propriété sur Hull, le moteur Roblox réduit considérablement les vérités de la boîte de dialogue de maillage,
Semblable à BasePart.CastShadow, le plus de vérités que le moteur Roblox doit rendu, plus le coût de performance. Pour cette raison, il est important de considérer comment vous voulez que les utilisateurs interagissent avec chaque maillage pour voir si vous pouvez réduire le nombre de vérités que le moteur doit rendre pour la hitbox du maillage. Dans les cas où il n
Pour démontrer ce concept, référez-vous aux images suivantes qui affichent la zone de frappe de chaque maillage du modèle de mur qui fournit une augmentation de l'élévation entre le premier et le deuxième étage de la dernière environnementde laser de Samme. La zone de frappe par défaut pour le mur principal a beaucoup de géométrie inutile lorsqu'elle ne nécessite qu'une surface pour empêcher l'utilisateur de se déplacer
Au fur et à mesure que vous prends ces décisions, il est important de considérer comment changer la valeur par défaut peut affecter négativement les utilisateurs alors qu'ils naviguent dans ton environnement. Par exemple, si tu décides de définir la propriété sur Coffre pour les mailles de briques du modèlisationde mur, les utilisateurs collideront avec la hitbox s'ils essaient de sauter près du mur. Au
Notez que il peut être important d'avoir une hitbox qui correspond précisément à la forme de votre maillage, surtout lorsque vous devez contrôler exactement comment les utilisateurs collent avec sa forme. Par exemple, dans l'environnement de balise laser finale, il est important que les utilisateurs ne collent pas avec les bords de la porte d'entrée et non pas avec la porte elle-même, sinon ils ne pourraient jamais entrer ou quitter un poche de combat.
RenduFidélité
La propriété MeshPart.RenderFidelity détermine le niveau de détail du maillage qui s'affiche à l'utilisateur. Lorsque vous avez cette propriété définie sur Enum.RenderFidelity.Automatic, le moteur Roblox réduit la fidélité du maillage avec la mesure dans laquelle l'utilisateur est du
Plus il y a d'objets rendus précisément par le moteur à l'utilisateur à partir de n'importe quelle distance, surtout s'ils ont un grand nombre de verticaux, le coût des performances est plus élevé. Pour atténuer une partie de cet impact sur les performances, configurez cette propriété sur Enum.RenderFidelity.Performance pour les objets avec une complexité géométrique, tels que
Convertir des ressources en packages
Maintenant que tous vos ressources modulaires sont dans Studio avec des paramètres de rendu qui sont configurés pour conserver leur haute qualité visuelle pour tous les utilisateurs, il est temps de les convertir en des packs. Il est important de convertir vos ressources en des packs car cela vous permet de les réutiliser à plusieurs reprises dans votre expérience actuelle et dans d'autres projets. En outre, vous pouvez facilement faire des modifications à un pack qui se popule instantanément à toutes ses instances, vous en cochant la case
Puisque 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 package Model. Cela vous permet de plus grande contrôle sur les composantes individuelles de vos
Pour convertir vos ressources et objets modulaires en packages :
Dans la fenêtre Explorateur , faites un clic droit sur un élément modulaire ou un élément pièce de décoration, puis sélectionnez convertir au package dans le menu contextuel. La fenêtre convertir au package s'affiche.
Remplissez les champs Titre et Description, définissez la propriété à vous ou à un groupe, puis cliquez sur le bouton Envoyer. Une fois terminé, un symbole de chaîne s'affiche sur l'icône de modèlisationpour l'identifier comme un package.
Répétez ce processus pour chaque ressource modulaire et pièce de décoration.
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 nouvellement polis des ressources, et configurer des éléments supplémentaires de l'espace 3D pour amener votre monde à la vie.