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.

[CommentFaire?] SourceRectAtTime() et point d'ancrage

Discussion dans 'Adobe After Effects' créé par Twades, 10 Juin 2020.

  1. Twades

    Points Repaire:
    600
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    Salut à tous !

    Je vous explique mon problème : je suis actuellement en train de créer des templates de synthés sur AE pour que des collègues qui ne connaissent rien à ce logiciel puissent les utiliser sans aucun problème.

    Du coup, sur une partie de mon synthé, j'ai un calque de forme qui est sous un texte, et qui modifie sa taille par rapport au texte grâce à la fonction SourceRectAtTime().

    Aucun problème pour la taille horizontale, cependant, quand je passe une ligne, ma forme s'agrandit correctement mais depuis le centre, comme si le point d'ancrage n'avais pas bougé (je veux le faire grandir depuis le "haut" de la forme)

    Je me prend un peu la tête je vais pas vous mentir, est ce que quelqu'un aurait une idée de ce qu'il faudrait que je fasse ?

    Merci d'avance, je vous aime
     
  2. Twades

    Points Repaire:
    600
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    SOLUTION :
    Après moult tests, j'ai trouvé une solution (peut être pas la meilleure, mais elle fonctionne)
    Donc pour ceux qui se poseraient la même question que moi :

    La propriété SourceRectAtTime() modifiait les paramètres de la taille du rectangle. J'ai donc transposé la propriété dans les options de transformation du rectangle dans échelle, avec le code comme suis :

    Code:
    x = thisComp.layer("Calque Texte ").sourceRectAtTime().width;
    y = thisComp.layer("Calque Texte ").sourceRectAtTime().height;
    [x,y];
    Pour que tout fonctionne correctement, il m'a fallu mettre la taille du rectangle en 100px * 100px.

    Bien sur, il faut modifier les propriétés de point d'ancrage dans les options de transformation du rectangle.


    Et bonne journée à vous !
     
  3. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Tu as sourceRectAtTime().left et sourceRectAtTime().height qui donne la position du coin supérieur gauche dans les coordonnées du calque.
    Pour l'utiliser ça dépend comment tu t'y prends pour positionner le calque. Est-ce qu'il y a du parent, est ce que c'est animé en position ? Si tu parentes ton calque de forme sur ton calque de texte, il aura cette position :
    Code:
    var largeur = parent.sourceRectAtTime().width;
    var hauteur = parent.sourceRectAtTime().height;
    var coinGauche = parent.sourceRectAtTime().left;
    var coinHaut = parent.sourceRectAtTime().top;
    [coinGauche,coinHaut]+[largeur,hauteur]/2
     
    • J'aime J'aime x 2
    • Merci Merci x 1
  4. Twades

    Points Repaire:
    600
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    Aaaah mais bien sur ! Merci beaucoup, c'est surement plus optimisé que ce que j'avais fait en plus.

    Je débute encore dans les expressions, je savais pas qu'on pouvait utiliser top, left etc avec sourceRectAtTime(), merci beaucoup !
     
Chargement...

Partager cette page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous