module inscription newsletter haut de page forum mobile

Rejeter la notice

ateliers live resolve avec forest

Ateliers Live Resolve - Formez-vous en ligne tous les mois avec Forest !
Faites rapidement évoluer la qualité de vos étalonnage avec nos ateliers mensuels de 3h.
Toutes les infos
Rejeter la notice

Nouvelle Formation Prise de son : les inscriptions sont ouvertes !
Maîtrisez la qualité de vos prises de son avec notre formation théorique et pratique de 3 jours ! Du 14 au 16 mai 2024 à Paris.

contrôle d'une précomposition par une glissière

Discussion dans 'Adobe After Effects' créé par chipoto, 5 Août 2016.

Tags:
  1. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Bonjour à tous,


    Pour faciliter la gestion d’une animation de personnage je souhaiterais commander une composition avec un paramètre glissière :
    Le paramètre glissière se situe dans une composition principale : il commandera une précomposition.
    La précomposition contient différents états d’un visage : un état sur chaque layer (5 layers au total : disposés les uns à la suite des autres nommés A,B,C,D,E)
    Je souhaite que le la glissière puisse définir 5 valeurs au curseur (1,2,3,4,5) qui renvoient chacune sur une portion de la préccomposition (A,B,C,D,E)

    Comment lier et figer le paramètre 2 (par exemple) de la glissière sur un instant du calque B de la précomp et empêcher la lecture du reste de la précomp (C,D,E)
    01.png


    Merci pour votre attention
     
  2. benjico

    Points Repaire:
    2 950
    Recos reçues:
    0
    Messages:
    1 369
    Appréciations:
    +5 / 0 / -0
    Hello,

    T'as plusieurs méthodes. Soit tu laisses ta precomp comme ça et tu joues juste sur le remappage temporel avec des clés maintenues. Soit tu veux vraiment faire une expression avec glissière et tu remets les 5 calques de ta precomp les uns au dessus des autres et tu mets une expression sur leur opacité : si valeur glissière = 1 alors opacité à 100% sinon 0% ( sur le premier ), etc sur les autres avec d'autres valeur de glissière.

    Après tu peux faire un mix des deux avec une expression qui contrôle le remappage temporel de ta precomp :-)


    A+
    Benjico
     
  3. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Merci benjico, je vais tester ça.
    Dans le premier cas, tu mets un remappage sur chaque calque ?
     
  4. benjico

    Points Repaire:
    2 950
    Recos reçues:
    0
    Messages:
    1 369
    Appréciations:
    +5 / 0 / -0
    Hello,

    Il faut appliquer le remappage temporel à la precomp. A l'image 1 il fera apparaître le calque a, sur l'image 2 le calque b etc... Il faut juste que tes clés soient en maintenu ( forme carré ) pour que le passage soit franc de l'un à l'autre.

    A+
    Benjico
     
  5. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Salut Benjico,
    De retour de vacances, j'aimerais bien tenter l'expression "valeur glissière = 1 alors opacité à 100% sinon 0%" : sais tu s'il existe un script dans les expressions pour ce faire car je n'ai aucune compétence en code ?
    Merci
     
  6. benjico

    Points Repaire:
    2 950
    Recos reçues:
    0
    Messages:
    1 369
    Appréciations:
    +5 / 0 / -0
    Hello,

    il n'y a pas de script pour faire ça à ma connaissance mais le code est simple :
    if(nomdetoncalqueglissière.transform.opacity==1) 100 else 0

    "if" = condition
    "nomdetoncalqueglissière.effetglissiere" = l'effet glissière qui t'intéresse ( le nom ici est un exemple, ça ne marchera pas comme ça )
    "==" = equivalence stricte
    "1" = la valeur de glissière qui t'interresse
    "100" = la valeur si la condition est remplie
    "else" = sinon
    "0" = la valeur si la condition n'est pas remplie

    Il faut juste faire attention en nommant le calque, surtout si il n'est pas dans la même composition car les noms sont inscrits "en dur", donc si tu renommes une composition après coup, le lien sera brisé...

    Si tu parles un peu anglais y a plus de détails ici : How to Use If/Else Statements in After Effects

    A+
    Benjico
     
  7. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Super, merci.
    J'ai créé un calque nul avec un parametre glissière pour contrôler la précomp.
    J'ai rajouté l'expression sur l'opacité du calque de la précomp, mais j'ai un message d'erreur : " Expected: ). "
    Je ne vois pas ou placer le ).
     
  8. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Benjico,
    Je me permets de te solliciter à nouveau car je n'arrive pas à intégrer ton script :

    if(Nul controle glissière.transform.opacity==1) 100 else 0

    J'ai toujours cette erreur :
    Capture d’écran 2016-09-06 à 12.00.18.png

    En cliquant sur ton lien "how tu use…" j'ai tenté d'adapter de la façon suivante :
    if(thisComp.layer(“Nul controle glissiere”).transform.opacity==1) 100 else 0
    voir
    if(thisComp.layer(“Nul controle glissiere”).transform.opacity==1) 100 else 0;
    mais dans ce cas j'ai un message "erreur de syntaxe"

    D'ailleur je viens d'essayer l'exemple donné dans "how to use…" en recopiant l'ensemble des calques à l'identique avec l'expression donnée sur le paramètre opacité :
    if(thisComp.layer(“White Shape”).transform.opacity>50) 100 else 50;
    J'ai toujours ce message "erreur de syntaxe"

    Je précise que je suis sous la dernière version d'after : 13.8.1.38

    Merci pour ton aide
     
    #8 chipoto, 6 Septembre 2016
    Dernière édition: 6 Septembre 2016
  9. benjico

    Points Repaire:
    2 950
    Recos reçues:
    0
    Messages:
    1 369
    Appréciations:
    +5 / 0 / -0
    Hello,

    je t'avouerai que je ne suis pas un super pro des expressions, d'autant que je penses que tu es sur une version française d'After, du coup il y a des trucs qui ne fonctionnent pas pareil. Ton problème semble être un soucis de pointage, il faudrait donc mieux utiliser l'outil intégré.

    Dans ta comp, tu va déployer l'opacité du calque "nul contrôle glissière" ( tu le sélectionnes et t'appuie sur "t" )

    Dans ton calque cible, tu commence à écrire ton expression : "if(" Une fois que tu as écris ça, tu utilises l'outil à gauche de la flèche ( l'escargot ) et tu le relie à l'opacité de ton nul. Ça va écrire automatiquement ( et correctement ) ce qu'il faut. Tu n'as plus qu'à finir l'expression "==1)100 else 0

    Mais du coup je ne comprend pas pourquoi tu veux utiliser l'opacité du null alors qu'il faudrait utiliser son effet glissière. ( Il te suffit de pointer sur le bon effet au moment où tu utilises l'escargot )

    A+
    Benjico
     
  10. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Je ne veux pas utiliser l'opacité du nul mais seulement l'effet glissière qui lui est attribué.
    Donc avec ta méthode ça donne ceci (j'ai lié la spirale d'expression opacité de "Visage Glissière" au curseur du calque "Nul Controle Glissière"
    if(thisComp.layer("Nul Controle glissiere").effect("Paramètre glissière")("Curseur==1) 100 else 0
    avec ce nouveau message d'erreur :
    Capture d’écran 2016-09-06 à 15.52.54.png

    Vois-tu un truc qui clocherait ?
     
  11. benjico

    Points Repaire:
    2 950
    Recos reçues:
    0
    Messages:
    1 369
    Appréciations:
    +5 / 0 / -0
    Il manque le " après Curseur et il y a probablement un problème de parenthèse car le compte n'y est pas ( 4 ouverture et 3 fermetures ). Je dirai donc qu'il manque ") après Curseur...

    A+
    Benjico
     
  12. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Pour info j'ai tenté plusieurs syntaxes qui affichent toujours le même message : Expected: ).
    if(thisComp.layer("Nul Controle glissiere").effect("bouche")("Curseur==1") 100 else 0
    if(thisComp.layer("Nul Controle glissiere").effect("bouche")("Curseur"==1) 100 else 0

    Si jamais tu as une illumination, je suis preneur. Sinon merci pour le temps que tu m'as accordé.
     
  13. ogt

    ogtx Regretté conseiller technique
    So

    Points Repaire:
    17 700
    Recos reçues:
    546
    Messages:
    23 512
    Appréciations:
    +712 / 1 396 / -41
    Le nombre de parenthèses ouvrantes n'est toujours pas égal à celui des fermantes.
    Je pense qu'il faut rajouter ) avant 100 pour terminer le IF
    if (thisComp.layer("Nul Controle glissiere").effect("bouche")("Curseur"==1)) 100 else 0
    Mais il y a peut être d'autres erreurs aussi (un point entre bouche et Curseur ?)
    Je ne connais pas du tout la syntaxe des expressions AfterEffects, mais votre expression n'a pas une construction objet standard.

    Olivier
     
  14. benjico

    Points Repaire:
    2 950
    Recos reçues:
    0
    Messages:
    1 369
    Appréciations:
    +5 / 0 / -0
    Il te dit juste qu'il attend une parenthèse de fermeture, la syntaxe correcte est donc :
    if(thisComp.layer("Nul Controle glissiere").effect("bouche")("Curseur")==1) 100 else 0; ( il manquait la parenthèse après Curseur ).

    Après je ne pige pas pourquoi tu t'es retrouvé avec les caractère en moins. Si tu tapes [ if( ] tu glisse le petit escargot vers la glissière et tu termines ton expression [ ==1)100 else 0 ] ( sans les bracket [ ] évidemment )

    Sinon dans After, j'ai toujours vu des expressions où les parenthèses étaient égales en ouvrantes et en fermantes. Peut-être qu'il y a des exceptions mais je n'en n'ai jamais vu...

    A+
    Benjico
     
  15. chipoto

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    117
    Appréciations:
    +0 / 0 / -0
    Bien joué benjico !
    Cette fois ci c'est ok, désolé mais je pensais à tord qu'il fallait le ==1 dans les parenthèses du ("Curseur") et non à l'extérieur.
    Il faut que j'étudie un peu les expressions dans AE. C'est un départ…

    Merci encore pour ton attention !
     
Chargement...

Partager cette page