Tutto quello che riguarda l'arte del Cinema, nei suoi diversi aspetti.

 

Gli articoli riguardanti tutte le fasi dello sviluppo di un video: dalla sceneggiatura alla post-produzione.

 

Le anteprime hardware e software recensite per voi dai nostri esperti.

Login

Ciao Visitatore.






Password dimenticata?
Nessun account? Registrati

Chi è Online

Abbiamo 7 visitatori e 2 utenti online
Home arrow Tutorials arrow After Effects Expressions | part 2
After Effects Expressions | part 2 Translate in English Stampa E-mail
di VO5850   
lunedì 24 dicembre 2007



9. innanzi tutto modifichiamo la nostra expression in questo modo:


thisComp.layer(index-1).transform.position-[260,0]


abbiamo visto nella prima parte come in questo modo l’expression, andrà a campionare i valori del layer immediatamente sovrastante nella composition.


10. ora duplichiamo n volte il layer “frame_01” vedremo come tutti i layers andranno a disporsi lungo uno stesso asse orizzontale a 10 px di distanza l’uno dall’altro.

 


Possiamo anche modificare la posizione gerarchica dei layers nella timeline e automaticamente questi andranno a disporsi nella posizione stabilita, equidistanti l’uno dall’altro. Ma ancora non abbiamo ottenuto del tutto il risultato che ci eravamo prefissati, infatti se modifichiamo la dimensione dei layers, come da menu Layer > Solid Settings (CTRL+SHIFT+Y), dovremmo ancora modificare di conseguenza tutte le expressions manualmente, possiamo risolvere il problema scrivendo l’expression nel modo seguente:


thisComp.layer(index-1).transform.position-[thisComp.layer(index-1).width+10,0]


scrivendo così l’expression indichiamo al programma di sottrarre alla position[1] la lunghezza del layer immediatamente precedente - thisComp.layer(index-1).width - più i 10 px di distanza, dunque modificando la dimensione dei layers l’expression automaticamente si adatterà alle nuove misure. Questa soluzione funziona perfettamente se i layers sono tutti delle stessa misura ma se hanno dimensioni diverse allora dobbiamo scrivere l’expression in questo modo:


thisComp.layer(index-1).transform.position-[(thisLayer.width+thisComp.layer(index-1).width)/2+10,0]


Notare come racchiudendo la somma delle lunghezze dei layer fra parentesi tonda - (thisLayer.width+thisComp.layer(index-1).width)/2 - forziamo il programma a calcolare prima la somma e poi dividere per due il risultato, senza parentesi l’expression sommerebbe alla lunghezza del layer su cui è applicata la metà della lunghezza di quello precedente. Ora per completare l’opera facciamo in modo di poter controllare la distanza fra i layers dinamicamente con un Expression Control, in questo caso uno Slider Control:


11. applicare al layer “master” uno Slider Control (menu Effect > Expression Controls > Slider Control)
12. rinominiamo lo Slider Control “space”
13. editare l’expression nel layer “frame_01” selezionando nella finestra di testo dell’expression il valore 10 e con il pickwhip selezionare lo Slider Control “space”, in questo modo avremo sostituito al valore 10 la stringa che segue:


thisComp.layer(“master”).effect(“space”)(“Slider”)


ottenendo questa expression:


thisComp.layer(index-1).transform.position-[(thisLayer.width+thisComp.layer(index-1).width)/2+thisComp.layer(“master”).effect(“space”)(“Slider”),0]


14. animiamo ora lo Slider Control “space” con due keyframes per far si che la distanza dei layer vari da 10px a 50 per poi tornare a 10.

 



In questo modo abbiamo ottenuto il risultato che ci eravamo prefissati. I layers mantengono la stessa distanza fra di loro e possiamo variarla anche dinamicamente con lo slider, qualunque sia la loro dimensione. Però l’expression che ne risulta è tutt’altro che elegante e chiara. Per renderla più comprensibile e facilmente editabile possiamo scrivere l’expression in questo modo:


s=thisComp.layer(“master”).effect(“distance_increment”)(“Slider”);

d=(thisLayer.width+thisComp.layer(index-1).width)/2+s;

x=thisComp.layer(index-1).position[0]-d;

y=thisComp.layer(index-1).position[1];

[x,y]


Abbiamo scritto la stessa expression in forma multi linea e introdotto un nuovo elemento, le variabili. L’expression sostanzialmente non cambia ma questa forma può essere estremamente più comoda e, nel caso di expressions complesse, scritte in questo modo risultano più chiare e facilmente editabili.