Benvenuto su VideoMakers.net
Iscriviti per condividere la tua passione sul principale sito web italiano dedicato al VideoMaking!

Gli eventuali inserti pubblicitari all'interno delle discussioni sono visibili solo se non hai eseguito l'accesso al forum; ricordati di eseguire l'accesso o, se non sei ancora registrato, fallo QUI

Clicca qui per leggere le regole del forum
Discussioni, trucchi e suggerimenti sulla realizzazione di effetti speciali per le nostre clip.

Moderatore: Moderatori

da francos
#136999
Ho trovato un altro metodo che evita il problema del cambio della sequenza. Senza usare il parent, dal secondo layer in poi applico la seguente expression:

x= thisComp.layer(index -1).position[0] + width;
[x,288]

PS: il valore 288 è fisso per tutti i layer

quindi questa è ancora più veloce in quanto non bisogna fare il parenting per ogni layer, ma basta incollare l'expression in tutti i layer dal secondo in poi.

Continuo a studiare per vedere se riesco a ridurre la stringa
:book: :book: :book: :book:
da VO_5850
#137042
Ho trovato un altro metodo che evita il problema del cambio della sequenza. Senza usare il parent, dal secondo layer in poi applico la seguente expression:

x= thisComp.layer(index -1).position[0] + width;
[x,288]

PS: il valore 288 è fisso per tutti i layer

quindi questa è ancora più veloce in quanto non bisogna fare il parenting per ogni layer, ma basta incollare l'expression in tutti i layer dal secondo in poi.

Continuo a studiare per vedere se riesco a ridurre la stringa
:book: :book: :book: :book:


complimenti, la tua soluzione è pressochè ottimale, io per avere maggior libertà l'avrei scritta un po più complicata, circa così (non ho AE a portata di mano perciò vado a memoria):

p= thisComp.layer(index -1).position[0];//la pos. del layer superiore
d=thisComp.layer(index -1).width; // la lunghezza del layer sup, così puoi usare layer diversi fra loro
x=p-d;
y=thisComp.layer(index -1).position[1];// così puoi spostare i layer dove ti pare
[x,y]

variazioni sul tema potrebbero essercene a decine, scie, fade out/in delay ....... mi fa piacere che ti interessi l'argomento e che voglia approfondire, io sempre disponibile se si tratta di expressions ... se poi non mi si chiede solo di scriverle per usarle pari pari ma ci si sforza per comprenderle divento addirittura entusiasta!
da francos
#137167
complimenti, la tua soluzione è pressochè ottimale, io per avere maggior libertà l'avrei scritta un po più complicata, circa così (non ho AE a portata di mano perciò vado a memoria):

p= thisComp.layer(index -1).position[0];//la pos. del layer superiore
d=thisComp.layer(index -1).width; // la lunghezza del layer sup, così puoi usare layer diversi fra loro
x=p-d;
y=thisComp.layer(index -1).position[1];// così puoi spostare i layer dove ti pare
[x,y]


Grazie per i complimenti, dati da un Maestro delle expression fa veramente piacere. ;)
La tua expression, in effetti da ancora più libertà di movimento, nel mio caso, dovendo affiancare a DX, X sarebbe stata:
x=p+d;


variazioni sul tema potrebbero essercene a decine, scie, fade out/in delay .......


In effetti è proprio la possibilità delle variazioni infinite che mi sta facendo appassionare alle expression. :book: :book:

...... mi fa piacere che ti interessi l'argomento e che voglia approfondire, io sempre disponibile se si tratta di expressions ... se poi non mi si chiede solo di scriverle per usarle pari pari ma ci si sforza per comprenderle divento addirittura entusiasta!


Bhe, se guardi il mio primo post, io avevo già trovato la soluzione, solo che volevo capire se c'era un altro metodo più veloce. Io non mi accontento mai di avere la soluzione pronta, ma in genere la prendo per poterci studiare sopra. Certo, le expression in AE non sono facili, bisogna per lo meno avere un pò di infarinatura di programmazione e capire come ragiona AE. Sarebbe bello poter approfondire l'argomento expression nel forum, magari con un topic in rilievo, dove poter scambiare le varie soluzioni ad un problema, ma sempre con lo spirito di approfondire. Del resto se non ci sbatti la testa da solo, quando ti ricapita il problema sei punto e a capo. Mentre scrivevo mi è venuta in mente una variazione sul tema....... . La vado a provare e vi faccio sapere. :wink:
da VO_5850
#137199
Bhe, se guardi il mio primo post, io avevo già trovato la soluzione, solo che volevo capire se c'era un altro metodo più veloce. Io non mi accontento mai di avere la soluzione pronta, ma in genere la prendo per poterci studiare sopra.....
a volte scrivo di fretta mentre faccio altre 100 cose e non sono sepre chiarissimo, volevo esprimere il mio aprezzamento al tuo apprcco con l'argomento, a differenza di qualcun altro ce si limita a un copy&paste!
se gli admin sono d'accordo sarebbe un'ottima idea quella del topic in evidenza, anche perchè le expression richiedono studio e tempo, .... per esempio io sto bisticciando (a tempo perso, naturalmente) da un mese per simulare una scala logaritmica analogica ........
ciao a presto.
da francos
#137209
Sempre nell'ottica dello studio, ho apportato una modifica alla tua espressione per avere la libertà di movimento anche se si scalano i layer. In questo modo, qualunque sia la percentuale di scale applicata, i layer rimarranno sempre appiccicati.
E' questa:

d=thisComp.layer(index -1).width*thisComp.layer(index -1).scale[0]/100;

lasciando il resto inalterato.

A presto con altre variazioni sul tema. :book: :book:
da blies
#137230
So che ormai i miei interventi sono legati ad auguri di compleanno e altre piccolissime cose, però vi leggo sempre.

E con questo messaggio volevo fare i complimenti a Francos che sta diventando bravissimo con le espressioni che sono veramente ostiche.

Volevo anche ringraziare Davide (VO_5850) per la competenza e la disponibilità. :appl: :appl: :appl:

Torno a ... boh .. non so neanche io cosa :(
da francos
#137314
X blies: quando ci siamo visti, ti avevo detto che volevo approfondire le expression..... è arrivato il momento :wink:

Allora, mi sono preso qualche minuto di pausa e ho aggiornato l'expression in modo che il valore della position[1] sia +50 o -50 rispetto al layer che lo precede. La scelta se +50 o -50 viene fatta in base alla posizione nel quadro, del primo layer. Il risultato lo vedete qui sotto. Il movimento del primo layer l'ho creato a mano.

Questa è l'expression:

a=thisComp.layer(1).position[0];
b=thisComp.layer(1).position[1];
c=thisComp.layer(1).height;
e=thisComp.layer(1).width;
p=thisComp.layer(index -1).position[0];
d=thisComp.layer(index -1).width*thisComp.layer(index -1).scale[0]/100;
c=thisComp.layer(1).height;
x=p+d;
y=thisComp.layer(index -1).position[1];

if (a<(e/2))
{if(b>(c/2)){z=y-50;}
else if(b<(c/2)){z=y+50;}
else {z=y;};}
else if (a>(e/2))
{if(b>(c/2)){z=y+50;}
else if(b<(c/2)){z=y-50;}
else {z=y;};}
else {z=y;};

[x,z]
Allegati:
compexpr.gif
compexpr.gif (58.33 KiB) Visto 2160 volte
da VO_5850
#137367
Ciao Francos,
.....se vuoi sperimentare scie prova ad usare un'aproccio diverso con la funzione "valueAtTime" con una cosa del genere:

delay =10;//frames di ritardo
d = delay*thisComp.frameDuration*(index - 1);
thisComp.layer(1).position.valueAtTime(time - d)

rispetto all'altra hai meno controllo sullo spazio ma giocando con il ritardo e accellerazioni vengono fuori effetti interessanti.

ps questo topic diventa interessante.

pps.
Volevo anche ringraziare Davide (VO_5850) per la competenza e la disponibilità.
grazie, fatti sentire ogni tanto.
Allegati:
il gif fa schifo .... si vede che sono abituato a roba non compressa!
il gif fa schifo .... si vede che sono abituato a roba non compressa!
trail.gif (96.34 KiB) Visto 1563 volte
da VO_5850
#137369
il gif del post sopra non è loopato ..... se volete vederlo dovete aggiornare lo schermo!
da francos
#137504
Grande Davide, sperimenterò questa tua variazione. E' che sto cercando di capire come lavorano tutte le funzioni utilizzate nelle expression. Avrai notato che per fare quella ca@@ata sopra ho scritto quasi un programma, :lol: :lol: .
Continuo a studiare.

ps questo topic diventa interessante.


si, mi sta prendendo come una droga :wink: :wink:
da VO_5850
#137513
Ciao Francos,
spiegazione:

delay =10;//frames di ritardo, questo penso non abbia bisogno di spiegazioni
d = delay*thisComp.frameDuration*(index - 1);// frameDuration indica semplicemente la durata del frame relativamente al frame rate usato, nel caso del Pal è ughle a 1/25 sec ovvero a 0.04 sec che moltiplicati per il valore delay ti danno il ritardo dal primo layer

thisComp.layer(1).position.valueAtTime(time - d) // la funzione valueAtTime serve per far assumere un valore specifico, in questo caso la position, in un dato momento, in questo caso il tempo corrente della comp - d

la stessa cosa la ottieni scrivendo l'expression in questo modo:

delay =10;//frames di ritardo
d = delay*thisComp.frameDuration;
thisComp.layer(index - 1).position.valueAtTime(time - d)

oppure:

d = 10*thisComp.frameDuration;
thisComp.layer(index - 1).position.valueAtTime(time - d)

questa può essere una buona base per infinita variazioni, se la sviluppi posta i risultati.

ciao,
da francos
#137521
E' quasi come avere un insegnante a disposizione. Sei veramente disponibile :wink: :wink: ..

Adesso mi metto in pari con il lavoro altrimenti :lol: :lol: e poi mi metto all'opera e ogni risultato sarà postato qui.

:wink: :wink:
da walter
#137671
Ciao a tutti e soprattutto ai "matematici" dei post precedenti.Non credo potrò mai esercitarmi con queste complicate diavolerie,ma mi incuriosisce lo stesso la possibilità che offrono.Ovviamente ci sono delle regole nell'uso delle parentesi e dei simboli etc.Dove si possono trovare delle istruzioni oltre immagino al manuale ufficiale?grazie
da francos
#137705
Ciao a tutti e soprattutto ai "matematici" dei post precedenti.Non credo potrò mai esercitarmi con queste complicate diavolerie,ma mi incuriosisce lo stesso la possibilità che offrono.Ovviamente ci sono delle regole nell'uso delle parentesi e dei simboli etc.Dove si possono trovare delle istruzioni oltre immagino al manuale ufficiale?grazie


Il manuale di AE è abbastanza completo. Poi bisogna sperimentare, ma come dicevo più su un pò di programmazione bisogna conoscerla. I simboli di cui parli forse sono gli operatori matematici:
+ - / *.
Il linguaggio in cui si scrivono le expression è javascript, ma se si conosce un altro linguaggio di programmazione viene facile capirne le differenze, certo se si parte a digiuno di tutto, la vedo ostica, in teoria qualcosa di assolutamente automatico si può fare, ma se si vuole fare qualcosa di più, diventa difficile. Non voglio scoraggiarti eh? Io ti consiglio ti leggerti il manuale, poi magari vedere il sito di Dan Ebberts WWW.motionscript.com, e comunque seguirci in queste discussioni, e per finire provare, provare, provare.......
ciao e buone expression :wink: :wink:
da Harizona
#945366
scusate ma è possibile parentare piu file ad altri file...cioe piu padri allo stesso figlio?...o bisogna fare espressioni come quelle precedenti?
Premiere mappatura dei canali

Salve a tutti avrei un mini quesito semplice Sto […]

Ciao William Fanelli. innanzitutto grazie per ave[…]

Grazie della risposta.....immaginavo.. Solo che s[…]

Grazie arcanico e totati per le risposte. @arcani[…]