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.

Appliquer une expression à la position de l’extrémité d'un tracé

Discussion dans 'Adobe After Effects' créé par Bubby-, 6 Janvier 2020.

  1. Bubby-

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    5
    Appréciations:
    +0 / 0 / -0
    Bonjour à tous,

    Je souhaiterais réaliser un mouvement aléatoire (effet wiggle) à l'extrémité d'une ligne tracée avec l'outil plume.

    Savez-vous s'il est donc possible d'écrire une expression permettant de modifier la position de l'extrémité d'un tracé ?

    Si je suis pas très clair, l'effet que je souhaiterais faire est celui que l'on peut voir dans cette vidéo à 6:16 :

    PS : sur internet j’ai vu qu’il était possible d’appliquer des expressions à des extrémités de tracé avec l’effet faisceau. Mais cet effet ne permet pas de faire l’animation d’allongement du tracé lorsqu’il apparaît comme on peut le voir dans la vidéo.

    Merci d'avance pour votre aide !
     
  2. Julienschi

    Points Repaire:
    1 170
    Recos reçues:
    5
    Messages:
    41
    Appréciations:
    +3 / 15 / -0
    Salut Buddy,

    Il y a deux solutions possibles pour faire ça via du code (donc plus ou moins automatiquement)

    n°1 (la moins bien)
    Tu crées une ligne qui soit un calque de forme, donc avec l'outil plume. Une fois qu'il est fait, tu vas dans le menu "fenêtre", tu vas trouver un script un peu caché qui s'appelle Create Null From Path. Sélectionne ton tracé, et dans la fenêtre ouverte par ce script, tu as l'option les point suivent les nuls. Clique, et ça va te créer deux calques nuls auxquels sont liés ton tracé via un code. Bouge l'un des nuls et ta ligne bouge. Ensuite il te suffit soit de parenter chacun des nuls aux calques sur lesquels tes extrémités doivent être calées, soit d'animer les nuls avec des points clés, et ton tracé suivra.

    L'avantage de cette méthode c'est qu'elle ne nécessite pas de code trop compliqué. Le désavantage, c'est qu'elle bugue si tu tentes de dupliquer ta ligne. (les liens entre nuls et tracés ne se mettent pas à jour dans le copié collé). Ce qui signifie qu'il faut refaire l'opération à chaque nouvelle ligne.

    n°2
    Tu passes effectivement par l'effet faisceau que tu mets sur un calque solide à part. (en mettant bien sa longueur à 100%...!).
    Puisque l'effet faisceau a un point de départ et un point d'arrivée (entre lesquels se dessine ledit trait), il s'agit de mettre deux expressions. Mettons, pour reprendre ton exemple que tu as un calque au centre qui s'appelle MONTAGNE, et un calque qui s'appelle ELEMENT_1 :

    Dans le point de départ, tu vas linker comme code la position de ta MONTAGNE, ce qui devrait te créer ce code : thisComp.layer("MONTAGNE").transform.position

    Dans le point d'arrivée, il va falloir dire de passer de la position de la montagne à la position de l'élément, ce qui va te donner une expression comme ceci : ease(time,0,1,thisComp.layer("MONTAGNE").transform.position,thisComp.layer("ELEMENTS_1").transform.position)

    Là, tu as ton trait qui va bien s'allonger de ta montagne à ton élément. Pour faire exactement comme la vidéo, et avoir l'effet de flottement des différents éléments, tu rajoutes un wiggle sur la position de ton ELEMENT_1, du style : wiggle(.5,25)

    Ceci dit, pour l'instant l'anim du trait se fait entre 0 et 1 seconde. (à cause, dans l'expression, du "time,0,1") Si tu veux pouvoir changer ça, tu peux rajouter un effet paramètre glissière sur ton calque du faisceau, et transformer l'expression de tout à l'heure en : ease(effect("Paramètre glissière")("Curseur"),0,1,thisComp.layer("MONTAGNE").transform.position,thisComp.layer("ELEMENTS_1").transform.position)

    Désormais, c'est le paramètre glissière qui gère le temps d'animation de ton trait, il te suffit de mettre deux points clés (l'un de valeur 0, l'autre de valeur 1) pour que ton trait se dessine.

    Un dernier avantage de cette méthode, c'est que tu peux totalement l'automatiser, en utilisant les index des calques.
    Mettons que tu mettes ta montagne en premier calque (tout en haut de liste), chacun des éléments (disons qu'il y en 10) en dessous, et le calque solide avec l'effet faisceau encore en dessous de tout ça, dans ce cas, tes deux expressions sur le faisceau pourraient être :
    1) thisComp.layer(1).transform.position
    2) ease(effect("Paramètre glissière")("Curseur"),0,1,thisComp.layer(1).transform.position,thisComp.layer(index-10).transform.position)

    Et à ce moment-là, il te suffit de dupliquer le calque solide du faisceau 9 fois, pour que chaque élément ait son propre trait, sans rien à changer à l'expression.

    n°3
    Tu peux aussi faire l'anim que tu montres bien plus facilement en créant un trait comme tu veux, en mettant bien son point d'ancrage sous la montagne, en parentant ton élément à ce trait, et en faisant grossir le trait via son échelle d'un premier point à 100,0 à un deuxième à 100,100. et pour faire le flottement, tu mets un wiggle sur la rotation de ton trait... Après tout dépend de ce qu'on veut faire !!!
     
  3. Bubby-

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    5
    Appréciations:
    +0 / 0 / -0
    Merci énormément Julienschi pour ta réponse très détaillé qui m'a bien aidée !
    J'ai réalisé la méthode n°2 qui marche très bien, mais je garde les autres méthodes sous la main quand je voudrais réaliser un projet similaire ! :D
     
Chargement...

Partager cette page

Dernières Occasions

 
Vous souhaitez annoncer sur le Repaire ? Contactez-nous