Seleziona File > Impostazioni progetto.
- Guida utente di After Effects
- Versioni beta
- Guida introduttiva
- Spazi di lavoro
- Progetti e composizioni
- Importazione del metraggio
- Preparazione e importazione di immagini fisse
- Importazione da After Effects e Adobe Premiere Pro
- Importazione e interpretazione di video e audio
- Preparazione e importazione di file di immagine 3D
- Importazione e interpretazione degli elementi di metraggio
- Operazioni con gli elementi di metraggio
- Rilevare i punti di modifica utilizzando Rilevamento modifiche scena
- Metadati XMP
- Testo e grafica
- Testo
- Grafica animata
- Utilizzare modelli di grafica animata in After Effects
- Utilizzare le espressioni per creare elenchi a discesa nei modelli di grafica animata
- Utilizzare Proprietà essenziali per creare modelli di grafica animata
- Sostituire immagini e video in modelli di grafica animata e in Proprietà essenziali
- Anima più velocemente e più facilmente utilizzando il pannello Proprietà
- Disegni, colori e tracciati
- Panoramica su livelli forma, tracciati e grafica vettoriale
- Strumenti di disegno: Pennello, Timbro clona e Gomma
- Assottigliare i tratti forma
- Attributi forma, operazioni di disegno e operazioni con i tracciati per i livelli forma
- Usare l’effetto forma Sposta tracciati per modificare le forme
- Creazione delle forme
- Creare maschere
- Rimuovere oggetti dai video con Riempimento in base al contenuto
- Pennello a rotoscopio e Migliora mascherino
- Livelli, marcatori e fotocamera
- Animazione, fotogrammi chiave, tracciamento del movimento e tipo di trasparenza
- Animazione
- Fotogramma chiave
- Tracciamento del movimento
- Trasparenza
- Trasparenza e composizione
- Regolazione del colore
- Effetti e predefiniti di animazione
- Panoramica sugli effetti e sui predefiniti di animazione
- Elenco di effetti
- Gestione effetti
- Effetti di simulazione
- Effetti di stilizzazione
- Effetti audio
- Effetti di distorsione
- Effetti di prospettiva
- Effetti canale
- Effetti di generazione
- Effetti tempo
- Effetti di transizione
- Effetto di riparazione scansione lineare
- Effetti sfocatura e nitidezza
- Effetti canale 3D
- Effetti di utilità
- Effetti mascherino
- Effetti di disturbo e granulosità
- Effetto Mantieni dettagli (ingrandimento)
- Effetti obsoleto
- Espressioni e automazione
- Espressioni
- Concetti di base sull’espressione
- Informazioni sul linguaggio dell’espressione
- Utilizzo dei controlli di espressione
- Differenze di sintassi tra i motori di espressione JavaScript e Legacy ExtendScript
- Modifica di espressioni
- Errori nelle espressioni
- Utilizzo dell’editor espressioni
- Utilizzo delle espressioni per modificare e accedere alle proprietà di testo
- Riferimenti del linguaggio delle espressioni
- Esempi di espressione
- Automazione
- Espressioni
- Video immersivo, VR e 3D
- Creare ambienti VR in After Effects
- Applicare effetti video immersivi
- Strumenti di composizione per i video VR/360
- Modulo di rendering 3D avanzato
- Importare e aggiungere modelli 3D alla composizione
- Importare modelli 3D da Creative Cloud Libraries
- Illuminazione basata su immagine
- Estrarre e animare videocamere e luci da modelli 3D
- Tracciamento del movimento della videocamera 3D
- Creare e accettare ombre
- Animazioni di modelli 3D incorporate
- Acquisizione ombre
- Estrazione dei dati di profondità 3D
- Modificare le proprietà dei materiali di un livello 3D
- Lavorare in Design Space 3D
- Gizmo Trasformazione 3D
- Ulteriori informazioni sull’animazione 3D
- Anteprima delle modifiche apportate ai progetti 3D con il sistema Mercury 3D
- Aggiungere grafica reattiva agli elementi grafici
- Visualizzazioni e anteprime
- Rendering ed esportazione
- Nozioni di base su rendering ed esportazione
- Codifica H.264 in After Effects
- Esportare un progetto After Effects come progetto Adobe Premiere Pro
- Convertire filmati
- Rendering di più fotogrammi
- Rendering automatico e rendering di rete
- Rendering ed esportazione di immagini fisse e sequenze di immagini fisse
- Utilizzo del codec GoPro CineForm in After Effects
- Lavorare con altre applicazioni
- Collaborazione: Frame.io e Progetti team
- Memoria, archiviazione, prestazioni
- Knowledge base
Scopri le espressioni e i relativi riferimenti, ad esempio i metodi di conversione del tempo e i metodi matematici vettoriali in After Effects.
Loop di fotogrammi chiave con espressioni in After Effects
Per scrivere le espressioni usate gli elementi espressione di After Effects con gli elementi JavaScript standard. Potete utilizzare il menu Lingua espressione in qualsiasi momento per inserire metodi e attributi in un’espressione e potete utilizzare il selettore in qualsiasi momento per inserire proprietà.
Se una descrizione di un argomento contiene un segno uguale (=) e un valore (ad esempio t=time o width=.2), e non viene specificato un valore diverso, l’argomento utilizzerà quello predefinito incluso.
Alcune descrizioni degli argomenti includono un numero tra parentesi quadre, che indica le dimensioni della proprietà o della Matrice prevista.
Alcune descrizioni dei valori restituiti includono un numero tra parentesi quadre. Questo numero indica le dimensioni della proprietà prevista o della Matrice. Se non è inclusa alcuna dimensione specifica, le dimensioni della Matrice restituita dipendono dalle dimensioni dell’input.
Il sito web di riferimento W3Schools JavaScript fornisce informazioni per il linguaggio JavaScript standard, comprese le pagine per gli oggetti JavaScript Math e Stringa.
Espressioni: motore JavaScript
Per la valutazione delle espressioni, After Effects utilizza il motore JavaScript. Le prestazioni di valutazione delle espressioni durante il rendering possono essere fino a 5 volte più veloci rispetto al motore ExtendScript.
Su Windows, After Effects utilizza il Motore JavaScript open source V8. Questo motore fornisce una versione più moderna di JavaScript rispetto a ExtendScript, che supporta solo la terza edizione dello standard ECMA-262.
Puoi usare Impostazioni progetto per scegliere se un progetto utilizza il motore JavaScript o quello ExtendScript precedente.
-
-
Seleziona la scheda Espressioni e seleziona il Motore espressioni come JavaScript o quello ExtendScript precedente.
Nota:Per impostazione predefinita, i progetti salvati nelle versioni precedenti di After Effects usano il modulo ExtendScript legacy.
Miglioramenti offerti dal motore JavaScript
- Maggiore precisione matematica nelle operazioni a virgola mobile.
- Possibilità di usare i metodi per matrici e stringhe del moderno JavaScript.
- Disponibilità di altri oggetti del moderno JavaScript come typed array (matrici con tipo), utilizzo delle parole chiave “let” e “const” e molte altre novità introdotte nelle versioni più recenti dello standard ECMA-262.
Differenze tra il motore JavaScript e ExtendScript
- La sintassi delle dichiarazioni if/else è rigorosa nel motore JavaScript e deve essere scritta per il linguaggio JavaScript standardizzato.
- Per accedere agli indici di caratteri su un livello Testo come matrice, usa text.sourceText.value[i] invece di text.sourceText[i].
- I metodi di espressione precedenti di tipo snake_case come this_comp e to_world, precedentemente abbandonati in ExtendScript, non sono supportati.
- La sintassi semplificata “this(arg)” non è supportata.
Oggetti globali, attributi e metodi (riferimento espressioni)
comp(name)
Tipo di valore restituito: Composizione.
Tipo di argomento: nome è una stringa.
Recupera un’altra composizione in base al nome.
footage(name)
Tipo di valore restituito: Metraggio.
Tipo di argomento: nome è una stringa.
Recupera un elemento del metraggio in base al nome.
thisComp
Tipo di valore restituito: Composizione.
Rappresenta la composizione contenente l’espressione.
thisLayer
Tipo di valore restituito: Livello, Luce o Videocamera.
Rappresenta il livello contenente l’espressione. Poiché thisLayer è un oggetto predefinito, il suo impiego è opzionale. Ad esempio, puoi iniziare un’espressione con thisLayer.width o width e ottenere lo stesso risultato.
thisProperty
Tipo di valore restituito: proprietà.
Rappresenta il livello contenente l’espressione. Ad esempio, scrivendo un’espressione sulla proprietà Rotazione, puoi iniziare un’espressione con thisProperty per fare riferimento alla proprietà Rotazione.
time
Tipo di valore restituito: Numero.
Rappresenta il tempo della composizione, in secondi, in coincidenza del quale avviene la valutazione dell’espressione.
colorDepth
Tipo di valore restituito: Numero.
Restituisce il valore della profondità colore del progetto. Ad esempio, colorDepth restituisce 16 se la profondità colore del progetto è di 16 bit per canale.
posterizeTime(framesPerSecond)
Tipo di valore restituito: Numero.
Tipo di argomento: framesPerSecond è un numero.
Il valore framesPerSecond diventa la frequenza fotogrammi dalla quale eseguire il resto dell’espressione. Questa espressione consente di impostare la frequenza fotogrammi per una proprietà in modo che sia inferiore alla frequenza fotogrammi della composizione. Ad esempio, la seguente espressione aggiorna il valore della proprietà con un valore casuale una volta al secondo:
posterizeTime(1); random()value
Tipo di valore restituito: Numero, matrice o stringa.
Rappresenta il valore al tempo corrente della proprietà contenente l’espressione.
Metodi di conversione del tempo (riferimento espressioni)
timeToFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
Tipo di valore restituito: Numero.
Tipo di argomento: t e fps sono numeri; isDuration è booleano.
Converte il valore di t, il cui valore predefinito è impostato sul tempo di composizione corrente, in un numero intero di fotogrammi. Il numero di fotogrammi al secondo è specificato nell’argomento fps, il cui valore predefinito è impostato sulla frequenza fotogrammi della composizione corrente (1.0 / thisComp.frameDuration). L’argomento isDuration, preimpostato su false, deve essere su true se il valore t rappresenta una differenza tra due tempi invece di un tempo assoluto. I tempi assoluti sono arrotondati verso l’infinito negativo; le durate sono arrotondate lontano dallo zero (in alto verso i valori positivi).
framesToTime(frames, fps = 1.0 / thisComp.frameDuration)
Tipo di valore restituito: Numero.
Tipo di argomento: frames e fps sono numeri.
L’inverso di timeToFrames. Restituisce il tempo corrispondente all’argomento frames richiesto. Non deve essere necessariamente un numero intero. Consulta timeToFrames per indicazioni sull’argomento fps.
timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)
Tipo di valore restituito: Stringa.
Tipo di argomento: t e timecodeBase sono numeri; isDuration è un booleano.
Converte il valore di t in una stringa che rappresenta il codice di tempo. Consulta timeToFrames per indicazioni sugli argomenti t e isDuration. Il valore timecodeBase, che per impostazione predefinita è pari a 30, specifica il numero di fotogrammi al secondo.
timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)
Tipo di valore restituito: Stringa.
Tipo di argomento: t è un numero, ntscDropFrame e isDuration sono booleani.
Converte t in una stringa che rappresenta il codice di tempo NTSC. Consulta timeToFrames per indicazioni sugli argomenti t e isDuration. Se ntscDropFrame è false (impostazione predefinita), la stringa risultante è il codice di tempo NTSC senza drop-frame. Se ntscDropFrame è true, la stringa risultante è il codice di tempo drop-frame NTSC.
timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)
Tipo di valore restituito: Stringa.
Tipo di argomento: t, fps e framesPerFoot sono numeri; isDuration è un booleano.
Converte il valore di t in una stringa che rappresenta i piedi della pellicola e i fotogrammi. Consulta timeToFrames per indicazioni sugli argomenti t,fps, e isDuration. L’argomento framesPerFoot specifica il numero di fotogrammi in un piede di pellicola. Il suo valore predefinito è 16, la più comune frequenza fotogrammi per il metraggio 35 mm.
timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
Tipo di valore restituito: Stringa.
Tipo di argomento: t e fps sono numeri; isDuration è booleano.
Converte il valore di t in una stringa rappresentante il tempo nel formato di visualizzazione corrente delle Impostazioni del progetto. Per una definizione di tutti gli argomenti, consulta timeToFrames.
In After Effects CS5.5 e versioni successive l’argomento opzionale ntscDropFrame è stato aggiunto alla funzione timeToCurrentFormat(). Impostazione predefinita: ntscDropFrame = thisComp.ntscDropFrame.
Per un maggiore controllo dell’aspetto del codice di tempo nel metraggio, utilizza il metodo timeToCurrentFormat o altri metodi timeTo per generare il codice di tempo invece di usare l’effetto Codice di tempo o Numeri. Crea un livello di testo, aggiungi un’espressione alla proprietà Testo sorgente e inserisci timeToCurrentFormat() nel campo dell’espressione. Con questo metodo potete formattare e animare il testo del codice di tempo. Inoltre il codice di tempo utilizza lo stesso stile di visualizzazione definito dalle impostazioni correnti del progetto.
Metodi matematici vettoriali (riferimento espressioni)
Le funzioni matematiche vettoriali sono metodi globali per eseguire operazioni sulle matrici, considerandole come vettori matematici. A differenza dei metodi JavaScript incorporati, come Math.sin, questi metodi non sono utilizzati con il prefisso Math. A meno che non sia diversamente specificato, i metodi matematici vettoriali sono “indulgenti” per quanto riguarda le dimensioni e restituiscono un valore pari alla dimensione dell’oggetto Matrice di input più grande, aggiungendo degli zeri per gli elementi mancanti. Ad esempio, l’espressione add([10, 20], [1, 2, 3]) restituisce [11, 22, 3].
add(vec1, vec2)
Tipo di valore restituito: matrice.
Tipo di argomento: vec1 e vec2 sono matrici.
Aggiunge due vettori.
sub(vec1, vec2)
Tipo di valore restituito: matrice.
Tipo di argomento: vec1 e vec2 sono matrici.
Sottrae due vettori.
mul(vec, amount)
Tipo di valore restituito: matrice.
Tipo di argomento: vec è una matrice, amount è un numero.
Moltiplica ogni elemento del vettore per il valore numerico.
div(vec, amount)
Tipo di valore restituito: matrice.
Tipo di argomento: vec è una matrice, amount è un numero.
Dividi ogni elemento del vettore in base al valore numerico.
clamp(value, limit1, limit2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: valore, limit1 e limit2 sono numeri o matrici.
Il valore di ogni componente di valore è vincolato a essere compreso tra i valori dei valori corrispondenti di limit1 e limit2.
dot(vec1, vec2)
Tipo di valore restituito: Numero.
Tipo di argomento: vec1 e vec2 sono matrici.
Restituisce il prodotto (interno) dot degli argomenti vettore.
cross(vec1, vec2)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: vec1 e vec2 sono matrici [2 o 3].
Restituisce il prodotto incrociato vettoriale di vec1 e vec2. Per ulteriori informazioni consultate un riferimento matematico o la guida JavaScript.
normalize(vec)
Tipo di valore restituito: matrice.
Tipo di argomento: vec è una matrice.
Normalizza il vettore in modo tale che la sua lunghezza sia 1.0. L’uso del metodo normalizza è una scorciatoia per l’esecuzione dell’operazione div(vec, length(vec)).
length(vec)
Tipo di valore restituito: Numero.
Tipo di argomento: vec è una matrice.
Restituisce la lunghezza del vettore vec.
length(point1, point2)
Tipo di valore restituito: Numero.
Tipo di argomento: point1 e point2 sono matrici.
Restituisce la distanza tra due punti. L’argomento point2 è opzionale. Ad esempio, length(point1, point2) è corrisponde a length(sub(point1, point2)).
Ad esempio, aggiungete questa espressione alla proprietà Distanza focale di una videocamera per bloccare il piano focale sul punto di interesse della videocamera in modo tale che il punto di interesse sia a fuoco:
length(position, pointOfInterest)lookAt(fromPoint, atPoint)
Tipo di valore restituito: matrice [3].
Tipo di argomento: fromPoint e atPoint sono matrici [3].
L’argomento fromPoint è il punto nello spazio mondo del livello che desiderate orientare. L’argomento atPoint è il punto nello spazio mondo verso il quale deve essere orientato il livello. Il valore restituito può essere utilizzato come espressione per la proprietà Orientamento, con l’asse z del livello orientato verso atPoint. Questo metodo è particolarmente utile per videocamere e luci. Utilizzando questa espressione su una videocamera, disattivate l’orientamento automatico. Ad esempio, questa espressione sulla proprietà Orientamento di un faretto crea il punto luminoso nel punto di ancoraggio del livello numero 1 nella stessa composizione: lookAt(position, thisComp.layer(1).position)
Metodi di numeri casuali (riferimento espressioni)
Il metodo deformazione, utilizzato per variare a caso un valore di proprietà, si trova nella categoria degli attributi e dei metodi della Proprietà. Per ulteriori informazioni, consultate Attributi e metodi della proprietà (riferimento all’espressione).
seedRandom(offset, timeless=false)
Tipo di valore restituito: nessuno.
Tipo di argomento: offset è un numero, timeless è un valore booleano.
I metodi random e gaussRandom utilizzano un valore di seed che controlla la sequenza dei numeri. Per impostazione predefinita, il valore di seed viene calcolato come funzione di un’unica identificazione di livello, la proprietà all’interno del livello, il tempo corrente e un valore di scostamento pari a 0. Chiamate seedRandom per impostare lo scostamento su un valore diverso da 0 per creare una sequenza casuale diversa.
Utilizzate true per l’argomento timeless per non usare il tempo corrente come input per il numero casuale. Utilizzando true per l’argomento timeless è possibile generare un numero casuale che non varia a seconda del tempo di valutazione.
Il valore di scostamento, ma non il valore di timeless, è utilizzato anche per controllare il valore iniziale della funzione deformazione.
Ad esempio, quest’espressione sulla proprietà Opacità imposta il valore Opacità su un valore casuale che non varia nel tempo:
seedRandom(123456, true); random()*100La moltiplicazione per 100, in questo esempio, converte il valore compreso nell’intervallo 0-1 restituito dal metodo casuale in un numero compreso nell’intervallo 0-100. Questo intervallo di solito è più utile per la proprietà Opacità, la quale ha dei valori che vanno da 0% a 100%.
random()
Tipo di valore restituito: Numero.
Restituisce un numero casuale compreso nell’intervallo 0-1.
In After Effects CC e CS6, il comportamento della funzione random() viene modificato in modo da essere più casuale quando gli ID dei livelli sono ravvicinati. L’espressione wiggle() non subisce modifiche.
random(maxValOrArray)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: maxValOrArray è un numero o una matrice.
Se maxValOrArray è un numero, questo metodo restituisce un numero nell’intervallo da 0 a maxValOrArray. Se maxValOrArray è una matrice, questo metodo restituisce una matrice con le stesse dimensioni di maxValOrArray, con ogni componente compreso tra 0 e il componente corrispondente di maxValOrArray.
random(minValOrArray, maxValOrArray)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: minValOrArray e maxValOrArray sono numeri o matrici.
Se minValOrArray e maxValOrArray sono numeri, questo metodo restituisce un numero compreso nell’intervallo da minValOrArray a maxValOrArray. Se gli argomenti sono matrici, questo metodo restituisce una matrice con la stessa dimensione dell’argomento con la dimensione più grande, con ciascun componente nell’intervallo dal componente corrispondente di minValOrArray al componente corrispondente di maxValOrArray. Ad esempio, l’espressione random([100, 200], [300, 400]) restituisce una matrice il cui primo valore è compreso nell’intervallo 100-300 e il cui secondo valore è compreso nell’intervallo 200-400. Se le dimensioni delle due matrici di input non corrispondono, i valori di dimensioni più elevate della matrice più corta sono compilati con degli zeri.
gaussRandom()
Tipo di valore restituito: Numero.
Restituisce un numero casuale. I risultati hanno una distribuzione di forma gaussiana (a campana). Circa il 90% dei risultati è compreso nell’intervallo 0-1 e il rimanente 10% non rientra in questo intervallo.
gaussRandom(maxValOrArray)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: maxValOrArray è un numero o una matrice.
Se maxValOrArray è un numero, questo metodo restituisce un numero casuale. Circa il 90% dei risultati è compreso nell’intervallo tra 0 e maxValOrArray e il rimanente 10% non rientra in questo intervallo. Se maxValOrArray è una matrice, questo metodo restituisce una matrice di valori casuali, con le stesse dimensioni di maxValOrArray. Il 90% dei valori è compreso nell’intervallo da 0 a maxValOrArray e il rimanente 10% non rientra in questo intervallo. I risultati hanno una distribuzione gaussiana (a campana).
gaussRandom(minValOrArray, maxValOrArray)
Tipo di valore restituito: numero o matrice.
Tipo di argomento:minValOrArray e maxValOrArray sono numeri o matrici.
Se minValOrArray e maxValOrArray sono numeri, questo metodo restituisce un numero casuale. Circa il 90% dei risultati sono compresi nell’intervallo tra minValOrArray e maxValOrArray e il rimanente 10% non rientra in questo intervallo. Se gli argomenti sono matrici, questo metodo restituisce una matrice di numeri casuali con le stesse dimensioni dell’argomento con le dimensioni maggiori. Per ciascun componente, il 90% circa dei risultati è compreso nell’intervallo dal componente corrispondente di minValOrArray al componente corrispondente di maxValOrArray e il rimanente 10% non rientra in questo intervallo. I risultati hanno una distribuzione gaussiana (a campana).
noise(valOrArray)
Tipo di valore restituito: Numero.
Tipo di argomento: valOrArray è un numero o una matrice [2 o 3].
Restituisce un numero compreso tra -1 e 1. Il disturbo non è di fatto casuale, ma è basato su un disturbo Perlin, il che significa che i valori restituiti per due valori di input vicini tra loro tendono a essere anch’essi vicini tra loro. Questo tipo di disturbo è utile quando desiderate una sequenza di numeri apparentemente casuali che non variano enormemente l’uno dall’altro, come accade di solito quando si anima un qualsiasi tipo di movimento naturale apparentemente casuale. Esempio: rotation + 360*noise(time)
Metodi di interpolazione (riferimento espressioni)
Per tutti i metodi di interpolazione, l’argomento t è spesso tempo o valore, sebbene possa avere anche altri valori. Se t è tempo, l’interpolazione tra i valori ha luogo su una durata. Se t è il valore, l’espressione mappa un intervallo di valori su un nuovo intervallo di valori.
linear(t, tMin, tMax, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t, tMin e tMax sono numeri e value1 e value2 sono numeri o matrici.
Restituisce value1 quando t <= tMin. Restituisce value2 quando t >= tMax. Restituisce una interpolazione lineare tra value1 e value2 quando tMin < t < tMax.
Ad esempio, quest’espressione sulla proprietà Opacità fa sì che i valori Opacità sfumino in modo lineare dal 20% all’80% in un arco di tempo di 0-6 secondi:
linear(time, 0, 6, 20, 80)
Questo metodo, come tutti quelli di interpolazione, può essere usato anche per la conversione da un intervallo di valori in un altro. Ad esempio, questa espressione sulla proprietà Opacità converte i valori Opacità dall’intervallo 0%-100% nell’intervallo 20%-80%:
lineare(valore, 0, 100, 20, 80)
linear(t, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t è un numero e value1 e value2 sono numeri o matrici.
Restituisce un valore che esegue l’interpolazione lineare da value1 a value2 quando t varia da 0 a 1. Restituisce value1 quando t <= 0. Restituisce value2 quando t >= 1.
ease(t, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t è un numero e value1 e value2 sono numeri o matrici.
Simile a linear, con gli stessi argomenti, a eccezione del fatto che l’interpolazione esegue la regolazione automatica dell’attacco e dello stacco in modo tale che la velocità sia 0 nel punto iniziale e nel punto finale. Questo metodo produce un’animazione fluida.
ease(t, tMin, tMax, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t, tMin e tMax sono numeri e value1 e value2 sono numeri o matrici.
Simile a linear, con gli stessi argomenti, a eccezione del fatto che l’interpolazione esegue la regolazione automatica dell’attacco e dello stacco in modo tale che la velocità sia 0 nel punto iniziale e nel punto finale. Questo metodo produce un’animazione fluida.
easeIn(t, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t è un numero, e value1 e value2 sono numeri o matrici.
Simile a ease, a eccezione del fatto che la tangente è 0 solo sul lato value1 e l’interpolazione è lineare sul lato value2.
easeIn(t, tMin, tMax, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t, tMin e tMax sono numeri e value1 e value2 sono numeri o matrici.
Simile a ease, a eccezione del fatto che la tangente è 0 solo sul lato tMin e l’interpolazione è lineare sul lato tMax.
easeOut(t, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t è un numero, e value1 e value2 sono numeri o matrici.
Simile a ease, a eccezione del fatto che la tangente è 0 solo sul lato value2 e l’interpolazione è lineare sul lato value1.
easeOut(t, tMin, tMax, value1, value2)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t, tMin, e tMax sono numeri, e value1 e value2 sono numeri o matrici.
Simile a ease, a eccezione del fatto che la tangente è 0 solo sul lato tMax e l’interpolazione è lineare sul lato tMin.
Metodi di conversione del colore (riferimento espressioni)
rgbToHsl(rgbaArray)
Tipo di valore restituito: matrice [4].
Tipo di argomento: rgbaArray è una matrice [4].
Converte un colore dallo spazio colore RGBA in HSLA. L’input è una matrice di valori normalizzati dei canali rosso, verde, blu e alfa, tutti compresi tra 0.0 e 1.0. Il valore risultante è una matrice di valori dei canali di tonalità, saturazione, luminosità e alfa, tutti compresi tra 0.0 e 1.0. Esempio:
rgbToHsl.effect("Change Color")("Color To Change")hslToRgb(hslaArray)
Tipo di valore restituito: matrice [4].
Tipo di argomento: hslaArray è una matrice [4].
Converte un colore dallo spazio colore HSLA in RGBA. Questa conversione è l’opposto della conversione eseguita dal metodo rgbToHsl.
Altri metodi matematici (riferimento espressioni)
degreesToRadians(degrees)
Tipo di valore restituito: Numero.
Tipo di argomento: gradi è un numero.
Converte i gradi in radianti.
radiansToDegrees(radians)
Tipo di valore restituito: Numero.
Tipo di argomento: radianti è un numero.
Converte i radianti in gradi.
Attributi e metodi di composizione (riferimento espressioni)
layer(index)
Tipo di valore restituito: Livello, Luce o Videocamera.
Tipo di argomento: index è un numero.
Recupera il livello in base al numero (ordine numerico nel pannello Timeline). Esempio: thisComp.layer(3)
layer(name)
Tipo di valore restituito: Livello, Luce o Videocamera.
Tipo di argomento: nome è una stringa.
Recupera il livello per nome. I nomi vengono abbinati in base al nome livello o, in sua assenza, in base al nome sorgente. Se esistono nomi duplicati, After Effects utilizza il primo dall’alto nel pannello Timeline. Esempio:
thisComp.layer("Solid 1")
layer(otherLayer, relIndex)
Tipo di valore restituito: Livello, Luce o Videocamera.
Tipo di argomento: otherLayer è un oggetto livello erelIndex è un numero.
Recupera il livello che si trova relIndex livelli sopra o sottootherLayer. Ad esempio, thisComp.layer(thisLayer, 1).active restituisce true se il livello successivo verso il basso nel pannello Timeline è attivo.
marker
Tipo di valore restituito: MarkerProperty.
Non potete accedere a un marcatore composizione in base al numero di marcatore. Se disponete di un progetto creato con una versione precedente di After Effects che utilizza numeri di marcatori composizione nelle espressioni, dovrete modificare le chiamate perché utilizzino invece marker.key(name). Poiché il nome predefinito di un marcatore composizione è un numero, convertendo il riferimento per usare il nome spesso è sufficiente racchiudere il numero tra virgolette.
marker.key(index)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: index è un numero.
Restituisce l’oggetto MarkerKey del marcatore con l’indice specificato. L’indice fa riferimento all’ordine del marcatore nel tempo di composizione, non al nome del marcatore. Ad esempio questa espressione restituisce il tempo del primo marcatore composizione:
thisComp.marker.key(1).time
marker.key(name)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: nome è una stringa.
Restituisce l’oggetto MarkerKey del marcatore con il nome specificato. Il valore nome è il nome del marcatore, come digitato nel campo Commento nella finestra di dialogo Marcatore, ad esempio, marker.key("1"). Per un marcatore composizione il nome predefinito è un numero. Se più di un marcatore nella composizione ha lo stesso nome, questo metodo restituisce il marcatore che è posizionato prima nel tempo (nel tempo di composizione). Il valore per un marcatore è una stringa, non un numero. Ad esempio, questa espressione restituisce il tempo del marcatore composizione con il nome “0”.
thisComp.marker.key("0").timemarker.nearestKey(t)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: t è un numero.
Restituisce il marcatore più vicino nel tempo a t. Ad esempio, questa espressione restituisce il tempo del marcatore composizione più vicino al tempo di 1 secondo:
thisComp.marker.nearestKey(1).timeQuesta espressione restituisce il tempo del marcatore composizione più vicino al tempo corrente:
thisComp.marker.nearestKey(time).timemarker.numKeys
Tipo di valore restituito: Numero.
Restituisce il numero totale di marcatori composizione nella composizione.
numLayers
Tipo di valore restituito: Numero.
Restituisce il numero di livelli nella composizione.
activeCamera
Tipo di valore restituito: Videocamera.
Restituisce l’oggetto Videocamera per la videocamera mediante la quale viene eseguito il rendering della composizione in corrispondenza del fotogramma corrente. Non si tratta necessariamente della videocamera attraverso la quale state guardando il pannello Composizione.
width
Tipo di valore restituito: Numero.
Restituisce la larghezza della composizione in pixel.
Applicate la seguente espressione alla proprietà Posizione di un livello per centrarlo nel fotogramma della composizione:
[thisComp.width/2, thisComp.height/2]
height
Tipo di valore restituito: Numero.
Restituisce l’altezza della composizione in pixel.
durata
Tipo di valore restituito: Numero.
Restituisce la durata della composizione in secondi.
ntscDropFrame
Tipo di valore restituito: booleano.
Restituisce true se il codice di tempo è in formato drop-frame. (After Effects CS5.5 e versioni successive).
displayStartTime
Tipo di valore restituito: Numero.
Restituisce il tempo di avvio della composizione in secondi.
frameDuration
Tipo di valore restituito: Numero.
Restituisce la durata di un fotogramma in secondi.
shutterAngle
Tipo di valore restituito: Numero.
Restituisce il valore dell’angolo otturatore della composizione in gradi.
shutterPhase
Tipo di valore restituito: Numero.
Restituisce la fase dell’otturatore della composizione in gradi.
bgColor
Tipo di valore restituito: matrice [4].
Restituisce il colore di sfondo della composizione.
pixelAspect
Tipo di valore restituito: Numero.
Restituisce le proporzioni pixel della composizione.
nome
Tipo di valore restituito: Stringa.
Specifica il nome della composizione.
Attributo Area protetta per marcatori composizione
L’opzione Area protetta per i marcatori composizione può essere letta con l’attributo per marcatori composizione protectedRegion.
Attributi e metodi del metraggio (riferimento espressioni)
Per utilizzare un elemento di metraggio dal pannello Progetto come oggetto in un’espressione, utilizzate il metodo metraggio globale, come in footage("file_name"). Potete inoltre accedere all’oggetto metraggio utilizzando l’attributo source su un livello la cui sorgente è un elemento di metraggio.
width
Tipo di valore restituito: numero.
Restituisce l’ampiezza dell’elemento di metraggio in pixel.
height
Tipo di valore restituito: Numero.
Restituisce l’altezza dell’elemento metraggio in pixel.
duration
Tipo di valore restituito: Numero.
Restituisce la durata dell’elemento di metraggio in secondi.
frameDuration
Tipo di valore restituito: Numero.
Restituisce la durata di un fotogramma nell’elemento di metraggio in secondi.
ntscDropFrame
Tipo di valore restituito: booleano.
Restituisce true se il codice di tempo è in formato drop-frame. (After Effects CS5.5 e versioni successive).
pixelAspect
Tipo di valore restituito: Numero.
Restituisce le proporzioni pixel dell’elemento di metraggio.
nome
Tipo di valore restituito: Stringa.
Restituisce il nome dell’elemento di metraggio come indicato nel pannello Progetto.
Attributi e metodi Oggetti secondari per i livelli (riferimento per espressioni)
sorgente
Tipo di valore restituito: composizione o metraggio.
Restituisce l’oggetto Composizione sorgente o Metraggio sorgente per il livello. L’impostazione predefinita del tempo è regolata in base al tempo nella sorgente. Esempio: source.layer(1).position
sourceTime(t = time)
Tipo di valore restituito: Numero.
Restituisce la sorgente del livello corrispondente al tempo t (After Effects CS5.5 e versioni successive).
sourceRectAtTime(t = tempo, includeExtents = falso)
Tipo di valore restituito: oggetto JavaScript con quattro attributi: [superiore, sinistra, larghezza, altezza]. Le distanze vengono applicate solo per definire i livelli, aumentando la dimensione dei limiti del livello ove necessario e i livelli del testo del paragrafo (After Effects 15.1 e versioni successive), dove ritorna ai limiti della casella paragrafo. Esempio: myTextLayer.sourceRectAtTime().width.
effect(name)
Tipo di valore restituito: Effetto.
Tipo di argomento: nome è una stringa.
After Effects trova l’effetto in base al nome nel pannello Controlli effetti. Il nome può essere il nome predefinito o un nome definito dall’utente. Se più effetti hanno lo stesso nome, viene usato l’effetto più vicino alla parte superiore del pannello Controlli effetto. Esempio:
effect("Fast Blur")("Blurriness")
effect(index)
Tipo di valore restituito: Effetto.
Tipo di argomento: index è un numero.
After Effects trova l’effetto in base all’indice nel pannello Controlli effetti, partendo da 1 ed eseguendo il conto dall’alto.
mask(name)
Tipo di valore restituito: Maschera.
Tipo di argomento: nome è una stringa.
Il nome può essere il nome predefinito o un nome definito dall’utente. Se più maschere hanno lo stesso nome, viene usata la prima maschera (quella in cima all’elenco). Esempio:
mask("Mask 1")
mask(index)
Tipo di valore restituito: Maschera.
Tipo di argomento: index è un numero.
After Effects trova la maschera in base all’indice nel pannello Timeline, partendo da 1 ed eseguendo il conto dall’alto.
Attributi e metodi Generali per i livelli (riferimento per espressioni)
width
Tipo di valore restituito: Numero.
Restituisce la larghezza del livello in pixel. È uguale a source.width.
height
Tipo di valore restituito: Numero.
Restituisce l’altezza del livello in pixel. È uguale a source.height.
index
Tipo di valore restituito: Numero.
Restituisce il numero di indice del livello nella composizione.
gerarchia
Tipo di valore restituito: Livello, Luce o Videocamera.
Restituisce l’oggetto Livello superiore del livello, se esiste. Esempio: position[0] + parent.width
hasParent
Tipo di valore restituito: booleano.
Restituisce true se il livello ha un livello superiore o false in caso contrario.
Utilizza l’attributo hasParent per stabilire se un livello ha un livello superiore. Potete utilizzare questo attributo anche se attualmente il livello non ha un livello superiore. Ad esempio, la seguente espressione indica che il livello al quale applicate l’elemento superiore si deforma in base alla posizione del livello superiore. Se il livello non ha elementi superiori, si deforma rispetto alla propria posizione. Se al livello viene successivamente assegnato un livello superiore, il comportamento del livello cambia di conseguenza:
idx = index; if (hasParent) { idx = parent.index; } thisComp.layer(idx).position.wiggle(5,20)inPoint
Tipo di valore restituito: Numero.
Restituisce il punto di attacco del livello in secondi.
In generale, il valore di outPoint è maggiore del valore di inPoint. Tuttavia, se l’ordine di un livello nel tempo viene invertito, il valore di in Point è maggiore del valore di outPoint. Allo stesso modo, il valore di startTime può essere maggiore del valore di inPoint.
outPoint
Tipo di valore restituito: numero.
Restituisce il punto di stacco del livello in secondi.
startTime
Tipo di valore restituito: Numero.
Restituisce il momento iniziale del livello in secondi.
hasVideo
Tipo di valore restituito: booleano.
Restituisce vero se il livello dispone di un video, falso in caso contrario.
hasAudio
Tipo di valore restituito: Booleano.
Restituisce vero se il livello dispone di un audio, falso in caso contrario.
active
Tipo di valore restituito: Booleano.
Restituisce true se lo switch Video è attivato per il livello e se il tempo corrente è compreso nell’intervallo tra il punto di attacco e il punto di scatto del livello, in caso contrario restituisce false.
attivato
Tipo di valore restituito: Booleano.
Restituisce true se lo switch Video è attivato per il livello; in caso contrario restituisce false.
audioActive
Tipo di valore restituito: booleano.
Restituisce true se lo switch Video è attivato per il livello e se il tempo corrente è compreso nell’intervallo tra il punto di attacco e il punto di scatto del livello, in caso contrario restituisce false.
sampleImage(point, radius = [.5, .5], postEffect=true, t=time)
Tipo di valore restituito: matrice [4].
Tipo di argomento: point è una matrice [2], radius è una matrice [2], postEffect è un booleano e t è un numero.
Campiona i valori dei colori e del canale alfa di un livello e restituisce il valore alfa medio ponderato dei pixel entro la distanza specificata del punto come matrice: [red, green, blue, alpha]. Se postEffect è vero, i valori campionati sono relativi al livello dopo che maschere ed effetti del livello stesso sono stati sottoposti a rendering; se postEffect è falso, i valori campionati sono relativi al livello prima che maschere ed effetti siano stati sottoposti a rendering. Il valore di input point è nello spazio del livello; il punto [0,0] è il centro del pixel in alto a sinistra del livello. Il valore di input radius specifica la distanza verticale e orizzontale dal centro del campione ai bordi del rettangolo campionato. Il valore predefinito campiona un solo pixel.
Il parametro postEffect si riferisce agli effetti applicati direttamente al livello, non agli effetti applicati indirettamente, come nel caso di un livello di regolazione.
L’utilizzo di sampleImage in un’espressione non disattiva più l’elaborazione multipla.
In questo esempio viene campionato un rettangolo di 4 pixel di larghezza e 3 pixel di altezza, centrato intorno a un punto 100 pixel in basso e a destra dell’angolo superiore sinistro del livello.
thisComp.layer(1).sampleImage([100, 100], [2, 1.5])
Attributi e metodi delle proprietà del livello (riferimento espressioni)
Aggiungendo maschere, effetti, pennello o testo a un livello, After Effects aggiunge nuove proprietà al pannello Timeline. Il numero delle proprietà è troppo elevato perché possano essere elencate, usate quindi il selettore per imparare la sintassi necessaria per fare riferimento a esse nelle vostre espressioni.
anchorPoint
Tipo di valore restituito: proprietà [2 o 3].
Restituisce il valore del punto di ancoraggio del livello nel sistema di coordinate del livello (spazio livello).
position
Tipo di valore restituito: Proprietà [2 o 3].
Restituisce il valore della posizione del livello, nello spazio mondo, se il livello non ha un elemento superiore. Se il livello ha un elemento superiore, restituisce il valore della posizione del livello nel sistema di coordinate del livello superiore (nello spazio livello del livello superiore).
scale
Tipo di valore restituito: Proprietà [2 o 3].
Restituisce il valore della scala del livello, espressa in percentuale.
rotation
Tipo di valore restituito: proprietà.
Restituisce il valore di rotazione del livello in gradi. Per un livello 3D, restituisce il valore di rotazione z in gradi.
opacità
Tipo di valore restituito: proprietà.
Restituisce il valore di opacità per il livello, espresso in percentuale.
audioLevels
Tipo di valore restituito: proprietà [2].
Restituisce il valore della proprietà Livelli audio del livello in decibel. Si tratta di un valore 2D; il primo valore rappresenta il canale audio a sinistra e il secondo valore il canale audio a destra. Il valore non è l’ampiezza della traccia audio del materiale sorgente. Al contrario, si tratta del valore della proprietà Livelli audio, che potrebbe venire interessato dai fotogrammi chiave.
timeRemap
Tipo di valore restituito: proprietà.
Restituisce il valore della proprietà Modifica tempo in secondi, se tale funzione è attivata.
marker.key(index)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: indice è un Numero.
Restituisce l’oggetto MarkerKey del marcatore livello con l’indice specificato.
marker.key(name)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: nome è una stringa.
Restituisce l’oggetto MarkerKey del marker di livello con il nome specificato. Il valore nome è il nome del marcatore, come digitato nel campo del commento nella finestra di dialogo Marcatore, ad esempio, marker.key("ch1"). Se più di un marcatore sul livello ha lo stesso nome, questo metodo restituisce il marcatore che è posizionato prima nel tempo (nel tempo del livello). Il valore per un marcatore è una stringa, non un numero.
Quest’espressione su una proprietà ne regola il valore da 0 a 100 tra due marcatori identificati dal nome:
m1 = marker.key("Start").time; m2 = marker.key("End").time; linear(time, m1, m2, 0, 100);marker.nearestKey(t)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: t è un numero.
Restituisce il marcatore del livello che è più vicino nel tempo a t. Ad esempio, questa espressione restituisce il tempo del marcatore sul livello più vicino al tempo di 1 secondo:
marker.nearestKey(1).timeQuesta espressione restituisce il tempo del marcatore sul livello più vicino al tempo corrente:
marker.nearestKey(time).timemarker.numKeys
Tipo di valore restituito: Numero.
Restituisce il numero totale di marcatori sul livello.
nome
Tipo di valore restituito: Stringa.
Restituisce il nome del livello.
Attributi e metodi 3D per i livelli (riferimento per espressioni)
orientation
Tipo di valore restituito: proprietà [3].
Restituisce il valore orientamento 3D in gradi per un livello 3D.
rotationX
Tipo di valore restituito: proprietà.
Restituisce il valore rotazione x in gradi per un livello 3D.
rotationY
Tipo di valore restituito: proprietà.
Restituisce il valore rotazione y, in gradi per un livello 3D.
rotationZ
Tipo di valore restituito: proprietà.
Restituisce il valore rotazione z in gradi per un livello 3D.
lightTransmission
Tipo di valore restituito: proprietà.
Restituisce il valore della proprietà Trasmissione luce per un livello 3D.
castsShadows
Tipo di valore restituito: proprietà.
Restituisce un valore di 1.0 se il livello crea ombre.
acceptsShadows
Tipo di valore restituito: proprietà.
Restituisce un valore di 1.0 se il livello accetta ombre.
acceptsLights
Tipo di valore restituito: proprietà.
Restituisce un valore di 1.0 se il livello accetta luci.
ambient
Tipo di valore restituito: proprietà.
Restituisce il valore del componente ambiente in percentuale.
diffuse
Tipo di valore restituito: proprietà.
Restituisce il valore del componente diffusione in percentuale.
specular
Tipo di valore restituito: proprietà.
Restituisce il valore del componente speculare in percentuale.
shininess
Tipo di valore restituito: proprietà.
Restituisce il valore del componente brillantezza in percentuale.
metal
Tipo di valore restituito: proprietà.
Restituisce il valore del componente metallo in percentuale.
Metodi di trasformazione dello spazio per i livelli (riferimento per espressioni)
Utilizzate i metodi di trasformazione dello spazio di un livello per trasformare i valori da uno spazio all’altro, ad esempio dallo spazio livello allo spazio mondo. I metodi “from” trasformano i valori dallo spazio denominato (composizione o mondo) allo spazio del livello. I metodi “to” trasformano i valori dallo spazio del livello allo spazio denominato (composizione o mondo). Ogni metodo di trasformazione prende un argomento opzionale per determinare il tempo in cui viene calcolata la trasformazione; tuttavia, potete usare quasi sempre il tempo corrente (predefinito).
Utilizzate i metodi di trasformazione “Vec” per trasformare un vettore direzione, a esempio la differenza tra due valori posizione. Utilizzate i metodi di trasformazione normali (non-”Vec”) per trasformare un punto, a esempio una posizione. Lo spazio composizione e mondo sono gli stessi per i livelli 2D. Per i livelli 3D, tuttavia, lo spazio composizione è relativo alla videocamera attiva e lo spazio mondo è indipendente dalla videocamera.
toComp(point, t=time)
Tipo di valore restituito: matrice [2 o 3].
Tipo di argomento: point è una matrice [2 o 3] e t è un numero.
Trasforma un punto dallo spazio livello allo spazio composizione.
fromComp(point, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: point è una matrice [2 o 3] e t è un numero.
Trasforma un punto dallo spazio composizione allo spazio livello. Il punto risultante in un livello 3D ha un valore diverso da zero anche se si trova nello spazio del livello. Esempio: fromComp(thisComp.layer(2).position)
toWorld(point, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: point è una matrice [2 o 3] e t è un numero.
Trasforma un punto dallo spazio livello allo spazio mondo indipendente dalla visualizzazione. Esempio:
toWorld.effect("Bulge")("Bulge Center")
fromWorld(point, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: point è una matrice [2 o 3] e t è un numero.
Trasforma un punto dallo spazio mondo allo spazio livello. Esempio: fromWorld(thisComp.layer(2).position)
Per un esempio di come è possibile utilizzare questo metodo, consultate Esempio dell’espressione: creare un rigonfiamento tra due livelli.
toCompVec(vec, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: vec è una matrice [2 o 3] e t è un numero.
Trasforma un vettore dallo spazio livello allo spazio composizione. Esempio: toCompVec([1,0])
fromCompVec(vec, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: vec è una matrice [2 o 3] e t è un numero.
Trasforma un vettore dallo spazio composizione allo spazio livello. Esempio (livello 2D):
dir=sub(position, thisComp.layer(2).position); fromCompVec(dir)toWorldVec(vec, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: vec è una matrice [2 o 3] e t è un numero.
Trasforma un vettore dallo spazio livello allo spazio mondo. Esempio: p1 = effect("Eye Bulge 1")("Bulge Center"); p2 = effect("Eye Bulge 2")("Bulge Center"); toWorld(sub(p1, p2))
fromWorldVec(vec, t=time)
Tipo di valore restituito: Matrice [2 o 3].
Tipo di argomento: vec è una matrice [2 o 3] e t è un numero.
Trasforma un vettore dallo spazio mondo allo spazio livello. Esempio: fromWorld(thisComp.layer(2).position)
fromCompToSurface(point, t=time)
Tipo di valore restituito: Matrice [2].
Tipo di argomento: point è una matrice [2 o 3] e t è un numero.
Proietta un punto nello spazio composizione verso un punto sulla superficie del livello (valore z zero) nella posizione nella quale compare quando è visualizzato dalla videocamera attiva. Questo metodo è utile per impostare i punti di controllo degli effetti. Utilizza solo con i livelli 3D.
Attributi e metodi Videocamera (riferimento espressioni)
Gli oggetti Videocamera hanno gli stessi attributi e metodi degli oggetti Livello, a eccezione di sorgente, effetto, maschera, larghezza, altezza, anchorPoint, scala, opacità, audioLevels, timeRemap e di tutte le proprietà materiale.
pointOfInterest
Tipo di valore restituito: Proprietà [3].
Restituisce i valori del punto di interesse di una videocamera nello spazio mondo.
zoom
Tipo di valore restituito: proprietà.
Restituisce i valori di zoom di una videocamera in pixel.
Ecco un’espressione per la proprietà Scala di un livello che mantiene le dimensioni relative del livello nel fotogramma, mentre cambia la posizione z (profondità) di un livello o del valore Zoom di una videocamera:
cam = thisComp.activeCamera; distance = length(sub(position, cam.position)); scale * distance / cam.zoom;
depthOfField
Tipo di valore restituito: proprietà.
Restituisce 1 se la proprietà Profondità di campo di una videocamera è attivata, oppure restituisce 0 se la proprietà Profondità di campo è disattivata.
focusDistance
Tipo di valore restituito: proprietà.
Restituisce il valore della distanza focale di una videocamera in pixel.
aperture
Tipo di valore restituito: proprietà.
Restituisce il valore di apertura di una videocamera, in pixel.
blurLevel
Tipo di valore restituito: proprietà.
Restituisce il valore del livello di sfocatura di una videocamera in percentuale.
active
Tipo di valore restituito: Booleano.
Restituisce true se la videocamera è la videocamera attiva per la composizione nel tempo corrente: lo switch Video per il livello della videocamera è attivato, il tempo corrente è compreso nell’intervallo dal punto di attacco del livello della videocamera al punto di stacco del livello della videocamera ed è il primo livello (quello in cima all’elenco) elencato nel pannello Timeline. In caso contrario restituisce falso.
Attributi e metodi Luce (riferimento espressioni)
Gli oggetti Luce hanno gli stessi attributi e metodi degli oggetti Livello, a eccezione di sorgente, effetto, maschera, larghezza, altezza, anchorPoint, scala, opacità, audioLevels, timeRemap e di tutte le proprietà materiale.
pointOfInterest
Tipo di valore restituito: Proprietà [3].
Restituisce i valori del punto d’interesse per una luce nello spazio mondo.
intensity
Tipo di valore restituito: proprietà.
Restituisce i valori di intensità di una luce, in percentuale.
color
Tipo di valore restituito: Proprietà [4].
Restituisce il valore di colore di una luce.
coneAngle
Tipo di valore restituito: proprietà.
Restituisce l’angolo di un cono di una luce in gradi.
coneFeather
Tipo di valore restituito: proprietà.
Restituisce il valore di sfumatura del cono di una luce in percentuale.
shadowDarkness
Tipo di valore restituito: proprietà.
Restituisce il valore di oscurità dell’ombra di una luce in percentuale.
shadowDiffusion
Tipo di valore restituito: proprietà.
Restituisce il valore di diffusione dell’ombra di una luce in pixel.
Attributi e metodi degli effetti (riferimento espressioni)
active
Tipo di valore restituito: booleano.
Restituisce true se l’effetto è attivato (lo switch Effetto è selezionato).
param(name)
Tipo di valore restituito: proprietà.
Tipo di argomento: nome è una stringa.
Restituisce una proprietà all’interno di un effetto. I punti di controllo dell’effetto sono sempre nello spazio livello. Esempio:
effect("Bulge").param("Bulge Height")param(index)
Tipo di valore restituito: proprietà.
Tipo di argomento: index è un numero.
Restituisce una proprietà all’interno di un effetto. I punti di controllo dell’effetto sono sempre nello spazio livello. Ad esempio, effect("Bulge").param(4) restituisce la proprietà Altezza rigonfiamento.
Attributi e metodi delle maschere (riferimento espressioni)
Potete collegare le proprietà Tracciato maschera ad altre proprietà di tracciato (tracciati in un livello forma, tratti pennello) ma le proprietà non sono accessibili per l’elaborazione numerica diretta tramite espressioni.
maskOpacity
Tipo di valore restituito: proprietà.
Restituisce il valore di opacità di una maschera in percentuale.
maskFeather
Tipo di valore restituito: proprietà.
Restituisce il valore di sfumatura di una maschera, in pixel.
maskExpansion
Tipo di valore restituito: proprietà.
Restituisce il valore di espansione di una maschera, in pixel.
invert
Tipo di valore restituito: booleano.
Restituisce vero se la maschera è invertita o falso in caso contrario.
value
Tipo di valore restituito: Numero, matrice o stringa.
Restituisce il valore di una proprietà nel tempo corrente.
valueAtTime(t)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t è un numero.
Restituisce il valore di una proprietà nel tempo specificato, in secondi.
Ad esempio, per avere un valore di proprietà per ciascun fotogramma da scegliere casualmente da un insieme di quattro valori, impostate i quattro valori come fotogrammi chiave a 0, 1, 2 e 3 secondi, quindi applicate la seguente espressione alla proprietà:
valueAtTime(random(4))
velocity
Tipo di valore restituito: numero o matrice.
Restituisce il valore della velocità temporale al tempo corrente. Per le proprietà spaziali, ad esempio la Posizione, restituisce il valore del vettore tangente. Il risultato è la stessa dimensione della proprietà.
velocityAtTime(t)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: t è un numero.
Restituisce il valore della velocità temporale al tempo specificato.
speed
Tipo di valore restituito: Numero.
Restituisce un valore di velocità positivo 1D uguale alla velocità alla quale la proprietà sta cambiando al tempo predefinito. Questo elemento può essere usato solo per le proprietà spaziali.
speedAtTime(t)
Tipo di valore restituito: Numero.
Tipo di argomento: t è un numero.
Restituisce il valore di velocità spaziale al tempo specificato.
wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: freq, amp, octaves, amp_mult e t sono numeri.
Scuote (deforma) casualmente il valore della proprietà.
Il valore freq è la frequenza espressa in deformazioni al secondo.
Il valore amp è l’ampiezza espressa in unità della proprietà alla quale viene applicato.
octaves è il numero di ottave di rumore da aggiungere insieme. Questo valore controlla quanti dettagli sono presenti nella deformazione. Potete elevare questo valore rispetto al valore predefinito 1 in modo da includere le frequenze più alte, oppure potete abbassarlo per includere l’armonica di ampiezza nella deformazione.
amp_mult è il valore per il quale amp viene moltiplicato per ciascuna ottava. Questo valore controlla la rapidità con la quale le armoniche vengono rilasciate. Il valore predefinito è pari a 0,5. Avvicinandolo a 1, l’armonica viene aggiunta alla stessa ampiezza della frequenza di base, mentre avvicinandolo a 0 viene aggiunto un numero minore di dettagli.
t è il tempo di inizio base. Questo valore passa automaticamente al tempo corrente. Usate questo parametro se desiderate che l’output sia una deformazione del valore della proprietà campionato in un tempo diverso.
Esempio: position.wiggle(5, 20, 3, .5) genera circa 5 deformazioni al secondo con dimensioni medie pari a circa 20 pixel. Oltre alla deformazione principale, si verificano altri due livelli di deformazioni dettagliate, con una frequenza di 10 e 20 deformazioni al secondo e dimensioni pari a 10 e 5 pixel, rispettivamente.
In questo esempio, su una proprietà bidimensionale come Scala, entrambe le dimensioni vengono deformate in base alla stesso valore:
v = wiggle(5, 10); [v[0], v[0]]
Questo esempio, su una proprietà bidimensionale, deforma solo lungo l’asse y:
freq = 3; amp = 50; w = wiggle(freq,amp); [value[0],w[1]];
temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: freq, amp, octaves, amp_mult e t sono numeri.
Esegue il campionamento della proprietà a un tempo deformato. Il valore freq rappresenta la frequenza di deformazioni al secondo, ampè l’ampiezza in unità della proprietà alla quale è applicato, octaves rappresenta il numero di ottave di disturbo da aggiungere, amp_mult è la quantità per la quale moltiplicare amp per ogni ottava, e t è il momento iniziale di base. Perché questa funzione abbia significato, la proprietà campionata deve essere animata, dal momento che la funzione altera solo il tempo di campionamento, non il valore. Esempio: scale.temporalWiggle(5, .2)
smooth(width=.2, samples=5, t=time)
Tipo di valore restituito: numero o matrice.
Tipo di argomento: larghezza, samples e t sono numeri.
Uniforma i valori della proprietà nel tempo, convertendo deviazioni grandi e brevi del valore in deviazioni più piccole e distribuite più uniformemente. Questa operazione di uniformazione viene eseguita applicando un filtro casella al valore della proprietà al tempo specificato. Il valore larghezza è l’intervallo di tempo (in secondi) durante il quale il filtro ha un valore medio. Il valore samples è il numero di campioni discreti distanziati in modo uniforme nel tempo; utilizzate un valore maggiore per ottenere una maggiore uniformità (ma prestazioni inferiori). In genere, samples deve essere un numero dispari in modo tale che il valore al tempo corrente sia incluso nella media. Esempio: position.smooth(.1, 5)
loopIn(type="cycle", numKeyframes=0)
Tipo di valore restituito: numero o matrice.
Esegue il ciclo continuo di un segmento di tempo misurato dal primo fotogramma chiave sul livello in avanti verso il punto di stacco del livello. Il ciclo continuo viene eseguito dal punto di attacco del livello. Il valore numKeyframe determina il segmento del quale viene eseguito il ciclo. Questo segmento è la parte del livello dal primo fotogramma chiave al numKeyframes+ 1 fotogramma chiave. Ad esempio, loopIn("cycle", 3) esegue il ciclo continuo del segmento limitato dal primo e dal quarto fotogramma chiave. Il valore predefinito 0 indica che su tutti i fotogrammi chiave sarà eseguito il ciclo continuo.
Potete utilizzare i metodi di ripetizione a ciclo continuo dei fotogrammi chiave per ripetere una serie di fotogrammi chiave. Questi metodi possono essere utilizzati sulla maggior parte delle proprietà. Le eccezioni includono le proprietà che non possono essere espresse mediante semplici valori numerici nel pannello Timeline, come ad esempio la proprietà Testo sorgente, le proprietà della forma del tracciato e la proprietà Istogramma per l’effetto Livelli. I fotogrammi chiave o i valori di durata troppo ampi sono ritagliati al valore massimo consentito. I valori troppo piccoli produrranno un ciclo continuo.
tipo di ciclo |
risultato |
---|---|
cycle |
(impostazione predefinita) Ripete il segmento specificato. |
pingpong |
Ripete il segmento specificato, alternandolo avanti e indietro. |
offset |
Ripete il segmento specificato, ma esegue uno scostamento di ogni ciclo pari alla differenza del valore della proprietà all’inizio e alla fine del segmento, moltiplicato per il numero di volte che il segmento ha eseguito il ciclo continuo. |
continue |
Non ripete il segmento specifico, ma continua a animare una proprietà in base alla velocità in prossimità del primo o dell’ultimo fotogramma. Ad esempio, se l’ultimo fotogramma della proprietà Scala di un livello è pari a 100%, il livello continua a scalare da 100% fino al punto di stacco, invece di eseguire un ciclo continuo direttamente indietro fino al punto di stacco. Questo tipo non accetta un argomento keyframes o duration. |
loopOut(type="cycle", numKeyframes=0)
Tipo di valore restituito: numero o matrice.
Esegue il ciclo continuo di un segmento di tempo misurato dall’ultimo fotogramma chiave sul livello indietro verso il punto di stacco del livello. Il ciclo continuo viene eseguito fino al punto di stacco del livello. Il numero specificato di fotogrammi chiave determina il segmento del quale eseguire il ciclo continuo. Il valore numKeyframes imposta il numero di segmenti del fotogramma chiave dei quali eseguire il ciclo continuo; la misurazione dell’intervallo specificato viene effettuata all’indietro partendo dall’ultimo fotogramma chiave. Ad esempio, loopOut("cycle", 1) esegue il ciclo continuo del segmento limitato dall’ultimo e dal penultimo fotogramma chiave. Il valore predefinito 0 indica che su tutti i fotogrammi chiave sarà eseguito il ciclo continuo. Per ulteriori informazioni consulta la voce loopIn.
loopInDuration(type="cycle", duration=0)
Tipo di valore restituito: numero o matrice.
Esegue il ciclo continuo di un segmento di tempo misurato dal primo fotogramma chiave sul livello in avanti verso il punto di stacco del livello. Il ciclo continuo viene eseguito dal punto di attacco del livello. La durata specificata determina il segmento del quale eseguire il ciclo continuo. Il valore duration imposta il numero di secondi della composizione in un segmento del quale eseguire il ciclo continuo; l’intervallo specificato viene misurato dal primo fotogramma chiave. Ad esempio, loopInDuration("cycle", 1) esegue il ciclo continuo del primo secondo dell’intera animazione. Il valore predefinito di 0 significa che il segmento del quale eseguire il ciclo continuo inizia al punto di stacco del livello. Per ulteriori informazioni consultate la voce loopIn.
loopOutDuration(type="cycle", duration=0)
Tipo di valore restituito: numero o matrice.
Esegue il ciclo continuo di un segmento di tempo misurato dall’ultimo fotogramma chiave sul livello indietro verso il punto di stacco del livello. Il ciclo continuo viene eseguito fino al punto di stacco del livello. La durata specificata determina il segmento del quale eseguire il ciclo continuo. Il valore duration imposta il numero di secondi della composizione in un segmento del quale eseguire il ciclo continuo; la misurazione dell’intervallo specificato viene effettuata indietro dall’ultimo fotogramma chiave. Ad esempio, loopOutDuration("cycle", 1) esegue il ciclo continuo dell’ultimo secondo dell’intera animazione. Il valore predefinito di 0 significa che il segmento del quale eseguire il ciclo continuo inizia nel punto di attacco del livello. Per ulteriori informazioni consultate la voce loopIn.
key(index)
Tipo di valore restituito: Key o MarkerKey.
Tipo di argomento: index è un numero.
Restituisce l’oggetto Key o MarkerKey in base al numero. Ad esempio, key(1) restituisce il primo fotogramma chiave.
key(markerName)
Tipo di valore restituito: MarkerKey.
Tipo di argomento: markerName è una stringa.
Restituisce l’oggetto MarkerKey con questo nome. Utilizza solo per le proprietà marcatore.
nearestKey(t)
Tipo di valore restituito: Key o MarkerKey.
Restituisce l’oggetto Key o MarkerKey più vicino al tempo indicato.
numKeys
Tipo di valore restituito: Numero.
Restituisce il numero di fotogrammi chiave in una proprietà. Restituisce il numero di marcatori in una proprietà marcatore.
Se utilizzi il comando Dimensioni separate per separare le dimensioni della proprietà Posizione in singoli componenti, il numero di fotogrammi chiave cambia, quindi cambia anche il valore restituito da questo metodo.
propertyGroup(countUp = 1)
Tipo di valore restituito: gruppo.
Restituisce un gruppo di proprietà relative alla proprietà sulla quale è scritta l’espressione. Ad esempio, aggiungendo l’espressione propertyGroup(1) alla proprietà Rotazione di un tratto pennello, l’espressione è destinata al gruppo di proprietà Trasformazione, che contiene la proprietà Rotazione. Aggiungendo invece propertyGroup(2), l’espressione è destinata al gruppo di proprietà Pennello. Questo metodo vi consente di stabilire relazioni indipendenti dal nome nella gerarchia della proprietà. Questo metodo particolarmente utile durante la duplicazione delle proprietà che contengono le espressioni.
Il metodo numProperties per propertyGroup restituisce il numero di proprietà presenti nel gruppo di proprietà.
Questo esempio restituisce il numero di proprietà nel gruppo che contiene la proprietà sulla quale è scritta l’espressione:
thisProperty.propertyGroup(1).numProperties
propertyIndex
Tipo di valore restituito: Numero.
Restituisce l’indice di una proprietà relativa ad altre proprietà nel suo gruppo di proprietà, inclusi i gruppi di proprietà all’interno di maschere, effetti, animatori di testo, selettori, forme, tracciatori e punti traccia.
nome
Tipo di valore restituito: Stringa.
Restituisce il nome della proprietà o del gruppo di proprietà.
Proprietà del progetto (riferimento espressioni)
Metodo di espressione:
- L’oggetto thisProject rappresenta il progetto che contiene l’espressione.
Tipo:
Oggetto progetto; di sola lettura
- Attributo fullPath del progetto thisProject.fullPath: il percorso assoluto del file specifico per la piattaforma, incluso il nome del file del progetto. Se il progetto non è stato salvato, restituisce una stringa vuota.
Tipo: stringa; sola lettura.
- Attributo bitsPerChannel del progetto thisProject.bitsPerChannel: definisce la profondità di colore del progetto in bit per canale (bpc), come impostato in Impostazioni progetto > Gestione colore. È uno tra i seguenti valori: 8, 16, 32. Equivale all’attributo del progetto per script app.project.bitsPerChannel.
Tipo numero; sola lettura.
- Attributo linearBlending del progetto thisProject.linearBlending: lo stato dell’opzione Fusione colori con gamma 1.0 in Impostazioni progetto > Gestione colore. Equivale all’attributo del progetto per script app.project.linearBlending.
Tipo:booleano; sola lettura.
Attributi e metodi per fotogrammi chiave (riferimento espressioni)
Accedendo all’oggetto Key, potete ottenere le proprietà Tempo, Indice e Valore. Ad esempio, la seguente espressione fornisce il valore del fotogramma chiave nella terza posizione: position.key(3).value.
La seguente espressione, se scritta su una proprietà Opacità con fotogrammi chiave, ignora i valori dei fotogrammi chiave e utilizza solo la posizione dei fotogrammi chiave nel tempo per determinare dove deve verificarsi un flash: d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0
d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0)
value
Tipo di valore restituito: numero o matrice.
Restituisce il valore del fotogramma chiave.
time
Tipo di valore restituito: Numero.
Restituisce il tempo del fotogramma chiave.
index
Tipo di valore restituito: Numero.
Restituisce l’indice del fotogramma chiave.
Attributi MarkerKey (riferimento espressioni)
Potete accedere ai valori per i marcatori composizione e i marcatori livello utilizzando gli stessi metodi. Potete accedere ai marcatori livello mediante l’oggetto thisLayer.marker e ai marcatori composizione mediante l’oggetto thisComp.marker.
Per le espressioni, i marcatori sono un tipo speciale di oggetto Key, potete quindi utilizzare metodi come nearestKey(time) per accedere ai marcatori. I marcatori hanno anche attributi time e index. L’attributo index non è il numero (nome) del marcatore, è il numero di indice del fotogramma chiave, che rappresenta l’ordine del marcatore nel righello temporale.
Le espressioni hanno accesso a tutti i valori di un marcatore che può essere impostato nella finestra di dialogo Marcatore composizione o Marcatore livello. Quest’espressione sulla proprietà Testo sorgente di un livello di testo visualizza il tempo, la durata, l’indice, il commento (nome), il capitolo, l’URL, il fotogramma di destinazione e il nome del punto cue per il marcatore livello più vicino al tempo corrente e se il marcatore è relativo a un punto cue dell’evento.
m = thisLayer.marker.nearestKey(time); s = "time:" + timeToCurrentFormat(m.time) + "\r" + "duration: " + m.duration + "\r" + "key index: " + m.index + "\r" + "comment:" + m.comment + "\r" + "chapter:" + m.chapter + "\r" + "URL:" + m.url + "\r" + "frame target: " + m.frameTarget + "\r" + "cue point name: " + m.cuePointName + "\r" + "Event cue point? " + m.eventCuePoint + "\r"; for (param in m.parameters){ s += "parameter: " + param + " value: " + m.parameters[param] + "\r"; } s
Poiché i metadati XMP in un elemento di metraggio possono essere convertiti in marcatori livello per un livello in base a quell’elemento, le espressioni possono interagire con i metadati. Per informazioni, consultate Metadati XMP in After Effects.
duration
Tipo di valore restituito: numero.
Durata, in secondi, del marcatore.
comment
Tipo di valore restituito: Stringa.
Contenuto del campo Commenti nella finestra di dialogo del marcatore.
chapter
Tipo di valore restituito: Stringa.
Contenuto del campo Capitolo nella finestra di dialogo del marcatore.
url
Tipo di valore restituito: Stringa.
Contenuti del campo URL nella finestra di dialogo del marcatore.
frameTarget
Tipo di valore restituito: Stringa.
Contenuti del campo Destinazione fotogramma nella finestra di dialogo del marcatore.
eventCuePoint
Tipo di valore restituito: booleano.
Impostazione del tipo di punto cue nella finestra di dialogo del marcatore. Vero per Event, falso per Navigation.
cuePointName
Tipo di valore restituito: Stringa.
Contenuti del campo Nome punto cue nella finestra di dialogo del marcatore.
parameters
Tipo di valore restituito: matrice che associa valori Stringa.
Contenuti dei campi Nome parametro e Valore parametro nella finestra di dialogo del marcatore.
Se ad esempio hai un parametro denominato “background color”, puoi utilizzare la seguente espressione per accedere ai relativi valori sul marcatore più vicino:
thisComp.marker.nearestKey(time).parameters["background color"]
MarkerValue.protectedRegion (riferimento espressioni)
Metodo di espressione:
thisComp.marker.key(index).protectedRegion
Descrizione:
Se è vero, il marcatore composizione si comporta come un’area protetta.
Tipo:
booleano; sola lettura.
Accesso ai punti tracciato su forme, maschere e tratti pennello per le espressioni (riferimento espressioni)
Puoi utilizzare le espressioni per leggere e scrivere le coordinate x e y dei punti di tracciati o vertici, per:
- Maschere di livello
- Forme Bezier
- Tratti pennello negli effetti Disegno e Pennello a rotoscopio e miglioramento dei bordi.
Metodi di espressione:
- Metodo points() per tracciati: {pathProperty}.points(t = time)Consente di ottenere le coordinate x e y di tutti i punti di un tracciato. Le coordinate dei punti del tracciato di una maschera di livello sono relative all’origine del livello nel suo angolo superiore a sinistra. Le coordinate per i punti tracciato della forma Bezier si riferiscono al punto di ancoraggio del gruppo forma del tracciato, ad esempio Trasforma: forma 1 > Punto di ancoraggio. Le coordinate dei punti del tracciato dei tratti pennello sono relative all’inizio del tratto; il primo punto è [0,0]. Facoltativamente, potete specificare il tempo in corrispondenza del quale verrà campionato il tracciato. Quando si duplica un tracciato, questo metodo può essere passato nel metodo createPath() per il parametro points.
Parametri:
t |
Numero, opzionale. Il tempo nella composizione (in secondi) in corrispondenza del quale verrà campionato il tracciato. Il valore predefinito è time (tempo corrente). |
Valori restituiti:
Matrice di matrici composte di coppie di numeri, con arrotondamento alla quarta cifra decimale.
- Metodo inTangents() per tracciati: {pathProperty}.inTangents(t = time) Consente di ottenere le coordinate x e y della maniglia tangente in ingresso per tutti i punti di un tracciato. I valori delle coordinate della tangente rappresentano lo scostamento relativo alle coordinate del punto a cui appartiene la maniglia. In altre parole, il valore [0,0] non crea alcuna curvatura per la tangente in ingresso. Quando si duplica un tracciato, questo metodo può essere passato nel metodo createPath() per il parametro inTangents. Facoltativamente, puoi specificare il tempo in corrispondenza del quale verrà campionato il tracciato.
Parametri:
t |
Numero, opzionale. Il tempo nella composizione (in secondi) in corrispondenza del quale verrà campionato il tracciato. Il valore predefinito è time (tempo corrente). |
Valori restituiti:
Matrice di matrici composte di coppie di numeri, con arrotondamento alla quarta cifra decimale.
- Metodo inTangents() per tracciati: {pathProperty}.inTangents(t = time) Consente di ottenere le coordinate x e y della maniglia tangente in ingresso per tutti i punti di un tracciato. I valori delle coordinate della tangente rappresentano lo scostamento relativo alle coordinate del punto a cui appartiene la maniglia. Il valore [0,0] non crea alcuna curvatura nella tangente in uscita. Quando si duplica un tracciato, questo metodo può essere passato nel metodo createPath() per il parametro is_closed. Facoltativamente, puoi specificare il tempo in corrispondenza del quale verrà campionato il tracciato.
Parametri:
t |
Numero, opzionale. Il tempo nella composizione (in secondi) in corrispondenza del quale verrà campionato il tracciato. Il valore predefinito è time (tempo corrente). |
Valori restituiti:
Matrice di matrici composte di coppie di numeri, con arrotondamento alla quarta cifra decimale.
- Metodo isClosed() per tracciati: {pathProperty}.isClosed()Determina se il tracciato è aperto o chiuso. Restituisce true se il tracciato è chiuso, false se è aperto. Quando si duplica un tracciato, questo metodo può essere passato nel metodo createPath() per il parametro is_closed.
Parametri:
Nessuno
Valori restituiti:
booleano
- Metodo pointOnPath() per tracciati {pathProperty}.pointOnPath(percentage = 0.5, t = time)Consente di ottenere le coordinate x e y di un punto arbitrario lungo un tracciato. Il punto viene espresso come percentuale della lunghezza dell’arco del tracciato. 0% è il primo punto e 100% è l’ultimo. Quando il tracciato è chiuso, 0% e 100% restituiscono le stesse coordinate. La percentuale della lunghezza dell’arco viene utilizzata per garantire una velocità uniforme lungo il tracciato. A parte i valori 0% e 100%, le percentuali non sono necessariamente correlate ai punti Bezier del tracciato. Per un tracciato con tre punti, il secondo punto non corrisponde necessariamente al 50%. Questo significa anche che per un tracciato aperto e un tracciato chiuso con punti identici, la percentuale lungo il tracciato aperto non restituisce le stesse coordinate del tracciato chiuso, a causa della lunghezza aggiuntiva del tracciato chiuso. Facoltativamente, puoi specificare il tempo in corrispondenza del quale verrà campionato il tracciato.
Parametri:
percentage |
Numero compreso tra 0 e 1, opzionale. La percentuale lungo la lunghezza dell’arco del tracciato da campionare. I valori inferiori a 0 e superiori a 1 vengono ritagliati. Il valore predefinito è 0.5. |
t |
Numero, opzionale. Il tempo nella composizione (in secondi) in corrispondenza del quale verrà campionato il tracciato. Il valore predefinito è time (tempo corrente). |
Valori restituiti:
matrice con coppie di numeri.
- Metodo tangentOnPath() per tracciati {pathProperty}.tangentOnPath(percentage = 0.5, t = time) Consente di ottenere le coordinate x e y calcolate della maniglia tangente in uscita per un punto arbitrario lungo il tracciato. I valori delle coordinate della tangente rappresentano lo scostamento relativo alle coordinate del punto a cui appartiene la maniglia. Il valore [0,0] non crea alcuna curvatura nella tangente in uscita. La maniglia tangente in ingresso è l’inverso di questo valore (si moltiplicano le coordinate x e y per -1). Il punto della tangente è espresso come percentuale della lunghezza dell’arco del tracciato. Le coordinate restituite datangentOnPath() sono calcolate a partire da tale punto e differiscono da quelle restituite da outTangents() se per quella percentuale della lunghezza dell’arco esiste anche un punto definito dall’utente. La distanza lineare tra le coordinate del punto e le coordinate di tangentOnPath() è sempre 1. Potete moltiplicare le coordinate restituite per creare una tangente più lunga, ad esempio (myPath.tangentOnPath() * 100). Facoltativamente, puoi specificare il tempo in corrispondenza del quale verrà campionato il tracciato.
Parametri:
percentage |
Numero compreso tra 0 e 1, opzionale. La percentuale lungo la lunghezza dell’arco del tracciato da campionare. I valori inferiori a 0 e superiori a 1 vengono ritagliati. Il valore predefinito è 0.5. |
t |
Numero, opzionale. Il tempo nella composizione (in secondi) in corrispondenza del quale verrà campionato il tracciato. Il valore predefinito è time (tempo corrente). |
Valori restituiti:
matrice con coppie di numeri.
- Metodo normalOnPath() del percorso {pathProperty}.normalOnPath(percentage = 0.5, t = time): ottienete le coordinate x, y calcolate della normale per un punto arbitrario lungo il percorso. I valori delle coordinate delle normali sono sfalsati rispetto alle coordinate del punto principale: il valore [0,0] è lo stesso del punto principale. Il punto principale della normale è espresso come percentuale della lunghezza dell’arco del tracciato.per i dettagli sulla percentuale della lunghezza dell’arco, consultate la descrizione del metodo pointOnPath(). Le coordinate restituite danormalOnPath() vengono calcolate dal punto principale. La distanza lineare tra le coordinate del punto e le coordinate di normalOnPath() è sempre 1. Potete moltiplicare le coordinate restituite per creare una normale più lunga, ad esempio (myPath.normalOnPath() * 100). Facoltativamente, puoi specificare il tempo in corrispondenza del quale verrà campionato il tracciato.
Parametri:
percentage |
Numero compreso tra 0 e 1, opzionale. La percentuale lungo la lunghezza dell’arco del tracciato da campionare. I valori inferiori a 0 e superiori a 1 vengono ritagliati. Il valore predefinito è 0.5. |
t |
Numero, opzionale. Il tempo nella composizione (in secondi) in corrispondenza del quale verrà campionato il tracciato. Il valore predefinito è time (tempo corrente). |
Valori restituiti:
matrice con coppie di numeri.
- Metodo createPath() del tracciato{pathProperty}.createPath(points = [[0,0], [100,0], [100,100], [0,100]], inTangents = [], outTangents = [], is_closed = true): crea un oggetto del tracciato da un insieme di punti e tangenti. I punti sono definiti da una matrice di coppie di numeri che rappresentano le coordinate x,y. La lunghezza della matrice deve essere almeno 1 e può essere di qualsiasi lunghezza maggiore. Le maniglie della tangente in ingresso e in uscita dei punti sono definite da una serie di matrici di coppie di numeri che rappresentano le coordinate di scostamento x,y. La lunghezza delle matrici delle tangenti deve essere uguale a quella del parametro points. I valori delle coordinate di una tangente rappresentano lo scostamento relativo alle coordinate del punto associato alla tangente. Il valore [0,0] non crea alcuna curvatura nella tangente in ingresso. I punti(),inTangents(),outTangents() e i metodi isClosed() di un tracciato possono essere passati ai punti, inTangents, outTangents e ai parametri is_closed per duplicare un tracciato. È possibile passare i punti e le tangenti dello stesso tracciato a createPath() con modifiche per generare un risultato diverso. Ad esempio, la seguente espressione comporta la rimozione delle curve dalla maschera Mask 1 perché non passa i parametri inTangents o outTangents:
myMask = mask("Mask 1").path;
myMask.createPath(myMask.points());
L’esempio seguente passa i punti e le tangenti della maschera Mask 1 e li converte in un tracciato aperto impostando is_closed su false:
myMask = mask("Mask 1").path;
myMask.createPath(myMask.points(), myMask.inTangents(), myMask.outTangents(), false);
points |
Una matrice di lunghezza uguale o maggiore a 1 contenente matrici di coppie di numeri che rappresentano le coordinate [x,y] dei punti del tracciato. Obbligatorio a meno che non venga passato nessun parametro (ovvero, createPath()). Il valore predefinito è [[0,0], [100,0], [100,100], [0,100]]. |
is_closed |
Booleano, opzionale. Determina se la maschera è chiusa. Se è true, l’ultimo punto verrà collegato al primo punto. Il valore predefinito è true. |
inTangents |
Una matrice che contiene matrici di coppie di numeri che rappresentano le coordinate di scostamento [x,y] delle maniglie tangente in uscita rispetto ai punti del tracciato. Obbligatorio a meno che non venga passato nessun parametro (ovvero, createPath()). La lunghezza della matrice deve essere uguale a quella di points; oppure è possibile passare una matrice vuota ([]), a cui verrà assegnata la stessa lunghezza di point e [0,0] per tutte le tangenti. Il valore predefinito è una matrice vuota. |
outTangents |
Una matrice che contiene matrici di coppie di numeri che rappresentano le coordinate di scostamento [x,y] delle maniglie tangente in ingresso rispetto ai punti del tracciato. Obbligatorio a meno che non venga passato nessun parametro (ovvero, createPath()). La lunghezza della matrice deve essere uguale a quella di points; oppure è possibile passare una matrice vuota ([]), a cui verrà assegnata la stessa lunghezza di point e [0,0] per tutte le tangenti. Il valore predefinito è una matrice vuota. |
Valori restituiti:
oggetto tracciato.
Esempi:
- Esempio 1
Questo esempio genera un stringa con l’elenco delle coordinate di punti e tangenti dal tracciato Path 1 della forma Shape 1 sul livello Shape Layer 1, per la posizione temporale time=0. Applica questo esempio alla proprietà di testo sorgente di un livello di testo per rilevare le coordinate e le tangenti in ingresso e in uscita della forma.
pointsList = "";
sampleTime = 0;
myShape = thisComp.layer("Shape Layer 1").content("Shape 1").content("Path 1").path;
for (i = 0; i < myShape.points(sampleTime).length; i++) {
pointsList += "c: " + myShape.points(sampleTime)[i].toString() + " i: " + myShape.inTangents(sampleTime)[i].toString() + " o: " + myShape.outTangents(sampleTime)[i].toString() + "\n";
}
pointsList;
- Esempio 2
Questo esempio legge le coordinate del primo vertice della maschera Mask 1 sul livello Dark Gray Solid 1 e le converte in coordinate della composizione. Applicate questo esempio a un controllo di tipo punto 2D di un effetto, come Scrivi sopra o CC Particle Systems II, in modo che l’effetto possa tracciare o seguire il primo punto di una maschera animata. Duplica l’effetto e modifica il valore indice dei punti del tracciato ([0]) per tracciare gli altri punti della maschera.
myLayer = thisComp.layer("Dark Gray Solid 1");
myLayer.toComp(myLayer.mask("Mask 1").maskPath.points()[0]);
Animazione basata sui dati (riferimento espressioni)
Metodi di espressione:
- L’attributo di metraggio sourceText {footageItem}.sourceTextrestituisce il contenuto di un file .JSON sotto forma di stringa. Il metodo eval() può essere utilizzato per convertire la stringa in una matrice di oggetti sourceData, identico ai risultati dell’attributo sourceData, dalla quale si può fare riferimento ai singoli flussi di dati come attributi gerarchici dei dati. Ad esempio:
var myData = eval(footage("sample.json").sourceText);
myData.sampleValue;
Tipo:
stringa, il contenuto del file .JSON; di sola lettura.
- L’attributo di metraggio sourceData {footageItem}.sourceDatarestituisce i dati di un file .JSON come una matrice di oggetti sourceData. La struttura del file .JSON determina la dimensione e la complessità della matrice. È possibile fare riferimento ai singoli flussi di dati come attributi gerarchici dei dati. Ad esempio, dato un flusso di dati denominato Color, il codice seguente restituirà il valore di Color dal primo oggetto dati: footage("sample.json").sourceData[0].Color
L’utilizzo tipico consiste nell’assegnare il sourceData di un file .JSON a una variabile, quindi fare riferimento al flusso di dati desiderato. Ad esempio:
var myData = footage("sample.json").sourceData;
myData[0].Color;
Tipo:
Una matrice di oggetti sourceData; di sola lettura.
- Il metodo di metraggio dataValue() {footageItem}.dataValue(dataPath)restituisce il valore del flusso di dati statico o dinamico specificato in un file .mgJSON. Accetta un valore a matrice singola per definire il tracciato nella gerarchia del flusso di dati desiderato. Ad esempio:
footage("sample.mgjson").dataValue([0]) restituisce i dati del primo elemento secondario.
footage("sample.mgjson").dataValue([1][0]) restituisce i dati del primo elemento secondario nel secondo gruppo.
Parametri:
dataPath |
Matrice, obbligatoria. Il tracciato nella gerarchia in un flusso di dati statico o dinamico. |
Valori restituiti:
Il valore del flusso di dati.
- Il metodo di metraggio dataKeyCount() {footageItem}.dataKeyCount(dataPath)restituisce il numero di campioni in un flusso di dati dinamico specificato in un file .mgJSON. Accetta un valore a matrice singola per definire il tracciato nella gerarchia del flusso di dati dinamico desiderato.
Ad esempio:
- footage("sample.mgjson").dataKeyCount([0]) restituisce il conteggio dei campioni per il primo elemento secondario
- footage("sample.mgjson").dataKeyCount([1][0]) restituisce il conteggio dei campioni per il secondo gruppo
Parametri:
dataPath |
Matrice, obbligatoria. Il tracciato nella gerarchia in un flusso di dati statico o dinamico. |
Valori restituiti:
Il numero di campioni nel flusso di dati dinamico.
- Il metodo di metraggio dataKeyTimes() {footageItem}.dataKeyTimes(dataPath, t0 = startTime, t1 = endTime)restituisce il tempo in secondi per i campioni di un flusso di dati dinamico specificato in un file .mgJSON. Facoltativamente, potete specificare l’intervallo di tempo da cui restituire i campioni. Per impostazione predefinita, viene restituito il tempo per tutti campioni tra startTime e endTime nel flusso di dati dinamico, come definito dalla proprietà samplesTemporalExtent del flusso di dati nel file .mgJSON. Accetta un valore a matrice singola per definire il tracciato nella gerarchia del flusso di dati dinamico desiderato.
L’esempio seguente restituisce i tempi dei campioni compresi tra 1 secondo e 3 secondi per il primo elemento secondario:
footage("sample.mgjson").dataKeyTimes([0], 1, 3)
Parametri:
dataPath |
Matrice, obbligatoria. Il tracciato nella gerarchia in un flusso di dati dinamico. |
t0 |
Numero, opzionale. Il tempo di inizio, in secondi, dell’intervallo da cui restituire i campioni. Il valore predefinito è impostato su startTime. |
t1 |
Numero, opzionale. Il tempo finale, in secondi, dell’intervallo da cui restituire i campioni. Il valore predefinito è impostato su endTime. |
Valori restituiti:
matrice dei numeri che rappresentano i tempi campione.
- Il metodo dataKeyValues() del metraggio {footageItem}.dataKeyValues(dataPath, t0 = startTime, t1 = endTime)restituisce i valori dei campioni di un flusso di dati dinamico specificato in un file .mgJSON. Facoltativamente, potete specificare l’intervallo di tempo da cui restituire i campioni. Per impostazione predefinita, viene restituito il tempo per tutti campioni tra startTime e endTime nel flusso di dati dinamico, come definito dalla proprietà samplesTemporalExtent del flusso di dati nel file .mgJSON. Accetta un valore a matrice singola per definire il tracciato nella gerarchia del flusso di dati dinamico desiderato.
Ad esempio:
footage("sample.mgjson").dataKeyValues([0], 1, 3) restituisce i valori dei campioni compresi tra 1 secondo e 3 secondi per il primo elemento secondario.
Parametri:
dataPath |
Matrice, obbligatoria. Il tracciato nella gerarchia in un flusso di dati dinamico. |
t0 |
Numero, opzionale. Il tempo di inizio, in secondi, dell’intervallo da cui restituire i campioni. Il valore predefinito è impostato su startTime. |
t1 |
Numero, opzionale. Il tempo finale, in secondi, dell’intervallo da cui restituire i campioni. Il valore predefinito è impostato su endTime. |
Valori restituiti:
matrice di numeri che rappresentano i valori campione.
Metodo di conversione colore da Hex a RGB (riferimento espressioni)
Questo metodo di conversione colore, hexToRgb(), converte i valori cromatici esadecimali, ad esempio #FF00FF, a valori cromatici RGBA. Questa conversione può essere utile per collegare i parametri cromatici ai valori cromatici rappresentati come stringhe esadecimali delle fonti di dati CSV/TSV o JSON.
Metodo di espressione:
hexToRgb(hexString) converte un colore da uno spazio terzinato esadecimale in RGB, oppure da uno spazio a quattro esadecimale a RGBA. Per i terzinati esadecimali, i valori predefiniti alfa sono pari a 1.0.
Parametri:
hexString |
Si tratta di una stringa che rappresenta un terzinato esadecimale (6 cifre, nessun canale alfa) o un quartetto (8 cifre, include il canale alfa) contenente solo numeri o caratteri dalla A alla F. I caratteri opzionali principali 0x, 0X o # sono ignorati. I caratteri oltre le 8 cifre vengono ignorati. |
Valori restituiti:
matrice di valore cromatico RGBA.
Esempi:
Una delle seguenti operazioni sarà ripristinata [1.0, 0.0, 1.0, 1.0]:
- hexToRgb("FF00FF")
- hexToRgb("#FF00FF")
- hexToRgb("0xFF00FF")
- hexToRgb("0XFF00FFFF") Nota: nel quartetto esadecimale di 8 cifre, le ultime due cifre impostano il valore alfa su 1.0.