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.

stabilisation d'un zoom

Discussion dans 'Adobe After Effects' créé par couad, 2 Mars 2005.

Tags:
  1. couad

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    92
    Appréciations:
    +0 / 0 / -0
    hello tout le monde, ;)

    je me pose une petite question concernant les capacités d'After à stabiliser un plan avec zoom. La stabilisation "classique" d'un plan se fait sans prob pour un plan fixe ou un pano vertical ou horizontal, mais pour un zoom... c'est une autre histoire :D
    (je précise que j'ai eu connaissance recemment d'un soft dédié à ce type de problème mais je tiens à rester dans After... pour ceux qui en doutaient encore, voui, j'aime bien me prendre la tête... ;) ).

    Prenons l'exemple d'un oeil dans lequel on zoome doucement. L'idéal serait d'avoir un point de track pile au centre ( du genre la pupille) mais je décide d'en rajouter une couche :D : la pupille bouge tout le temps à droite à gauche, etc... Donc pas de point de track pile au centre...

    Si je pose un point de track ailleurs qu'au centre, la stabilisation me compensera non seulement le jitter, mais aussi le mouvement du point de track qui s'éloigne petit à petit du centre durant le zoom.

    Donc je fais appel aux rois de l'expression (oscarus... sequelles... :D ) pour m'aider dans ma quête de la solution :rolleyes:.

    J'ai bien une théorie qui consiste à dissocier le jitter du "mouvement" créé par le zoom, mais le gros du problème serait de la transcrire en expression.

    Ma solution consisterait à tracker un point. On considere que la première valeur et la dernière sont des valeurs sans jitter. On trace une droite (valeur en fonction du temps) sur laquelle on retranscrit tous les points de suivi de cible. L'offset par rapport à la droite correspond au jitter et seulement au jitter, c'est à dire à la valeur à reinjecter dans le point d'ancrage de la vidéo. De cette manière on dissocie le jitter du mouvement du point de track.

    Dans le cas d'un zoom irrégulier, on fait la même chose mais avec qqs points de contrôle, ce qui donne une courbe avec laquelle on extrait les valeurs de stabilisation comme precedemment.

    Est ce que c'est une bonne idée d'après vous? :perplexe:
    Merci d'avance aux personnes qui grilleront qqs neurones sur ce problème :)

    =CouaD=
     
  2. couad

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    92
    Appréciations:
    +0 / 0 / -0
    bon bin après moultes tentatives, ma théorie s'est avérée juste :D

    il suffit d'un seul point de track pour stabiliser un plan avec zoom qui ne possede pas de point de track au centre.

    il faut utiliser l'expression suivante sur le point d'ancrage de la vidéo après avoir tracké la vidéo:

    Ax=-18,834;
    Ay=0,632;

    Jx= motionTracker("Suivi 1")("Point de piste 1").featureCenter[0] - 231,1 - (Ax*time);
    Jy= motionTracker("Suivi 1")("Point de piste 1").featureCenter[1] - 231,1 - (Ay*time);

    Cx=(Ax*time)+231,1;
    Cy=(Ay*time)+300,5;

    [anchorPoint[0]+Jx-Cx,anchorPoint[1]+Jy-Cy]

    pour info, la valeur 231,1 est la valeur X du point de track à la première image de la séquence.
    La valeur 300,5 est la valeur Y du point de track à la première image de la séquence.

    Je précise qd même que je suis dans un cas où le zoom est régulier, et que l'équation se complique si le zoom n'est pas régulier.

    Je posterai + de détails si qqn est interressé.

    Je vais qd même essayer mon expression sur d'autres exemples... :rolleyes: because il est possible que je m'emballe un peu :D

    =CouaD=
     
  3. couad

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    92
    Appréciations:
    +0 / 0 / -0
    j'ai fait des tests sur plusieurs plans et cà marche très bien, mais mon soucis réside dans le fait que j'aimerais totalement automatiser mon expression et ne pas avoir à faire des calculs manuellement (tel que le coef directeur de la droite A).

    Je bloque avec une expression qui me permet d'aller chercher la valeur d'un point de track à un instant "t" mais After me dit que la valeur n'est pas définie. J'ai eu beau chercher dans l'aide et autres, rien n'y fait.
    Voilà la partie de l'expression qui me pose problème:
    [...]
    Jx= motionTracker("Suivi 1")("Point de piste 1").featureCenter[0].valueAtTime(0);
    [...]
    C'est le valueAtTime(t) qui me bloque étant donné que quand je l'enlève, l'expression marche (mais avec la valeur de track actuelle...).
    Est ce que quelqu'un pourrait m'expliquer où est mon erreur ? :help:

    =CouaD=
     
  4. couad

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    92
    Appréciations:
    +0 / 0 / -0
    c'est pas pour continuer de me parler à moi-même :D mais Dan Ebberts (Creative Cow) a trouvé la soluce à mon prob. En fait, la dimension est à placer à la fin de l'expression et cà donne:

    Jx= motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(0)[0];

    voilà le code entier à placer dans le point d'ancrage de la vidéo après avoir traqué n'importe quel point de la vidéo. Il y a juste deux valeurs à rentrer à la mano: les valeurs du temps à laquelle on veut commencer et finir de stabiliser la vidéo.


    //temps (en secondes) où se situe la dernière clé de track (première valeur à rentrer)
    lastTrackKey=125/25;

    //temps (en secondes) où se situe la première clé de track (deuxième valeur à rentrer)
    firstTrackKey=0/25;

    //on calcule le coeff directeur de la droite pour les X
    Ax=(motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(lastTrackKey)[0]-motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(firstTrackKey)[0])/(lastTrackKey-firstTrackKey);

    //on calcule le coeff directeur de la droite pour les Y
    Ay=(motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(lastTrackKey)[1]-motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(firstTrackKey)[1])/(lastTrackKey-firstTrackKey);

    //calcul des mouvements à corriger lors du zoom pour les X et Y (jitter)
    Jx= motionTracker("Suivi 1")("Point de piste 1").featureCenter[0] - (Ax*time) - motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(0)[0];
    Jy= motionTracker("Suivi 1")("Point de piste 1").featureCenter[1] - (Ay*time) - motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(0)[1];

    //calcul des mouvements du point de track dûs au zoom
    Cx=motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(0)[0];
    Cy=motionTracker("Suivi 1")("Point de piste 1").featureCenter.valueAtTime(0)[1];

    //voilà les coordonnées du point d'ancrage avec compensation du jitter et compensation des mouvements dûs au zoom
    [anchorPoint[0]+Jx-Cx,anchorPoint[1]+Jy-Cy]


    Quand j'aurais assez de courage, j'essaierai de me mettre aur le même prob mais avec un zoom irrégulier... mais là j'crois qu'y a de quoi s'arracher les cheveux :D (et déjà que les derniers qui me restent se battent en duel... :rolleyes: )

    =CouaD=
     
    #4 couad, 3 Mars 2005
    Dernière édition: 3 Mars 2005
  5. Cuberic

    Points Repaire:
    550
    Recos reçues:
    0
    Messages:
    48
    Appréciations:
    +0 / 0 / -0
    stabiliser un plan

    Bonjour Couad,
    Tu as l'air assez pointu sur AE. Moi je commence juste à utiliser. J'ai notamment des plans qui ne sont pas zoom, par exemple j'ai voulu faire une camera subjective de la vue de qqn qui marche (un travelling qui avance) et ça bouge un peu trop à mon gout. Peut tu me dire stp une méthode facile pour corriger ça.
    Merci d'avance.
     
  6. couad

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    92
    Appréciations:
    +0 / 0 / -0
    tu as deux solutions pour stabiliser un plan avec travelling avant ou avec un zoom:

    - si tu as un point trackable pile au centre de ta video, t'as juste à stabiliser ton plan avec l'outil "stabiliser le mouvement".

    - si par contre tu n'as pas de point trackable pile au centre de ta vidéo, alors tu peux essayer avec les expressions. T'as juste à tracker un point quelconque de ta séquence, et à coller les lignes de code precedentes dans le point d'ancrage de ta vidéo. Normalement, je dis bien normalement :D , bin cà devrait marcher. J'ai essayé ces qqs lignes de code sur 3 plans différents et cà marche.

    =CouaD=
     
  7. couad

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    92
    Appréciations:
    +0 / 0 / -0
    j'ai oublié de préciser qu'il faut glisser l'expression suivante dans le paramètre position de la vidéo pour qu'elle se recentre bien après calcul du repositionnement du point d'ancrage:

    //temps (en secondes) où se situe la première clé de track (valeur à rentrer manuellement)
    firstTrackKey=0/25;
    anchorPoint.valueAtTime(firstTrackKey);

    Cuberic --> si t'as besoin de précisions faut pas hésiter.

    =CouaD=
     
  8. Cuberic

    Points Repaire:
    550
    Recos reçues:
    0
    Messages:
    48
    Appréciations:
    +0 / 0 / -0
    ok

    Je remercie Couad pour ton coup de main. Je vais appliquer tes conseils. Et si j'ai besoin je te recontacte. En tout cas c'est vraiment cool à travers ce forum de pouvoir s'entreaider dans notre passion commune. A bientot et good shoots.
    Cuberic (pas tout à fait encore...:-))
     
  9. armir

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    104
    Appréciations:
    +0 / 0 / -0
    Chapeau

    Bien bien

    Franchement bravo. tu as un mov genre avant apres a nous faire partager.
    Car ça c'est une p....n de méthode. Chapeau bas:bravo:
     
Chargement...

Partager cette page