Le proprietà che hanno riferimento sul piano (2D) o sullo spazio (3D), quali ad esempio la posizione e la scala, possono essere indirizzate in maniera puntuale all’interno delle espressioni.

I valori di una proprietà riferiti ai singoli assi cartesiani vengono rappresentati come un array (vettore) di variabili racchiuse tra parentesi quadre.

[value[0],value[1],value[2]] 

dove value[0] rappresenta il valore sull’asse x, value[1] il valore sull’asse y e se lavoriamo in 3D avremo anche value[2] che corrisponde di conseguenza al valore sull’asse z.

Vediamo con un esempio come muoversi all’interno dell’array.

Realizziamo una semplice animazione con due livelli. Tramite un controller (oggetto null) gestiamo l’animazione coordinata della rotazione dei due livelli sul centro della composizione semplicemente utilizzando la gerarchia (pick whip). La terza animazione è una rotazione sul proprio asse del livello esterno (sfera più piccola) realizzata con una semplice espressione che lega la rotazione del livello con quella del controller.

Ora vogliamo fare in modo che la sfera interna si muova lungo l’asse orizzontale in maniera proporzionale al variare della rotazione del controller.

L’idea è quella di legare con un’espressione la posizione del controller (che gestisce entrambe le sfere) con la rotazione del controller stesso.

Ma come possiamo notare dall’espressione il nostro array è rappresentato dal medesimo valore per entrambi i componenti (siamo nel piano 2D).

[value[0],value[1]]=[temp,temp]

dove temp è una variabile che rappresenta il valore di rotazione del controller. In pratica i valori di x e y variano e assumono lo stesso valore. Non è esattamente l’animazione che ci eravamo prefissati.

L’unica variabile che vogliamo animare è value[0] (asse x), mentre la sfera deve mantenere la posizione verticale (asse y) e quindi value[1] costante.

Per fare questo spegniamo momentaneamente l’espressione.

E modifichiamo l’array [temp,temp] sostituendo la seconda dimensione con la variabile value[1]. In questo modo l’asse y non sarà influenzato dalla rotazione del controller.

Sistemiamo infine l’animazione utilizzando un fattore moltiplicativo (*1.3) per accelerare il movimento e un offset (+250) per fare in modo di avere i livelli sempre visibili all’interno della composizione. 

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