Benvenuti nella nostra guida generale sulla Costruzione e Modifica di Locations In Chathouse.
Lo scopo di questa guida è di aiutarvi a migliorare la performance delle vostre stanze e creare più rapidamente locations dall’aspetto migliore.
Questa guida rappresenta una collezione di suggerimenti e trucchi degli sviluppatori e dei più esperti creatori di stanze in thriXXX.
Consideriamo necessario che voi leggiate prima gli articoli che riguardano le funzioni di base di Room Editor per comprendere al meglio questo articolo.
Primo passo: Mettete a punto un piano d’azione
Cominciare da zero e lasciare che sia il vostro cuore a guidarvi è molto romantico, ma nella maggioranza dei casi vi costringerà a ricostruire la stanza molte volte per riparare errori progettuali clamorosi.
La pianificazione ha un ruolo determinante. Non solo vi permetterà di guadagnare tempo, ma vi aiuterà a creare locations che offrano una esperienza più coinvolgente per gli ospiti con opportunità uniche di gioco.
– Quando pianificate una stanza, considerate sempre:
1. Lo scopo della location ed il numero di giocatori.
2. Performance.
3. Limitazioni dovute agli strumenti di Room Editor.
– Suggerimenti:
1. Differenti locations necessitano differenti soluzioni:
– Featured rooms (sempre pubbliche, con un massimo di 64 giocatori) necessitano un’area comune in cui i giocatori possano incontrarsi e ballare, l’ottimizzazione è importantissima visto il numero di giocatori e la visibilità. Dovrete giungere a compromessi su dettagli, illuminazione e animazioni. Qui potete trovare alcuni suggerimenti quando create una featured location.
– Sessions rooms (che esse siano private o pubbliche, con un massimo di 24 giocatori) possono essere più piccole, con più dettagli e creatività, ma devono comunque essere ottimizzate.
– Stanze ideate per essere utilizzate principalmente in sessioni private (massimo 3-4 giocatori) possono essere più piccole, creative, ideali per mostrare abbondanza di dettagli, animazioni ed oggetti interattivi.
2. Recuperate tutti i riferimenti che vi possano servire prima di iniziare a creare la vostra stanza (immagini, testi, video…). Una ricerca approfondita può veramente aggiungere molto al risultato finale.
3. Concentratevi su autenticità ed immersione del visitatore nell’ambiente che state creando. Rendete la location credibile, anche se il tema è irreale, fantascientifico o fantastico.
4. Create con uno scopo. Ogni oggetto deve avere uno scopo e contribuire al look finale, utilizzo e atmosfera della stanza.
5. Rendete la stanza divertente e facile da navigare, specialmente per i giocatori che hanno meno familiarità col gioco.
6. Fate in modo che tutte le interazioni con la stanza da parte dei giocatori siano intuitive oppure usate indicazioni chiare come cartelloni, loghi e scritte.
7. Rendete le vostre stanza uniche e sorprendenti, costruite per creare emozioni.
8. Create in modo efficiente. I limiti hardware e del motore di gioco possono essere una opportunità per soluzioni inaspettate, intelligenti ed eleganti. Considerate che anche la location più bella, è inutile se i giocatori non riescono a visualizzarla e giocarci correttamente a causa di problemi di performance.
9. Considerate i lavori degli altri giocatori. Potrete ispiravi, trovare soluzioni brillanti a problemi comuni ed imparare molto.
10. Scegliete attentamente la colonna sonora per la vostra stanza. Qui potete trovare alcune informazioni su come aggiungere musica in Chathouse.
Creazione di base con Room Editor: Concetti Generali
La creazione di locations in Chathouse si basa fondamentalmente sulla aggiunta di proprietà ai materiali e la modifica di oggetti.
In questo articolo vi suggerirò di iniziare definendo nei dettagli i materiali e le textures per poi procedere duplicando e modificando gli oggetti a cui sono applicati questi settaggi.
Modificare i Materiali
La prima cosa che vorrete modificare sono le textures. Una analisi approfondita della gestione delle textures va oltre lo scopo di questo articolo, perciò vi descriverò brevemente i parametri più importanti da modificare lasciando gli altri dettagli a questo articolo specifico.
Quando caricate le textures che avete creato sul sito di thriXXX ricordatevi di:
1. Caricare le textures in MyShares solamente come “Material”. Non procedete all’upload come “image”. In questo modo eviterete i bugs relativi alla visualizzazione delle textures dopo gli aggiornamenti (textures “nere”).
2. Non modificate/cancellate le textures nel vostro Myshares (sito web di thriXXX) una volta che sono utilizzate in una stanza. Dovreste a quel punto aggiornare le textures su ogni singolo oggetto dove quelle modificate o cancellate sono utilizzate.
Le Trasparenze offrono alcuni parametri da modificare:
– Material Transparency Mask: quando è selezionato, permette alle parti trasparenti delle texturers di essere visualizzate come trasparenti.
– Material Transparency Blending: quando selezionato (solitamente in alternativa alla transparency mask), è in grado di rendere le trasparenze parziali e sfumature in maniera più realistica e dettagliata, a spese della performance, però.
– Material Depth Write: forza il motore grafico a calcolare le aree dietro agli oggetti ed è necessario quando vengono usate trasparenze.
– Material Layer: Modifica la priorità di un oggetto rispetto agli altri e viene usato per correggere alcune anomalie in oggetti trasparenti.
– Material Transparency: Questo slider permette di settare la trasparenza di un oggetto da completamente opaco a completamente trasparente.
In Chathouse vi suggeriamo di seguire queste indicazioni di massima quando modificate i seguenti parametri in un oggetto:
– La maggior parte degli oggetti non trasparenti: Material Transparency Mask = OFF; Material Transparency Blending = OFF; Depth Write = ON; Layer = 16 (default).
– La maggior parte degli oggetti con trasparenze: Material Transparency Mask = ON; Material Transparency Blending = OFF; Depth Write = ON; Layer = 16 (default).
– Livelli con trasparenze posizionati proprio di fronte ad altri oggetti (posters, scritte sui muri…): Material Transparency Mask = OFF; Material Transparency Blending = ON; Depth Write = ON; Layer > 17 (con alcune eccezioni, occorre provare diversi valori che meglio si adattano alla situazione).
– Oggetti trasparenti (vetri, finestre, bottiglie…): Material Transparency Mask = OFF; Material Transparency Blending = ON; Depth Write = OFF; Layer = 37-47 (con alcune eccezioni, occorre provare diversi valori che meglio si adattano alla situazione).
Considerate che le modalità trasparenza (MASK, BLENDING) hanno un importante impatto sulla performance quando “cast shadow” è attivo. Vi suggeriamo di disabilitare le ombre sugli oggetti con ogni tipo di trasparenza.
La regola generale per ottimizzare la performance della vostra location è quella di limitare il numero di trasparenze, in particolare quelle in cui “Transparency Blend” è attivo.
Le ombre hanno un costo sulla performance, dunque vi suggeriamo di disabilitarle in locations di grandi dimensioni con un numero elevato di oggetti o animazioni.
A questo punto è il momento di settare i valori più appropriati per l’effetto metallico e l’opacità/lucidità del materiale dell’oggetto in questione.
Texture Rotation e Translation sono abbastanza semplici da spiegare. Fanno quello che il nome suggerisce, ovvero ruotano e spostano l’immagine usata come texture. Vi possono essere utili principalmente per far combaciare le textures di oggetti adiacenti.
Texture Scaling modifica il modo in cui una texture è ripetuta sulla superficie di un oggetto. Ridimensionare le textures funziona bene solo quando le textures sono seamless (cioè realizzate per poter essere ripetute ed affiancate una all’altra senza che si noti la transizione). In modalità normale ( a differenza della modalità “projector”), il numero inserito nel campo indica quante volte la texture è ripetuta su ogni faccia dell’oggetto. Solo i primi due campi sono modificati.
Texture projector è una funzione estremamente utile. Proietta l’immagine della texture sul vostro oggetto da 3 direzioni differenti ed ortogonali (a 90 gradi l’una dall’altra) e modifica l’effetto della funzione “texture scaling”.
Per attivarla è necessario inserire i valori “1” or “2” or “3” nel campo “Texture Projector (ID / Name)” in base alle proprie preferenze:
1. I “proiettori” sono agganciati alla scena mostrata in video, dunque quando gli oggetti vengono ruotati le textures vengono deformate in quanto non più ortogonali alla proiezione. Quando ridimensionerete le textures potrete controllare tutte e 3 le dimensioni. Le dimensioni delle textures rimarranno le stesse quando modificherete le dimensioni degli oggetti.
2. I “proiettori” sono agganciati all’oggetto, dunque quando lo ruotate le textures verrano visualizzate correttamente senza deformazioni. Il ridimensionamento funzionerà come nella modalità 1. Questa è la modalità più utilizzata in Chathouse. Ne potrete apprezzare l’utilità duplicando oggetti e ridimensionandoli. Non è necessario modificare manualmente le dimensioni delle textures ogni volta.
3. I “proiettori” sono agganciati all’oggetto, come nella modalità 2. Quando ridimensionate le textures, però, potrete controllare solo le prime 2 dimensioni come in modalità normale. Questo vi costringerà a modificare le dimensioni delle textures ogni volta che modificate le dimensioni dell’oggetto.
Le Collisioni giocano anch’esse un ruolo importante. Per migliorare la performance vi suggeriamo di disattivare le collisioni su tutti gli oggetti della vostra stanza durantte la “costruzione”. Le potrete attivare alla fine solo sugli oggetti in cui è strettamente necessario.
Per ultimo, impostate il livello dell’oggetto. Il Numero del Livello non ha nulla a che fare con la posizione dell’oggetto. Per esempio, potete posizionare il livello 3 al di sopra del livello 7. I livelli servono solo a permettere di impostare collisioni su un piano senza influire sugli altri. Ricordatevi soltanto di non UTILIZZARE MAI il livello 0 in quanto causa di bugs.
Dare Forma e Posizionare gli Oggetti
Una volta definiti i materiali, potete iniziare a duplicare gli oggetti che avete appena creato (CTRL + D oppure click col tasto destro -> DUPLICATE) e combinarli, spostarli e ruotarli.
Poi ridimensionateli e aggiustate la dimensione delle textures se necessario.
Vi suggeriamo di mantenere gli oggetti a 90à tra di loro per semplificarvi il lavoro.
Solitamente si inizia con la base della costruzione, poi si aggiungono le pareti e si procede verso l’alto.
– Manipolatori
I manipolatori sono degli ausili grafici in Room Editor che vi permettono di controllare posizione (frecce), rotazione (cerchi) e dimensioni (cubi) degli oggetti. Nella finestra a destra troverete dei cursori e caselle con i valori numerici per questi stessi parametri.
Potete cambiare manipolatori premendo i tasti W (posizione), E (rotazione) o R (dimensioni).
Tenendo premuto il tasto “ALT” i manipolatori si muoveranno in steps. La misura di questi steps può essere modificata nel pannello “Location Editor Settings” in Room Editor per ogni singolo manipolatore.
Se attivate “Show Tooltip” il valore numerico di ogni parametro verrà mostrato al centro in alto della finestra di gioco quando passate il mouse sopra al cursore relativo.
– Selezione Multipla e Raggruppamenti
Potete selezionare oggetti multipli cliccando col tasto sinistro su di essi mentre tenete premuti i tasti CTRL o SHIFT.
CTRL o SHIFT + click col tasto sinistro su un oggetto selezionato lo deseleziona.
Su una selezione di oggetti multipli la funzione di spostamento funzionerà come su un oggetto solo, l’unica differenza è che il manipolatore sarà mostrato sull’ultimo oggetto cliccato.
Quando ruotate una selezione di oggetti, il centro di rotazione sarà l’oggetto che mostra il manipolatore circolare. Se tenete il tasto CTRL premuto mentre ruotate, gli oggetti selezionati ruoteranno sul loro stesso asse.
La funzione di ridimensionamento su un gruppo di oggetti li ridimensionerà come se fossero uno solo.
Potete raggruppare oggetti in modo permanente selezionandoli tutti, cliccando col tasto destro su uno di essi, e selezionando “Group Objects” nel menu che si apre. “Ungroup Objects” annulla il raggruppamento.
La funzione di raggruppamento è molto utile in quanto vi permette di agire su gruppi complessi di oggetti con molta facilità. Per selezionare un singolo oggetto in un gruppo di oggetti raggruppati è necessario cliccarci sopra col tasto sinistro mente premete il tasto “ALT”. Cliccando col tasto sinistro mentre tenete premuti i tasti ALT+CTRL oppure ALT+SHIFT vi permetterà di selezionare oggetti multipli all’interno dello stesso gruppo.
– Superfici calpestabili
Superfici calpestabili sono necessarie per permettere agli avatars di camminarci sopra. Esempi sono: Walkable Floor Tile, Walkable Disk, Walkable Quarter Disk e Walkable Landscape.
Affinchè queste superfici funzionino è necessario attivare le collisioni e settare il livello giusto per ogni superficie.
Quando sovrapponete differenti superfici calpestabili con lo stesso livello impostato, gli avatar salteranno automaticamente sulla superficie più in alto. Se invece settate le superfici con valori numerici differenti per il livello, quelle superfici funzioneranno in maniera indipendente.
Superfici con livelli differenti possono essere connesse tramite una Walkable Floorchange Tile. Ricordatevi solo di settare i valori numerici corretti per i livelli (solitamente A è il livello inferiore).
Attivate le collisioni e mantenete le frecce del connettore nella direzione dei due livelli che state connettendo.
Le superfici calpestabili possono essere sovrapposte ad ogni oggetto. Ci potete coprire intere aree dove volete che gli avatars possano camminare. Poi potete renderle trasparenti attivando “Material Transparency Mask” e settando la trasparenza ad 1.
A questo punto dovreste attivare le collisioni sui muri e sugli oggetti che dovrebbero bloccare il movimento degli avatars. O meglio ancora, per questioni di performance, create percorsi calpestabili intorno a muri e mobilio in modo da attivare le collisioni su molti meno oggetti solamente quando strettamente necessario.
Spiegazione avanzata: Il motore grafico del gioco compara ogni oggetto con collisioni con la posizione dell’avatar sulla superficie calpestabile dove si trova molte volte al secondo. Più oggetti con collisioni attive ci sono, maggiore sarà il carico di lavoro per il vostro sistema. Il trucco sta nel fatto che il conteggio riguarda solo il piano calpestabile sul quale si trova l’avatar. Dunque se abbiamo tante o poche superfici calpestabili non cambia nulla in quanto le uniche che influiranno sulla performance saranno solo quelle con gli avatars sopra. Il numero degli altri oggetti con collisioni invece è importante sempre.
– Cielo di Sfondo e Nebbia (Haze)
La Blank Room offre la utile possibilità di personalizzare lo sfondo.
Il cielo può essere personalizzato utilizzando una immagine panoramica sferica seamless di 2048X1024 pixel (con un angolo di 360 gradi). Potete trovare immagini gratuitamente sulla rete, accertatevi solamente che possano essere usate su uno sfondo sferico. Accertatevi che le dimensioni dell’immagine siano corrette e visto che l’immagine è alquanto grande comprimetela il più possibile.
Dato che queste immagini sono seamless, potete decidere di utilizzare solo la parte superiore (quella sopra l’orizzonte, mantenendo però le stesse dimensioni 2048X1024 pixel). Poi settate i valori di “texture scaling” entrambi a “2” in modo da raddoppiare la risoluzione a scapito del realismo visto che probabilmente verranno visualizzati 2 soli o lune e tutto ciò che si trova al di sotto dell’orizzonte sembrerà irrealistico.
Qui potete trovare alcuni esempi di sfondi. La maggior parte funzionano con texture scaling settato a 2 e texture translation spostato verso l’alto di 0.5.
La Nebbia (Haze) è utile per rendere migliore la transizione tra cielo e terra. Gli adattamenti che applicherete dipendono interamente dalla natura dello sfondo e del Walkable Landscape dunque non ci sono regole generali.
– Luci
Le luci principali possono essere modificate nei pannelli Settings e Bloom.
Per semplificare le cose, immaginate di essere sul set di un film. Il pannello “Settings” rappresenta il modo di “cambiare le luci” mentre col pannello “Bloom” cambiate le lenti alla vostra telecamera.
Nel pannello Settings troverete le opzioni per modificare la luce principale. Dovrete spuntare “Location-Light-Override” per poter modificare tutti i parametri. Qui considereremo solo quelli più rilevanti:
1. Location-Light-Color permette di cambiare il colore principale, come ad esempio al tramonto quando il rosso è dominante.
2. Location-Light-Intensity è il parametro più importante quando volete passare dal giorno alla notte. Il settaggio di baseè 1 (giorno). Consideriamo 0.05 un valore ideale per una location notturna.
3. Location-Light-Indirect-Disable rimuoverà la luce indiretta. Nella realtà la luce rimbalza su oggetti e pareti (in particolare oggetti metallici e specchi). L’effetto non si nota moltissimo ma disabilitandolo guadagnamo molto in performance.
Nel pannello Bloom potrete modificare l’illuminazione degli oggetti e la sfocatura (bloom).
1. Scene Intensity è il parametro principale che dovrete modificare per ottenere un effetto notte. 1 è il valore corretto per una location diurna, 0.3 – 0.5 è un range ragionevole per un ambiente più scuro come la notte. Se non avete acquistato “bloom” dallo store di thriXXX, avrete a disposizione solo i filtri del colore. Usate questi per ridurre la luminosità.
2. Tutti gli altri parametri modificheranno la sfocatura in tutta la stanza. Non ci sono valori giusti o sbagliati. Il range di risultati è ampio, dall’immagine ben definita a quella sfocata e cinematografica. Sta a voi scegliere l’effetto che desiderate per la vostra location.
– Ritocchi finali:
Prima di considerare la vostra stanza terminata, ci sono alcuni passi finali che dovreste considerare:
– Accertatevi che tutte le collisioni siano settate correttamente e che il vostro avatar possa camminare agevolmente dove previsto.
– Rimuovete tutte le ombre non necessarie ed aggiungete quelle che desiderate (pavimento, vetri…). In locations complesse vi suggeriamo di rimuovere tutte le ombre in fase iniziale per poi attivarle solo in alcuni oggetti dove fanno la differenza.
– Accertatevi di essere soddisfatti dell’effetto finale delle luci.
– Aggiungete i markers (click col tasto destro > marker) dove volete che gli avatars dei giocatori appaiano nella stanza quando entrano. Questa opzione è utile per forzare i giocatori a vedere alcune parti della stanza oppure per offrirgli diversi punti di entrata vicini all’area più affollata di giocatori. Dipende tutto dai vostri gusti.
Risorse
Texture libraries:
https://www.textures.com/
https://3dtextures.me/
https://polyhaven.com/textures
https://www.sharetextures.com/textures/
https://ambientcg.com/list?type=PhotoTexturePBR,AtlasPBR,DecalPBR
Online image compressors:
https://compressor.io/
https://www.iloveimg.com/compress-image
GIMP
https://www.gimp.org/downloads
Normal map plugin for GIMP
https://drive.google.com/file/d/1wcJoJ-fXieB7aPu8rLRRqzOHQr2hwyUq/view?usp=sharing
thriXXX Gamerotica
https://www.thrixxx.com/gamerotica
@VelvetCrimson‘s collection of 512X512 textures
https://www.thrixxx.com/profile/34185462/VelvetCrimson/myshares/1643018
@IuliusCaesar‘s collection of 512X512 PNG textures
https://www.thri.xxx/profile/19166005/IuliusCaesar/myshares/1659346
@IuliusCaesar‘s collection of 1024X1024 PNG textures
https://www.thri.xxx/profile/19166005/IuliusCaesar/myshares/1659342
@IuliusCaesar‘s collection of 1024X1024 JPG textures
https://www.thri.xxx/profile/19166005/IuliusCaesar/myshares/1659342
Hanno contribuito:
Questo articolo è stato scritto con la collaborazione di @VelvetCrimson, _Maggie_ and @IuliusCaesar