Page 1 sur 1

question d'expression after

MessagePosté: Jeu Fév 05, 2009 12:15 pm
par MCpaf
Bonjour chers fous,
je vais tenter de vous expliquer clairement ma question.

J'ai un layer("controleur") et un layer("animation").

Le layer("animation") à différent point clé de position. Par exemple à l'image 1 [500,450], à l'image 2 [300,600], à l'image 3 [600,320].......

J'aimerai que quand je bouge mon layer("controleur") de 1 sur l'axe des [x] le layer("animation") prend la position [x,y] de son image 1
(donc [500,450]) et ainsi de suite...

Est-ce que vous me suivez?
:roll:

Re: question d'expression after

MessagePosté: Jeu Fév 05, 2009 1:04 pm
par m.hyde
bonjours MCpaf,

alors j'ai tout compris a ta question mais je ne sais pas y répondre, les expressions d'after c'est pas trop ma tasse de café noir...

MAIS avec un grand M... Le très chers duduf lui va savoir te répondre. Dès qu'il reviens de ca pause, je lui dirige vers ton poste et je suis sur qu'il va se faire un plaisir de te trouver l'expression exacte...

a peluche

Re: question d'expression after

MessagePosté: Jeu Fév 05, 2009 2:35 pm
par MCpaf
J'ai trouvé une solution.

je tape dans la position de "animation":
thisComp.layer("animation").position.valueAtTime(thisComp.layer("controleur").position[0]/25);

et ça marche...

Par contre j'aimerai bien l'avis de duduf.

Re: question d'expression after

MessagePosté: Jeu Fév 05, 2009 2:38 pm
par DuDuF
Alors oui j'ai ta solution !


jte fais ca avec les explications :

d'abord, ce sera vachement plus simple de bosser avec trois layers :
le layer "animation"
le layer "controleur"
et un layer en plus qui stockera les infos de positions du layer animation sur l'on nomera "lespositions" (un objet nul tout bète)

donc : sur le controleur, rien de particulier a faire...
sur "lespositions", on met l'animation de position (Par exemple à l'image 1 [500,450], à l'image 2 [300,600], à l'image 3 [600,320]...)

et sur le layer "animation" cette expression :
positiondorigineXducontroleur = 90;

thisComp.layer("lespositions").toWorld(thisComp.layer("lespositions").transform.anchorPoint,thisComp.layer("controleur").transform.position[0]-positiondorigineXducontroleur)



explications :
positiondorigineXducontroleur, c'est la valeur de la position X du controleur avant qu'on y ait touché.... inutile si c'est 0

ensuite on utilise l'expression "toWorld(point, instant)" qui permet de récupérer les coordonnées d'un point a un instant donné. TRES utile dans plein plein plein de cas, notamment pour mettre un objet a la meme position qu'un autre, quand on ne peut pas faire de lien (peske on veut pas lier la rotation, ou peske ce qu'on lie c'est le centre d'un effet, etc....)
ou en l'occurence ici, pour récupérer une position a un instant donné !

doooonc résumons :


thisComp.layer("lespositions").toWorld


le layer sur lequel on applique lexpression toWorld

(thisComp.layer("lespositions").transform.anchorPoint


le point dont on récupère les coordonnées

(thisComp.layer("controleur").transform.position[0]-positiondorigineXducontroleur)/25


et ca c'est ce qui donne l'instant auquel on prend la position, c'est a dire la position X de "controleur" MOINS sa position d'origine... Si on l'a bougé d'un pixel a droite, ca donne 1, et on divise par 25 (si on fait du 25 images secondes) puisque faut donner le temps en secondes... logique...

et si on voulait prendre la position à l'image 1 pour un déplacement de 10 pixels, a 2 pour 20 pixels, etc... on aurait mis

(thisComp.layer("controleur").transform.position[0]-positiondorigineXducontroleur)/250



et voila !
j'espère que c bien ca que tu voulais !

a la prochaine


(au passage, ca me donne quelques idées pour des trucs qui peuvent etre bien pratique... animer un truc qui se déplace sur une trajectoire par exemple, qu'on a dessiné a l'avance... ya pas mal de possibilités en partant de cette technique je crois !)

Re: question d'expression after

MessagePosté: Jeu Fév 05, 2009 2:40 pm
par DuDuF
c la meme idée que toi en fait, mais l'avantage de toWorld, c'est que ca marche meme avec des liens de parentés partout... puisque ca convertit les positions en coordonnées globales... et vaut mieux prendre le point d'ancrage, pour éviter des problèmes chelou quand ca devient le bordel dans la comp qu'il y a plein de trucs partout ;)

et avoir les positions sur un layer séparé te simplifiera grandement la vie pour les changer si besoin est

Re: question d'expression after

MessagePosté: Jeu Fév 05, 2009 5:24 pm
par MCpaf
Ok cool je testerai le toWorld. Mais pour l'instant tout marche. :idea:

Re: question d'expression after

MessagePosté: Jeu Fév 05, 2009 11:28 pm
par MCpaf
Hey duduf tu connais un bon livre sur les expressions after?

Re: question d'expression after

MessagePosté: Ven Fév 06, 2009 9:25 am
par DuDuF
Oui, le manuel d'after effects !!!

sinon faut savoir aussi que les expressions d'after sont assez proche du javascript, et acceptent des constructeurs du type if (condition) {blabla} else {blabla} par exemple, tout comme les scripts after d'ailleurs...

voila tout ce que je peux pour toi... le reste de mon coté je l'ai trouvé par moi meme en testant des trucs et surtout en cherchant en fonction de mes besoins.

Re: question d'expression after

MessagePosté: Mar Avr 14, 2009 2:43 pm
par MCpaf
Bonjour,
j'ai une nouvelle question d'expression sur after.
Je cherche un moyen de créer des exceptions dans un condition de type plus grand que. :roll:

J'ai un code comme ceci:
if (thisComp.layer("<CORPS>").transform.position[0]>24){
opacity=0
}else{
opacity = 100
}

A partir de 24 pixel sur les x l'opacité et de 0, autrement elle est de 100.
Seulement j'aimerai que à 30 et 32 pixel l'opacité soit de 100 et non pas de 0.
Comment dois-je faire pour intégrer ces deux exceptions dans mon expression? :mrgreen:

Merci

Re: question d'expression after

MessagePosté: Mar Avr 14, 2009 4:53 pm
par DuDuF
deux solutions, 1 - le plus simple, des if dans des if du type

if(condition1){
if(condition2){
}else 2 {}
}else 1 {}

mais c chiant peske il faut bien placer les parenthèses

sinon tu as le "et" noté && et le "ou" noté || (touche Alt Gr + 6)(en javascript, mais je crois que ca marche aussi pour les expressions)
dans ton cas tu vas devoir combiner les deux :

Code: Tout sélectionner

if (thisComp.layer("<CORPS>").transform.position[0]>24){

if ( thisComp.layer("<CORPS>").transform.position[0]>29 && thisComp.layer("<CORPS>").transform.position[0]<33){

opacity=100

} else { opacity=0 }
} else { opacity = 100 }

 


donc la c entre 30 et 32 et en dessous de 24 que ton truc sera en opacité 100

si c juste pour 30 et 32 que tu veux opacité 100 tu auras ca :

Code: Tout sélectionner

if (thisComp.layer("<CORPS>").transform.position[0]<24 || thisComp.layer("<CORPS>").transform.position[0]==30 || thisComp.layer("<CORPS>").transform.position[0]==32){

opacity=100

}else { opacity = 0 }

 

Re: question d'expression after

MessagePosté: Mar Avr 14, 2009 5:25 pm
par MCpaf
Yes trop bien merci beaucoup.
Je vais vite tester ça.
DuDuF you're my Master!!!

Re: question d'expression after

MessagePosté: Mar Avr 14, 2009 5:40 pm
par anncaro
Duduf, quand organises-tu un stage "les expressions dans After" ?
Je m'inscris de suite ! :wink:

Re: question d'expression after

MessagePosté: Mar Avr 14, 2009 5:48 pm
par DuDuF
ben figure toi que j'ai pensé à ce genre de trucs anncaro, mais je me heurte a deux difficultés : trouver un lieu, trouver du temps... le premier problème j'imagine qu'on peut facilement y remédier avec les éventuels participants, par contre le deuxième.... cela dit, faudrait que je fasse un "sondage" voir qui est intéressé, et si ca vaut le coup de se pencher un peu plus sur l'organisation !
(et quand on voit les prix des organismes de formation pour une formation aux "bases" de after, jsuis sur ya un créneau a prendre là !)

mais si on se croise a la fete de l'anim on pourra en parler !

Re: question d'expression after

MessagePosté: Mer Avr 15, 2009 8:21 am
par MCpaf
Bon ça marche parfaitement.
Je savais pas qu'il était possible de donner plusieurs conditions.
J'étais parti sur une méthode de tableau mais
c'est plus compliqué et j'ai pas réussi à la faire fonctionner.

Si tu fais un cour je m'y inscrit tout de suite!
Pour le lieu on se trouve un sympathique petit bar et pour le temps, l'heure de l'apéro. 8)

Re: question d'expression after

MessagePosté: Ven Avr 17, 2009 8:38 pm
par korzen06
Bonjour a tous !!
Je suis en art appliqué est je cherche un stage dans l'animation 3D
sauf que je n'est trouver aucune entreprise d'animation 3D ( sur la cotes d'azur (cannes, nice, grasse, ...)
si vous connaiser une entreprise d'animation 3d dans ce secteur
répondez moi silvouplez :D

merci a tous ...