module inscription newsletter haut de page forum mobile

Dismiss 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
Dismiss 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
Dismiss 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

2 scripts:diviser une image en lignes/colonnes

Discussion in 'Adobe After Effects' started by nab17connection, Sep 26, 2005.

Tags:
  1. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut :)

    je vous propose deux scripts :

    le premier, "dupliLignes.jsx", permet a partir d un calque (photo/video..), d obtenir la meme image mais repartie sur un ensemble de calques. le script va dupliquer plusieurs fois le calque d origine et le désactiver (invisible).
    chaque nouveau calque est ensuite masqué de telle sorte qu'une seule ligne de l image d'origine n'est visible (le script vous demandera la taille que vous souhaitez pour la hauteur de la ligne).
    les calques representent chacun une ligne differente, le tout formant l image de base.

    le deuxieme, "dupliColonnes.jsx", fait la meme chose mais la forme des masques est maintenant une colonne. Chaque colonne ( la largeur vous sera demandée) se trouve un calque different.


    dans les deux scripts on vous demandera également la valeur du decalage. cette valeur correspond au décalage du point d entrée des nouveaux calques. si vous voulez que tous les calques commencent au meme instant, alors mettez un decalage de 0.
    Par defaut le decalage proposé est "-40" ms (millisecondes), ce qui correspond a la duree d une seule image. Par defaut donc, chaque nouveau calque va apparaitre avec un decalage dans le temps de 1 image (sur une comp a 25i/secondes).

    on peut utiliser successivement les deux scripts pour diviser notre image en lignes et en colonnes , donc obtenir des petits carrés ou rectangles...

    bon un peu de pratique. je viens de faire trois quatre rendus pour tester les scripts, je vous les soumets pour que vous ayez une idee...avant d essayer par vous meme.

    pour commencer une image fixe montrant la separation de l image originale en plusieurs lignes

    [​IMG]

    et maintenant les 4 rendus que je viens juste de faire:

    lines_columns_1 (1.3M)
    lines_columns_2 (1.5M)
    lines_columns_3 (1.9M)
    lines_columns_4 (1.7M)


    ah oui, l adresse des scripts, c est par la :
    --dupliLignes.jsx-- et la --dupliColonnes.jsx--

    ps: une fois que les parties de l image sont dissociees, on peut les animer rapidement..avec des expressions par exemple (et un peu d audio si on veut :) )
     
  2. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    merci pour les scripts

    j'ai un projet ou je doit partir d'une image constituée d'une mosaique d'écrans animés. Une onde se propage qui entraine la rotation de chaque écran et recompose l'image finale. Je vais m'inspirer de tes scripts.


    jemitey
     
  3. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut,
    content de voir que tu t'interesses au scripting :)

    je ne vois pas trop ce que tu souhaites faire, mais j'avais ecrit a cette epoque un script qui combinait les deux, lignes et colonnes, et donc qui te permettait de diviser directement ton image en carrés ou rectangles, ceci te sera peut etre utile ...

    le script va te demander le nb de lignes et le nb de colonnes qui vont diviser ton image, ainsi que le decalage du point d entree (mettre "0" pour les avoir tous superposes..)

    le script se trouve là :
    dupliCarres.jsx
     
  4. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    transmission de pens�es

    c'est exactement ce que j'�tais en train de faire: division en carr�!Encore merci pour le script. Je d�marre dans l'utilisation des scripts pour after mais je pense que �a va m'aider. L'id�e de base s'inspire des comp�tions de dominos o� on d�couvre un e image progressivement. Je sais faire basculer une image par une autre en utilsant deux calques supperpos�s en 3D et en jouant sur la rotation et l'opacit�; c'est le mouvement de base que je voudrais appliquer � l'image entiere par carr� de Xpixels. Je voudrais pour cel cr�er un mouvement de vague qui partirai de l'angle sup�rieur gauche e qui ferai basculer les carr�s.
    je ne sais pas si c'est plus clair.....

    Bye
     
  5. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    non je vois pas trop ...

    tu n as pas une image a envoyer qui illustrerait un peu le truc ?

    ps: tes caracteres sont bizarres
     
  6. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    scripting a suivre

    Bonsoir

    Les drôles de caractères sont apparus après une relecture , étrange.
    Plutot que des explications pas claire je te donne le lien pour une animation de principe. Il faut imaginer qu'il y a un métrage coté face et un autre coté pile pour chaque carreau. Le script me permet de diviser la fenetre en X sur Y pour chaqu'un des deux métrages initiaux. En jouant sur l'opacité de l'un et de l'autre en fonction de la rotation je crée deux faces pour chaque carreau.
    A l'aide de ton script que j'ai modifié il m'a suffit de régler le principe avec deux calques et ensuite de les multiplier. Mon pb maintenant est d'assurer une continuité d'image et de l'automatiser. Par exemple le premier carreau commence à tourner à l'instant 0 il s'affiche à l'écran mais le deuxieme carreau ne s'affiche pas car le couple de calques qui lui correspondent commencent à l'instant 1sec. Il me faut creer une image fixe pour le second carreau entre 0 et 1 sec etc etc. Pour chaque carreau je doit définir un calque qui occupe le temps vide entre 0 et l'e démarrage de la rotation et qui contient le bout d'image correspondant. Alors là c'est la prise de tête avec les methode et attribut pour supprimer des clés, en ajouter avec la caractéristique "hold" .Je ne comprend pas comment on définit la durée d'un calque. Le document "scripting guide" manque d'exemple et j'avoue que j'ai du mal avec la logique du jscript. Y a peut être plus simple.......
    J'ai fait un saut sur le repaire des expressions. C'est clair net et concis. Par contre comment écrit-on une expression avec le scripting ? J'ai essayé sans succes.

    la nuit porte conseil

    jemitey
    http://jemit.3dvf.net/CompDomino.mov
     
  7. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    ah ok :)

    bon alors cela ne devrait pas etre très compliqué ...

    une fois que tu as tes differentes cases, il faut leur appliquer une expression pour qu elles pivotent toutes de la meme maniere mais décalées dans le temps

    essaie ta ptite cuisine et si tu coinces, je te donnerai plus de details ;)

    ps: si tu souhaites ajouter une expression sur une propriete en passant par le scripting, c 'est du style :
    Code:
    // ajoute une expression sur la position
    mySolid.position.expression = "wiggle\(2,100\)";
    on mets des antislash devant les caracteres speciaux (, [, ...
     
  8. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    J'voudrais pas abuser ....

    Bonjour,

    J'ai aussi un probleme de syntaxe avec la rotation. Comment indique-t-on si on fait tourner X, Y ou Z ? J'ai essayer à partir d'une expression ".rotationY" mais ça ne marche pas.

    à partir de l'exemple:

    "scriptapp.project.item(index).layer(index).property(name).setValue(newValue)"

    comment l'écrire si on est en 3D ?

    Bye et bonne journée

    JM
     
  9. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut,

    si tu souhaites via le scripting mettre une expression sur la rotation en Y, c est bien "rotationY" qu il faut utiliser

    tu auras par exemple (en supposant que tu as defini "myLayer" comme le calque sur lequel tu veux appliquer l expression) :
    Code:
    myLayer.rotationY.expression = "......";
    si tu souhaites mettre un point clé sur la rotation en Y , tu auras ( dans cet exemple a t= 0s, valeur de 180° ):
    Code:
    // ajoute un point cle sur la rotationY 
    var myRotationY = myLayer.property("rotationY");
    myRotationY.setValueAtTime(0,180);
    si tu veux simplement lui attribuer une valeur (qui ne variera pas au cours du temps), tu ecriras:
    Code:
    // attribue une valeur a la rotationY 
    var myRotationY = myLayer.property("rotationY");
    myRotationY.setValue(180);

    J ai ecrit un nouveau script que je trouve pas mal ;)
    Il est un peu bourrain (pres de 400 lignes), mais peut faire des choses sympas meme si j ai pas eu le temps de bcp le tester...

    Tu places l image qui doit s afficher au depart ( le "recto") et l image qui sera affichee a la fin (le "verso")...dans une comp.
    Tu lances le script, il te demande de rentrer tes parametres (nb lignes/colonnes, duree de rotation des cases, decalage entre entre deux rotations de cases adjacentes, et tu peux egalement avoir une separation entre les cases si tu le souhaites, comme une bordure ...)
    Cela va te créer automatiquement l animation suivante:
    une case du "recto" commence a pivoter en haut a gauche, puis les cases voisines avec un decalage dans le temps.
    A chaque fois que l image a pivote suffisammnent, cette image disparait (opacite a 0) alors que l image du "verso" fait son apparition (opacite a 100), et ainsi de suite pour l ensemble des petites cases qui composent l image entiere...

    voila un un rendu qui m'a servi à tester le script:
    rotation_recto_verso.mov

    si c'est un truc du genre je te filerai le script dans la journée :cool:
     
  10. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    halte au feu !!! c'est super

    ben j'sais pas quoi dire je suis scotché
    sauf que je veuuuuuuuuuuux ce script c'est ce que j'essaie de faire laborieusement depuis ce WE. En fait mon projet comprend deux parties: dans la premiere les video arrivent de toute part pour constituer un mur d'images animees et dans la deuxieme c'est la sequence que tu connais ou la photo apparait (entre nous tres joli le sourire sur la photo de la démo). Peux-tu me donner des pistes. Je vais travailler en caques 3D avec des trajectoires. Comment peut-on creer des trajectoires aleatoires avec un point de depart et d'arrivee definis.
    C'est tres sympa ton aide merci



    Jemitey
     
  11. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut,

    voila le lien pour recuperer la bête :) : rotation_recto-verso.jsx

    pour le faire fonctionner, tu dois deposer sur ta comp les deux calques et les renommer "recto" pour celui du dessus et "verso" pour celui d en dessous...( recto=celui de depart et verso=celui d arrivee).
    ensuite tu lances le script et tu choisis tes parametres...

    pour ton autre question, au sujet des trajectoires, tu peux faire ca avec des expressions, il faut que tu regardes du coté des methodes aleatoires ( wiggle et random ).

    un ptit commentaire :
    je dirais que le scripting a un interet surtout si tu est amene a devoir reproduire plusieurs fois un meme style d'effet ou une "procedure"....(ou pour faire des choses que seul le scripting te permet de faire...)
    si c est juste pour une animation, un "ptit" truc ponctuel, alors il vaut mieux faire ca a coup d' expressions
    de toutes facons, les deux vont ensemble et ne s opposent pas...il faut maitriser les deux pour etre vraiment a l aise

    comment je procede quand je souhaite ecrire un script ou une expression un peu complexe ?

    etape1: est ce que cela me semble possible a realiser ?
    etape2 (qd c est complique): papier crayon et je commence a gratouiller (schema, pseudo code, gribouillis maison ;) )
    etape3:je me mets a ecrire le script "au propre"
    etape4:phase de debuggage...j'essaie le script et je modifie ce qui ne marche pas dans mon code
    etape5 (vraiment qd j ai le temps et l envie): maintenant que j y suis arrive et que je sais que c est possible, est ce qu'on peut faire mieux avec une autre facon..?
     
    #11 nab17connection, Oct 26, 2005
    Last edited: Oct 26, 2005
  12. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    Bonjour,

    Merci pour le script et les conseils: ça me facilite le travail mais aussi cela me permet d'apprendre plus vite avec des exemples sur lesquels j'ai déjà réfléchi.

    L'intéret que je trouve dans le scripting c'est de pouvoir répéter des taches identiques. Créer un tableau de 10x10 soit 100 calques ou 200 avec notre exemple.


    Mais c'est aussi il me semble le moyen de créer une structure prete à l'emploi. Mon projet est de fabriquer un DVD sur un ami. J'ai prévu d'y inclure des videos de tous ces proches. Comme je n'ai pas encore les videos je peux simuler et construire petit à petit toutes les étapes avec des "placeholders".
    Je reste persuadé qu'il existe toujours un plug-in pour faire se que l'on veut mais on ne l'a pas forcément à disposition ni les euros pour se les payer hélas quand on est comme moi un amateur.


    Un autre point: c'est toujours pratique d'apprendre en utilisant un langage de programmation comme le javascript. Ce n'est plus mon job actuel mais dans le temps je "pissais" du code comme on dit. Nostalgie ...

    J'ai une autre question ( c'est sans fin....).Comment gère-t-on la durée des calques avec le scripting. Startime Ok mais après.

    Est-ce par les inpoint et outpoint de l'objet layer ?
    Je ne comprend pas le sens et surtout que l'on puisse mettre des valeurs négatives. Pour une video on peut mettre le métrage en boucle mais apres comment se débrouille-t-on avec le calque ?

    Bonne journée

    Jemitey

    ps : j'ai tellement envie de comprendre ton script que mon rendement va s'en ressentir aujourd'hui. Dommage que je ne puisse pas installer After Effects sur mon pc professionel.
     
  13. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut JM ;)

    j ai tout plein de choses pour toi :D

    d abord une petite remarque au sujet de
    oui tu as raison, mais ca tu peux le faire sans avoir a ecrire de script, simplement en faisant ton anim "à vide" juste avec des solides qui seront remplaces...et de mettre au chaud ce projet en attendant de pouvoir le remplir.
    de toute facon qd tu ecris un script tu as (en general) deja fait la manip à la main avant ... donc :
    soit tu decides de t arreter là et tu sauvegardes le projet "nu" qui te servira plus tard, juste en remplacant les calques,
    soit tu decides que cela en vaut la peine, et tu te lances dans l ecriture du script correspondant.

    Bon a part ca as tu trouvé pour les trajectoires aleatoires avec origine/destination fixes ?
    je te mets un exemple, tu me diras si c est un truc du genre, c est realise avec une expression "basique" (et puisque tu sembles apprecier les jolies dames :)...)
    trajectoire_alea

    Pour ton autre question...startTime,inPoint,outPoint d'un calque
    startTime est l instant correspond au "début" du calque
    inPoint est l instant ou il commence a etre "actif", que tu regles normalement avec la souris en deplacant la ptite poignee grise (a gauche) sur ton calque
    outPoint, est l instant a partir duquel le calque ne sera plus "actif", pareil que tu regles en deplacant la ptite poignee grise (a droite) normalement

    il est autorisé de mettre des valeurs comprises entre -3h et 3h....3h etant la duree max d une composition dans AE
    tu peux mettre des valeurs negatives, cela reviendrait au meme que de faire glisser avec la souris ton calque vers la gauche hors du champ de la comp ...donc si tu as une comp de 3h et que tu la fais glisser au maximum vers la gauche...le inPoint pourra etre de -3h (tu me suis ? ;) )

    Voila un script qui va te permettre de voir comment ca marche concretement , sur un ptit exemple
    test_inPoint_outPoint.jsx
    sur un projet, lance le script et cela va te creer une nouvelle comp, regarde ce qu elle contient ;)
     
  14. jemitey

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    102
    Appréciations:
    +0 / 0 / -0
    Amis du jour bonjour,

    Hélas je n'ai pas pu me connecter plus tôt mon pc est malade il a attrapé un charmant spyware hier soir du type coolwebsearch qui m'empêche pratiquement de surfer en affichant systematiquement des écrans de pub, l'enfer! C'est ma faute. Quand on va trainer dans les bas-fonds on attrape des cochonneries si on ne prend pas de précautions....
    But anyway !!!

    Alors merci pour l'exemple et l'explication simple et claire du In et du Out. Je pense qu'avant de me lancer dans le scripting systématique il faut que je regarde du côté des expressions car à la lumière de tes commentaire je crois que je suis passé à côté de quelque chose...Il me semble qu'il y a un excellent site à ce sujet non ? Tu connais .....? "le repaire des expressions"

    Pour l'effet de déplacement des écrans pourrais-tu me passer le scripts s'il te plait pour que je comprenne comment cela marche ? Pour ce que je voudrais faire j'ai trouvé l'exemple sur le site de "Digital Anarchy" la demo de l'outil "matrix" du plugin 3D assistant. . Les calques restent paralléles à un plan mais ont un déplacement comme une explosion à l'envers. Est-ce qu'il existe des modèles de trajectoires ( formules/expressions) qui permettent de recrées ces mouvements ?

    Dans le script que je n'ai pas encore fini d'analyser je ne comprend pas l'utilité du calque null ? Ne peut-on pas utiliser les glissieres dans un calque normal ?

    En faisant des recherches (pas dans les bas fond ce coup là) j'ai trouvé ce site sur le scripting et les expressions. Il y a un tableau récapitulatif en anglais, qui peut complèter la liste des effets traduits. Tu connais ?

    http://www.redefinery.com


    Bye et bonne journée


    Jemitey
     
  15. nab17connection

    Trophy Points:
    1,900
    Likes Received:
    1
    Messages:
    1,051
    Appréciations:
    +0 / 0 / -0
    salut ;)

    oui ca serait bien que tu te familiarises d'abord avec les expressions

    de toute facon si tu souhaites farie de l animation via le scripting, les expressions vont t'être quasiment indispensables
    si tu souhaites faire des scripts a but plus "administratif", du style recuperer des donnees de texte a partir d un fichier, automatiser une serie de rendus,.. tu n auras pas besoin de savoir ce qu'est une expression.

    les expressions sont des outils (des aides) pour "manipuler des valeurs", elles sont tres utiles pour les animations. Tu les ecris directement dans AE sur une proprieté, ou bien tu les inseres dans un script (comme mon exemple plus haut)


    oui tu peux mettre ton parametre glissiere sur n importe quel calque, sur le calque concerne par l expression si tu veux...mais lorsque tu es amene a avoir 50 calques par exemple, et que tous sont liés à un meme parametre glissiere, il est preferable de n en avoir qu'un seul sur un calque et d y faire reference, plutot que d avoir 50 fois le meme parametre (un sur chacun des calques).
    En general je place mes parametres glissieres sur un calque d effets, mais là comme je ne trouvais pas l instruction pour créer un calque d effets, je l ai mis sur un objet nul, ce qui revient au meme bien entendu.

    Pour la trajectoire aleatoire qui arrive a un point fixé, j ai utilisé une expression wiggle(), qui agit comme un tremblement (dans notre cas sur la position)...checke sur le repaire des expressions pour plus de details. L'idee ici c est de mettre l amplitude du tremblement en tant que parametre glissiere, et de faire decroitre sa valeur (avec des points clés), jusqu a la rendre nulle. Et donc lorsqu elle est nulle, ton objet ne bouge/tremble plus, il te suffit donc de preciser par un point clé la position finale de l objet (les valeurs numeriques que j ai mises c'est un peu du pipo, c'est le prinicpe qu il faut comprendre ;) ).

    [​IMG]

    Pour la video de digital anarchy, je ne l'ai pas trouvée, as tu le lien direct ?

    ps: oui je connais le site redefinery (par contre on y trouve du scripting, mais pas d expressions)
     

Share This Page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous