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.

Script: un outil pour le rotoscoping

Discussion dans 'Adobe After Effects' créé par nab17connection, 27 Décembre 2005.

Tags:
  1. wib

    wib

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    268
    Appréciations:
    +0 / 0 / -0
    oh c pratique ce script pour retoucher plusieurs keyframes en même temps !
     
  2. Julien W.

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    1 499
    Appréciations:
    +0 / 0 / -0
    Si tu es en manque d'idée, en voilà une, qui est très souvent utilisée dans les logiciels de tracking 3d: analyser le mouvement d'un grand nombre de points et supprimer ceux qui ne se comportent pas comme les autres.
    Bon... je ne sais pas quelles pourraient être les applications, mais c'est néanmoins un problème intéressant.
     
  3. wib

    wib

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    268
    Appréciations:
    +0 / 0 / -0
    de la même manière que dans boujou, utiliser certains points pour d'autres
     
  4. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Pour revenir au sujet.

    Comme le script RotoTool permet de convertir les points d'un masque en point de suivi, on peut déjà (sans script en plus :bravo: ) retravailler l'animation point par point du masque et supprimer éventuellement des clés d'animation là où c'est nécessaire pour un point particulier et utiliser une trajectoire à la place.
    Donc le RotoTool peut servir d'une façon générale à palier aux manques de fonctionnalités des masques et d'animer le point séparément par trajectoires avec des clés uniquement là où c'est nécessaire.

    On pourrait imaginer une déclinaison du RotoTool qui au lieu de convertir, dans un sens et dans l'autre, vers de Points de suivi utiliserait des effets Paramètre point d'effet. Mais on ne peux afficher qu'un seul Paramètre point d'effet à la fois, ce qui peux être gênant ou pas. A moins de trouver ce qui a était fait avec l'animation prédéfinie "Séparer la position XYZ" où l'on voit un effet Paramètre glissière avec 3 Curseurs. Ce qui à l'air de prouver que l'on peut multiplier les paramètres à l'intérieur d'un effet de la catégorie Options pour expression. Dans certains cas Paramètre point d'effet serait en effet plus pratique à manipuler que les points de suivi.

    Pouvoir récupérer et éditer les trajectoires des points d'un masque permet toutes genre de choses: comme utiliser des expression pour gérer ces positions, tremblement, lissage, boucles etc...

    J'ai hâte de pouvoir l'essayer ;)
     
  5. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    ADBE Point Control

    ces effets sont plus facilement accessibles que les points de piste d'un suivi... avec un peu d'experience (tonton Nab il commence a toucher sa bille au niveau masque et scripting) :D, tu écris cela en une poignée de lignes.

    >> Transformer un masque en une collection de Paramètres point d'effet:
    - crée un solide et ajoute lui un masque
    - seléctionne ton calque et exécute ce qui suit:
    Code:
    {
    app.beginUndoGroup("MaskToPointsControl")
    var myLayer = app.project.activeItem.selectedLayers[0];
    var myVertices = myLayer.Masks.property("Mask").maskShape.value.vertices;
    for (var i = 1; i <= myVertices.length; i++) {
    	var myProp = myLayer.Effects.addProperty("ADBE Point Control");
    	myProp.name = "point " + i;
    	myProp.property(1).setValue(myVertices[i - 1]);
    }
    app.endUndoGroup();
    }
    >> Transformer une collection de Paramètres point d'effet en masque:
    - mets les expressions que tu veux sur les propriétés Point (qui viennent d'être créées)
    - garde ton calque sélectionné (tu peux virer l ancien masque)
    - execute ca:
    Code:
    {
    app.beginUndoGroup("PointsControlToMask");
    var myComp = app.project.activeItem;
    var myLayer = myComp.selectedLayers[0];
    var myEffects = myLayer.Effects;
    var myMask = myLayer.Masks.addProperty("Mask");
    var t = 0;
    while (t < myLayer.outPoint) {
    	var myVertices = new Array();		
    	for (var i = 1; i <= myEffects.numProperties; i++) {
    		var myProp = myEffects.property(i);
    		if (myProp.matchName == "ADBE Point Control")
    			myVertices[myVertices.length] = myProp.property(1).valueAtTime(t,false); // true = preExpression
    	}
    	var myShape = new Shape();
    	myShape.vertices = myVertices;
    	myMask.property("maskShape").setValueAtTime(t,myShape);
    	t += myComp.frameDuration;
    }	
    app.endUndoGroup();
    }
    si tu penses que ça peut etre intéressant d'approfondir cela (un seul script qui fait les deux conversions direct , récuperer aussi les tangentes pas seulement la position des sommets, avoir une palette avec un champ dans lequel on écrit l'expression qui ira sur les points..), je pourrais le faire

    ps: pour les deux scripts ci dessus, j ai pas fait de "Good Housekeeping" alors t'écarte pas de la procédure
    -
     
    #65 nab17connection, 8 Février 2006
    Dernière édition: 10 Février 2006
  6. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Je pense en effet que ça peut être intéressant :approb:

    Le deuxième script ne marche pas, myComp n'est pas défini.
    J'ai rajouté
    Code:
    var myComp = app.project.activeItem;
    en ligne 3 et ça marche.:bravo:
     
  7. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    :D oui en effet je me souviens maintenant avoir suprimé au dernier moment une ligne de code en éditant mon message en pensant qu'il s agissait d'un résidu d'un autre code, mais non :lol: (je la rajoute dans mon poste précédent)

    je vais ecrire la "mise en place" du script ce soir au demain et tu me diras pour les modifs et améliorations (j ouvrirai une nouvelle discussion pour ne pas "horsurjetter" le RotoTool)
     
  8. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    Un autre script pour les masques serait très utile. Quand on utilise des masques Rotobézier : pourvoir recopier les différentes tensions des sommets d'une image clé sur toutes les images clés.
     
  9. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    quand tu parles de "tensions des sommets" tu parles des vecteurs tangentes ?
    si c est ca, cela ne devrait pas etre trop compliqué : on copie les infos de la clé sélectionnée (pas les sommets, uniquement les tangentes In&Out) et on les colle dans toutes les clés existantes

    pour le script précédent masques/expression, c'est pas tout à fait terminé, j'ai pour le moment un ptit bug qui me rend fou :lol:

    j ai un autre script aussi sur les masques...et les expressions, mais j en reparlerai un peu plus tard pour pas tout mélanger :rolleyes:
     
  10. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 261
    Appréciations:
    +2 / 13 / -0
    L'avantage des masques de type RotoBézier c'est justement qu'il n'y a pas de tangentes mais une tension entre 0 et 100% définie pour chaque sommet.

    Pour créer deux masques interne/externe d'après un premier masque on peut aussi utiliser un effet Trait, de l'Epaisseur voulu, et appliquer un Tracé automatique.
     
  11. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    avec un masque rotobézier tu as des tangentes ... mais elles sont calculées automatiquement

    et sinon je connaissais pas pour les "tensions", on les ajustes avec l outil "conversion de sommet" qu on fait glisser sur un sommet..et on visualise la valeur dans la palette infos (je viens de mater dans l'aide..merci ;) )

    j ai rien vu a ce sujet dans le scripting guide, à mon avis c'est pas possible :o
     
  12. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    Je viens de regarder pour ces "tensions", je crois y voir plus clair
    Quand un masque est en mode Rotobezier, la valeur des tangentes sur chacun des sommets est calculée automatiquement (par interpolation de type "bézier" on va dire).
    Quand un masque n'est pas en mode Rotobezier, la valeur des tangentes sur chacun des sommets est nulle.

    L'outil de "Conversion des sommets" permet pour un sommet séléctionné, soit d 'attribuer automatiquement des tangentes, soit de les rendre nulle.

    Régler la "tension" sur un sommet, c'est permettre (selon un pourcentage) d'obtenir des tangentes "intermediaires" : à 100% de tension le point sera comme "non rotobezier", à 0% le point sera "rotobezier".

    En conclusion, ce que tu demandes (copier/coller la valeur des tensions sur toutes les clés), revient a ce que je disais un peu plus haut, a savoir recopier la valeur des tangentes....et peu importe comment ont été obtenues ces valeurs de tangentes, nous on souhaite juste les memoriser puis les coller.

    Ca a du sens ce que je raconte ou moyen :D

    Ce soir je ferai qqes tests, je vais vite être fixé
     
  13. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    copypasteTensions.jsx

    mes minitests semblent etre plutot concluants

    - lance le script
    - sélectionne l'image clé de Forme dont tu souhaites copier les tensions sur toutes les autres clés
    - clique sur "coller"

    copypasteTensions.jsx

    ps: par contre tu ne m as pas expliqué à quoi cela pourrait servir concrètement, dans quel cas tu utiliserais un tel outil....un ptit exemple quoi :D
     
Chargement...
Discussions similaires - Script outil rotoscoping
  1. geoay
    Réponses:
    1
    Nb. vues:
    576
  2. Lionel.75
    Réponses:
    0
    Nb. vues:
    396
  3. PatD
    Réponses:
    4
    Nb. vues:
    732
  4. La petite Framboise
    Réponses:
    21
    Nb. vues:
    1 540
  5. PatD
    Réponses:
    0
    Nb. vues:
    730

Partager cette page