Salve a tutti!

Questo è il secondo di due tutorials, realizzati in riferimento alla versione 2019 di Substance Painter, sull'esportazione delle Textures da questo programma verso varie destinazioni: da altri software 3D (come Unity, Unreal, V-Ray e altri), a set di Textures generici per il paradigma PBR (Physically Based Rendering).

In questa puntata vedremo come definire un nostro Preset di esportazione personalizzato, in modo da esportare le Textures che ci interessano e, tra le altre cose, crearle con uno schema di nomi personalizzato, mediante le variabili macro di Substance; vedremo, inoltre, come creare un nostro Template, con le impostazioni che intendiamo avere per tutti i nostri nuovi progetti.

Il tutorial fa parte, come gli altri videotutorial su Substance Painter che ho pubblicato finora, della Playlist “Substance Painter – Tutti i tutorial”, disponibile sul mio canale Youtube, ma a differenza di quanto avviene con la maggior parte dei miei tutorials su Substance Painter, gli Assets (i modelli 3D e le altre risorse) utilizzati in questo tutorial NON sono disponibili; tuttavia, è possibile seguire il tutorial e imparare senza dover replicare le operazioni con questi oggetti in particolare!

Ok, fatte queste premesse, iniziamo!


 

CREAZIONE DI UN NUOVO PRESET DI ESPORTAZIONE

La creazione di un nuovo Preset di esportazione personalizzato, da ritrovare anche ai successivi avvii di Substance Painter, è in realtà un'operazione piuttosto semplice.

Per prima cosa, clicchiamo su Export Textures nel menù File (shortcut: CTRL SHIFT E), quindi passiamo alla scheda Configuration nella finestra Export Document che apparirà a video.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 01

Qui possiamo effettuare tre operazioni: possiamo creare un nuovo Preset completamente vuoto, cliccando sul simbolo + nella colonna a sinistra, oppure rimuovere un Preset cliccando sul simbolo – dopo aver selezionato il Preset da eliminare o, infine, duplicare un Preset esistente, selezionandolo e cliccando sull'icona Copia, in alto a sinistra.

L'operazione di Copia è molto utile se, ad esempio, intendete creare un Preset per esportare in un colpo solo le Textures per più motori di rendering; in questo tutorial vedremo proprio un esempio del genere, esportando le Textures sia per Unity che per Unreal.


DUPLICARE IL PRESET DI UNITY METALLIC

Per prima cosa, selezioniamo il Preset “Unity 5 Metallic” dalla colonna a sinistra, quindi clicchiamo sull'icona della copia in alto per duplicarlo.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 02

Il nuovo Preset avrà, come nome di default, lo stesso dell'originale con l'aggiunta del suffisso “copy”; facciamo doppio click su questo nome, nella colonna a sinistra, quindi rinomiamo il Preset in “Unity + Unreal”.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 03


CREATE OUTPUT MAP: GRAY, RGB, R+G+B, RGB+A, R+G+B+A

Dal tutorial precedente sappiamo che è possibile esportare le Textures creando delle immagini a colori (RGB) eventualmente con trasparenza (canale A) e che è possibile esportare anche immagini in scala di grigi (GRAY) perché alcuni canali di informazione, come ad esempio Metallic o Roughness, esprimono in realtà dei valori lineari di intensità, che vengono rappresentati mediante immagini in scala di grigi, non a colori.

Osservando la riga “Output Maps – Create” e i pulsanti lì presenti, possiamo intuire una cosa: Substance Painter ci consente di definire una Texture di tipo RGB, eventualmente con Alpha, specificando in maniera separata le informazioni da inserire nei canali RGB con R+G+B o con R+G+B+A: questi canali verranno trattati quindi come canali di intensità per impacchettare più informazioni in un'unica immagine, che il programma di destinazione potrà poi separare e utilizzare a dovere. Ciò avviene ad esempio in Unreal ed è per questo che ho scelto quella destinazione, per l'esempio di questo tutorial.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 04

Per aggiungere una Texture all'elenco di Textures da esportare, quindi, per prima cosa dobbiamo avere ben chiaro in mente che tipo di immagine vogliamo generare. In questo caso, per sapere quali Textures sono necessarie per Unreal 4, darò una sbirciatina al Preset esistente, presente nella colonna a sinistra in Configuration...

Per Unreal 4, Substance Painter prevede 4 Textures:

  • una di tipo RGB+A, per il Base Color e la trasparenza, ottenuta mediante Input Map – Base Color e Input Map – Opacity;
  • una di tipo R+G+B, con i tre canali utilizzati singolarmente come mappe in scala di grigi per memorizzare, nell'ordine, la mappa di Ambient Occlusion (da Converted Map – Mixed AO), la mappa Roughness (da Input Maps – Roughness) e la mappa Metallic (da Input Maps – Metallic);
  • abbiamo poi una mappa di tipo RGB per il canale Normal, preso da Converted Maps – Normal DirectX, per cui includerà sia le informazioni del canale Normal che quelle del canale Height di Substance Painter;
  • per finire, una mappa RGB per il canale Emissive, preso da Input Maps – Emissive.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 05

Confrontando i due Preset Unity 5 Metallic e Unreal Engine 4, notiamo che in realtà non c'è bisogno di ricreare, nel nostro Preset personalizzato, le mappe Base Color ed Emission, perché sono sostanzialmente uguali a quelle del Preset Unity 5 Metallic che abbiamo duplicato; le mappe Normal sono invece diverse, perché Unity 5 Metallic utilizza le Converted Normal OpenGL, mentre Unreal 4 utilizza le Converted Normal DirectX.


LO SCHEMA DI NOMI PER LE TEXTURES: UTILIZZO DELLE MACRO DI SUBSTANCE

Prima di procedere all'inserimento delle Output Maps di Unreal 4 nel nostro Preset, apriamo una piccola parentesi sui nomi delle Textures da creare e sulle macro di Substance Painter utilizzabili per creare “schemi” di nomi per le Textures.

Nel campo testuale presente per ciascuna Texture possiamo inserire un testo che verrà utilizzato come nome del file da generare, per cui ad esempio per una Texture del canale Emissive potremmo scrivere “Emission”, mentre per le Normal Map OpenGL potremmo scrivere “Normal_OpenGL”, per distinguerle da “Normal_DirectX”, ma non è tutto: Substance ci dà la possibilità di utilizzare tre parole-chiave, identificate con il simbolo del dollaro, che verranno trasformate automaticamente in nomi del progetto, della mesh o del Texture Set in uso al momento della creazione dei file delle Textures.

Queste parole-chiave o “Macro”, che possono essere richiamate cliccando sul simbolo del dollaro accanto al campo testuale ove inserire il nome della Texture, sono:

  • project
  • mesh
  • textureSet

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 06

Un paio di esempi pratici, fatti utilizzando il progetto “rwb”, le tre mesh qui presenti (“carabiner”, “rwb” e “small split ring”) e i Texture Set, che hanno gli stessi nomi delle mesh:

  • la scritta $mesh_$textureSet_Emissive genererà tre immagini, chiamate “rwb_rwb_Emissive”, poi “carabiner_carabiner_Emissive” e “small_split_ring_small_split_ring_Emissive”;
  • la scritta “unreal_$textureSet_Emissive” genererà, in questo progetto, tre immagini, chiamate “unreal_carabiner_Emissive”, poi “unreal_rwb_Emissive” ed infine “unreal_small_split_ring_Emissive”;

il che significa che potete piazzare queste parole-chiave prima o dopo altre scritte a piacere: l'importante è ricordarsi del simbolo del dollaro e di stare attenti a minuscole e maiuscole, soprattutto in textureSet.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 07


INSERIAMO LE MAPPE UNREAL NEL PRESET UNITY + UNREAL

Ok, con tutte queste informazioni possiamo inserire le Textures Unreal nel nostro Preset “Unity + Unreal”, realizzato copiando il Preset Unity 5 Metallic; abbiamo detto che, in realtà, Base Color ed Emissive sono identici, per cui aggiungiamo solo Occlusion Roughness Metallic e Normal DirectX in questo modo:

  • creiamo una nuova Texture di tipo RGB chiamandola ad esempio $project_$textureSet_Unreal_Normal, quindi facciamo click su Converted Maps – Normal DirectX e trasciniamo sulla casella RGB della Texture, rilasciando e scegliendo RGB Channels nel menù che apparirà a video;
  • creiamo una nuova Texture di tipo R+G+B chiamandola ad esempio $project_$textureSet_Unreal_ORM (la sigla ORM ricorderà agli utenti di associare i tre colori RGB ai tre canali Occlusion, Roughness e Metallic, all'interno di Unreal), quindi facciamo click e trasciniamo per associare la mappa “Converted Map – Mixed AO” al canale R, la mappa “Input Map – Roughness” al canale G e la mappa “Input Maps – Metallic” al canale B, scegliendo in tutti e tre i casi “Gray Channel” (cioè il canale dell'intensità) nel menù che apparirà a video.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 08


RINOMINIAMO LE TEXTURE DEL NOSTRO PRESET DI ESPORTAZIONE

Forniamo ora uno schema di nomi uniforme, per le Texture da generare con il nostro Preset personalizzato, utilizzando lo schema appena definito con le due nuove mappe, per cui rinomiamo le mappe esistenti in:

  • $project_$textureSet_Color_and_Transparency , per Base Color (o Albedo) e Opacity, che va bene sia per Unity che per Unreal;
  • $project_$textureSet_Unity_Metallic_Smoothness , per Metallic e Smoothness;
  • $project_$textureSet_Unity_Normal , per la Normal Map di tipo Converted – OpenGL, che va bene per Unity;
  • $project_$textureSet_Emission, che va bene sia per Unity che per Unreal.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 09

Il nostro Preset è pronto, memorizzato e può essere scelto, nella scheda Export, come Preset di esportazione, nel menù Config, prima di cliccare su Export.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 10


CREAZIONE DI UN TEMPLATE PERSONALIZZATO PER I NUOVI PROGETTI

Prima di chiudere questo tutorial, vediamo come creare un Template personalizzato in modo da ritrovare alcune impostazioni, come i canali di informazione, nei prossimi progetti.

L'operazione, in realtà, è semplicissima: con un progetto aperto, dopo aver impostato le caratteristiche che volete ritrovare nel Template, aprite il menù File, scegliete “Save as Template” e digitate il nome del Template personalizzato, che verrà salvato nella cartella Documenti / Allegorithmic / Substance Painter / Shelf / Templates (quindi in una cartella dell'utente, come visto nel videotutorial sul salvataggio di gruppi di Layers mediante la creazione di Smart Materials).

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 11

Tra le informazioni che Substance memorizzerà vi sono i già detti canali di informazione per i Texture Set, la risoluzione iniziale del progetto, alcune impostazioni riguardanti lo sfondo illuminante della 3D View e anche il punto di vista della telecamera e il canale da mostrare nella 3D View (tipicamente, Material).

Il Template sarà disponibile sin da subito per i nuovi progetti: basterà cliccare su New Project e aprire il menù Template per trovarlo.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 12

Piccola nota a margine: la sovrascrittura di un file di Template sembra dare qualche problema (che è un eufemismo per dire che non funziona a dovere, in alcuni casi), per cui se ad esempio ci accorgiamo, in un secondo momento, di voler salvare un'impostazione in maniera diversa (ad esempio, la risoluzione iniziale del documento, che vogliamo impostare a 2048 anziché a 1024), procediamo in questo modo:

  • nella scheda New Project, selezioniamo il Template da modificare;
  • cambiamo la risoluzione del progetto in 2048, quindi creiamo un nuovo progetto con un qualsiasi file 3D;
  • eventualmente, modifichiamo altre impostazioni nel progetto, come ad esempio il punto di vista della telecamera virtuale;
  • dal menù File, scegliamo “Save As Template” e salviamo il Template in un nuovo file, senza sovrascrivere il precedente.

SP 2019 20191028 007 Esportare le Textures II parte Presets personalizzati 13

Per fare un po' di pulizia, potremo comunque rimuovere i file dei Template personalizzati che non ci interessano più, sia da una finestra Esplora Risorse del sistema che dalla finestra “Save Template” di “File – Save as Template”.


RICAPITOLANDO...

In questo tutorial abbiamo visto come creare, fondamentalmente, due Preset o configurazioni personalizzate, per due contesti diversi:

  • un Preset di esportazione, specificando sia le Textures che vogliamo generare sia il loro schema di nomi;
  • un Template di creazione di un nuovo progetto, in modo tale da trovare sin da subito alcune impostazioni o informazioni (come ad esempio la risoluzione del progetto e i canali di informazione per ogni Texture Set) quando creeremo un nuovo progetto.

Bene, anche per questo tutorial è tutto! Come sempre, vi invito ad esprimere dubbi, domande o richieste di chiarimenti nei commenti al video, su Youtube. A presto!