Game Design

Studi ed Articoli con eseguibili e codice sorgente

Retargeting animazione in Unity3D

Per creare una nuova animazione o una nuova posa da applicare a un personaggio già creato e già possessore di precedenti animazioni, come nel caso del progetto di una moto dove al personaggio del gioco deve essere aggiunta l'animazione e la posa per guidarla procedere come segue:

 

Importare in 3D studio il modello con lo scheletro del personaggio, e posizionarlo nella posa desiderata

Una volta posizionato il modello nella posa desiderata nascondere tutte le mesh tranne lo scheletro del modello del caracter come nella figura seguente

A questo punto, sia che si abbia solo un fotogramma di questa posa o tutta una sequenza di animazione che porta il personaggio da una posa "in piedi" a questa "seduta per la guida" occorre esportare solo l'animazione e lo scheletro per poterlo applicare (retargeting) allo stesso modello del gioco (o a qualsiasi altro modello che abbia lo stesso tipo di scheletro). Per farlo basta andare nel menu "esporta selezionati" e nel pannello FBX selezionare "animazioni" e "Bake Animazioni" come nella figura seguente

A questo punto andare in Unity e creare una sotto cartella nel proprio package del personaggio dove si sono salvate le altre animazioni del personaggio, per esempio chiamandola Drive

Trascinare quindi in questa cartella il file FBX esportato da 3dStudio Max

A questo punto cliccanso sull'asset posaPilota occorre impostare un avatar per far combaciare lo scheletro con quello del personaggio. Siccome abbiamo già l'avatar del personaggio selezioniamo copia avatar e scegliemo quello del personaggio su cui fare il retargeting dell'animazione

A questo punto già nella finestra di anteprima si può vedere il nostro personaggio nella posa di quello esportat, come vedere si tratta cmq di mesh differenti ma che hanno la stessa struttura standard dello scheletro

Assegnare un nome al clip di animazione, in questo caso di un solo fotogramma, in modo da poterlo successivamente assegnare a un animator

Nell' animator controller creare un nuovo stato di animazione, chiamato ad esempio GuidaMoto

E assegnargli come animazione quella appena creata "PosaGuidaMotoBipede"

 

on resta che creare una transizione da uno stato esempio IDLE a GuidaMoto e l'animazione potrà essere invocata da script settando la variabile "guidaMoto = true"

 

A Questo punto occorre passare allo scripting.

Vedremo nel prossimo post.

© 2018 sito prototipale studio di GiuseppeGi