Community Forum Tutorials e guide Tutorials e guide modellazione, modificatori e strumenti Tutorial: Come Realizzare un Modello GameReady

Stai visualizzando 13 post - dal 1 a 13 (di 13 totali)
  • Autore
    Post
  • #577641
    Fangetto
    Membro
    @fangetto

    Ciao, ho deciso di realizzare questo tutorial per fornire a chi vuole cimentarsi nella creazione di game asset una buona base tecnica, non su come si modella un oggetto, ma le tecniche da me utilizzate per finalizzarlo in ottica di farlo diventare un game asset di buona qualità partendo da un modello grezzo.

    Partiamo spiegando come è un game asset, ho notato che i modelli gameready spesso vengono accomunati all’essere LowPoly, questo non è vero o meglio un modello lowpoly è quasi sicuramente un modello gameready, ma un game asset non deve essere necessariamente lowpoly, un modello gameready può avere 200.000 triangoli e quindi essere highpoly, la differenza tra una asset gameready ed un asset da rendering sta nel come sono utilizzati questi triangoli, ovvero nella topologia e nell’ottimizzazione in generale.

    Il modello che ho scelto per fare questo tutorial è un pozzo medievale.

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Come potete vedere è un modello abbastanza semplice ma mi permetterà illustrare diverse tecniche di ottimizzazione e di modellazione.

    Iniziamo parlando degli spigoli, ci sono diversi modi di realizzarli:

    1. Hard Edge che consiste nel marcare hard edge lo spigolo o disconnetterlo (se qualcuno spiega a me come marcarlo hard edge in Blender mi fa un grosso favore, marcandolo come sharp edge non funziona io li disconetto utilizzando edge split)
    2. Facendo un classico bevel e quindi smussandolo (Ctrl+B)
    3. Spigolo a 2 Edge smooth
    4. Spigolo a 2 Edge sharp
    5. Spigolo a 3 Edge

     

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

     

    Ognuna di queste opzioni ha il suo peso in vertici,partendo dal fondo:

    1. 8 vertici
    2. 10 vertici
    3. 8 vertici
    4. 12 vertici
    5. 10 vertici

    Le tecniche utilizzate per i game asset di norma sono la 3 e la 5 o variazioni di queste, la 1 si utilizza nel low poly o quando si realizza un dettaglio molto piccolo. La 4 si può utilizzare in alcuni casi quando un particolare è piccolo e si vuole ottenere la riflessione a specchio della faccia, quando il particolare è grande è preferibile utilizzare la 3 e la 5 insieme (se non si è capito a me gli hard edge non piacciono proprio…).

    La modellazione per Realtime è inoltre un “gioco di inganni” imparando a padroneggiare le normali sfruttando le tecniche sopra descritte si riesce a far sembrare una cosa per quello che non è.

    E che vuol dire? Questo:

     

    Come si può vedere dal rendering gli oggetti sembrano pressochè identici ma in realtà come si vede dal wireframe sono profondamente diversi quello sulla sinistra è un cilindro con la base inferiore scalata verso l’interno il vertice centrale abbassato, e con il loop della base ottimizzato, quello sulla destra è la parte inferiore di una sfera, il rapporto di triangoli è di 1 a 3 per avere praticamente lo stesso risultato.

    Passiamo adesso al pozzo e vediamo come, quando e perchè applicare queste tecniche.

    Come prima cosa ho fatto una riduzione poligonale, andando verso il centro del pozzo, (in questo caso non sarebbe stata necessaria fatta in questo modo ma la ho fatta come esempio, infatti alla fine la ho rimossa).

    Nelle immagini che seguono vorrei farvi notare la differenza che c’è fra l’opzione 2,4 e 5.

    Opzione 2

     

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Se guardate il piano del pozzo si nota come la superficie non sembri piana ma appaia stondata, si notano inoltre degli artefatti e delle distorsioni dei riflessi e delle ombre sia sul piano (gli artefatti sono causati dalla riduzione poligonale),che nella parte interna del pozzo. Questo accade perchè le normali sia del piano che dell’interno del pozzo non sono ortogonali ma inclinate a causa del bevel.

    Opzione 4

     

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Nel caso di questa opzione sia il piano che l’interno del pozzo riflettono bene però se guardate attentamente gli spigoli, in diversi punti questi si confondono facendo perdere il profilo dell’oggetto (nella zona illuminata sulla sinistra si perde il bordo inferiore del piano, nella zona in ombra in alto a destra si perde il il confine piano del pozzo sul piano di backround.)

    Opzione 5

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Come si può vedere questa è l’opzione con il miglior risultato visivo, i riflessi e le ombre si comportano correttamente e l’oggetto è ben definito in tutte le sue parti.

    Questa opzione è utilissima anche quando si usano le subdivision nei modelli da rendering: i loop sopra e sotto lo spigolo fanno da loop di controllo per la deformazione della mesh lasciando la parte centrale completamente planare.

    Nell’immagine seguente ho applicato la stessa tecnica alla struttura portante e ho incassato uno dei pali (vedi parte in dettaglio) creando un perimetro intorno al foro e alla fine del palo per rendere le normali dell facce sia del montante che del palo planari, ho inoltre ridotto i poligoni usando il comando merge creando dei triangoli che però in questo modo (quando la superficie è planare) non causano il minimo artefatto.

     

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Realizzata la metà della struttura portante la ho “mirrorata” utilizzando il comando SYMMETRIZE (lo trovate cercandolo nel tab di ricerca, “barra spaziatrice”), e ho ottimizzato la geometria sempre con il comando merge, nel dettaglio si vede meglio la tecnica che utilizzo per incassare gli oggetti.

    Nella prossima foto si ho migliorato la forma della manovella e della manopola e ottimizzato il tutto.

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Lo step finale è stato fare il foro passante per l’albero, io non utilizzo le boleane se non sono costretto, in questo caso ho creato con il comando inset una faccia, la ho portata ad 8 vertici e ho usato il comando circle dell’addon looptools poi la messa in posizione, dopodiché ho copiato la faccia anteriore del pilastro e la ho sostituita alla posteriore.

     

    A Questo punto ho aggiunto un secchio e la corda

    Totale Vertici 2.758 Triangoli 5.346

    <b></b><i></i><u></u><span style=”text-decoration: line-through;”></span>

    Ora non resta che passare alle UV e poi Texturare

     

    #577642
    Fangetto
    Membro
    @fangetto

    Cominciamo a marcare i seam alla base del pozzo e l’albero, i seam devono rimanere il più nascosti possibile e dove possibile eliminarli facendo le UV ma questo lo vediamo dopo.

    Io procedo in questo modo:

    Marcando tutti gli spigoli della parte bassa del pozzo e facendo un taglio che “spezzi il cerchio”

    stessa cosa per l’albero

    Sia per la manovella che per le tavole del tetto ho distaccato la parte inferiore e messo dei tagli nei pressi delle curve/spigoli per favorirne lo srotolamento

    Stessi principi per la corda e il secchio

     

    Resta il montante e il supporto del tetto che ho cercato di far srotolare trattandoli come fossero un cilindro

    A questo punto procediamo con l’unwrap e armati di una buona dose di pazienza procediamo con la preparazione delle UV

    ci ritroveremo in una situazione simile a questa:

    Ovvero un casino totale con ampissimi spazi vuoti parti orientate un pò come gli pare ecc…non proprio il massimo

    Con la Santa Pazienza detta prima e i vari tool che ci mette a disposizione Blender e l’addon TexTools procediamo con il sistemare le cose… una cosa importante per ottimizzare le prestazioni di un modello in un game engine è il numero delle parti delle UV (non me lo stò inventando potete controllare sul manuale di Unity) meno isole ci sono meglio è.

    Utilizzando il comando rectify, riallineando le file di vertici, scalando dove necessario e usando il comando stitch soprattuto per capire cosa si attacca a cosa,dobbiamo riuscire a riattaccare il tutto il più possibile.

    Questo è il risultato finale che ho ottenuto

    Come si può vedere il Ratio della Checker Map è abbastanza regolare e privo di grosse distorsioni, utilizzando l’unwrap con i seam può capitare di non riuscire a sistemare le distorsioni, quando in questa situazione si individua l’isola sul modello e o si modificano i seam e si riprova con l’unwrap (solo sulle facce dell’isola) altrimenti si può utilizzare lo Smart UV Project per crearci i pezzi da riunire, in questo caso ho dovuto farlo sui 2 montanti dove a causa dei fori si creava una distorsione troppo pronunciata.

    Ora bisogna assegnare i materiali e creare la ID Mask facendo il bake del canale diffuse (o i materiali direttamente se si vuole fare le texture con Blender)

    sotto le impostazioni per il bake e la ID_Mask

    Fatta la ID_Mask per Substance painter si duplica il modello, si tolgono tutti i materiali e se ne crea uno nuovo che normalmente chiamo con il nome del modello (serve a Substance per dare il nome in automatico alle texture) poi si esporta il modello in Substance .

    Dopo il Texturing in Substance Painter ecco il risultato

    Spero che questo tutorial sia utile e grazie dell’attenzione se ve lo siete letto tutto

    #577663
    alex
    Partecipante
    @alexsdraub

    Bravo!

     

    #577688
    Fangetto
    Membro
    @fangetto

    Thanks Alex, aggiungo un barbatrucco per aggiungere geometria sulle curve, per fare questo serve l’addon YAVNE, un normal editor che anche se la gestione delle normali custom non è delle migliori in Blender ci permette di risolvere abbastanza bene.

    Una cosa importante è prima di aggiungere i dettagli aver finalizzato la mesh nelle sue parti, avere delle normali custom quando si edita non è una buona cosa, quindi prima di cominciare ad aggiungere i dettagli il modello deve essere finito e soprattutto “pulito”, in questo caso metterò un’asola al centro di un bevel ampio, (una delle cose più distruttive che si possa fare).

    nell’immagine sotto partendo da sinistra: il risultato finale, lo ho inserito anche a sinistra per confrontarlo con la curva originale, la curva originale, la curva con l’asola e ancora il risultato finale dopo aver “editato le normali”, lo metto fra virgolette perché non è un vero editing che è una cosa decisamente più laboriosa.

     

    Una piccola nota nell’immagine sopra mi sono dimenticato di applicare il transfer sulle facce centrali, infatti sembrano bozzate, comunque sia il render che la procedura sono corrette.

    Vediamo cosa succederebbe in fase di Rendering

     

     

    come si può vedere la versione non editata riflette malissimo, mentre le versioni dopo la cura (le due esterne) riflettono correttamente.

    Passiamo al come si sistema questo problema, come detto all’inizio è un barbatrucco quindi semplicissimo da realizzare, ecco cosa dobbiamo fare:

    Dal nostro oggetto base duplichiamo e distacchiamo la parte dove dovremo fare la modifica (“Shift+D” per duplicare e “P” per distaccare)

    Facciamola nostra modifica

    selezioniamo tutte le facce escluse quelle dei loop aggiunti

    in YAVNE selezioniamo l’oggetto che abbiamo creato distaccando le facce

    clicchiamo su Transfer Shading

    Non male vero?

     

    #577746
    3REBELL
    Membro
    @3rebell

    ciao

    ottima guida

    #577776
    Marco Santoriello
    Partecipante
    @marcosantoriello

    Grazie mille Fangetto, sei un grande

    #577803
    Fangetto
    Membro
    @fangetto

    Felice che vi piaccia, devo realizzare alcuni edifici e a breve aggiungerò la modellazione modulare sfruttando i Mesh Data-Block e il concetto di LOD (Level of Detail) sia a livello di oggetto (lo switch del modello in game), a livello di modellazione per evitare lavoro inutile quando si realizza un modello avendo già presente come verrà visualizzato in game e a livello di texture.

     

    #577815
    Samaritan
    Membro
    @norman

    Ciao Scusami, fino all’unwrap ci sono arrivato quello che non riesco a capire è cosa bisogna fare dopo. Nel senso una volta che ho creato la mappatura uv se voglio fare il painting e il texturing su substance painter cosa devo fare ?

    #577817
    Fangetto
    Membro
    @fangetto

    Ciao, devi aver chiaro il concetto di baking, io utilizzo questo workflow con la creazione dei materiali per creare la ID_Mask in Blender per meglio riuscire a isolare le isole delle UV (bellissimo isolare le isole….), lo preferisco perché una volta in substance se 2 materiali divisi dalla id mask condividono la stessa isola UV lo stacco fra i 2 materiali non è detto che venga pulito.  Tutto questo puoi anche farlo utilizzando il vertex color e facendo creare la id mask direttamente in substance.

    Per capire il perché viene fatta questa operazione devi sapere cosa è la ID Mask in Substance e come lavorare con Substance usandola per l’assegnazione dei materiali.

    Non c’è un altro modo di spiegare “bisogna assegnare i materiali e fare il baking del diffuse” senza dover spiegare cosa sono i materiali e come assegnarli o come utilizzare lo strumento per il bake,

    per il baking puoi guardare questo link https://www.youtube.com/watch?v=Tj-S5QAac3U

    i materiali sono spiegati nel corso base

     

    #577863
    Nobinberg
    Partecipante
    @nobinberg

    Grazie mille per questo tutorial!!! Sto giusto cercando in questi mesi di realizzare degli asset gameready (nel mio caso un set di armi medievali) e questa guida mi tornerà molto utile, insieme all’addon TexTools che finora non conoscevo! Avevo giusto un po’ di terrore all’idea di maneggiare delle UV map complesse come possono essere questa del pozzo o quelle delle armi che sto facendo che sono ben lontane dall’essere lowpoly! 😀

    #578673
    Marco Santoriello
    Partecipante
    @marcosantoriello

    Ho finalmente trovato un po’ di tempo per seguire questo tutorial (per il quale ti ringrazio ancora)… non riesco a capire come hai fatto ad avere quella geometria “triangolosa” (come si vede per esempio in “opzione 5”

     

    #578697
    Fangetto
    Membro
    @fangetto

    Ciao credo di aver usato (quasi sicuramente) edge collapse, comunque o quello o il merge, normalmente utilizzo quelli se devo diminuire, altrimenti subdivide con l’opzione quad/tri Mode attiva se devo aumentare la definizione.

    #578707
    Marco Santoriello
    Partecipante
    @marcosantoriello

    Peerfetto, grazie mille ancora 😀

Stai visualizzando 13 post - dal 1 a 13 (di 13 totali)
  • Devi essere connesso per rispondere a questo topic.