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 pour effet crayon

Discussion dans 'Adobe After Effects' créé par nab17connection, 24 Août 2005.

Tags:
  1. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    Script pour effet crayon + Script cube

    salut :) ,

    je regarde ce que c'est que le scripting depuis ce week-end, et je n'ai rien trouvé sur le Repaire :(.
    Ce sujet a-t-il déja été abordé ?

    Il n'y a que tres peu d'infos sur le web (motionscript.com en gros), mais avec les exemples fournis avec AE ( C:\Program Files\Adobe\After Effects 6.5\Support Files\Scripts ..), on peut arriver a voir comment ca marche (+ou- :lol: ).

    J'ai donc ecrit mon premier script, que j'ai appelé Effet Crayon puisqu'il simule un aspect "dessin fait au crayon de papier".
    Effet pas super original mais fallait bien que je commence par quelque chose et je n allais pas refaire un truc déja proposé (du style créer un carré qui tourne de 360° :D ).

    J'espere qu'il n'y a pas d'anglophes sur le forum ( ou pas trop :) ), car un probleme d'accent aigu dans le code, m' a contraint à l'ecrire en anglais. Il faudra donc lancer la version anglaise pour que cela fonctionne (si vous ne savez pas faire, regarder FAQ )

    Comment utiliser un script ?
    faites un copié-collé du code ci-dessous dans un éditeur de texte (style Notepad), et enregister le sous le nom "EffetCrayon.jsx" ( faire attention a bien avoir l'extension .jsx) dans le répertoire de votre choix (l'important est de savoir le retrouver ;) ).
    Voila vous avez fait la plus grande partie du travail.

    Comment utiliser Ce script ?
    rien de plus simple, ouvrez une nouvelle comp, glissez-y ce que vous avez choisi de "crayonner", sélectionner le, et faites "File<<Run Script<<Choose File" et aller chercher le fichier EffetCrayon.jsx.
    regarder ce qui s'est passé ...

    Ce script agit sur un calque ( video ou photo par exemple). Il se peut que vous ayez à modifier une valeur (de pas beaucoup) pour que l'effet soit plus réaliste, cela depend du contenu de votre calque, je l'ai indiqué dans le code ("you can modify this value...").

    J'ai mis une fonction Undo qui vous permettra de revenir en arriere apres avoir visualiser l effet (Crtl Z ) et donc d'annuler le script; il y a des commentaires dans le code (dans ma lancée je les ai ecrits en anglais sorry :rolleyes: ).

    Code:
    //
    // EffetCrayon.jsx
    //
    
    {
    
      var proj = app.project;
      var undoStr = "Effet Crayon";
    
      if (proj){
         var okayToDuplicate = true;
         var activeItem = app.project.activeItem;
         // one layer must be selected, otherwise it throws alert message
         if (activeItem == null ){
    	okayToDuplicate = false;
         }
         else {
           if (activeItem.selectedLayers.length != 1) {
              okayToDuplicate = false;
           }
         }
    
         if (okayToDuplicate) {
             var activeComp = activeItem;
             var layerOriginal = activeComp.selectedLayers[0];
             app.beginUndoGroup(undoStr);
             var desaturate = layerOriginal.Effects.addProperty("Hue/Saturation");
             //desaturate original layer //
    	 desaturate.property(4).setValue(-100);
             //duplicate the layer //
             var layerCopie = layerOriginal.duplicate();
             // effects : invert, gaussian blur //
             var invert= layerCopie.Effects.addProperty("Invert");
             var gaussianblur= layerCopie.Effects.addProperty("Gaussian Blur");
             gaussianblur.property(1).setValue(5);// you can modify this value,
             // I recommend a value beetween 3 and 7
             // blendmode : color dodge //
             layerCopie.blendingMode = BlendingMode.COLOR_DODGE;
             app.endUndoGroup();
         }
         else {
              alert("Select unique layer in your comp to run this script.");
         }
      }
      else {
           alert("Open a project first to use this script.");
      }
    }
    


    J'espre que quelques uns s'y interesseront également ( pas spécialement à mon code , ni à mon effet crayon ;) ), mais au scripts en général, qu'on puisse ouvrir une discussion là dessus, j'avoue avoir pas mal de questions ( qui s'en sert et à quelles fins, est ce reservé à l automatisation de taches, à la gestion de rendus via emails, ou son champ d application est beaucoup plus large,...,script versus expressions, quelles sont les limites du script ... )
    Je précise que je ne connais rien au Javascript , mais je suis juste curieux :) et j'aime bien apprendre.

    a+, nab

    test du script "Effet Crayon" sur une video

    [​IMG]
     
    #1 nab17connection, 24 Août 2005
    Dernière édition: 5 Septembre 2005
  2. nikolo

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    362
    Appréciations:
    +0 / 0 / -0
    PAs mal ton script.

    L'effet final est pas mal.

    je suis assez nul en script ou expression mais avec ton post et celui des jeux sur les expressions j'essaye d'apprendre quand j'ai 5mn pour m'y plonger.
     
  3. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 260
    Appréciations:
    +2 / 13 / -0
    script

    Je crois qu'il va falloir un peu plus de 5mnts:D

    Une discussion sur les scripts avait commencée mais sans beaucoup de succès.

    http://www.repaire.net/forums/showthread.php?s=&threadid=79526

    Et je n'ai toujours pas avancé. Sur cette question
    Ce qui permettrait de faire un script pour relier des points de tracking aux points d'un masque par exemple.
     
  4. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    ou alors 5 minutes tous les quart d'heures :lol:

    Qu'est ce que tu souhaiterais faire Sequelles, j'ai pas très bien saisi.
    Je n'ai jamais utilisé le controle de suivi, je connais pas bien...
    C'est un truc du genre, tu places des points reperes, et qd l'espace délimité par ces points se déplace, des donnees de position sont generees et peuvent être utilisées sur un autre solide de la comp ..?

    et oui je pense qu'on peut atteindre n'importe quelles valeurs, à partir du moment où elles ont été déclarées et stockées dans un tableau par exemple

    j'avais pris un ptit "vent" ;) avec ce post, donc j ai mis le scripting un peu de coté, mais maintenant que je sais que cela t interesse, je regarderai a nouveau ..."qu est ce que c'est, qu est ce qui se passe " :D
     
  5. Sequelles

    Sequelles Modérateur
    Modérateur So

    Points Repaire:
    11 780
    Recos reçues:
    20
    Messages:
    4 260
    Appréciations:
    +2 / 13 / -0
    J'ai vu que les script permettaient de créer des masques avec des valeurs pour chaque point. Le suivi demouvement crée des pistes avec des images clés de position pour suivre une cible dans l'image.
     
  6. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    ok je vois mieux

    je pense que c'est à tout fait réalisable...c'est a dire d'ecrire un script qui agit sur un calque en allant chercher les données relatives aux points de pistes, et qu'il transforme cela en coordonnees des points d'un masque..ouais ca me semble jouable ;), apres faut mettre les mains dans le cambouis... :D

    je suis de mon coté en train d'écrire un script pour mon projet "cubi" (le convertir a partir des expressions..), et j'ai bientot fini :) ....c'est pres de 300 lignes de codes, avec boite de dialogue pour choisir les parametres importants du cube (taille, couleur), creation solide, duplication, ajout des parametres glissieres, ajout des expressions, creation du nul, parentage....bref ca fait du boulot mais c'est pour bientot

    qd j ai fini, je regarde pour le tracking :cool:
     
  7. jonz

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    352
    Appréciations:
    +0 / 0 / -0
    Merci pour ton script, ca a l'air chouette.. seulement voila...

    J'ai une version francaise d'after et la correspondance des effets ne se fait pas. Evidemment il faut traduire chacuns des noms. C'est ce que j'ai commencé a faire.

    Mais je me suis vite rendu compte que l'execution du script bloquais sur certains caracteres. Type "é" ou "espace" avec "Négatif" par exemple, pire pour "Flou gaussien" il me dit qu'il faut mettre des crochets..
    "Teinte/Saturation" marche cependant fort bien... Je deviens fou. :)
     
  8. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    salut jonz,

    oui j'ai eu exactement le meme probleme, ce qui m'a contraint à le faire en anglais.... et je suis également d'accord avec toi, c'est tres énervant parfois ce scripting :D
    de plus aucune ressource en francais, donc aucune info sur les noms de certains trucs
    bref le scripting quand tu démarres, c'est laché au beau milieu de la piscine, et dans le gand bassin directement :D
    et je te dis pas...quand tu souhaites dans ton script ajouter une expression a une propriete, il faut mettre des guillements et des antislash partout, antislash devant chaque symboles (, [, {...bref, c est illisible

    je m'accroche :lol:
     
  9. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    yes j'ai réussi à retranscrire mon projet cubi, sous forme de script :)

    j'ai encore des ptits soucis avec la "boite de dialogue" qui sera proposée à l'utilisateur mais ca devrait se régler sous peu.

    je mettrais la source du script à disposition des repairenautes quand ce sera nickel.

    j'y retourne :)
     
  10. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    salut :) ,

    j'apporte donc un nouveau script, celui du "cubi".
    Je me suis armé de patience et ca a fini par payer :)

    Quelques explications sur le script en lui meme :
    vous pouvez le récupérer soit en le téléchargeant en cliquant là CubiScript.zip , soit en le copiant-collant sur cette page " le script de visu "

    Comme le précédént, il a été écrit pour la version anglaise et commenté en anglais, la seconde langue officielle du repaire
    (pour toute traduction en francais veuillez contacter Jonz_Translater.com :lol: )

    Ouvrez un projet et une nouvelle comp avant d'excuter le script.

    Lorsque que le script s'exécute, il va vous être demandé de rentrer une valeur correspondant au nombre de colonnes souhaité pour votre cube, comme indiqué sur l'image

    [​IMG]

    ...voila votre cube est automatiquement construit :bravo: , vous pouvez maintenant l'animer à l aide de l'objet nul.

    Au début je comptais mettre au choix de l'utilisateur, la taille du solide et sa couleur, mais c'etait inutile car il est bien plus facile et pratique de modifier ces paramètres en cliquant sur le solide dans la fenetre de projet une fois que le cube est créé et en choississant de nouveaux settings. Tous les autres calques (étant des duplications) subissent les meme modifications (et pis pour le choix des couleurs c'est qd meme plus simple avec la ptite palette de couleurs en visuel plutot qu'avec des chiffres).
    Le cube à la base est blanc (donc ne créez pas une comp avec un fond trop clair sous peine de ne pas voir le cube). Il est construit à partir d'un solide carré de coté 50 pixels, vous pouvez modifier cette valeur dans le code ( cela se situe au milieu du script, le paramètre "width").


    Hope you enjoy it ! ;), nab
     
  11. jonz

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    352
    Appréciations:
    +0 / 0 / -0
    Effet crayon pour la version francaise

    Le script Effet crayon pour la version francaise
    Code:
    //
    // EffetCrayon.jsx
    //
    
    {
    
      var proj = app.project;
      var undoStr = "Effet Crayon";
    
      if (proj){
         var okayToDuplicate = true;
         var activeItem = app.project.activeItem;
         // one layer must be selected, otherwise it throws alert message
         if (activeItem == null ){
    	okayToDuplicate = false;
         }
         else {
           if (activeItem.selectedLayers.length != 1) {
              okayToDuplicate = false;
           }
         }
    
         if (okayToDuplicate) {
             var activeComp = activeItem;
             var layerOriginal = activeComp.selectedLayers[0];
             app.beginUndoGroup(undoStr);
             var desaturate = layerOriginal.Effects.addProperty("Teinte/Saturation");
             //desaturate original layer //
    	 desaturate.property(4).setValue(-100);
             //duplicate the layer //
             var layerCopie = layerOriginal.duplicate();
             // effects : invert, gaussian blur //
             var invert= layerCopie.Effects.addProperty("N\u00E9gatif");
             var gaussianblur= layerCopie.Effects.addProperty("Flou gaussien");
             gaussianblur.property(1).setValue(5);
             // you can modify this value,
             // I recommend a value beetween 3 and 7
             // blendmode : color dodge //
             layerCopie.blendingMode = BlendingMode.COLOR_DODGE;
             app.endUndoGroup();
         }
         else {
              alert("Select unique layer in your comp to run this script.");
         }
      }
      else {
           alert("Open a project first to use this script.");
      }
    }
     
    #11 jonz, 4 Septembre 2005
    Dernière édition: 5 Septembre 2005
  12. jonz

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    352
    Appréciations:
    +0 / 0 / -0
  13. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    eh cool :bravo:, merci à toi Jonz

    deux petites choses :
    chez moi le script "EffetCrayon_fr " ne fonctionne pas, probleme avec l'effet Négatif. Mais ca marche si on remplace ce que tu as mis par :
    Code:
    var invert= layerCopie.Effects.addProperty("N[B]\[/B]u00E9gatif");
    avec un antislash devant, comme tu as fait pour le "è" de Paramètre Glissière" (i.e. \00E8).

    la deuxieme: pour le cubi, c'est marrant parceque tu n'as pas traduit, le "Slider Control" pour l'objet nul, mais il est qd meme reconnu dans les expressions, qui elles utilisent "Paramètre Glissière"...et ca marche bien

    merci ;)
     
  14. jonz

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    352
    Appréciations:
    +0 / 0 / -0
    C'est la baliste PHP qui masque l'antislash... le code est bon maintenant.

    pour info, on peu trouver les correspondances ici:
    http://www.physci.org/codes/charset.jsp?frame=1

    Du coup ca m'a permis de tester le cube. C'est interessant, dommage que ca soit si destructuré quand on met des clés sur le parametre glissiere.

    En tout cas, ton script efface les petites larmes qui perlent quand on tente d'en faire un a la main ;)
     
  15. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    ok merci pour le lien

    Pour le cubi, c'est normal que ce soit destructuré si tu modifies la valeur du paramètre glissière, car toute la construction du cube est basée sur cette valeur. A chaque valeur de ce paramètre correspond une configuration pour le cube, avec un nombre fixe de carrés (6*cols*cols), donc si ce paramètre change, la structure de cube est perdue puisqu'il y a alors soit trop de calques, soit pas assez, pour la créer.

    Qu'aimerais tu avoir en animant un paramètre de controle...que cela produise quel effet ? on peut refaire un script ;)
     
Chargement...

Partager cette page