Forums Développement Multimédia

Aller au contenu

Gérer la visibilité dun calque via une expression

VIDEO After Effects

9 réponses à ce sujet

#1 freenetstef

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 173 messages

Posté 31 August 2009 - 11:43 AM

salut à tous,
je cherche à gérer la visibilté dun calque via une expression.
C'est juste une histoire d'interrupteur on/off en théorie.
J'imagine qu'en passant par un paramêtre case, ça doit être possible, mais je ne trouve pas le nom de la propriété de vidéo du calque, si toutefois elle existe !?
Merci à tous

#2 couad

  • Members
  • PipPipPipPipPipPipPipPip
  • 1002 messages

Posté 02 September 2009 - 11:59 AM

Voir le messagenetstef, le 31 August 2009 - 11:43 AM, dit :

je cherche à gérer la visibilté dun calque via une expression.
Hello Netstef,

Il existe pas mal de possibilités pour gérer l'opacité d'un calque, mais puisque tu mentionnes le "Paramètre Case", voici l'une des solutions (voir screen).
Tu as juste à placer l'expression suivante dans le paramètre opacité du calque dont tu souhaites piloter l'opacité :

if (effect("Paramètre case")("Case")==true) {
100
}
else {
0
}


Si la case est enclenchée, le solide apparait, sinon il disparait.

Après, tu n'as plus qu'à poser des clés au niveau du paramètre case pour animer l'opacité comme un interrupteur.
J'ai placé le paramètre Case directement sur mon solide dans mon exemple, mais tu peux bien évidemment l'appliquer sur un autre calque.

Fichier(s) joint(s)



#3 freenetstef

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 173 messages

Posté 02 September 2009 - 16:23 PM

Aaaaah, ben voilà, une réponse, quand même, je commençais à ne plus y croire moi à cette communauté AE de mediabox...

Et pas n'importe laquelle de réponse en plus.... Alleluia, le couad nouveau est reviendu ! :)

Super ton idée couad (comme d'ab' d'ailleurs, je sais même pas pourquoi je précise moa).
J'ai adoré la copie d'écran jointe, ça m'a fait sourire, me suis dit "bonjour le niveau auquel il me situe en touchage de AE" ;)

Non, plus sérieusement j'ai reconnu là ton côté didactique voire professoral, pour ne point dire paternaliste, le tout étant ma foi fort appréciable. ;-)

Tiens ben j'en profite, au passage, j'ai regardé ta vidéo des "particules avec du texte" sur le wiki.
Bravo , Bravo, un sommet du tuto vidéo, sans parler de l'astuce pour créer des particules sans plug-in externe, quelle maestria !
Eloquence, maîtrise, voix posée, débit et démonstration visuelle du propos ni trop rapide, ni trop lente, pas de frétillements ni de sursauts épileptico-intempestifs de la souris à l'écran comme il arrive parfois, bref du grand art !
;-)

Sinon, pour reviendre à mes moutons, en fait, j'avais pensé à un truc de ce genre, baisser temporairement l'opacité du calque à 0%, mais le problème, que j'me suis dit, c'est que dans ce cas là, ..., lors du rendu, le calcul se fait en permanence sur ce calque alors même qu'il est totalement inutile puisqu'il n'affiche rien à l'écran.

Et comme dans mon cas précis c'était pour intégrer dans une vidéo assez longue, genre un clip vidéo de 4 mn, et avec un effet d'écho donc avec des calques et des calques à foison...

Donc c'est pour ça, je me disais en switchant la vidéo, les calques ne sont pas pris en compte lors du rendu final, et je gagne du temps. Mon raisonnement est tiré d'une déduction à priori logique, mais reste à confirmer.

Voilà pourquoi je cherchais un moyen de switcher la "vidéo" du calque (précision inutile mais juste au cas ou, je parle de l'oeil en regard du calque bien sur).

Mais j'ai bien peur qu'il n'y ait pas de propriété scriptable prévue pour ce faire.
Je n'ai pas trouvé dans l'aide d'AE.
Voilà pourquoi je suis venu sur le forum.
La question reste en suspens.
:roll:

#4 couad

  • Members
  • PipPipPipPipPipPipPipPip
  • 1002 messages

Posté 02 September 2009 - 21:16 PM

Voir le messagenetstef, le 02 September 2009 - 16:23 PM, dit :

me suis dit "bonjour le niveau auquel il me situe en touchage de AE" :smile:
Arf tu sais, j'ai pas un petit calepin avec le nom de chaque membre du forum et son niveau ;-) . Ce forum sert d'échange, alors si la réponse est détaillée tant mieux. Ca ne te servira pas forcément à toi, mais en tout cas ca servira sûrement à quelqu'un d'autre qui n'a pas ton "touchage de AE" :D .

Voir le messagenetstef, le 02 September 2009 - 16:23 PM, dit :

Mais j'ai bien peur qu'il n'y ait pas de propriété scriptable prévue pour ce faire.
Attention de ne pas confondre script et expression. Une expression s'applique directement dans AE à un paramètre précis, alors qu'un script est extérieur à l'application (format *.jsx) et doit être appelé.

Avec une expression, tu ne pourras pas contrôler la visibilité d'un calque (je précise que je parle aussi de l'icône du petit oeil situé à gauche du nom du layer ;-) ).

Dis toi qu'un script peut te permettre de tout faire dans AE. Par exemple, si tu veux contrôler la visibilité de ton calque via un bouton, il te suffira de mettre dans la fonction d'appel de ton bouton :
thisComp.layer("nom du layer concerné" ou index de ce layer).enabled = false
Quand tu appuieras sur ce bouton, tu verras en live ton calque disparaitre par exemple.
Ensuite, dans ton cas, si tu veux que AE détecte automatiquement que l'opacité d'un calque est à zéro et donc qu'il doit le cacher, c'est aussi simple. Voilà comment je m'y prendrais :
Je ferais en sorte que mon script détecte la valeur d'opacité de chaque calque à tout moment de la timeline, et si elle est à 0, j'utilise les points IN et OUT du calque pour le faire disparaitre sur cette portion. Dans le cas où ce calque se remettrait à être visible plus loin dans la timeline, je lui dirais juste de dupliquer le calque et de procéder de la même façon sur la nouvelle portion.
Je sais pas si je suis très clair là ;)

Dans le cas d'un travail récurrent, ça peut être utile, mais dans ton cas je me demande si ce n'est pas plus rapide à la main.

#5 freenetstef

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 173 messages

Posté 03 September 2009 - 13:36 PM

couad dit :

Arf tu sais, j'ai pas un petit calepin avec le nom de chaque membre du forum et son niveau :D .
Pas besoin de calepin, le niveau de la question est le plus souvent suffisant à le déterminer, ..., le niveau, justement, ..., surtout dans mon cas, ah ah ah ;)

couad dit :

Ce forum sert d'échange, alors si la réponse est détaillée tant mieux. Ca ne te servira pas forcément à toi, mais en tout cas ca servira sûrement à quelqu'un d'autre qui n'a pas ton "touchage de AE" :D .
it was just "rigolage“ et "taquinage" de ma part, tu l'auras compris.
Je sais bien que la réponse est destiné au collectif, c'est un peu le principe d'ailleurs :smile:

couad dit :

Attention de ne pas confondre script et expression.
Oui moi je cherchais via une expression, mais la propriété vidéo du calque n'est pas prévue "visiblement" (pardon pour le jeu de mots ;-) )

couad dit :

Par exemple, si tu veux contrôler la visibilité de ton calque via un bouton, il te suffira de mettre dans la fonction d'appel de ton bouton :
thisComp.layer("nom du layer concerné" ou index de ce layer).enabled = false

Donc, en mélangeant les deux, je pensais arriver à mes fins, mais j'ai essayé de 2 manières, et les deux ne donnent absolument rien, la visibilité du calque ne bouge pas, d'abord cela :

mis sur un calque nul avec un paramêtre case pour piloter la visibilté du calque "test"

if (effect("Paramètre case")("Case") == true)
{
thisComp.layer("test").enabled = true;
}
else{
thisComp.layer("test").enabled = false;
}

et ensuite cela, directement appliqué sur un paramêtre case du calque "test" :

if (effect("Paramètre case")("Case")== true)
{
thisLayer.enabled =true;
}
else{
thisLayer.enabled =false;
}

Dans les deux cas, le calque "test" reste visible que l'on coche la case ou pas.
Ah bah pourquoi ça marche pas !?!?!?!


Sinon, pour info, j'ai bien la confirmation de ce qui me semblait somme toute logique (trouvé dans l'aide d'AE) et qui est le point de départ de ce post :

"Si vous voulez exclure un calque du rendu (lors de la prévisualisation et du rendu final), désélectionnez l’option Vidéo du calque"

Et encore merci pour tes lumières couad ;-)

@ +
stef : : :

#6 freenetstef

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 173 messages

Posté 03 September 2009 - 14:15 PM

Une image valant mille mots, je mets (moi aussi) une copie d'écran en pièce jointe :smile:

Fichier(s) joint(s)

  • Fichier joint  test.jpg   174.35 Ko   49 téléchargement(s)


#7 couad

  • Members
  • PipPipPipPipPipPipPipPip
  • 1002 messages

Posté 03 September 2009 - 14:16 PM

Voir le messagenetstef, le 03 September 2009 - 13:36 PM, dit :

Ah bah pourquoi ça marche pas !?!?!?!
Parce que t'essayes avec des expressions, alors que je t'ai dit plus haut :
"Avec une expression, tu ne pourras pas contrôler la visibilité d'un calque (je précise que je parle aussi de l'icône du petit oeil situé à gauche du nom du layer :smile: )."
C'est aussi pour ça que je t'ai parlé de scripts après, parce qu'avec eux c'est possible.
Mon exemple concernait les scripts, et non pas les expressions ;) .

EDIT : et d'ailleurs, je précise que la seule possibilité pour exclure tes calques du rendu une fois l'opacité à 0%, c'est de jouer avec les IN et OUT de chaque calque. Tu ne pourras pas en plein calcul "cacher" un calque en jouant sur le petit oeil. Donc il faut un script qui gère automatiquement les IN et OUT de tes calques en fonction de leur opacité.

#8 freenetstef

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 173 messages

Posté 04 September 2009 - 13:32 PM

Voir le messagecouad, le 03 September 2009 - 14:16 PM, dit :

Parce que t'essayes avec des expressions, alors que je t'ai dit plus haut :
"Avec une expression, tu ne pourras pas contrôler la visibilité d'un calque (je précise que je parle aussi de l'icône du petit oeil situé à gauche du nom du layer ;-) )."
C'est aussi pour ça que je t'ai parlé de scripts après, parce qu'avec eux c'est possible.
Mon exemple concernait les scripts, et non pas les expressions ;-) .
Aaaaah !
Je ne suis pas expert en code/script, j'avais cru comprendre que les expressions se résumaient aux élément internes d'AE.
ET surtout qu'en introduisant une condition :
"if (effect("Paramètre case")("Case")== true)"
cela en faisait de facto un script et plus une "simple“ expression.
Apparemment ce n'est pas le cas !?!

couad dit :

Attention de ne pas confondre script et expression. Une expression s'applique directement dans AE à un paramètre précis, alors qu'un script est extérieur à l'application (format *.jsx) et doit être appelé.
Pour être considéré en tant que tel, un script doit "obligatoirement" être placé à l'extérieur du document et être appelé ???
C-a-d, avec la fonction "call", c'est ça ???

couad dit :

la seule possibilité pour exclure tes calques du rendu une fois l'opacité à 0%, c'est de jouer avec les IN et OUT de chaque calque.
Oui donc, en définitive on en revient à l'option que j'avais adopté par défaut (avant de poser la question sur le forum), et bien obligé car dans l'incapacité de pouvoir scripter la chose, c-a-d découper les parties visibles/utiles de mon calque en plusieurs calques et définir les points d'entrée et de sortie à la main, (cf. copie écran jointe), ...

couad dit :

Dans le cas d'un travail récurrent, ça peut être utile, mais dans ton cas je me demande si ce n'est pas plus rapide à la main.
et tel que tu le préconisais d'emblée également.

...


Pour info donc, peux-tu me dire stp quelle ligne de code définit un calque par son point d'entrée et/ou de sortie, in/out ?
J'ai pas trouvé en parcourant l'aide.

...

Sinon en regardant à droite et à gauche, et comme tu le soulignais

couad dit :

Dis toi qu'un script peut te permettre de tout faire dans AE.
je me disais qu'il était sûrement possible d'arriver à l'effet que je souhaitais en plaçant des repères temporels de calques et en switchant la vidéo du calque en fonction de ces repères.

Mais ce n'est que de la théorie, et cela passe par un script externe que je ne saurais mettre en pratique.


couad dit :

Par exemple, si tu veux contrôler la visibilité de ton calque via un bouton, il te suffira de mettre dans la fonction d'appel de ton bouton :
thisComp.layer("nom du layer concerné" ou index de ce layer).enabled = false
Quand tu appuieras sur ce bouton, tu verras en live ton calque disparaitre par exemple.
Si j'osais, à l'occasion je te demanderais bien de nous montrer un petit exemple ;-)

#9 freenetstef

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 173 messages

Posté 04 September 2009 - 13:36 PM

plus la copie d'écran jointe ;-)

Fichier(s) joint(s)

  • Fichier joint  test.jpg   134.17 Ko   47 téléchargement(s)

Modifié par netstef, 04 September 2009 - 13:36 PM.


#10 couad

  • Members
  • PipPipPipPipPipPipPipPip
  • 1002 messages

Posté 04 September 2009 - 15:54 PM

Voir le messagenetstef, le 04 September 2009 - 13:32 PM, dit :

cela en faisait de facto un script et plus une "simple“ expression.
Apparemment ce n'est pas le cas !?!
Non effectivement.
Une expression est une ligne de code qui se place dans un paramètre comme tu sais déjà le faire en ALT-cliquant sur le chronomètre à gauche du paramètre.
Un script s'écrit dans un fichier externe à After, et s'appelle via "Fichier --> Script --> Exécuter le fichier de script". Même si un script peut être tapé dans un fichier texte classique (extension *.txt, *.doc, etc...), en changeant l'extension en *.jsx, la manière la plus intelligente de procéder est de passer par l'éditeur de script du soft, que tu trouveras juste en dessous de "Exécuter le fichier de script" cité plus haut.

Voir le messagenetstef, le 04 September 2009 - 13:32 PM, dit :

découper les parties visibles/utiles de mon calque en plusieurs calques et définir les points d'entrée et de sortie à la main, (cf. copie écran jointe), ...
Et le script est là pour t'aider à le faire en un clic ;-).
Il doit détecter la valeur d'opacité des calques, et régler leur point IN et OUT automatiquement en fonction de cette valeur.

Voir le messagenetstef, le 04 September 2009 - 13:32 PM, dit :

peux-tu me dire stp quelle ligne de code définit un calque par son point d'entrée et/ou de sortie, in/out ?
C'est inPoint et outPoint.
http://help.adobe.co...6dea-7a00a.html

Voir le messagenetstef, le 04 September 2009 - 13:32 PM, dit :

je me disais qu'il était sûrement possible d'arriver à l'effet que je souhaitais en plaçant des repères temporels de calques et en switchant la vidéo du calque en fonction de ces repères.
Dans un script, on a toujours envie de tout compliquer. Tu verras, au début tu vas pondre des pages entières de "if", et puis au bout de quelques jours de training, tu verras que tu arriveras au même résultat avec 2 lignes de code ;-).
Là, tu compliques les choses. Detecter des markers voudrait donc dire que tu dois d'abord placer tes marqueurs... c'est du temps de perdu puisqu'un script peut directement détecter la valeur d'opacité d'un calque, et donc le "cuter" suivant la valeur de cette opacité.

Voir le messagenetstef, le 04 September 2009 - 13:32 PM, dit :

Si j'osais, à l'occasion je te demanderais bien de nous montrer un petit exemple ;-)
Tu as des tas de sites de psychopathes qui mettent des exemples à dispo :
http://aescripts.com/
http://www.motionscript.com
http://www.aenhancers.com
http://www.nabscripts.com/



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP