Le espressioni

Se desiderate creare e collegare animazioni complesse, ma volete evitare di creare decine o centinaia di fotogrammi chiave a mano, provate a usare le espressioni. Un’espressione è come una piccola porzione di software, simile a uno script, che viene calcolata fino a restituire un singolo valore per la proprietà di un singolo livello in una posizione temporale specifica. Mentre gli script dicono a un’applicazione di fare qualcosa, un’espressione specifica che una proprietà è qualcosa.

Con le espressioni potete creare relazioni tra le proprietà di un livello e utilizzare i fotogrammi chiave di una proprietà per animare in modo dinamico altri livelli. Ad esempio, potete utilizzare il selettore per collegare le proprietà di un tracciato, in modo che la maschera possa utilizzare il tracciato di un tratto pennello o di un oggetto livello forma.

Il linguaggio delle espressioni è basato sul linguaggio JavaScript standard, ma non è necessario conoscere JavaScript per usarle. Potete creare espressioni usando il selettore o copiando esempi semplici e modificandoli in base alle vostre esigenze.

Nota:

Due fonti di espressioni di esempio sono il progetto modello Campionatore di espressioni (File > Sfoglia modelli di progetto) e predefiniti per animazione nella categoria Comportamenti (Animazione > Sfoglia impostazioni predefinite).

I predefiniti di animazione possono includere espressioni o essere costituiti addirittura interamente da un’espressione. I predefiniti di animazione che utilizzano le espressioni anziché i fotogrammi chiave sono talvolta denominati comportamenti.

Dopo aver aggiunto un’espressione a una proprietà, potete continuare ad aggiungere o modificare i fotogrammi chiave per la proprietà. Un’espressione può utilizzare il valore di una proprietà determinato dai relativi fotogrammi chiave adoperandolo come input per generare nuovi valori modificati. Ad esempio, la seguente espressione sulla proprietà Rotazione di un livello aggiunge 90 gradi al valore della proprietà Rotazione, oltre al movimento suddiviso in fotogrammi chiave:

  value + 90

Alcuni metodi (come la deformazione) agiscono direttamente sui valori suddivisi in fotogrammi chiave della proprietà. Consultate Attributi e metodi delle proprietà (riferimento espressioni).

La seguente espressione nella proprietà Posizione di un livello mantiene il movimento suddiviso in fotogrammi chiave del livello e fa sì che esso si deformi leggermente:

  wiggle(10, 10)

Nota:

L’uso dell’espressione wiggle spesso è molto più veloce e semplice dell’uso dello strumento Deformazione.

Quando animate il testo potete usare il selettore Espressione per specificare in quale misura desiderate che una proprietà di animatore influenzi ciascun carattere di testo. Potete aggiungere uno o più selettori Espressione a un gruppo di animatori e quel gruppo di animatori può contenere una o più proprietà.

Utilizzo delle espressioni

Potete creare intere espressioni digitandole o utilizzando il menu Lingua espressione oppure il selettore. È inoltre possibile incollare un’espressione copiandola da un esempio o da un’altra proprietà.

Potete eseguire tutte le operazioni necessarie relative alle espressioni nel pannello Timeline, ma a volte può risultare più comodo trascinare il selettore su una proprietà nel pannello Controlli effetti. Le espressioni vengono immesse e modificate nel campo dell’espressione, un campo di testo ridimensionabile all’interno del grafico del tempo. Il campo espressioni è visualizzato di fianco alla proprietà nella modalità barre livello, mentre è visualizzato nella parte inferiore dell’editor grafico in modalità Editor grafico. Potete scrivere un’espressione in un editor di testo e copiarla nel campo espressioni. Aggiungendo un’espressione a una proprietà livello, il campo espressioni visualizza un’espressione predefinita. Essenzialmente, l’espressione predefinita non fa nulla, in quanto imposta il valore della proprietà su se stessa, il che semplifica il perfezionamento dell’espressione.

Interfaccia espressioni nel pannello TImeline in modalità barre livello
Interfaccia espressioni nel pannello TImeline in modalità barre livello

A. Switch Attiva espressione B. Pulsante Mostra grafico post-espressione C. Selettore D. Menu Lingua espressione E. Campo Espressioni 

Durante la modifica di un’espressione sono sospesi tutti i tipi di anteprima. Viene visualizzata una barra rossa nella parte inferiore dei pannelli in attesa dell’uscita dalla modalità di modifica del testo.

I valori di una proprietà che contiene un’espressione sono visualizzati in rosso o in rosa.

Un valido metodo per iniziare a lavorare con le espressioni consiste nel creare un’espressione semplice con il selettore, quindi modificare il comportamento dell’espressione mediante semplici operazioni matematiche come quelle riportate nella tabella seguente:

Simbolo

Funzione

+

Aggiungi

-

Sottrai

/

Dividi

*

Moltiplica

*-1

Esegue l’opposto dell’originale, ad esempio in senso antiorario anziché orario

Potete ad esempio raddoppiare il risultato digitando *2 alla fine dell’espressione, oppure dividere a metà il risultato digitando /2 alla fine dell’espressione.

Man mano vi abituerete a modificare le espressioni e potrete combinare queste semplici operazioni e utilizzarne delle altre. Potete ad esempio aggiungere /360*100 alla fine di un’espressione per modificare il relativo intervallo da 0-360 a 0-100. Questa modifica è utile se desiderate convertire i valori di una manopola a 360° in un dispositivo di scorrimento misurato in percentuali.

Il menu Lingua espressione nel pannello Timeline contiene gli elementi relativi alla lingua specifici di After Effects che è possibile usare in un’espressione. Questo menu serve per determinare gli elementi validi e la loro sintassi corretta; usatelo come riferimento per gli elementi disponibili. Quando scegliete un oggetto, attributo o metodo dal menu, After Effects lo inserisce automaticamente nel campo espressioni nel punto di inserimento. Se il testo è selezionato nel campo dell’espressione, il nuovo testo dell’espressione sostituisce il testo selezionato. Se il punto di inserimento non è presente nel campo dell’espressione, il nuovo testo dell’espressione sostituisce tutto il testo presente nel campo.

Il menu Lingua espressione elenca gli argomenti e i valori predefiniti. Questa convenzione consente di ricordare facilmente quali elementi è possibile controllare scrivendo un’espressione. Ad esempio, nel menu Lingua, il metodo Deformazione nella categoria Proprietà è visualizzato come wiggle(freq, amp, octaves=1, amp_mult=.5, t=time). Tra le parentesi che seguono wiggle sono elencati cinque argomenti. Il segno = negli ultimi tre argomenti indica che l’uso di questi argomenti è opzionale. Non specificando alcun valore per essi, si applicano le impostazioni predefinite, vale a dire rispettivamente 1, .5 e il tempo corrente.

Nota:

Sostituite i nomi degli argomenti creati dal menu Lingua espressione con i valori effettivi.

Jeff Almasol fornisce uno script che elabora automaticamente le espressioni, apportando le modifiche specificate. Ad esempio, lo script può essere utilizzato per rimuovere automaticamente o attivare le espressioni disattivate. Per informazioni in merito, consultate il sito Web di Jeff Almasol.

Aggiungere, disattivare, collegare o rimuovere un’espressione

  • Per aggiungere un’espressione a una proprietà, selezionate la proprietà nel pannello Timeline e scegliete Animazione > Aggiungi espressione o premete Alt+Maiusc+= (Windows) o Opzione+Maiusc+= (Mac OS); oppure tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul pulsante cronometro  accanto al nome della proprietà nel pannello Timeline o nel pannello Controlli effetti.
  • Per collegare un insieme di proprietà in più livelli e composizioni, potete usare i collegamenti delle proprietà.
    Selezionate una proprietà o un set di proprietà e scegliete Modifica > Copia con collegamenti proprietà o Modifica > Copia con collegamenti proprietà relativi, quindi incollate le proprietà su un altro livello nella composizione. Le proprietà incollate restano collegate al livello da cui sono state copiate. Le modifiche apportate alla proprietà originale verranno quindi riportate in tutte le istanze dei collegamenti di proprietà incollati.
    Potete anche copiare un intero livello con i collegamenti proprietà e incollarlo per creare duplicati a cui verranno applicate le modifiche apportate all’originale.

    Il comando Copia con collegamenti proprietà relativi è simile al comando Copia con collegamenti proprietà, ma crea espressioni che non fanno riferimento alla composizione sorgente per nome. Viene piuttosto mantenuto un collegamento relativo tra il livello contenente l’espressione e la composizione contenente il livello. Utilizzate questo comando se, ad esempio, desiderate spostare i livelli con espressioni da una composizione a un’altra e desiderate che i livelli contengano i riferimenti solo a un livello di controllo nella stessa composizione. Le espressioni create con il comando Copia con collegamenti proprietà relativi sono identici a quelli creati con il selettore espressioni.

    Quando si copia la proprietà Posizione di un livello con il comando Copia con collegamenti proprietà relativi si ottiene il seguente risultato:

    thisComp.layer("control_layer").transform.position

    Quando si copia la proprietà Posizione di un livello con il comando Copia con collegamenti proprietà si ottiene il seguente risultato, con un riferimento specifico alla composizione sorgente del livello nell’espressione:

    comp("source_comp").layer("control_layer").transform.position

  • Per disattivare temporaneamente un’espressione, fate clic sullo switch Attiva espressione . Quando un’espressione è disattivata, sullo switch appare una barra .
  • Per rimuovere un’espressione da una proprietà, selezionate la proprietà nel pannello Timeline e scegliete Animazione > Rimuovi espressione oppure tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul pulsante del cronometro accanto al nome della proprietà nel pannello Timeline o nel pannello Controlli effetti.

Modificare un’espressione con il selettore

Se non avete familiarità con JavaScript o con il linguaggio delle espressioni After Effects, potete comunque sfruttare i vantaggi offerti dalle espressioni utilizzando il selettore. Potete trascinare semplicemente il selettore  da una proprietà all’altra per collegare le proprietà con un’espressione e il testo dell’espressione sarà immesso nel campo espressioni nel punto di inserimento. Se il testo è selezionato nel campo dell’espressione, il nuovo testo dell’espressione sostituisce il testo selezionato. Se il punto di inserimento non è presente nel campo dell’espressione, il nuovo testo dell’espressione sostituisce tutto il testo presente nel campo.

Trascinare il selettore su una proprietà
Trascinate il selettore su una proprietà per creare un collegamento al valore della proprietà.

Potete trascinare il selettore sul nome o sul valore di una proprietà. Eseguendo il trascinamento sul nome di una proprietà, l’espressione risultante visualizza tutti i valori insieme. Ad esempio, trascinando il selettore sul nome della proprietà Posizione, viene visualizzata un’espressione simile alla seguente:

  thisComp.layer("Layer 1").transform.position

Se trascinate il selettore su uno dei valori del componente della proprietà Posizione (ad esempio il valore y) viene visualizzata un’espressione simile alla seguente, nella quale sia le coordinate x che quelle y della proprietà sono collegate al valore y della proprietà Posizione:

  temp = thisComp.layer("Layer 1").transform.position[1]; 
  [temp, temp]

Se il livello, la maschera o l’effetto sul quale viene trascinato il selettore non è dotato di un nome univoco nel contesto locale, After Effects gli assegna un nuovo nome. Ad esempio, se due o più maschere sono denominate “Maschera” sullo stesso livello, trascinando il selettore su una di esse, After Effects la rinomina “Maschera 2."

Il formato delle espressioni create dal selettore è determinato dalla preferenza Il selettore espressioni usa inglese compatto, disponibile in Modifica > Preferenze > Generali (Windows) o After Effects > Preferenze > Generali (Mac OS). Per impostazione predefinita, il selettore crea espressioni in inglese compatto, le quali utilizzano i nomi per le proprietà così come essi appaiono nel pannello Timeline per le proprietà all’interno di un’espressione. Poiché tali nomi sono codificati nell’applicazione e non cambiano mai, le espressioni sono in grado di funzionare anche quando After Effects viene eseguito in un’altra lingua. I nomi delle proprietà che è possibile modificare sono racchiusi tra virgolette doppie e rimangono invariati in qualsiasi lingua. Se non si prevede di condividere i progetti con altre lingue, è possibile deselezionare questa preferenza. Questa preferenza non influisce sui nomi o sulle proprietà degli effetti.

Viene riportato di seguito un esempio di inglese compatto:

  thisComp.layer("Layer 1").transform.position

Questa è la stessa espressione, non espressa in inglese compatto:

  thisComp.layer("Layer 1")("Transform")("Position")

Nota:

Poiché l’impostazione predefinita usa l’inglese compatto, questo documento utilizza l’inglese compatto nella maggior parte degli esempi e delle illustrazioni.

  1. Trascinate il selettore su un’altra proprietà nel pannello Timeline o Controlli effetti.
  2. Se desiderate, modificate l’espressione predefinita nel campo espressioni.

Nota:

Se utilizzate il selettore per creare un’espressione per fare riferimento a un livello e il livello ha lo stesso nome di un altro livello nella stessa composizione, il nome del livello di destinazione cambia. Il nuovo nome del livello è il vecchio nome del livello con un numero alla fine. Questa modifica è necessaria per assicurarsi che l’espressione faccia riferimento in modo non ambiguo a un singolo livello nella composizione.

Modificare manualmente un’espressione

  1. Attivate la modalità di modifica testo facendo clic nel campo espressioni.

    Nota:

    Quando passate in modalità di modifica del testo, viene selezionata l’intera espressione. Per aggiungere elementi all’espressione, fate clic nell’espressione per posizionare il punto di inserimento: in caso contrario sostituirete l’intera espressione.

  2. Digitate e modificate il testo nel campo espressioni utilizzando, se lo desiderate, il menu Lingua espressione.

    Nota:

    Per visualizzare una parte maggiore di un’espressione su più righe, trascinate la parte inferiore o superiore del campo espressioni per ridimensionarlo.

  3. Per uscire dalla modalità di modifica del testo e attivare l’espressione, effettuate una delle seguenti operazioni:
    • Premete Invio sul tastierino numerico.

    • Fate clic all’esterno del campo espressioni.

Esempio: uso del riferimento alla lingua dell’espressione per scrivere un’espressione

Seguite l’esempio per imparare come utilizzare il riferimento della lingua dell’espressione di After Effects per scrivere espressioni. L’espressione creata in questo esempio collega la proprietà Posizione del Solido 2 alla proprietà Posizione del Solido 1, con il movimento di Solido 2 sfalsato di 2 secondi rispetto a quello di Solido 1.

  1. Create due livelli solidi: Solido 1 e Solido 2.

  2. Animate i valori della proprietà Posizione per il Solido 1 mediante i fotogrammi chiave. Consultate Animazioni, fotogrammi chiave ed espressioni.

  3. Selezionate la proprietà Posizione per Solido 2 e scegliete Animazione > Aggiungi espressione oppure tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul pulsante cronometro  della proprietà. Per impostazione predefinita, appare la seguente espressione:

      transform.position
  4. Sulla parola transform.position digitate direttamente:

      thisComp
  5. L’elemento thisComp è un attributo globale il cui valore è un oggetto Composizione che rappresenta la composizione corrente. Per determinare cosa può seguire thisComp nell’espressione, cercate il valore restituito per thisComp in Oggetti, attributi e metodi globali (riferimento espressioni).

    Notate che thisComp restituisce un oggetto Comp. Quindi esaminate Attributi e metodi di composizione (riferimento espressioni) per vedere quali attributi e metodi potete usare con un oggetto Comp. Un’opzione è layer(index). L’indice (o il numero) tra parentesi specifica il livello da utilizzare. Per questo esempio, supponiamo che Solido 1 sia il primo livello della composizione. Per recuperare i valori dal primo livello nella composizione attiva, digitate .layer(1) alla fine dell’espressione per ottenere quanto segue:

      thisComp.layer(1)
  6. Esaminate di nuovo il riferimento degli elementi dell’espressione per verificare che layer(index) restituisca un oggetto Livello. Esaminate Attributi e metodi generali del livello (riferimento espressioni), e cercate l’elemento che intendete usare. Se ad esempio desiderate ottenere i valori della proprietà Posizione per il livello, digitate .position alla fine dell’espressione per ottenere quanto segue:

      thisComp.layer(1).position
  7. Da Attributi e metodi generali del livello (riferimento espressioni), potete verificare che l’attributo position restituisce una proprietà. Cercate Attributi e metodi delle proprietà (riferimento espressioni) e notate che è possibile aggiungere un fattore tempo all’espressione. Per aggiungere un tempo specifico, ad esempio il tempo corrente più 2 secondi, digitate .valueAtTime(time+2) alla fine dell’espressione per ottenere quanto segue:

      thisComp.layer(1).position.valueAtTime(time+2)
  8. Da Attributi e metodi delle proprietà (riferimento espressioni), notate che il metodo valueAtTime restituisce un numero o una matrice. Quando un’espressione restituisce un numero, una matrice o un valore booleano (vero o falso), non è possibile aggiungere altri attributi o metodi all’espressione (se lo desiderate, tuttavia, potete aggiungere operatori aritmetici come +, -, * e /).

Mostrare le espressioni e il grafico dell’espressione

In modalità Editor grafico, il singolo campo espressioni è visualizzato come casella ridimensionabile nella parte inferiore dell’Editor grafico e mostra solo l’espressione per la proprietà selezionata. Per mostrare simultaneamente più campi espressioni, il pannello Timeline deve essere nella modalità barre livello.

Nota:

Per alternare tra la modalità barre livello e la modalità Editor grafico, premete Maiusc+F3.

  • Per visualizzare solo le proprietà con espressioni, selezionate uno o più livelli, quindi premete EE.
  • Per visualizzare il campo dell’espressione nell’Editor grafico, scegliete Mostra editor espressioni dal menu Scegli tipo di grafico e opzioni  nella parte inferiore dell’Editor grafico. Quando aggiungete un’espressione a una proprietà viene visualizzato l’editor espressioni, indipendentemente da questa impostazione.

Nota:

Per ridimensionare il campo espressioni, trascinate il bordo inferiore verso l’alto o verso il basso.

  • Per visualizzare il modo in cui un’espressione cambia il grafico del valore o della velocità, fate clic sul pulsante Mostra grafico post-espressione  visualizzando nel contempo il grafico del valore o della velocità nell’Editor grafico.

    Il grafico di colore scuro visualizza il valore o la velocità prima che venga applicata l’espressione, mentre il grafico di colore chiaro visualizza il valore o la velocità dopo l’applicazione dell’espressione. Attivando la sovrapposizione del grafico per la proprietà Posizione, cambia anche la visualizzazione del tracciato animato nel pannello Composizione, per consentire di vedere il tracciato interessato dall’espressione.

Nota:

Potete utilizzare il campo di ricerca nel pannello Timeline per cercare sia le espressioni che gli altri componenti di una proprietà. Se la stringa di ricerca appare in un’espressione, la proprietà e i gruppi di proprietà e il livello che la contengono sono visualizzati nell’insieme filtrato dei risultati della ricerca.

Scrivere espressioni per il testo sorgente

La proprietà Testo sorgente di un livello testo viene interpretata dalle espressioni come stringa JavaScript. Potete usare il selettore per recuperare il testo sorgente da un altro livello testo; tuttavia, viene utilizzato solo lo stile del primo carattere del livello di destinazione.

Per ulteriori informazioni sull’oggetto JavaScript String, consultate un manuale di riferimento per JavaScript.

Potete usare "\r" in un’espressione stringa per iniziare una nuova riga di testo. Ad esempio, per copiare il testo originale da un livello sullo stesso livello e ripeterlo su una nuova riga con tutti i caratteri in maiuscolo, utilizzate l’espressione seguente:

  text.sourceText + "\r" + text.sourceText.toUpperCase()

Aggiungere un livello testo a una composizione e aggiungere un’espressione alla sua proprietà Testo sorgente può essere un valido metodo per esaminare i valori delle proprietà di altri livelli. Ad esempio, l’espressione seguente in una proprietà Testo sorgente riporta il nome e il valore della proprietà Opacità per il livello successivo nell’ordine di sovrapposizione dei livelli:

  thisComp.layer(index + 1).name + "\rOpacity = " + thisComp.layer(index + 1).opacity.value

L’esempio seguente riporta il nome dell’elemento di metraggio usato come sorgente del livello dell’immagine all’inizio dell’ordine di sovrapposizione nel tempo corrente in cui lo switch Video è impostato.

  source_footage_name = ""; 
  for (i = 1; i <= thisComp.numLayers; i++){ 
      if (i == index) continue; 
      my_layer = thisComp.layer(i); 
      if (! (my_layer.hasVideo && my_layer.active)) continue; 
      if (time >= my_layer.inPoint && time < my_layer.outPoint){ 
          try{ 
              source_footage_name = my_layer.source.name; 
          }catch(err1){ 
              source_footage_name = my_layer.name 
          } 
          break; 
      } 
  } 
  source_footage_name

In Red Giant TV è disponibile un’esercitazione video di Aharon Rabinowitz ed espressioni di esempio che illustrano come animare il punteggio di un video game con la proprietà Testo sorgente e un effetto Scorrimento (un effetto Controlli espressione).

 

Aggiungere commenti a un’espressione

Se create un’espressione complessa e intendete riutilizzarla in seguito per voi stessi o per altri, aggiungete dei commenti che spieghino le operazioni compiute dall’espressione e come funzionano le varie parti.

Salvare e riutilizzare le espressioni

Dopo aver scritto un’espressione, potete salvarla, per poi usarla in un secondo momento, copiandola e incollandola in un’applicazione per la modifica di testo oppure salvandola in un predefinito per animazione o in un progetto di modello. Tuttavia, poiché le espressioni vengono scritte in relazione agli altri livelli di un progetto e possono utilizzare nomi di livello specifici, talvolta è necessario modificare un’espressione per trasferirla da un progetto all’altro.

Potete definire le vostre funzioni all’interno delle espressioni utilizzando la normale sintassi delle funzioni JavaScript. In questo esempio viene definita una funzione che calcola la media di due valori e l’ultima riga utilizza questa funzione:

  function average(a, b) 
  { 
    return (a + b) / 2; 
  } 
  average(position, thisComp.layer(1).position);

Nota:

Dovete definire completamente ogni funzione all’interno di ciascuna espressione in cui essa è utilizzata. Non esiste una libreria globale di funzioni alla quale potete effettuare aggiunte.

Se desiderate salvare un’espressione per utilizzarla in un altro progetto, aggiungete dei commenti all’espressione. Consultate Aggiungere commenti a un’espressione. Sarà inoltre opportuno utilizzare delle variabili in modo da poter modificare un valore in un’unica posizione invece di doverlo modificare in diverse posizioni.

Questa espressione, ad esempio, presenta all’inizio un commento su più righe che spiega le operazioni svolte dall’espressione e un breve commento esplicativo, dopo la dichiarazione e l’inizializzazione di una variabile, sulla funzione della variabile:

  /*  This expression on a Source Text property reports the name 
      of a layer and the value of its Opacity property. */  
    
  var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer  
    
  thisComp.layer(myLayerIndex).name + ": \rOpacity = " +   thisComp.layer(myLayerIndex).opacity.value

Potete salvare un predefinito dell’animazione che includa un’espressione e riutilizzarla in altri progetti, se l’espressione non si riferisce a proprietà che non esistono negli altri progetti. Quando salvate un predefinito in cui una proprietà ha un’espressione ma nessun fotogramma chiave, viene salvata solo l’espressione. Se la proprietà ha uno o più fotogrammi chiave, il predefinito salvato contiene l’espressione insieme a tutti i valori dei fotogrammi chiave.

Potete copiare un’espressione da una proprietà del livello, con o senza i fotogrammi chiave della proprietà.

  • Per copiare un’espressione e i fotogrammi chiave da una proprietà ad altre proprietà, selezionate la proprietà del livello sorgente nel pannello Timeline, copiate la proprietà del livello, selezionate le proprietà del livello di destinazione e scegliete Incolla.
  • Per copiare un’espressione da una proprietà ad altre proprietà senza copiare i fotogrammi chiave, selezionate la proprietà sorgente, scegliete Modifica > Copia solo espressione, selezionate le proprietà di destinazione e scegliete Incolla.

Nota:

Copiare un’espressione senza fotogrammi chiave è utile se desiderate copiare e incollare contemporaneamente molteplici espressioni su uno o più livelli nuovi, o se desiderate copiare e incollare un’espressione su più livelli.

Nota:

Come quando incollate fotogrammi chiave e altri elementi, spesso potete incollare l’elemento nel livello di destinazione e lasciare che After Effects determini automaticamente quale proprietà debba essere la destinataria dell’operazione Incolla. Questo metodo funziona ad esempio per incollare la proprietà Posizione da un livello a un altro ma dovrete selezionare personalmente la proprietà di destinazione se state incollando un’espressione da una proprietà Posizione a una proprietà Scala.

Paul Tuersley fornisce lo script pt_ExpressEdit per gestire e modificare le espressioni.

Effetti Controlli espressione

Utilizzate un effetto Controlli espressione per aggiungere un controllo utilizzabile per elaborare i valori di una o più proprietà collegando la proprietà al controllo mediante le espressioni. Un singolo controllo può influire su varie proprietà contemporaneamente.

I nomi degli effetti Controlli espressione indicano il tipo di controllo di proprietà che forniscono: Controllo angolo, Controllo caselle, Controllo colore, Controllo livello, Controllo punto, Controllo cursore. After Effects CS5.5 (e versioni successive) include inoltre Controllo punto 3D.

Nota:

Se applicate un predefinito di animazione dalla categoria Impostazioni predefinite animazione > Forme > Sfondi, vedrete un effetto Controllo forma animata personalizzato nel pannello Controlli effetti. Questo effetto personalizzato è uno speciale effetto per il controllo delle espressioni che era stato creato appositamente per questi predefiniti di animazione. Potete copiare e incollare questo effetto in altri livelli, oppure salvarlo come predefinito di animazione in modo da poterlo applicare altrove.

Potete applicare gli effetti per il controllo delle espressioni a un livello nello stesso modo in cui applicate gli altri effetti, ad esempio trascinando l’effetto sul livello dal pannello Effetti e predefiniti.

Potete applicare gli effetti per il controllo delle espressioni a qualsiasi livello; tuttavia, è utile applicarli a un livello di tipo NULL, che potrete usare semplicemente come livello di controllo. Aggiungete quindi le espressioni alle proprietà di altri livelli per ottenere l’input da quel controllo. Potete ad esempio aggiungere l’effetto Controllo cursori a un livello NULL (Null 1) e applicare quindi l’espressione alle proprietà Posizione di più livelli:

  position+[0,10*(index-1)*thisComp.layer("Null 1").effect("Slider Control")("Slider")]

In questo esempio, quando trascinate il cursore, vengono spostati tutti i livelli con questa espressione. I livelli con numeri di indice maggiori (i livelli verso la parte inferiore del pannello Timeline) vengono spostati più dei livelli con numeri di indice minori, con intervalli di 10 pixel. Potete impostare i fotogrammi chiave per il cursore sul livello Null e tutti gli altri livelli si animeranno di conseguenza.

Spesso è utile rinominare ciascuna istanza di un effetto Controllo espressione per indicarne l’uso. Ad esempio, ridenominando un’istanza dell’effetto Controllo colore in colore cielo sarà più semplice verificare la caratteristica dell’effetto. Potete ridenominare ciascuna istanza di un effetto Controllo colore allo stesso modo in cui ridenominate qualsiasi altro effetto: selezionatelo nel pannello Timeline o nel pannello Controlli effetti e premete Invio sulla tastiera (Windows) o Invio (Mac OS).

Nota:

Per modificare l’intervallo di un controllo, fate clic con il pulsante destro del mouse (Windows) o tenendo premuto il tasto Control (Mac OS) sul valore della proprietà sottolineato e scegliete Modifica valore dal menu di scelta rapida.

Ulteriori risorse sugli effetti Controlli espressione

Nel sito Web Motionworks Jerzy Drozda, Jr. (Maltaannon) fornisce una semplice spiegazione e dimostrazione generica dell’effetto Controllo angolo e degli effetti Controlli espressione.

Nel blog After Effects Region of Interest di Todd Kopriva sono disponibili istruzioni sull’uso del metodo sampleImage e sull’effetto Controllo punto per cercare un punto specifico nei colori durante la correzione dei colori.

Convertire un’espressione in fotogrammi chiave

Talvolta è opportuno convertire un’espressione in fotogrammi chiave. Ad esempio, per bloccare i valori di un’espressione, potete convertire l’espressione in fotogrammi chiave e successivamente regolare i fotogrammi chiave di conseguenza. Se la valutazione di un’espressione richiede molto tempo, potete convertirla in fotogrammi chiave per un rendering più rapido. Convertendo un’espressione in fotogrammi chiave, After Effects valuta l’espressione, creando un fotogramma chiave per ogni fotogramma, quindi disabilita l’espressione.

  1. Nel pannello Timeline, selezionate la proprietà sulla quale è scritta l’espressione e scegliete Animazione > Assistente fotogramma chiave > Converti espressioni in fotogrammi chiave.

Il linguaggio delle espressioni

Il linguaggio delle espressioni After Effects si basa su JavaScript 1.2, con un’ampia gamma di oggetti incorporati. After Effects utilizza solo il linguaggio JavaScript 1.2 standard di base, non le estensioni specifiche del browser Web. After Effects contiene la propria serie di oggetti estensione, quali ad esempio Livello, Composizione, Metraggio e Videocamera, che potete utilizzare per ottenere la maggior parte dei valori di un progetto After Effects.

Anche se il linguaggio delle espressioni è basato su un linguaggio di script, esiste una differenza piccola, ma importante, tra uno script e un’espressione: mentre uno script indica a un’applicazione di fare qualcosa, un’espressione indica che una proprietà è qualcosa.

Per ulteriori informazioni su JavaScript, consultate una fonte di riferimento di JavaScript.

Quando create le espressioni, tenete presente quanto segue:

  • Il valore di un’espressione è il valore dell’ultima definizione valutata.

  • JavaScript è un linguaggio sensibile alla distinzione maiuscole/minuscole.

  • I punto e virgola sono necessari per separare frasi o righe.

  • Gli spazi tra le parole vengono ignorati, tranne all’interno delle stringhe.

In JavaScript, un valore memorizzato in un oggetto è chiamato proprietà. Tuttavia, After Effects usa il termine proprietà in riferimento ai componenti del livello definiti nel pannello Timeline. Per questo motivo, After Effects fa riferimento alle proprietà JavaScript come metodi o attributi. Come regola generale, la differenza tra un metodo e un attributo è che di solito il metodo esegue una qualche operazione per creare (restituire) il proprio valore di output, mentre un attributo, per creare il proprio valore di output, fa riferimento semplicemente a un valore esistente. Per distinguere un metodo da un attributo, la cosa più semplice consiste nel cercare le parentesi che seguono il nome del metodo e che racchiudono gli argomenti di input del metodo.

Un oggetto è un elemento che può contenere altri oggetti, attributi e metodi. Le composizioni, i livelli e gli elementi di metraggio sono esempi di oggetti. In particolare, le composizioni, i livelli e gli elementi di metraggio sono oggetti globali, il che significa che è possibile farvi riferimento in qualsiasi contesto, senza fare riferimento a un oggetto di livello superiore.

Accedere ad attributi e metodi

Potete utilizzare la lingua dell’espressione per accedere ad attributi e metodi delle proprietà del livello. Per accedere a un valore, utilizzate una catena di riferimenti oggetto separati dall’operatore punto (.). Per concatenare i riferimenti oggetto oltre il livello (ad esempio per fare riferimento alle proprietà degli effetti, le maschere o gli animatori di testo), potete anche utilizzare le parentesi. Ad esempio, per collegare la proprietà Opacità nel Livello A alla proprietà Sfocatura dell’effetto Controllo sfocatura nel Livello B, immettete la seguente espressione nel campo dell’espressione per la proprietà Opacità per il Livello A:

  thisComp.layer("Layer B").effect("Gaussian Blur")("Blurriness")

Leggendo quest’espressione da sinistra verso destra, passate dal livello superiore, contenente l’oggetto, alla proprietà specifica:

  • L’oggetto globale utilizzato fa riferimento alla composizione corrente: thisComp.

  • Un oggetto di un livello specifico all’interno della composizione viene indicato con il proprio nome: layer("Layer B").

  • Un oggetto di un effetto specifico all’interno del livello viene indicato con il proprio nome: effect("Gaussian Blur").

  • Una proprietà di un effetto specifico all’interno dell’effetto viene indicato con il proprio nome: ("Blurriness").

Per l’ennesimo componente di una proprietà multidimensionale, come il componente y di un punto di controllo dell’effetto, aggiungete [n] alla fine, nel modo seguente:

  thisComp.layer("Layer B").effect("Advanced Lightning")("Origin")[1]

L’oggetto predefinito per un’espressione è la proprietà sulla quale è scritta l’espressione, seguita dal livello contenente l’espressione; quindi, non è necessario specificare la proprietà. Ad esempio, un’espressione deformazioni scritta sulla proprietà Posizione di un livello può essere come segue:

  wiggle(5, 10) 
  position.wiggle(5, 10)

Includete il livello e la proprietà quando le recuperate dall’esterno del livello e della proprietà su cui è scritta l’espressione. Ad esempio, un’espressione scritta sulla proprietà Opacità del Livello B e collegata alla proprietà Rotazione del Livello A si presenterebbe così:

  thisComp.layer("Layer A").rotation

Nota:

Per altri esempi di come funzionano le espressioni, utilizzate il selettore per collegare una proprietà del livello all’altra e osservate le espressioni create.

Nel sito Web redefinery di Jeff Almasol potete trovare uno script utilizzabile per stabilire in che modo fare riferimento a una qualsiasi proprietà nelle espressioni.

Matrici e proprietà multidimensionali

Una matrice è un tipo di oggetto che memorizza una serie ordinata di numeri. Una matrice è rappresentata da un elenco di numeri separati da virgole e racchiusi tra parentesi quadre, come in questo esempio:

  [10, 23]

Potete assegnare un oggetto Matrice a una variabile, cosicché sarà più semplice fare riferimento ai valori della matrice in altre aree dell’espressione. Ad esempio:

  myArray = [10, 23]

La dimensione di un oggetto Matrice è il numero di elementi che essa contiene. La dimensione di myArray è 2. Proprietà diverse in After Effects hanno dimensioni diverse in base al relativo numero di argomenti valore. Nel linguaggio delle espressioni, i valori delle proprietà sono valori singoli (oggetti Numero) o matrici (oggetti Matrice).

La seguente tabella mostra alcuni esempi di proprietà e relative dimensioni:

Dimensione

Proprietà

1

Rotazione °

Opacità %

2

Scala [x=larghezza, y=altezza]

Posizione [x, y]

Punto di ancoraggio [x, y]

Livelli audio [sinistra, destra]

3

Scala [larghezza, altezza, profondità]

Posizione 3D [x, y, z]

Punto di ancoraggio 3D [x, y, z]

Orientamento [x, y, z]

4

Colore [rosso, verde, blu, alfa]

Potete accedere ai singoli elementi di un oggetto Matrice usando le parentesi e un numero di indice per indicare l’elemento desiderato. Gli elementi in un oggetto Matrice sono indicizzati a partire da 0. Nell’esempio precedente, myArray[0] è 10 e myArray[1] è 23.

Le seguenti due espressioni sono equivalenti:

  [myArray[0], 5] 
  [10, 5]

Le matrici della proprietà Posizione sono indicizzate come segue:

  • position[0] è la coordinata x della posizione.

  • position[1] è la coordinata y della posizione.

  • position[2] è la coordinata z della posizione.

I colori sono rappresentati come matrici 4D [rosso, verde, blu, alfa]. In progetti con una profondità colore di 8 bpc o 16 bpc, ciascun valore in una matrice colore va da 0 (nero) a 1 (bianco). Ad esempio, il rosso può variare da 0 (nessun colore) a 1 (rosso). Pertanto, [0,0,0,0] è nero e trasparente e [1,1,1,1] è bianco e opaco. In progetti con una profondità colore di 32 bpc, sono consentiti valori inferiori a 0 e superiori a 1.

Se utilizzate un indice maggiore dell’indice del componente con le dimensioni massime in un oggetto Matrice, After Effects restituisce un errore. Ad esempio, myArray[2] causa un errore, ma position[2] restituisce la coordinata z della Posizione.

Molte proprietà e metodi nel linguaggio delle espressioni di After Effects accettano gli oggetti Matrice come argomenti o li restituiscono come valori. Ad esempio, thisLayer.position è un oggetto Matrice che può essere bidimensionale o tridimensionale in base al tipo di livello, 2D o 3D.

Se desiderate scrivere un’espressione che mantenga il valore y di un’animazione di Posizione, ma che fissi il valore x su 9, digitate quanto segue:

  y = position[1]; 
  [9,y]

Oppure ancora più breve:

  [9, position[1]]

Si tratta di un punto importante, consideriamo quindi un altro esempio. Per combinare il valore della posizione x del livello A con il valore della posizione y del livello B, usate le seguenti espressioni:

  x = thisComp.layer("Layer A").position[0];  
  y = thisComp.layer("Layer B").position[1];  
  [x,y]

Potete creare un’espressione che si riferisca a un solo valore all’interno della matrice di una proprietà 2D o 3D. Per impostazione predefinita, viene usato il primo valore, salvo diversamente specificato. Ad esempio, se trascinate il selettore dalla proprietà Rotazione del Livello A alla proprietà Scala del Livello B, viene visualizzata l’espressione seguente:

  thisComp.layer("Layer B").scale[0]

Per impostazione predefinita, quest’espressione utilizza il primo valore della proprietà Scala, ossia la larghezza. Se invece preferite usare il valore dell’altezza, trascinate il selettore direttamente sul secondo valore anziché sul nome della proprietà o modificate l’espressione come segue:

  thisComp.layer("Layer B").scale[1]

Al contrario, se trascinate il selettore dalla proprietà Scala del livello B alla proprietà Rotazione del livello A, After Effects crea automaticamente una variabile, le assegnerà il valore monodimensionale della proprietà Rotazione e utilizza quella variabile per entrambe le dimensioni della proprietà Scala:

  temp = thisComp.layer(1).transform.rotation; 
  [temp, temp]

Vettori

In After Effects, molte proprietà e metodi accettano o restituiscono vettori. After Effects definisce una matrice come vettore se rappresenta un punto o una direzione nello spazio. Ad esempio, in After Effects position restituisce un vettore.

Tuttavia, sebbene una funzione come audioLevels restituisca un valore bidimensionale (i livelli di canale destro e sinistro), non è definita vettore perché non rappresenta un punto o una direzione. Alcune funzioni in After Effects accettano argomenti vettore, ma generalmente servono solo nel caso in cui i valori passati rappresentano una direzione. Ad esempio, cross(vec1, vec2) calcola un terzo vettore ad angolo retto rispetto ai vettori di input. Il prodotto incrociato è utile quando vec1 e vec2 sono due vettori che rappresentano direzioni nello spazio, ma non lo è se essi rappresentano semplicemente due raccolte arbitrarie di numeri.

Indici ed etichette

L’indicizzazione degli elementi Livello, Effetto e Maschera in After Effects inizia da 1. Ad esempio, il primo livello nel pannello Timeline è layer(1).

In genere è preferibile usare il nome di un livello, effetto o maschera anziché un numero per evitare confusione ed errori durante il relativo spostamento o nel caso in cui gli argomenti vengano modificati in seguito agli aggiornamenti del prodotto. Quando utilizzate un nome, inseritelo sempre tra virgolette semplici. Ad esempio, la prima di queste espressioni è maggiormente comprensibile rispetto alla seconda e la prima continua a essere valida anche se si cambia l’ordine degli effetti:

  effect("Colorama").param("Get Phase From")  
  effect(1).param(2)

Il tempo nelle espressioni

Il tempo all’interno di un’espressione è sempre il tempo composizione e non il tempo livello e viene misurato in secondi. Il tempo predefinito per un’espressione è il tempo corrente di composizione durante il quale ha luogo la valutazione dell’espressione. Le seguenti espressioni utilizzano entrambe il tempo di composizione predefinito e restituiscono gli stessi valori:

  thisComp.layer(1).position 
  thisComp.layer(1).position.valueAtTime(time)

Per utilizzare un tempo relativo, aggiungete un valore tempo incrementale all’argomento time. Ad esempio, per ottenere il valore Posizione 5 secondi prima del tempo corrente, usate la seguente espressione:

  thisComp.layer(1).position.valueAtTime(time-5)

I riferimenti temporali predefiniti alle proprietà nelle composizioni nidificate utilizzano il tempo di composizione predefinito originale e non il tempo modificato. Tuttavia, usando la funzione source per recuperare una proprietà, viene utilizzato il tempo modificato.

Ad esempio, se la sorgente di un livello nella composizione che lo contiene è una composizione nidificata e la composizione che lo contiene ha un tempo modificato, accedendo ai valori posizione di un livello nella composizione nidificata con la seguente espressione, i valori della posizione utilizzeranno il tempo predefinito della composizione:

  comp("nested composition").layer(1).position

Tuttavia, accedendo al livello 1 con la funzione source i valori della posizione utilizzeranno il tempo modificato:

  thisComp.layer("nested composition").source.layer(1).position

Nota:

Utilizzando un tempo specifico in un’espressione, After Effects ignorerà il tempo modificato.

Poiché le espressioni agiscono sul tempo in termini di unità di secondo (non fotogrammi), talvolta potrebbe essere necessario utilizzare i metodi di conversione per convertire i valori di tempo in modo da eseguire le operazioni sui fotogrammi. Consultate Metodi di conversione tempo (riferimento espressioni).

Errori nelle espressioni

Quando un’espressione non riesce, gli errori di espressione sono segnalati da un banner di avvertenza nella parte inferiore dei pannelli Composizione e Livelli. After Effects non disabilita l’espressione, ma continua ad eseguirne la valutazione.  Il banner di avvertenza resta visualizzato fintanto che l’errore persiste, finché l’espressione non venga riparata o disattivata manualmente.

Di seguito è riportato un esempio del banner di avvertenza in caso di errore di un’espressione:

Esempio di un errore di espressione
Esempio di un errore di espressione

A. Pulsanti di freccia sinistra o destra B. Rivela errori espressione C. Espandi/Riduci avvertenza 
  • In caso di errori nella valutazione di più espressioni, con i pulsanti freccia verso sinistra o destra potete passare all’errore precedente o successivo.
  • Il pulsante Rivela errori espressione (icona della lente d’ingrandimento) espone nel pannello Timeline la proprietà contenente l’espressione che provoca l’errore. Se l’espressione si trova in un’altra composizione, quest’ultima viene aperta.
  • Il pulsante Espandi/Riduci avvertenza (frecce verso l’alto o il basso) mostra o nasconde il testo dell’errore.

Il testo di errore dell’espressione è composto da una sola riga e viene ritagliato in base alla larghezza del pannello Composizione.

Per visualizzare il testo completo dell’errore dell’espressione:

Fate clic su accanto all’espressione. L’errore completo viene visualizzato in una finestra di dialogo.

Per nascondere il banner di avvertenza:

Scegliete After Effects CC (Mac OS) o Modifica (Windows) > Preferenze > Generali e deselezionate Mostra banner di avvertenza se il progetto contiene errori di espressione.

Quando questa opzione è deselezionate, il banner di avvertenza resta nascosto anche se si verificano degli errori nelle espressioni.

Selezionate di nuovo questa opzione per visualizzare gli errori nelle espressioni.

Risorse online

Molti degli esempi illustrati in questa sezione sono basati sugli esempi forniti da Dan Ebberts. Nel suo sito Web MotionScript, Dan Ebberts dispone inoltre di un’ottima raccolta di espressioni ed esercitazioni di esempio per imparare a lavorare con le espressioni.

Il forum AE Enhancers fornisce molti esempi e molte informazioni sulle espressioni, nonché script e predefiniti di animazione.

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online