In questo tutorial, realizzato con la versione 2019 di Substance Painter (ma valido anche in altre versioni, precedenti e successive), vedremo come recuperare gli ID Colors di un modello, dove presenti, per utilizzarli per creare velocemente delle maschere di livello.
Trascrizione del video
Salve a tutti! In questo tutorial, realizzato con la versione 2019 di Substance Painter (ma valido anche in altre versioni, precedenti e successive), vedremo come recuperare gli ID Colors di un modello, dove presenti, per utilizzarli per creare velocemente delle maschere di livello.
Gli ID Colors sono, come suggerisce il nome, dei colori associati a vertici o facce di un modello 3D; non si tratta dei colori che vengono visualizzati in fase di rendering, ma di informazioni aggiuntive memorizzate nel canale di informazione “Vertex Colors” dell'oggetto: i valori RGB di un colore sono, in effetti, numeri, per cui possono essere utilizzati come parametri per filtri e altri strumenti.

Substance Painter (e anche altri software e strumenti) sono in grado di recuperare queste informazioni e utilizzarle per vari scopi; ad esempio, in Substance possiamo creare delle maschere di livello selezionando in un colpo solo tutte le geometrie che hanno lo stesso Vertex Color.
Quando aggiungiamo una maschera di livello ad un Materiale in un progetto, tra gli effetti disponibili per la maschera abbiamo anche la voce “Color Selection”; tuttavia, una volta aggiunto un elemento di questo tipo, può capitare di trovare la scritta “ID not found”, mentre lo strumento “Pick Color” non individua nessun colore nella geometria...

In effetti, durante l'introduzione di questo tutorial ho specificato “dove presenti” perché questi colori vengono forniti, in fase di esportazione di un modello, al canale di informazione “Vertex Colors” dell'oggetto, ma questa operazione non viene effettuata sempre, per cui a volte sono assenti... spostiamoci quindi in Blender 3D (versione 2.92, in questo particolare caso) per vedere come fornire dei Vertex Colors a parti degli oggetti prima di esportarli per Substance Painter.

Nell'esempio che sto utilizzando, vogliamo individuare almeno 4 zone: il cavo, i due contenitori in plastica lucida, la parte metallica dei connettori e i separatori in plastica opaca.
Diamo un'occhiata alla scucitura UV dell'oggetto: notiamo che le varie parti sono state effettivamente separate (tramite i “seams”, le scuciture), per cui sono disposte su “isole UV” diverse, ma queste non sono facilmente identificabili (e, anzi, in questo particolare modello le “isole UV” sono poche, ma vi capiterà sicuramente di vedere scuciture UV di gran lunga più complesse); per questo motivo, decidiamo di assegnare dei Vertex Colors.

Nella vista 3D, passiamo in modalità Vertex Colors e, soprattutto, attiviamo la modalità di selezione facce, nell'header della vista 3D, quindi deselezioniamo tutto (con ALT+A, oppure Select – None nell'header della vista), così da poter iniziare a selezionare le varie parti e assegnare loro i colori.


Le selezioni possono avvenire con i vari strumenti messi a disposizione da Blender; dal momento che, in questo esempio, le varie parti sono state scucite e disposte su isole UV differenti, posso selezionarle facilmente premendo il tasto L (per “Linked”: parti collegate) mentre il cursore del mouse si trova su una di esse.

Procedo quindi selezionando, per cominciare, le parti dei connettori in plastica lucida, che cambieranno colore (e non mostreranno più gli spigoli della struttura) man mano che li selezionerò.
Per assegnare un Vertex Color a queste parti, per prima cosa seleziono un colore nel pannello Properties di Vertex Paint (pannello che può essere chiuso o aperto con lo shortcut N), quindi premo SHIFT+K (o scelgo Paint - “Set Vertex Color”, nell'header della finestra 3D).

Per passare al gruppo successivo, deselezioniamo tutto con ALT+A, quindi ripetiamo le operazioni: selezione delle varie isole che ci interessano, scelta del colore, poi “Set Vertex Color” e così via per tutti gli altri gruppi (quattro nel nostro caso).

Nella scelta dei colori, vi consiglio di scegliere colori MOLTO diversi tra loro, se possibile, in modo da far risaltare le aree a colpo d'occhio, sia in Blender (per individuare velocemente parti mancanti o assegnate in maniera errata) che in Substance Painter (per non sbagliare, in fase di selezione, con sfumature di colore troppo simili tra loro).
Terminato questo lavoro, non resta che esportare il modello 3D in un formato che supporti l'informazione Vertex Color, come ad esempio il formato FBX, per poi tornare in Substance Painter...

Importato nuovamente il file del modello in Substance Painter, clicchiamo su “Bake Mesh Maps” nella scheda “Texture Set Settings”.

Nella finestra Baking, deselezioniamo le voci che non ci interessano e lasciamo selezionata, ovviamente, “ID”, ma prima di cliccare sul pulsante di Bake apriamo la scheda di questo canale, per assicurarci che la voce “Color Source” (sorgente dei colori da utilizzare per generare la mappa) sia impostata su “Vertex Color”: Substance quindi accederà a questa informazione aggiuntiva del modello per realizzare la mappa ID.

Clicchiamo su Bake e attendiamo l'elaborazione della mappa, che troveremo sia nella sezione ID di “Texture Set Settings” che nelle schede “Properties – Color Selection” dei vari strumenti “Color Selection” creati per le maschere del progetto.

A questo punto, facendo click su “Pick Color” potremo selezionare un ID Color dal progetto e la maschera verrà generata al volo, associando quel materiale a tutte le aree del modello provviste di quel Vertex Color.

L'operazione può essere quindi ripetuta per gli altri materiali, SE lo riteniamo opportuno: questo, infatti, è uno strumento che può tornare utile in certe circostanze, ma ovviamente, a seconda dei casi, potrebbe risultare più facile una selezione con gli strumenti Brush, Polygon, UV Chunk, eccetera; ID Mask è solo un'altra delle frecce che potete aggiungere al vostro arco, senza per questo dover togliere le altre!

Ricapitolando: se un modello è fornito di Vertex Colors, è possibile ricavare questa informazione in Substance Painter effettuando un Bake della mappa ID (avendo cura di specificare “Vertex Colors” come sorgente dell'informazione che vogliamo recuperare dal modello), dopodiché sarà possibile aggiungere un componente “Color Selection” alle maschere dei vari materiali e, tramite lo strumento “Pick Color”, generare una maschera che includerà solo le geometrie provviste del Vertex Color selezionato.

Per questo videotutorial è tutto! A presto!