Come gestiamo l’animazione di un rimbalzo (ad esempio di un pallone) su una superficie?

Innanzitutto occorre animare la posizione verticale (asse y) del livello. Per gestirla al meglio separiamo le dimensioni: tasto destro sulla posizione e scegliamo Dimensioni separate.

 

rimbalzo
rimbalzo

Facciamo attenzione alla posizione del punto di ancoraggio del livello (posizioniamolo in simmetria sugli assi).

Animiamo la posizione Y in modo da generare il rimbalzo: inseriamo due fotogrammi chiave identici ad inizio e fine animazione e due fotogrammi intermedi (anch’essi allo stesso valore) per stoppare di qualche frames l’animazione al punto di rimbalzo.

 

rimbalzo

Miglioriamo la nostra animazione utilizzando la regolazione automatica attacco/stacco (selezioniamo i fotogrammi chiave e clicchiamo su F9).

 

rimbalzo

Apriamo l’editor grafico e regoliamo le curve di Bezier dal grafico valori in modo da rendere più morbida la partenza dell’animazione e quindi enfatizzare l’effetto di accelerazione.

 

rimbalzo

Ora dobbiamo gestire l’effetto di schiacciamento dovuto al rimbalzo. 

Apriamo il parametro di scala e scriviamo una semplice espressione:

a = transform.scale[0]+(100-transform.scale[1])*2;

b = transform.scale[1];

[a,b]

 Questa espressione ci permette di controllare lo schiacciamento in modo da mantenere più o meno costante il volume del livello.

 

rimbalzo

Una volta inserita l’espressione animiamo la scala in modo da far partire lo schiacciamento un po’ prima del rimbalzo.

 

rimbalzo
rimbalzo
rimbalzo
rimbalzo

Ed ecco il risultato:

 

rimbalzo

Possiamo migliorare anche questa animazione utilizzando l’editor grafico e affinando le curve sui keyframes nei punti di rimbalzo.

 

rimbalzi

Naturalmente in alternativa all’animazione dei parametri di livello si può utilizzare un controller (oggetto null) sia per l’animazione di posizione sia per quella di scala.

 

rimbalzi
%d blogger hanno fatto clic su Mi Piace per questo: