Construire la station de manière modulaire nous a permis de mettre à jour et de propager les mises à jour de contenu en douceur et a été essentiel pour s'assurer que nous ne passions pas des heures à mettre à jour des maillages, des textures, des pièces, et plus encore.
Les packages Roblox nous ont permis d'atteindre ce design modulaire en nous permettant de regrouper une palette de Meshparts qui s'assemblent facilement, des ensembles de feuilles de découpe, et des nœuds SurfaceAppearance que les MeshParts pouvaient partager. Cela nous a permis de nous adapter aux changements de disposition et de taille lors des premiers tests de jeu et a rendu le processus de remplissage de la station beaucoup plus rapide.

Designs flexibles pour l'art final
Lorsque nous avons commencé, nous n'avions pas une compréhension complète de ce que nous voulions dans la station, ni de sa taille nécessaire pour 50 joueurs.
Pour le découvrir, nous avons d'abord commencé à construire l'environnement en utilisant des Parts et en intégrant quelques maillages comme la forme de la rotonde depuis notre application DCC externe, comme Maya ou Blender. Avec ces formes simples, nous avons ajusté l'échelle de la carte, l'agencement des pièces et des chemins pour trouver les arrangements les plus amusants. Que ce soit pour un jeu ou une expérience sociale, cette première étape a tendance à être la plus dynamique.
Lors de la construction de la disposition de la station, la chose la plus importante pour inciter à l'exploration était de donner à l'utilisateur un objectif. Dans ce cas, l'objectif le plus évident est de se rapprocher du trou noir. Ensuite, nous savions que donner un chemin direct vers le trou noir serait ennuyeux, car un joueur peut simplement marcher du point de spawn jusqu'à la fin de la carte. Nous avons rompu le chemin afin que le joueur ne puisse pas atteindre le trou noir sans d'abord faire le tour et voir d'autres choses qui pourraient également les attirer.
Le design modulaire nous a permis d'apporter de tels changements à l'environnement sans un retravail catastrophique de l'ensemble du design. Nous pouvions déplacer des sections entières de la station pour jouer avec différentes idées de gameplay. En fin de compte, ces mêmes pièces modulaires pouvaient ensuite être mises à jour à l'aide de packages, de sorte que nous n'avions pas à reconstruire plusieurs versions du même actif.




Design modulaire du Kerr-Newman DSR-14
La station spatiale utilise juste quelques pièces de palette modulaires. Les pièces de palette modulaires sont des actifs réutilisables, ce qui signifie que nous n'avons pas à créer chaque mur de manière unique, mais pouvons plutôt assembler plusieurs petits murs. Cela permet une flexibilité dans la disposition pendant que nous construisons.
Voici quelques conseils qui nous ont aidés à créer notre design modulaire :
Choisissez une taille de grille uniforme — Pour la station, nous avons choisi une taille de grille de 16 studs pour créer la plupart de l'ensemble modulaire. La taille de la grille que vous utilisez est arbitraire, mais elle doit être cohérente tout au long du projet et entre tous les artistes travaillant sur ce projet. Choisir une taille de grille au début de votre projet garantit que chaque pièce s'adapte bien à la pièce à côté. Cela vous permet également d'échanger facilement des pièces, par exemple en remplaçant une section de mur par une section de porte.
Toutes les unités sont importées en studs — Lors de la création de maillages dans d'autres applications DCC, comme Maya ou Blender, Studio ne convertit pas les mètres, centimètres, pieds ou pouces — il remplace simplement les unités entrantes par les mêmes unités en studs. Par exemple, si vous définissez vos unités en mètres, Studio convertit 2 mètres en 2 studs. Il est préférable de traiter vos échelles d'unités dans votre application de choix comme des échelles de studs dans Roblox. L'échelle du monde réel la plus proche d'un seul stud dans Roblox est de 28 centimètres.
Gardez les pièces simples — N'essayez pas de construire chaque pièce que vous pensez avoir besoin un jour. L'idée est d'avoir quelques pièces très polyvalentes et pas beaucoup de pièces uniques. Plus vous avez de pièces, plus il faut de temps pour créer chaque pièce, et plus cela affecte votre budget mémoire et performance global. Vous pouvez toujours ajouter une autre pièce à votre kit si cela est absolument nécessaire.
Utilisez des packages — Convertissez chaque pièce modulaire en un package et mettez également les matériaux dans des packages avant de commencer à les peupler dans votre jeu. Cela vous permet de pousser facilement des mises à jour à toutes les instances. Nous allons plonger dans les packages un peu plus tard.
Les captures d'écran suivantes montrent différentes manières dont nous avons utilisé le design modulaire pour construire des parties de la station.




Créer des feuilles de découpe
Les textures 1:1 sont l'avenir, mais elles deviennent coûteuses en ce qui concerne les budgets mémoire et le temps de création. Pour la station spatiale, 90 % des éléments architecturaux utilisaient une poignée d'ensembles de feuilles de découpe interchangeables, qui sont un ensemble de cartes de textures disposées de manière verticale ou horizontale. Chaque ligne ou colonne de la feuille a un aspect unique, vous offrant une multitude de traitements de surface à choisir lors du dépliage d'un modèle, tout en utilisant une seule feuille d'image.
Voici quelques conseils pour créer des feuilles de découpe :
Commencez par un inventaire des types d'objets et de matériaux dont vous avez besoin — Les feuilles de découpe peuvent inclure une grande variation de types de matériaux, tels que le bois, le métal, le caoutchouc, et plus encore. Avant de commencer à modéliser votre premier objet, créez un modèle de feuille de découpe. C'est le point de départ pour tous vos autres ensembles de feuilles de découpe et cela vous donne un point de départ rapide pour déplier vos modèles. Ces feuilles de découpe vivent dans le nœud SurfaceAppearance, que nous aborderons plus tard.
Incluez une variété de traitements de surface dans une seule feuille — Cela vous permet de garder plus de maillage ensemble, afin que vous puissiez appliquer de nouveaux traitements sans avoir à casser vos maillages en plusieurs maillages. Cela améliore les performances d'exécution en diminuant les appels de dessin d'objets et de matériaux.
Créez un modèle de feuille de découpe — Un modèle garantit que vous pouvez échanger n'importe quel ensemble de cartes pour un autre. Par exemple, vous pouvez échanger un ensemble de métal propre avec un ensemble de métal rouillé.
Voici comment nous avons créé des feuilles de découpe pour la station :
Nous avons créé un croquis de ce à quoi la feuille devrait ressembler :

Dans Photoshop, nous avons créé un mockup pour avoir une idée rapide de ce à quoi chaque section de la feuille ressemblerait.

Nous avons utilisé Substance, mais vous pouvez utiliser n'importe quelle application qui vous convient pour créer les cartes finales. Voici l'ensemble final des cartes de feuilles de découpe qui ont été générées dans Substance. Les quatre cartes fonctionnent ensemble dans un nœud SurfaceAppearance pour produire un matériau rendu physiquement basé (PBR).




Voici quelques rendus finaux de la feuille de découpe dans Substance Designer :


Et voici des exemples des mêmes feuilles de découpe utilisées sur une large gamme d'objets :

Si vous souhaitez en savoir plus sur le dépliage UV des feuilles de découpe, il vous suffit de rechercher le sujet sur le web ; il existe de nombreux excellents tutoriels.
Appliquer des apparences de surface
SurfaceAppearance vous permet de spécifier de nouvelles entrées de texture pour notre système de rendu physiquement basé pour les MeshParts et vous permet de remplacer l'apparence d'un maillage avec des options graphiques avancées, y compris ColorMap, MetalnessMap, RoughnessMap et NormalMap. Il utilise également le nouveau système de cubemap dynamique que Roblox utilise pour les réflexions dans les matériaux, tels que le chrome. Par exemple, voici une image côte à côte d'un maillage avec SurfaceAppearance appliqué à côté d'un maillage sans :

Lors de l'utilisation de l'apparence de surface, gardez les conseils suivants à l'esprit :
- Si vos cartes de découpe contiennent des informations alpha pour la transparence, changez le AlphaMode de Overlay à Transparency.
- L'apparence de surface ne fonctionne pas avec les Parts car elles n'ont pas les informations UV nécessaires pour appliquer les cartes. Les MeshParts sont normalement créés dans une autre application comme Maya, 3ds Max ou Blender et contiennent des informations de dépliage UV.
Pour appliquer SurfaceAppearance :
Cliquez sur le à la fin d'un nom de MeshPart ou de dossier dans l'Explorateur et recherchez SurfaceAppearance. En ajouter un remplacera toute BrickColor, Color, Material et TextureID que vous avez peut-être déjà appliqué.
Renommez le nœud SurfaceAppearance en quelque chose d'unique et ajoutez un suffixe de _SA pour les rendre faciles à rechercher. Dans cet exemple, nous avons utilisé Metal_Trim_A_SA.
Importez les cartes de feuilles de découpe, copiez les ID de la fenêtre Gestionnaire d'actifs, et collez-les dans les emplacements appropriés dans la fenêtre Propriétés. Voici à quoi ressemble le nœud Metal_Trim_A_SA avec tous les ID de cartes insérés et appliqués à la porte.

Augmenter l'efficacité avec des packages
Les packages vous permettent de créer des instances d'objets dans vos jeux Roblox, de sorte que les mises à jour que vous apportez au package sont publiées à toutes les instances de ce package. Nous avons utilisé des packages pour presque tous les objets que nous avons mis dans la station, donc nous n'avons pas eu à chercher chaque placement si nous devions apporter des ajustements. Par exemple, nous avons utilisé plus de 1 000 instances de panneaux muraux d'un package et avons pu publier des mises à jour instantanément en modifiant le package.
Suivez ces conseils lors de l'utilisation de packages :
Activez la fonction de mise à jour automatique dans PackageLink. Toutes les modifications sont appliquées à toutes les utilisations du package lorsque cela est activé, vous évitant ainsi l'étape d'utilisation de la fonction "mettre à jour tout".

Vous pouvez utiliser des packages pour des objets SurfaceAppearance afin de créer une "bibliothèque de matériaux". Cela vous permet de modifier des bitmaps dans un objet SurfaceAppearance et de les publier dans chaque objet qui l'utilise. La capture d'écran suivante montre des matériaux maîtres utilisés tout au long de la démo. Si nous devions modifier les cartes, il nous suffisait de mettre à jour le matériau maître et de republier le package.
