2010-11-20 15 views
11

Se ho un modello 3d di corpo umano, che voglio animare camminare, qual è il modo migliore per raggiungere questo obiettivo? Ecco i possibili modi in cui vedo questa implementazione:Animazione OpenGL

  • Creare diversi modelli con le gambe in posizioni diverse e quindi interpolare tra questi modelli.
  • Caricare il modello in openGL e in qualche modo calcolare quali vertici corrispondono alle gambe ed eseguire le trasformazioni appropriate.
  • Implementare uno scheletro o un'armatura (simile a questo: blender animation wiki).
+0

Generalmente il modello importato contiene l'animazione. Perché hai bisogno di animarlo in OpenGL? Non dovrebbe essere gestito da un artista? –

+0

@Seth, lo sto facendo come un progetto personale. Quindi se il modello contiene l'animazione, ho solo bisogno di interpolare tra i diversi fotogrammi chiave che mi dà? –

+0

Sì, esattamente. Ci sono molte risorse a riguardo. http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System –

risposta

11

La tecnica che hai descritto nella prima opzione è chiamata animazione del bersaglio morph e spesso utilizzata per alcuni dettagli di animazione come l'animazione facciale o forse l'apertura e la chiusura delle mani.

La seconda opzione è un'animazione procedurale o fisica che funziona come la robotica in cui si dà al corpo del proprio personaggio una certa velocità per andare avanti e calcolare quali gambe devono fare per evitare di cadere. Ma non lo faresti direttamente sui vertici, ma sullo scheletro. Vedi il prossimo.

Terza opzione è l'animazione scheletrica che anima lo scheletro ei vertici la seguono secondo il set di regole. Il collegamento dei vertici allo scheletro si chiama scuoiatura.

Suggerisco che, dopo aver appeso materiale opengl (visualizzazione e posizionamento di modelli nello spazio, fotocamera, ecc.), Si inizia con l'animazione scheletrica.

Avrete bisogno di un modello truccato e animato per la vostra app 3d di scelta. Quindi puoi scrivere un esportatore nel tuo formato personalizzato o scegliere un formato che vuoi leggere dalla tua app. Quel formato di file dovrebbe contenere la descrizione del modello, dello scheletro, dello skin e dei fotogrammi chiave. Di quanto leggi e utilizzi i dati del tuo codice per creare mesh, scheletro e animare su fotogrammi chiave.

+0

+1 per un buon post. Personalmente, consiglierei i file .3DS perché i fotogrammi chiave dell'animazione, i dati scheletrici e il modello sono contenuti in un unico file. – Bojangles

2

Se fossi in te, scaricherò Blender dal http://www.blender.org e lavorerò attraverso alcuni tutorial di animazione. Ad esempio, questo:

http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation

Dopo aver fatto questo, è possibile quindi esportare il modello e animazioni usando per esempio l'esportatore di Ogre. Penso che questo è l'ultima versione, ma verificare che:

http://www.ogre3d.org/tikiwiki/Blender+Exporter&structure=Tools

Da lì, basta scrivere il codice C++ per caricare tutto, interpolare tra i fotogrammi chiave, ecc Ho codice che posso mostralo per questo se sei interessato.

+0

Devo aggiungere che è stato necessario un po 'di cura e di giocherellare per far funzionare tutto quando l'ho fatto, ma si può fare :) –

+0

grazie, avevo già seguito il tutorial che hai citato, darò un'occhiata al esportatore di orchi. –

+0

@StuartGolodetz Mi piacerebbe vedere il codice, per favore? –

Problemi correlati