Come vengono creati i modelli 3D nei videogiochi?


15

Come vengono progettati e visualizzati i modelli 3D nei giochi? È tutto codice? Disegnato su carta, quindi su un software di grafica 3D, quindi ... cosa?

Naturalmente, i programmatori di giochi non definiranno tutti i vertici di ogni forma (/ oggetto) che vogliono essere disegnati, tutti nel codice (sia in Direct3D o OpenGL.) Quindi, i progettisti di giochi hanno strumenti da usare, come Maya o qualcosa del genere di software grafici 3D proprietari là fuori; "disegnano" il modello in quel software, lo esportano in qualunque formato, quindi i programmatori lo analizzano tramite codice e inseriscono automaticamente i vertici grezzi decodificati / analizzati dell'oggetto / modello?

Ho cercato su Google molto ma non sono riuscito a trovare qualcosa di solido per spiegare come si lavora su questo aspetto dei videogiochi professionali.


2
Ecco una documentazione abbastanza realistica del processo artistico: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard

Hmm ... questo potrebbe essere considerato troppo ampio per essere risposto, o non costruttivo. Ma allo stesso tempo sembra ragionevole chiedere a qualcuno che non si è mai avvicinato a Gamedev e vuole iniziare ad imparare, e si potrebbe dare una buona risposta. Quindi, non sono sicuro se questo dovrebbe essere chiuso o meno.
Laurent Couvidou

1
Di solito le persone che fanno i modelli sono chiamate artisti , non designer : artista del personaggio, artista dell'ambiente, animatore ... Il progettista del gioco è più sulla progettazione del gioco reale , delle sue regole, ecc.
Laurent Couvidou,

Risposte:


16

In tutti i giochi a cui ho lavorato, la pipeline di creazione di asset funziona in questo modo:

  1. l'artista del concept (per livelli / sfondi / modelli di livello) o l'artista del personaggio (per modelli) genererà schizzi per personaggi / livelli / ecc. di solito vengono date più opzioni al direttore creativo / lead art per decidere quale gli piace di più.
  2. L'arte concettuale / personaggio che è stata approvata è data a un modellatore da usare come riferimento. A volte il personaggio / profilo aggiuntivo sull'arte viene realizzato dall'artista del personaggio per fornire una cornice più pulita o un riferimento per il processo di modellazione. Ho visto molti modellisti con la concept art bloccata in 3d max / maya / etc come riferimento diretto.
  3. I modellatori in genere generano anche le trame di base per il modello, di solito con i materiali shader corretti per il runtime. gli shader sono usati per rendere il modello nel gioco e possono avere specifici requisiti di texture / uv / etc che devono essere forniti dal modellatore o dall'artista di texture assegnato.
  4. Sarà compito del progettista di livelli mettere insieme le risorse per "costruire" il livello stesso.

    È insolito che un intero livello sia costruito come un singolo pezzo di geometria. La maggior parte dei livelli sono costituiti da pezzi o sezioni. (es: famigerato ha usato una serie di "tessere" esagonali http://www.gamasutra.com/php-bin/news_index.php?story=118581 e skyrim (e molti altri) usano un approccio in stile lego per mettere insieme i livelli http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Di solito c'è un editor di livelli con alcune descrizioni coinvolte in questo processo, anche se molti giochi hanno usato i modellatori 3d come "editor di livelli" per installare risorse create in precedenza.

  5. Una volta fatto tutto ciò, le risorse vengono in genere elaborate dalla Toolchain che trasforma i file compatibili con 3D Modeler in dati pronti per il gioco che possono essere caricati direttamente in Runtime.

    Le toolchain (il bit che prende le risorse grezze e le trasforma in dati pronti per il gioco) sono spesso alcuni dei pezzi di ingegneria più complicati nello sviluppo del gioco. Devono parlare con molte applicazioni diverse, comprendere molti formati di file diversi e anche capire come trasformare i dati in un formato più efficiente e immediatamente utilizzabile. Le toolchain in genere eseguono anche pre-passaggi di illuminazione, saldatura dei vertici, generazione di LOD e così via. Spesso la costruzione dell'intero set di dati per un grande gioco AAA richiederà molto tempo, spesso più di 8 ore per una ricostruzione completa. Quindi Toolchain in genere contiene anche l'elaborazione distribuita per distribuire il carico su tutti i PC dell'intero studio.

    Il runtime è il gioco stesso. L'eseguibile che gira sul tuo PC o console. All'interno del runtime ci sarà un sistema chiamato Resource Manager. È compito del Resource Manager caricare le risorse richieste da altri sistemi all'interno del gioco.

    Ad esempio: quando si comunica al carico del gioco in un livello, i metadati del livello forniranno al gestore risorse un elenco di quali risorse devono essere caricate per visualizzare il livello. Allo stesso modo, ogni risorsa conterrà un elenco di eventuali trame, materiali o risorse secondarie che devono essere caricate.

  6. Una volta che tutto è effettivamente caricato nella memoria. Il gioco invierà oggetti che sono visibili al Renderer che interagirà quindi con l'API utilizzata per disegnare effettivamente gli oggetti sullo schermo.

I programmatori possono (e fare) generare manualmente informazioni sui vertici. Questo è in genere chiamato "Rendering in modalità immediata". Non è molto efficiente e viene utilizzato solo per situazioni in cui non è possibile utilizzare dati di vertice pre-generati o manipolati dallo shader. Ad esempio: rendering dell'interfaccia utente, quad a schermo intero.

In genere il 99% degli oggetti sullo schermo saranno informazioni di vertice pre-generate rese in modalità "Conservata", con gli shader che eseguono qualsiasi manipolazione richiesta. Ad esempio: animazione con la pelle


7

Ecco una risposta semplice: fanno tutto nelle applicazioni grafiche 3D come Maya o 3DS Max. Per prima cosa fanno alcune concept art (su carta), secondo loro creano modelli, trame (in Photoshop o qualcosa del genere). Anche le animazioni semplici vengono eseguite integralmente nel software, le animazioni più complesse vengono eseguite tramite Motion Capture e quindi mappate sul modello. Per l'animazione di solito usi l'animazione Skeleton.

Tutti questi dati vengono salvati in file.

All'inizio del gioco, analizza tutti questi file e carica modelli, trame, animazioni. E quando è necessario, li visualizza.


1
Penso che ci sia un po 'di programmazione necessaria per trasformare fluidamente un'animazione in quella successiva, quindi quando vieni sparato nel mezzo di un salto non sembra strano
Thomas

3
@Thomas, Blend trees. Penso. Ma quelli sono come sistemi di "interpolazione" che sono costruiti come estensione in un motore di gioco. Non necessariamente creato all'interno di modelli 3D. Fondamentalmente dirottano i dati di animazione e si interpolano tra i dati con poteri magici.
Sidar,

Si. Sicuro. Devi caricare, analizzare e in qualche modo rappresentare il modello. Anche in qualche modo disegnarlo sullo schermo. Quindi sicuramente - devi fonderti tra l'animazione. Di solito usi anche una cinematica inversa, ma sono problemi più specifici.
Zacharmarz,

2
Se solo fondere alberi e animare il morphing fosse semplice come "l'interpolazione". Esistono diverse soluzioni di middleware costose di fascia alta là fuori solo per gestire questo specifico dominio di problemi.
Sean Middleditch,

4

I programmatori possono effettivamente definire ogni vertice individualmente, se lo desiderano. Questo, ovviamente, non è mai il caso, a meno che non stiano facendo una sorta di demo cubo di base. Normalmente, ciò che viene salvato nei file del modello è qualcosa sulla falsariga di un elenco di vertici che il programmatore può facilmente collegare facilmente al proprio codice di disegno del modello. C'è ovviamente molto più di questo, ma fondamentalmente i formati dei modelli stanno dando "istruzioni" indirette su come disegnare un certo modello.

In molti casi, e per molti formati di file modello, il lato della codifica è stato fatto per te. Esistono anche alcuni formati di modelli basati su testo, con il relativo codice di disegno, che rendono abbastanza facile per un programmatore amature seguire come il modello viene tradotto in codice.

Non sono mai stato io a scrivere questo codice, quindi è possibile che alcuni dettagli della mia spiegazione siano spenti.


2

Ho lavorato da solo per provare a mettere insieme un gioco. Posso darti un semplice elenco dei programmi che utilizzo.

Modellazione: 3D Coat, modo

Rigging: modo

Trame: GIMP, Inkscape

Game Engine: Unity

Ovviamente questo è un piccolo elenco di applicazioni, ma per me funzionano e sono convenienti per gli sviluppatori hobbisti e indipendenti.


2
-1 Fornire un elenco di applicazioni utilizzate non descrive il processo. Questa domanda non riguarda il software specifico, riguarda il modo in cui sono realizzati, non solo ciò con cui sono realizzati.
MichaelHouse
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.