module inscription newsletter haut de page forum mobile

Rejeter la 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
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

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

[CommentFaire?] AE - expression - suivi de camera

Discussion dans 'Adobe After Effects' créé par VJ--Tintin, 16 Décembre 2010.

  1. VJ--Tintin

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

    Je fais appel aux scripteux, explication de ma requête :

    J'ai une composition à base de particule avec le plugin Trapcode particular 2.1 avec une lumière comme émetteur en mode directionnel.
    Cette lumière suit un chemin issu d'un masque (d'un autre calque non visible) non fermé.
    Je voudrais faire suivre la caméra derrière l'émetteur à une petite distance mais légèrement au dessus.

    Le point ciblé de l'émetteur et les positions ont les mêmes images clef.
    J'ai donc lié les positions (séparées) de la caméra aux positions de l'émetteur puis les points ciblés ensemble également.

    J'ai d'abord pensé à rajouter dans les expressions un soustracteur exemple pour la positon x de la caméra :
    thisComp.layer("Emitter").transform.position[0]-50

    Mais la position caméra ne se trouve plus sur la trajectoire du trait mais elle cible toujours bien l'émetteur. en gros ça suit le point mais de coté (pas de derrière) et on peut pas rattraper manuellement puisque l'expression me donne déjà une position précise.

    J'ai donc pensé à autre chose, jouer sur le paramètre du temps :
    J'ai ecris cette expression toujours pour x :

    thisComp.layer("Emitter").transform.position[0]-(time-5)

    Mais l'expression n'est pas bonne pour ce que je veux obtenir ; En écrivant celle-ci je voulais dire à la position x de la caméra d'être à la position x de l'émetteur 5 secondes avant.
    Quelqu'un saurait l'expression à écrire ?


    Bon après si vous avez carrément une autre solution je suis ouvert :rolleyes:
     
  2. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Bon j'ai trouvé une expression avec ValueAtTime(t) =>

    delay = 5; //number of frames to delay

    d = delay*thisComp.frameDuration*(index - 1);
    thisComp.layer("Emitter").position.valueAtTime(time - d)



    que je met sur la position de la caméra cela fonctionne (la caméra suuit derrière l'emetteur) mais je voudrais que la camera soit légèrement au dessus de l'émetteur, donc je devrais séparer les dimensions donc je colle 3 fois le scipt en rajoutant le numéro de dimension à chacun =>

    exemple Pour la position x de la camera :


    delay = 5; //number of frames to delay

    d = delay*thisComp.frameDuration*(index - 1);
    thisComp.layer("Emitter").position[0].valueAtTime(time - d)

    Pour la position Y :

    delay = 5; //number of frames to delay

    d = delay*thisComp.frameDuration*(index - 1);
    thisComp.layer("Emitter").position[1].valueAtTime(time - d)

    Pour la position z :


    delay = 5; //number of frames to delay

    d = delay*thisComp.frameDuration*(index - 1);
    thisComp.layer("Emitter").position[2].valueAtTime(time - d)



    mais une erreur se produit, mais même si cela fonctionnait il me faudrait par exemple changer la valeur de Y pour surélever légèrement la camera afin d'avoir une légère vue plongante sur l'emetteur et je ne sais pas bien ou/comment rajouter ce paramètre.

    Lumière de quelqu'un ?
     
  3. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Le message d'erreur était :

    "
    after effect (alerte) : la foncion
    this.Comp.layer().position[0].ValueAtTime n'est pas définie
    expression désactivée.

    erreur dans la ligne 4.
    comp : 'enjoy5'
    calque : 5 (nul 22)
    proprieté : 'X Position'

    "
     
  4. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Même erreur avec cette expression :

    t=time
    if (t=0) {
    thisComp.layer("Emitter").position[0].valueAtTime(t);
    }
    else {

    thisComp.layer("Emitter").position[0].valueAtTime(t-1);
    }



    J'en ai essayé pas mal en bidouillant mais toujours le même message comme si en position séparée de la camera, il ne trouve pas la valeur séparé à prendre de la position x de l'émetteur .....

    Une limitation d'After ? .. je ne pense po ceci dit ....
     
  5. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Une idée comme ça.. pourquoi tu parentes pas tout simplement ta caméra sur la lumière :perplexe:
     
  6. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    J'ai besoin que la caméra soit sur une position antérieure de l'Emetteur mais légèrement surélevée (d'où la séparation des dimensions pour lier ensemble les positions Emetteur et positions caméra, pour changer une des valeurs)
     
  7. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Ben oui justement c'est tout à fait adapté au parentage.
    ...
    Sais-tu te servir des liens Parent entre les calques ?

    Une fois le lien établit tu te places comme tu veux par rapport au parent.
     
  8. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Oui je sais bien m'en servir, et ç'est la première chose que j'ai fais évidement mais comme je le disais dans mon premier post ça ne fonctionne pas comme je voudrais ç'est à dire que la caméra ne se trouve plus sur la position de l'émetteur quand je décale la position Z de la caméra manuellement en plus de la liaison, ceci dit je ne sais pas bien pourquoi (peut-être y a t'il une erreur avec les calques 2D de particules 3d).


    PS: le lien entre calque, ç'est une des bases à savoir ... et avec mes autres calques liés j'ai jamais eu ce problème ... peut-être qu'un autre paramètres gêne cette liaison ...
     
  9. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Bon ceci dit ne voyant personne qui pourrait me dire pourquoi cette expression ne fonctionne pas en coordonnées séparées, je me suis haleté manuellement à la tâche et j'arrive à avoir ce que je veux mais à chaque fois que je change un paramètre de l'émetteur faut que je change aussi le reste derrière, ça va que j'ai une plutôt bonne organisation mais c'est lourd ....
     
  10. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Voilà la correction pour l'expression qui fonctionne en coordonnée séparées (faire attention de séparer aussi les coordonnées de l'émetteur) =>


    delay = 3; //number of frames to delay

    d = delay*thisComp.frameDuration*(index - 1);
    thisComp.layer("Emitter").transform.xPosition.valueAtTime(time - d)



    Ceci dit je pense quand même qu'il y a un bug à ce niveau, je l'avais déjà écrit comme ça sans que cela fonctionne .. bizarre ...

    Ca pourra toujours servir à quelqu'un .... ;)
     
  11. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    J'ai du mal à suivre ce que tu fais. Mais bon si tu ne veux pas le parentage tu peux récupérer la position de ton Emitter et utiliser la propre valeur de position de la caméra comme décalage.

    Code:
    value+thisComp.layer("Emitter").transform.position
    Dans les propriétés de position et de point ciblé de ta caméra.

    Et tu bouges la position de la caméra et de son point ciblé où tu veux pour faire ton cadrage.
    (Mais il ne faut pas que ta caméra ou ton Emitter soit parenté à quelque chose dans ce cas)
     
  12. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    c'est pas que je ne voulais pas de parentage... au contraire ... m'enfin bref, le code que tu as mis ç'est un peu ce que j'avais maladroitement écris au debut dans mon premier post,
    Dison que la caméra va ce décaler en pixel de la valeur que je veux sur sur X ou Y mais le problème c'est que la caméra ne va pas forcement toujours se trouver sur le tracé antérieurs de l'Émetteur, le point ciblé cible bien mais la position de la caméra peut se retrouver de coté, ç'est un peu dur à expliquer sans voir ... et il n'y a que le Z qui à une valeur différente que les point antérieurs mais fixe, d'où la séparations des dimensions.

    De toute façon je suis arrivé à ce que je voulais grâce à l'expression du post précédent ;-)

    Joyeuse fêtes de noël à tous !! :)
     
  13. Larsenic

    Points Repaire:
    1 650
    Recos reçues:
    4
    Messages:
    794
    Appréciations:
    +3 / 4 / -0
    Une idée toute bete, mais bon ; Si ta lumiere suit une trajectoire, c'est que tu as des images cles ; pourquoi ne pas copier ces cles de position de la lumiere, puis les coller sur ta position de particules, mais décalé dans le temps ???
     
  14. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Bon je comprend mieux. Donc tes expressions ressemblent à ça
    Code:
    retard = 1;
    value+thisComp.layer("Emitter").transform.position.valueAtTime(time-retard);
    Ce qui te récupère la position de la lumière avec un certain retard en seconde.
    Le problème c'est si la vitesse de la lumière varie la distance avec la caméra va varier aussi.
     
  15. VJ--Tintin

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    12
    Appréciations:
    +0 / 0 / -0
    Oui effectivement ç'est possible mais comme je l'ai dis plus haut si je change une partie du tracé faut que je redécale tout à la main par derrière ...
     
Chargement...

Dernières occasions

 

Partager cette page

Dernières Occasions

 
Vous souhaitez annoncer sur le Repaire ? Contactez-nous