module inscription newsletter haut de page forum mobile

Dismiss Notice

formations etalonnage sur davinci resolve

Nos Formations Etalonnage avec Forest reviennent en octobre !
Adoptez une réelle méthodologie d'étalonnage professionnelle et atteignez vos objectifs créatifs avec nos formations intensives sur 3 jours
Toutes les infos
Dismiss 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
Dismiss Notice

Formation Lumière - Pratique Intensive du 14 au 16 octobre à Paris
Formez-vous avec cet atelier de pratique intensive dans des conditions exceptionnelles ! Formation finançable.
Toutes les infos

Ateliers et Formations

[Expressions] la notion de vecteur, et leur conversion. <=

Discussion in 'Adobe After Effects' started by poulpenoir, Jan 14, 2005.

Tags:
  1. poulpenoir

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    179
    Appréciations:
    +0 / 0 / -0
    Bonjour.
    Je suis mis au expressions, ca avance...mais là je bute un peu sur la notion de vecteur, en particulier sur cet exemple:

    Case Study: 2D Auto Orientation

    pourtant c'est pas long:
    ------------------------------------------------
    L = thisComp.layer("leader");
    u = L.toWorldVec([1,0]);
    radiansToDegrees(Math.atan2(u[1],u[0]))
    ------------------------------------------------

    2 Questions:
    - Que fait "Layer.toWorldVec([1,0]);" ?
    - A quoi correspond "Math.atan2(u[1],u[0])" ?
    (je sais que "atan" c'est l invers de la tangeante mais atan2...):perplexe:
     
  2. Sequelles

    Sequelles Modérateur
    Modérateur So

    Trophy Points:
    11,780
    Likes Received:
    20
    Messages:
    4,261
    Appréciations:
    +2 / 13 / -0
    un problème avec l'anglais ? :bravo:

    Oui c'est pas au point...

    D'après vous, dans combien d'années on aura des logiciels de traduction qui fonctionnent?
     
  3. Sequelles

    Sequelles Modérateur
    Modérateur So

    Trophy Points:
    11,780
    Likes Received:
    20
    Messages:
    4,261
    Appréciations:
    +2 / 13 / -0
    Je vous fais une petite traduction en attendant?;)
     
  4. Sequelles

    Sequelles Modérateur
    Modérateur So

    Trophy Points:
    11,780
    Likes Received:
    20
    Messages:
    4,261
    Appréciations:
    +2 / 13 / -0
    traduit de: http://www.motionscript.com/mastering-expressions/lst-2d-auto-orient.html
    avec l'aimable autorisation de Dan Ebberts

    Copyright © 2005 Dan Ebberts. All rights reserved.

    METHODES DE CONVERSION DE L'ESPACE CALQUE

    Orientation automatique 2D

    Les expressions de la catégorie "Layer Space Transforms" sont extrêmement puissantes et utile une fois que vous avez compris comment les employer. Elles sont conçues pour vous permettre de transformer des coordonnés, depuis et vers, les espaces: calques, composition ou univers. Malheureusement, il n'y a aucune transformation pour la rotation et l'orientation. Quand est-ce que cela devient un problème ? Il y a des situations où il peut être très utile de savoir ce que la rotation ou l'orientation d'un calque devient dans l'espace univers.

    Un tel cas se produit quand un calque est enfant d'un autre calque. Quand vous tournez le parent, l'orientation de l'enfant change dans l'espace univers, mais pas sa valeur de rotation. Ainsi vous ne pouvez pas dire en regardant les propriétés du calque quelle est son orientation/rotation dans l'espace univers.

    Un autre cas se produit quand vous activez l'orientation automatique d’un calque. Pendant que le calque se déplace le long de son chemin, son orientation change mais pas ses paramètres de rotation et d'orientation.

    Supposez que nous voulions que d'autres calques dans la composition aient la même rotation/orientation que notre enfant ou notre calque auto-orientée. Comment faire? Dans ce cas nous utiliserons une expression qui donne la valeur de l'orientation automatique d'un calque 2D. Et elle marche aussi dans le cas de calque enfant.

    Part où commencer? Il s'avère qu' After Effects nous fournisse l'outil dont nous avons besoin sous la forme d'une des plus obscures expressions de Layer Space Transforms, à savoir: "toWorldVec". Les expressions classiques de Layer Space Transforms convertissent les coordonnées d'un point, d'un système de coordonné vers un autre. Les transformations de type vecteur de ces expressions font quelque chose d'entièrement différente.

    Jetons un rapide coup d'oeil sur la composition qui nous a permis de créer cette petite animation:anim flash

    [​IMG]

    La flèche rouge est appelée "leader". Elle a été animée pour se déplacer selon un chemin en forme de 8 et l'auto-orientation a été activée. Vous remarquerez dans l'image ci-dessus, que bien que la flèche subisse clairement des rotations par rapport à la composition, son paramètre de rotation reste à zéro. Vous pouvez également voir l'expression qui a été appliquée dans la propriété Rotation de tous les calques jaunes en dessous (remarquez que le paramètre de rotation pour ces calques n'est pas zéro).
    Voici cette expression:
    Code:
    L = thisComp.layer("leader");
    u = L.toWorldVec([1,0]);
    radiansToDegrees(Math.atan2(u[1],u[0]))
    
    Creusons un peu pour voir comment elle fonctionne.

    Commençons par une petite révision des vecteurs dans After Effects.
    Les vecteurs sont des entités qui ont une longueur et une direction. Les vecteurs ne possèdent aucune information de position - seulement une longueur et une direction. Ainsi le vecteur de [0,0] à [1,0] est identique à un vecteur de [5,5] à [6,5 ] (ils ont tous les deux une longueur de 1 et se dirigent dans la même direction que l'axe des x). Puisque la position n'est pas prise en compte, n'importe quel vecteur peut être défini en considérant son origine à [0,0] dans un repère donné et en indiquant le point final. Cela donnera à la fois la longueur et la direction. AE utilise cette convention pour les transformations de vecteurs, c'est-à-dire, que vous indiquez le point final et AE suppose que le vecteur commence à [0,0]. La longueur est déterminée par la distance entre le point final et l'origine ([0,0]). De telle sorte que n'importe quel point de l'espace puissent être interprétés par After Effects comme un point de coordonné [ x,y ], ou comme un vecteur allant de [ 0.0 ] à [ x,y ]. Ce vecteur aura un certain angle part rapport à l'axe des x. L'astuce dans tout ça, c'est que si l'on prend un vecteur dans l'espace local du calque et qu'on le transforme vers l'espace univers grâce à l'expression "toWorldVec", on trouvera l'angle de rotation.

    Examinez le diagramme suivant:

    [​IMG]

    Regardez ce qui se passe: nous avons un solide bleu avec une animation par images clés représentée par le chemin "layer motion path". Le calque a son auto-orientation activée, donc le calque tourne par rapport à l'espace univers mais son paramètre Rotation ne reflète pas ça et reste à 0. Notez que le calque suit son chemin, son axe local x se dirigeant toujours dans la direction da sa trajectoire. Ceci fournit la clef de la solution. Ce que nous devons faire c'est définir un vecteur unité, "u" (qui n'est qu'un vecteur de longueur 1) le long de l'axe x.

    Dans l'espace du calque, le vecteur commence à [ 0.0 ] et fini à [ 1.0 ]. Maintenant vient la partie amusante. On utilise "toWorldVec" pour transformer notre vecteur unité dans l'axe des x de notre calque en vecteur équivalent dans l'espace univers (également appelé "u" dans le diagramme). Ce vecteur commence également à [0,0] (mais dans l'espace univers) et la valeur de fin n'est pas [1,0] - c'est autre chose. Ca se remarque sur ses coordonnés x et y (u[0] et u[1]). Donc, quand nous entrons le point final du vecteur unité du calque [1,0], dans toWorldVec, le résultat sera [u[0],u[1]]. C'est toute l'information dont nous avons besoins pour calculer l'angle de rotation dans l'espace univers. En utilisant un peu de trigo, nous savons que la tangente de notre angle (thêta dans le diagramme) est divisée par x, ou u[1]/u[0]. Ainsi si nous prenons l'ArcTangente de u[1]/u[0 ] nous obtenons l'angle de rotation (en radians, que nous convertissons simplement en degrés).

    Même si vous n'avez pas tout suivi, sachez que vous pouvez utiliser l'expression ci-dessus pour connaître la rotation dans l'espace univers de n'importe quelle calque 2D, même si c'est un calque enfant ou qui a l'auto-orientation activé.

    Copyright © 2005 Dan Ebberts. All rights reserved.
     
    #4 Sequelles, Jan 14, 2005
    Last edited: Jan 16, 2005
  5. poulpenoir

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    179
    Appréciations:
    +0 / 0 / -0
    merci pour la traduction. (beau travail) :bravo:
    c surtout ca que je capte pas: "toWorldVec([1,0]);"
    [1,0] est apparament le vecteur unitere, mais je ne c pas comment on le choisi (mais j imagine que ce sont les notions de maths qui me font defaut.
     
  6. Sequelles

    Sequelles Modérateur
    Modérateur So

    Trophy Points:
    11,780
    Likes Received:
    20
    Messages:
    4,261
    Appréciations:
    +2 / 13 / -0
    Un vecteur unitaire a une longueur de 1.
    On cherche la rotation par rapport à la direction x. Puisque dans cette direction la rotation est à l'origine à zéro.

    Donc on utilise un vecteur [1,0]. 1 en x et 0 en y. C'est bien le vecteur dont on a besoin, longueur 1 et direction x.
     
  7. poulpenoir

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    179
    Appréciations:
    +0 / 0 / -0
    Encore merci, c'est bon je comprend maintenant.
    Je v pouvoir faire de jolie scripts. :)


    Sinon voila qlqs tests de scripts :
    (il n'y a aucune lumiere d'utilisé ds les compos)


    ae_script_light.mov

    ae_look_light.mov
     
  8. Sequelles

    Sequelles Modérateur
    Modérateur So

    Trophy Points:
    11,780
    Likes Received:
    20
    Messages:
    4,261
    Appréciations:
    +2 / 13 / -0
    Ca me rappel un truc que j'avais fait:
    (mais j'avais utilisé les lumières)

    [ame="http://www.dailymotion.com/video/xzyfd_expressions-after-effects_creation"]Dailymotion - Expressions After Effects - une vidéo Art et Création@@AMEPARAM@@http://www.dailymotion.com/swf/xzyfd@@AMEPARAM@@xzyfd[/ame]
     
    #8 Sequelles, Jan 15, 2005
    Last edited: Nov 12, 2009
  9. poulpenoir

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    179
    Appréciations:
    +0 / 0 / -0
    Tres sympa les effets de vagues, c koi le principe ? un decalage ds le temps en fonction de la distance avec la lumiere ?
     
  10. Sequelles

    Sequelles Modérateur
    Modérateur So

    Trophy Points:
    11,780
    Likes Received:
    20
    Messages:
    4,261
    Appréciations:
    +2 / 13 / -0
    Oui c'est le principe. Les variations d'échelles sont faites en fonction du niveau audio et sont décallées dans le temps en fonction de la distance à la lumière.
     
    #10 Sequelles, Jan 16, 2005
    Last edited: Jan 16, 2005

Share This Page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous