Aide pour After Effect, techniques, expressions.

jeudi 18 février 2010

animation modèle

Aujourd'hui, un petit truc tout simple, mais dont vous ne pourrez pas vous passer tant il peut vous faire gagner un temps précieux.




Imaginez que vous ayez créé une animation d'apparition pour un calque, qui mélange opacité, échelle, rotation, etc.
Vous êtes très content de votre mixture, ça fonctionne bien.
Sauf que cette apparition de luxe doit vous servir à faire apparaître 50 calques.
Alors oui, vous pourriez copier/coller toutes les clefs de chaque variable sur chaque calque, en faisant attention que les clefs soient bien synchro avec le début de chaque calque....
Et si vous changez votre animation, il faut tout refaire.
Bref, c'est tout pourri.

Nous allons donc dire à chaque calque de copier un calque modèle, chacun quand il le désire.

Imaginons comme dans l'exemple que vous ayez des clefs d'échelle et de rotation.
Ouvrez ces 2 propriétés dans votre 2ème calque, et écrivez ceci pour l'échelle par exemple :

target=thisComp.layer("modele");
e=target.scale;
e.valueAtTime(time-inPoint+target.inPoint)

C'est tout. Pas grand chose à expliquer.
Le valueAtTime nous permet donc de corriger le tir, et de faire en sorte que l'animation commence au bon moment, c'est à dire quand le calque apparait dans la composition.
Le +target.inPoint corrige également le tir si le calque modèle ne commence pas au début de la composition.

Il vous suffit de faire une expression équivalente pour chaque variable qui en a besoin, et tout sera automatisé.

7 commentaires:

  1. Bonjour,

    Votre site est formidable !
    Quelle découverte !

    Je vous contacte par commentaire car je n'ai pas trouvé de moyen pour message privé.

    Je lie et relie toute sorte d'expression pour essayer de créer une vidéo à la manière de ceci : http://www.vimeo.com/8318752

    Quelle expression me conseilleriez-vous pour créer un retard dans ma mosaic vidéo ?

    Vous pouvez me répondre (si vous le voulez ;-) à lesamot@hotmail.com

    Merci par avance !

    Thomas

    RépondreSupprimer
  2. Bonjour Thomas.

    Tout d'abord, merci pour les commentaires positifs sur ce blog, ça fait toujours plaisir, et j'espère que les prochains articles continueront de remplir le rôle auxquels je les destine.

    Ça n'est pas forcément la peine d'essayer de me contacter en privé, autant faire partager tout le monde de ses problématique.

    Concernant ta problématique, la solution ne se trouve pas dans les expressions !

    Voilà en gros comment recréer ce type d'effet.
    Crée une composition avec un dégradé NB de gauche à droite. Applique au calque l'effet postérisation.

    Ensuite, place cette composition dans la composition qui contient ta vidéo. Applique à ta vidéo l'effet "Balayage temporel", et uilise ton dégradé comme calque de référence.

    Voilà pour la base. A toi de créer le bon patchwork pour que cela fonctionne avec une mosaîque.
    Avec un peu de recherche, tu trouveras une expression pour que le nombre de colonnes et de rangées de la vidéo coïncide avec le nombre de carrés du patchwork.

    J'espère avoir été clair

    RépondreSupprimer
  3. OK !

    Merci pour ta réponse rapide !

    Je teste tout ça demain et te tiens au courant du résultat !

    A bientôt

    RépondreSupprimer
  4. Très très sympa cette petite combine.
    Alors poussons le vice : disons que mon calque modèle a une animation d'apparition ET de disparition.
    Comment faire pour caler cette animation de disparition en fonction de la fin du calque (sachant qu'ils n'ont bien sûr pas tous la même durée...)

    Voilà... Sinon excellent blog, j'aime de plus en plus les expressions !

    RépondreSupprimer
  5. Hello,
    Comment allez vous aujourd'hui ? Je suis toujours lecteur du blog et heureux:)
    En combinant cette technique d'animation modèle avec votre technique dite de "la Mouche" je tombe sur un os.
    La Mouche me sert à décaler l'arrivée des calques, avec des retards Min et Max contrôlés par des glissières.
    J'ai, comme dans l'exemple ci-dessus, deux propriétés à modifier : taille et échelle.
    Le décalage se fait bien mais les deux propriétés ne sont pas synchronisées, et ceci malgré l'utilisation d'un seedRandom(index,true); Zut alors, si j'ai bien assimilé la théorie ce seedRandom devrait me rendre la même valeur pour chaque propriétés du calque puisqu'elle se base sur l'index. non ?

    Bien à vous Monsieur le freelance saucisse,
    Vincent2

    RépondreSupprimer
  6. ^^^^^^^^^^^^^^^^^^ suite du commentaire ci-dessus ^^^^^^^^^^^^^^^^^^^^^^

    Bonjour,
    Bon, j'ai laissé tomber ce décalage automatique en random+SeedRandom.
    Par rapport à ce que vous dites dans l'explication du random : "random crée une valeur différente pour chaque calque".
    Par la pratique il me semble que random crée une valeur différente pour chaque expression. Par exemple 2 expressions dans 2 propriétés d'un même calque crée 2 valeurs différentes. Alors pour palier à cela il faudrait mettre en place une variable globale mais après recherche sur le net ça semble impossible avec AfterEffects.
    Bref. Je m'en sors tout aussi bien, voir mieux avec des décalages du point d'entrée des calques.
    A la prochaine.
    Vincent2

    RépondreSupprimer
  7. Pour créer une variable globale, il suffit par exemple de l'appliquer à un paramètre glissière, et de venir chercher cette valeur dans les propriétés où cela est nécessaire.

    RépondreSupprimer