module inscription newsletter haut de page forum mobile

Ateliers et Formations

[CommentFaire?] Quelle expression pour afficher l'angle d'un volet radial

Discussion dans 'Archives moteurs' créé par Mecol, 12 Février 2012.

Tags:
  1. Mecol

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

    Je chercher à afficher la valeur de l'angle de l'effet volet radial sur une animation explicative d'un dispositif mécanique à cames. Quelle expression faut-il utiliser pour y parvenir?

    Merci par avance de votre support.
     
  2. Robinsstudio

    Points Repaire:
    1 520
    Recos reçues:
    9
    Messages:
    271
    Appréciations:
    +0 / 1 / -0
    Bonjour,

    Je ne sais pas si c'est tout à fait ça, mais j'espère que ça t'aidera. Tu voudrais que l'angle de transition de ton volet radial s'affiche en degrés (sur un calque texte par exemple) mais la valeur est exprimée en % (dommage). Mais on peut détourner cette difficulté tellement facilement !

    J'ai créé un objet nul auquel j'ai appliqué un paramètre glissière, que j'ai relié au pourcentage de mon volet radial. Maintenant, je convertis en degrés (sur 360). Ba je divise par 100 et multiplie par 360, c'est des maths de primaire. Ca nous donne ceci comme expression donc :

    Code:
    // "Solide" est le nom du calque auquel est appliqué le volet radial, à vous de le changer selon le nom de votre calque.
    
    thisComp.layer("Solide").effect("Volet radial")("Pourcentage")/100*360
    Mon paramètre glissière a une valeur en degrés qui correspond à l'angle de mon volet ! Magnifique ! Plus qu'à relier à la propriété de texte source pour que la valeur s'affiche dans l'écran de composition !

    Code:
    // "Valeur" est le nom de l'objet nul dans lequel est comprit la valeur en degrés, à vous de le changer selon le nom du votre calque.
    
    thisComp.layer("Valeur").effect("Valeur")("Curseur")
    Si les décimales ne te plaisent pas tu peux les arrondir avec la fonction Math.round :

    Code:
    // "Valeur" est le nom de l'objet nul dans lequel est comprit la valeur en degrés, à vous de le changer selon le nom du votre calque.
    
    Math.round(thisComp.layer("Valeur").effect("Valeur")("Curseur"))
    J'en ai fini, j'espère que ça t'aidera, ce petit jeu d'expression est assez intéressant en tout cas pour s'exercer.
     
    • Je recommande ! Je recommande ! x 2
  3. Mecol

    Points Repaire:
    100
    Recos reçues:
    0
    Messages:
    6
    Appréciations:
    +0 / 0 / -0
    Merci beaucoup pour ces explications claires puique j'ai pu intégrer ces expressions et que cela fonctionne. Le seul hic est que l'affichage donne une valeur inverse à mon cadran (si mon cadran est à 90° cela affiche 270°). J'ai soustrait 360 à la lecture du cadran et essayé l'expression:

    Code:
    Math.abs(thisComp.layer("Valeur mot").effect("Paramètre glissière")("Curseur"))
    pour obtenir la valeur absolue mais je n'arrive pas à cumuler les deux expressions à savoir la valeur absolue arrondie à l'unité.
    Je vais un peu chercher, au pire en passant par un second objet nul, merci encore pour l'aide apportée.
     
  4. Robinsstudio

    Points Repaire:
    1 520
    Recos reçues:
    9
    Messages:
    271
    Appréciations:
    +0 / 1 / -0
    Oui il faut bien soustraire la valeur obtenue à 360. Mais ton expression est bizarre tu te casses la tête inutilement. Contente-toi de soustraire à 360, donc tu prends l'expression de ton objet nul et ça doit donner ça :

    Code:
    // "Solide" est le nom du calque auquel est appliqué le volet radial, à vous de le changer selon le nom de votre calque.
    
    360-(thisComp.layer("Solide").effect("Volet radial")("Pourcentage")/100*360)
    Faut pas essayer de passer par quatre chemins, faut aller droit au but ! Là, normalement ce n'est plus l'angle de la zone transparence du calque qui est affiché mais l'angle de la zone opaque.
     
Chargement...

Partager cette page