Costruire la stazione in modo modulare ci ha permesso di aggiornare e propagare aggiornamenti di contenuto senza problemi ed è stata fondamentale per assicurarci di non trascorrere ore ad aggiornare mesh, texture, parti e altro ancora.
I pacchetti Roblox ci hanno permesso di raggiungere questo design modulare consentendoci di raggruppare una tavolozza di Meshparts che si incastrava facilmente, set di trim sheet e nodi SurfaceAppearance che i MeshParts potevano condividere. Questo ci ha permesso di adattarci ai cambiamenti di layout e dimensione durante le prime playtest e ha reso il processo di completamento della stazione molto più veloce.

Design flessibili per arte finale
Quando abbiamo iniziato, non avevamo una comprensione completa di cosa volevamo che ci fosse nella stazione, o quanto grande dovesse essere per 50 giocatori.
Per capirlo, abbiamo iniziato costruendo prima l'ambiente utilizzando Parts e portando dentro alcune mesh come la forma della rotonda dalla nostra applicazione DCC esterna, come Maya o Blender. Con queste forme semplici, abbiamo regolato la scala della mappa, l'arrangiamento delle stanze e i percorsi per trovare gli arrangiamenti più divertenti. Sia per un gioco che per un'esperienza sociale, questa fase iniziale tende a essere la più dinamica.
Quando costruivamo il layout della stazione, la cosa più importante per guidare l'esplorazione era dare all'utente un obiettivo. In questo caso, l'obiettivo più ovvio è avvicinarsi al buco nero. Successivamente, sapevamo che dare loro un percorso diretto verso il buco nero sarebbe stato noioso, perché un giocatore potrebbe semplicemente camminare dalla spawn fino alla fine della mappa. Abbiamo spezzato il cammino in modo che il giocatore non potesse raggiungere il buco nero senza prima aggirarlo e vedere anche altre cose che potrebbero attrarli.
Il design modulare ci ha permesso di apportare tali modifiche all'ambiente senza un rifacimento catastrofico del design complessivo. Potevamo spostare intere sezioni della stazione per giocare con diverse idee di gameplay. Alla fine, questi stessi pezzi modulari potevano poi essere aggiornati utilizzando pacchetti, quindi non dovevamo ricostruire più versioni dello stesso asset.




Design modulare del Kerr-Newman DSR-14
La stazione spaziale utilizza solo un gruppo di pezzi modulari della tavolozza. I pezzi della tavolozza modulare sono asset riutilizzabili, il che significa che non dobbiamo creare ogni muro in modo unico, ma possiamo invece assemblare diversi muri più piccoli. Questo consente flessibilità nella disposizione mentre costruiamo.
Ecco alcuni suggerimenti che ci hanno aiutato a creare il nostro design modulare:
Scegliere una dimensione della griglia uniforme — Per la stazione, abbiamo scelto una dimensione della griglia di 16 stud per creare la maggior parte del set modulare. La dimensione della griglia che usi è arbitraria, ma dovrebbe essere coerente in tutto il progetto e tra tutti gli artisti che lavorano a quel progetto. Stabilire una dimensione della griglia all'inizio del tuo progetto assicura che ogni pezzo si adatti bene con il pezzo accanto. Permette anche di scambiare facilmente pezzi, ad esempio scambiando una sezione del muro con una sezione della porta.
Tutte le unità vengono importate come stud — Quando crei mesh in altre applicazioni DCC, come Maya o Blender, Studio non converte metri, centimetri, piedi o pollici: semplicemente sostituisce le unità in entrata con le stesse unità in stud. Ad esempio, se imposti le tue unità su metri, Studio converte 2 metri in 2 stud. È meglio trattare le tue scale unità nella tua applicazione di scelta come scale in stud in Roblox. La scala più vicina del mondo reale per un singolo stud in Roblox è di 28 centimetri.
Mantieni i pezzi semplici — Non cercare di costruire ogni pezzo che pensi di aver bisogno. L'idea è avere alcuni pezzi molto versatili e non molte creazioni singole. Più pezzi hai, più tempo ci vuole per creare ogni pezzo e più influisce sul tuo budget complessivo di memoria e prestazioni. Puoi sempre aggiungere un altro pezzo al tuo kit se è assolutamente necessario.
Usa pacchetti — Converti ogni pezzo modulare in un pacchetto e metti anche i materiali nei pacchetti prima di iniziare a popolarli nella tua esperienza. Questo ti consente di inviare facilmente aggiornamenti a tutte le istanze. Approfondiremo i pacchetti più avanti.
Gli screenshot seguenti mostrano vari modi in cui abbiamo utilizzato il design modulare per costruire porzioni della stazione.




Crea fogli di trim
Texture 1:1 sono il futuro, ma diventano costose in termini di budget di memoria e tempo per crearlo. Per la stazione spaziale, il 90% degli elementi architettonici usava una manciata di set di fogli di trim intercambiabili, che sono un insieme di mappe texture disposte in modo verticale o orizzontale. Ogni riga o colonna del foglio ha un aspetto unico, offrendoti una varietà di trattamenti superficiali tra cui scegliere quando si sviluppa un modello, tutto utilizzando un'immagine foglio.
Ecco alcuni suggerimenti per creare fogli di trim:
Inizia con un inventario dei tipi di oggetti e materiali di cui hai bisogno — I fogli di trim possono includere una grande varietà di tipi di materiali, come legno, metallo, gomma e altro ancora. Prima di iniziare a modellare il tuo primo oggetto, crea un modello di foglio di trim. Questo è il punto di partenza per tutti gli altri set di fogli di trim e ti fornisce un rapido punto di partenza per sviluppare i tuoi modelli. Questi fogli di trim vivono all'interno del nodo SurfaceAppearance, di cui parleremo più avanti.
Includi una varietà di trattamenti superficiali in un foglio — Questo ti consente di mantenere più mesh insieme, in modo da poter applicare nuovi trattamenti senza dover rompere le tue mesh in più mesh. Questo migliora le prestazioni di runtime riducendo le chiamate di disegno di oggetti e materiali.
Crea un modello di foglio di trim — Un modello garantisce che tu possa sostituire qualsiasi set di mappe con un'altra. Ad esempio, puoi sostituire un set di metallo pulito con un set di metallo arrugginito.
Ecco come abbiamo creato fogli di trim per la stazione:
Abbiamo creato un abbozzo di come dovrebbe apparire il foglio:

In Photoshop, abbiamo creato un mockup per avere un'idea rapida di come apparirebbe ciascuna sezione del foglio.

Abbiamo usato Substance, ma puoi usare qualsiasi applicazione che ti si addice per creare le mappe finali. Questo è il set finale di mappe di fogli di trim generate in Substance. Tutte e quattro le mappe lavorano insieme all'interno di un nodo SurfaceAppearance per produrre un materiale reso fisicamente basato (PBR).




Ecco alcuni rendering finali del foglio di trim all'interno di Substance Designer:


Ecco esempi degli stessi fogli di trim utilizzati su una grande varietà di oggetti:

Se desideri saperne di più su UV Mapping dei Fogli di Trim, cerca l'argomento sul web; ci sono molti ottimi tutorial là fuori.
Applica le apparenze superficiali
SurfaceAppearance ti consente di specificare nuovi input di texture per il nostro sistema di Rendering Basato sulla Fisica per MeshParts e ti consente di sovrascrivere l'aspetto di una mesh con opzioni grafiche avanzate, tra cui ColorMap, MetalnessMap, RoughnessMap e NormalMap. Utilizza anche il nuovo sistema di cubemap dinamico che Roblox usa per i riflessi nei materiali, come il cromo. Ad esempio, ecco un'immagine affiancata di una mesh con SurfaceAppearance applicato accanto a una mesh senza di esso:

Quando utilizzi l'applicazione superficiale, tieni a mente i seguenti suggerimenti:
- Se le tue mappe di trim contengono informazioni alfa per la trasparenza, cambia l'AlphaMode da Overlay a Transparency.
- L'applicazione superficiale non funziona con i Parts perché non hanno le informazioni UV necessarie per applicare le mappe. I Parts utilizzano proiezioni allineate al mondo al posto delle informazioni UV. I MeshParts vengono normalmente creati in un'altra app come Maya, 3ds Max o Blender e contengono informazioni sullo sviluppo UV.
Per applicare SurfaceAppearance:
Fai clic sull'icona alla fine di un nome MeshPart o di una cartella nell'Esplora e cerca SurfaceAppearance. Aggiungere uno sovrascriverà qualsiasi BrickColor, Color, Material e TextureID che potresti aver già applicato.
Rinomina il nodo SurfaceAppearance in qualcosa di unico e aggiungi un suffisso di _SA per renderli facili da cercare. In questo esempio, abbiamo usato Metal_Trim_A_SA.
Importa le mappe di fogli di trim, copia gli ID dalla finestra Gestore Asset e incollali negli slot appropriati nella finestra Proprietà. Ecco come appare il nodo Metal_Trim_A_SA con tutti gli ID delle mappe inseriti e applicati alla porta.

Aumenta l'efficienza con i pacchetti
I pacchetti ti consentono di creare istanze di oggetti in tutte le tue esperienze Roblox, in modo che gli aggiornamenti che apporti al pacchetto vengano pubblicati a tutte le istanze di quel pacchetto. Abbiamo usato pacchetti per quasi ogni oggetto che abbiamo inserito nella stazione, quindi non dovevamo cercare ogni posizione se avevamo bisogno di apportare modifiche. Ad esempio, abbiamo utilizzato oltre 1.000 istanze di pannelli murali di un pacchetto e siamo stati in grado di pubblicare aggiornamenti su di essi immediatamente modificando il pacchetto.
Segui questi suggerimenti quando usi pacchetti:
Attiva la funzione di aggiornamento automatico in PackageLink. Tutte le modifiche vengono applicate a tutti gli usi del pacchetto quando è attivata, risparmiandoti il passaggio di dover utilizzare la funzione "aggiorna tutto".

Puoi utilizzare i pacchetti per oggetti SurfaceAppearance per creare una "libreria di materiali". Questo ti consente di modificare bitmap in un oggetto SurfaceAppearance e pubblicarli su ogni oggetto che lo utilizza. Lo screenshot seguente mostra materiali master utilizzati in tutto il demo. Se dovevamo modificare le mappe, dovevamo solo aggiornare il materiale master e ripubblicare il pacchetto.
