Molti degli esempi forniti in questa sezione sono basati sulle espressioni fornite da Dan Ebberts.

Risorse online con esempi di espressioni

Nel sito Web MotionScript sono disponibili vari esempi di espressioni ed esercitazioni realizzati da Dan Ebberts, utili per imparare a lavorare con le espressioni. Ad esempio, Dan mette a disposizione un’ottima pagina sul rilevamento della collisione.

Nel sito Web di Colin Braley potete trovare un’esercitazione e un progetto che mostrano come utilizzare le espressioni per fare in modo che un livello respinga gli altri in un modo che sembri naturale.

Il forum AE Enhancers fornisce numerosi esempi e informazioni utili sulle espressioni, come pure sugli script e sui predefiniti per animazione. In questo messaggio nel forum AE Enhancers, Paul Tuersley offre un’esercitazione e un progetto di esempio che mostrano come utilizzare le espressioni per animare vari livelli in uno sciame.

Nel suo sito Web, Rick Gerard illustra come far rotolare un oggetto quadrato lungo un pavimento in modo che i lati restino a contatto con il piano del pavimento.

Carl Larsen mette a disposizione un’esercitazione video nel sito Web Creative COW che dimostra come utilizzare le espressioni e il concetto di “relazione superiore-inferiore” per mettere in relazione la rotazione di una serie di ruote con il movimento orizzontale di un veicolo.

Chris Zwar mette a disposizione un progetto di esempio nel suo sito Web per disporre automaticamente le immagini fisse o i video in una griglia (come una parete per video). Potete facilmente regolare la posizione e la distanza mediante gli appositi cursori collegati a un sistema di espressioni. Nel progetto sono presenti tre composizioni: una per le immagini fisse, una per i video e una per creare uno storyboard automatico in cui un video viene campionato a intervalli definiti dall’utente e allineato a una griglia.

Nel sito Web di JJ Gifford potete trovare vari progetti di esempio che dimostrano come utilizzare le espressioni.

Nel sito Web di Maltaannon (Jerzy Drozda, Jr.) è disponibile un’esercitazione video che mostra come usare le espressioni per creare un misuratore del volume in base ai risultati del comando Converti audio in fotogrammi chiave.

Nel sito Web graymachine di Harry Frank è disponibile un’esercitazione che mostra come usare le espressioni per leggere i dati provenienti da un file di testo esterno.

Esempio di espressione: fare ruotare un livello in un cerchio

Potete creare un’espressione senza usare le proprietà di altri livelli. Ad esempio potete fare ruotare un livello in un cerchio perfetto.

  1. Selezionate un livello, premete P per visualizzarne la Posizione nel pannello Timeline, tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul cronometro a sinistra del nome della proprietà.
  2. Immettete quanto segue nel campo dell’espressione:
      [(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*50, -Math.cos(time)*50]

Esempio di espressione: ruotare le lancette di un orologio

Potete utilizzare il selettore per collegare i valori di rotazione tra livelli per animare le lancette di un orologio: man mano che la lancetta dell’ora si sposta di ora in ora, la lancetta dei minuti ruota lungo l’intera circonferenza dell’orologio. Questo tipo di animazione può richiedere tempi lunghi di creazione dovendo impostare ogni fotogramma chiave per entrambi i livelli delle lancette, ma con il selettore sono necessari pochi minuti.

  1. Importate o create due livelli in tinta unita lunghi e stretti: una lancetta delle ore e una lancetta dei minuti. Consultate Livelli in tinta unita ed elementi di metraggio in tinta unita.
  2. Impostate i punti di ancoraggio alla fine dei livelli. Consultate Punti di ancoraggio dei livelli.
  3. Spostate i livelli in modo che i punti di ancoraggio siano al centro della composizione. Consultate Spostare i livelli nello spazio.
  4. Impostate i fotogrammi chiave Rotazione per la lancetta delle ore. Consultate Impostare o aggiungere fotogrammi chiave.
  5. Selezionate la proprietà Rotazione per la lancetta dei minuti e scegliete Animazione > Aggiungi espressione.
  6. Trascinate il selettore sulla proprietà Rotazione per la lancetta delle ore. Viene visualizzata la seguente espressione:
      thisComp.layer("hour hand").rotation
  7. Per far ruotare la lancetta dei minuti 12 volte alla stessa velocità della lancetta delle ore, aggiungere *12 alla fine dell’espressione come segue:
      thisComp.layer("hour hand").rotation*12

Esempio di espressione: posizionare un livello tra altri due livelli

Questo esempio di espressione posiziona e mantiene un livello a una distanza proporzionata tra altri due livelli.

  1. Iniziate con i tre livelli. (Consultate Creare i livelli.)

  2. Animate le posizioni dei primi due livelli nel pannello Timeline. (Consultate Tracciati di movimento.)

  3. Selezionate il terzo livello, premete il tasto P per visualizzare la proprietà Posizione, tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul pulsante del cronometro a sinistra del nome della proprietà.
  4. Immettete quanto segue nel campo dell’espressione:
      (thisComp.layer(1).position + thisComp.layer(2).position)/2

Esempio di espressione: creare una traccia di immagini

Questo esempio di espressione ordina a un livello di essere nella stessa posizione del livello immediatamente superiore nel pannello Timeline, ma con un ritardo pari all’intervallo di tempo indicato (in questo caso: 0,5 secondi). Potete impostare espressioni simili per le altre proprietà geometriche.

  1. Iniziate con due livelli in tinta unita dimensionati a circa il 30% delle dimensioni della composizione. Consultate Livelli in tinta unita ed elementi di metraggio in tinta unita.
  2. Animate la posizione del primo livello. Consultate Tracciati di movimento.
  3. Selezionate il secondo livello, premete il tasto P per visualizzare la proprietà Posizione, tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul pulsante del cronometro a sinistra del nome della proprietà.
  4. Immettete quanto segue nel campo dell’espressione:
      thisComp.layer(thisLayer, -1).position.valueAtTime(time - .5)
  5. Duplicate l’ultimo livello cinque volte selezionandolo e premendo Ctrl+D (Windows) o Comando+D (Mac OS) cinque volte.

Tutti i livelli seguono lo stesso tracciato, con un ritardo di 0,5 secondi l’uno dall’altro.

Nel sito Web MotionScript di Dan Ebberts sono disponibili ulteriori esempi e tecniche per la creazione di tracce di immagini.

Esempio di espressione: creare un rigonfiamento tra due livelli

Questo esempio di espressione sincronizza l’argomento Centro Rigonfiamento dell’effetto Rigonfiamento in un livello con la posizione di un altro livello. Ad esempio, potete creare un effetto simile a una lente di ingrandimento spostandovi sopra un livello, con il contenuto sotto la lente di ingrandimento che si gonfia non appena la lente (vale a dire il livello soprastante) si sposta. Quest'espressione utilizza il metodo fromWorld, che fa funzionare correttamente l’espressione indipendentemente dal fatto che spostiate il livello lente di ingrandimento o il livello sottostante. Potete ruotare o ridimensionare il livello sottostante, ma l’espressione rimane intatta.

Con quest’espressione potete utilizzare anche altri effetti, ad esempio Increspatura.

  1. Iniziate con due livelli. Definite un livello come lente di ingrandimento o oggetto simile con un foro nel mezzo e denominatelo Lente d’ingrandimento. Consultate Creare i livelli.
  2. Animate la posizione del livello lente di ingrandimento. Consultate Tracciati di movimento.
  3. Applicate l’effetto Rigonfiamento all’altro livello. Consultate Applicare un effetto o un predefinito di animazione.
  4. Selezionate la proprietà Centro rigonfiamento dell’effetto Rigonfiamento nel pannello Timeline e scegliete Animazione > Aggiungi espressione o tenete premuto Alt (Windows) o Opzione (Mac OS) e fate clic sul pulsante cronometro  della proprietà.
  5. Selezionate il testo predefinito dell’espressione e digitate quanto segue:
      fromWorld(thisComp.layer("Magnifier").position)

Esempio di espressione: dissolvere l’opacità di un livello 3D in base alla distanza dalla videocamera

  1. Applicate la seguente espressione alla proprietà Opacità di un livello 3D:
      startFade = 500; // Start fade 500 pixels from camera. 
      endFade = 1500;  // End fade 1500 pixels from camera. 
      try
      { // Check whether there's a camera
          C = thisComp.activeCamera.toWorld([0,0,0]); 
      }
      catch(err)
      { // No camera, so assume 50mm
          w = thisComp.width * thisComp.pixelAspect; 
          z = (w/2)/Math.tan(degreesToRadians(19.799)); 
          C = [0,0,-z]; 
      } 
      P = toWorld(anchorPoint); 
      d = length(C,P); 
      linear(d,startFade,endFade,100,0)

    la dissolvenza inizia a una distanza di 500 pixel dalla videocamera ed è completa a 1500 pixel dalla videocamera. Il metodo di interpolazione lineare è usato per mappare i valori della distanza sui valori dell’opacità.

Esempio di espressione: rendere invisibile un livello 3D se rivolto in direzione contraria alla videocamera

  1. Applicate la seguente espressione alla proprietà Opacità di un livello 3D:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else 0

Dan Ebberts spiega quest’espressione nel suo sito Web Motionscript.

Esempio di espressione: capovolgere un livello in orizzontale se rivolto in direzione contraria alla videocamera

  1. Applicate la seguente espressione alla proprietà Scala di un livello 3D:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else [-value[0], value[1], value[2]]

Esempio di espressione: animare la scala su ogni marcatore livello

  1. Applicate la seguente espressione a una proprietà Scala per far sì che un livello si deformi su ogni marcatore:
      n = 0; 
      t = 0; 
      if (marker.numKeys > 0){ 
          n = marker.nearestKey(time).index; 
          if (marker.key(n).time > time) n--; 
      } 
      if (n > 0) t = time - marker.key(n).time; 
        
      amp = 15; 
      freq = 5; 
      decay = 3.0; 
        
      angle = freq * 2 * Math.PI * t; 
      scaleFact = (100 + amp * Math.sin(angle) / Math.exp(decay * t)) / 100; 
      [value[0] * scaleFact, value[1] / scaleFact];

Esempio di espressione: iniziare o interrompere la deformazione in un tempo specifico

Potete usare qualsiasi espressione al posto dell’espressione wiggle usata qui, per iniziare e terminare l’influenza di qualsiasi espressione in un tempo specifico.

Applicate la seguente espressione a una proprietà per deformarla iniziando dal tempo 2 secondi:

timeToStart = 2;
if (time > timeToStart)
{
  wiggle(3,25);
}
else
{
  value;
}

Applicate la seguente espressione a una proprietà per interromperne la deformazione nel tempo 4 secondi:

timeToStop = 4;
if (time > timeToStop)
{
  value;
}
else
{
  wiggle(3,25);
}

Applicate la seguente espressione a una proprietà per iniziare a deformarla nel tempo 2 secondi e interromperne la deformazione nel tempo 4 secondi:

timeToStart = 2;
timeToStop = 4;
if ((time > timeToStart) && (time < timeToStop))
{
  wiggle(3,25);
}
else
{
  value;
}

Esempio di espressione: effettuare la corrispondenza del piano focale della videocamera con un altro livello

  1. Applicate la seguente espressione alla proprietà Distanza focale di un livello della videocamera per far sì che la sua distanza focale corrisponda a quella fino al punto di ancoraggio di un livello chiamato “destinazione”:
      target = thisComp.layer("target"); 
      V1 = target.toWorld(target.anchorPoint) - toWorld([0,0,0]); 
      V2 = toWorldVec([0,0,1]); 
      dot(V1,V2);

Nel suo sito Web Motionscript, Dan Ebberts spiega nel dettaglio questo esempio di espressione.

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