module inscription newsletter haut de page forum mobile

Rejeter la notice

logo repaire

100 licences d'essai Edius X valables jusqu'au 30 Juin gratuites pour les Repairenautes !

Passe moi le cubi

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

Tags:
  1. nab17connection

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

    non je ne vais pas parler de rosé, bien que ce soit la période :D ,
    mais plutot proposer une méthode pour distribuer les calques dans l 'espace sous forme de cube.
    La "procédure" est similaire à celle qu'on a déja évoquée dans un autre post sur la répartition des calques en forme sphérique.
    A savoir :
    _on crée un Nul (3D)
    _on crée un calque-solide de taille carrée (3D)
    _on met une expression sur la Position
    _on met une expression sur l'Orientation
    _on parente le calque au Nul
    _on duplique le calque le nombre de fois nécessaire pour que le cube soit totalement formé.
    _on fait joujou en animant le Nul avec des clés (position, orientation )

    La seule information à preciser est le nombre de colonnes (ou lignes c'est le même puisqu'il s'agit d'un cube) pour une face.
    Par exemple, si vous souhaitez un cube dont chaque face serait composée de 16 calques, alors votre nombre de colonnes serait de 4 (4*4=16).

    Je sais que beaucoup de repairenautes ne sont pas très familiers avec les expressions, alors j'ai fait des petites vidéos qui illustreront (dans la limite de mes moyens bien sur :) ) le fonctionnement de l'expression et qui donnera peut etre plus envie de s'y lancer, plutot que si je ne mets que du texte ;) .

    J'ai mis des commentaires dans le code, entre les "// ". Ca parait barbare de prime abord, mais c'est un peu toujours la meme chose (les faces d'un cube etant identiques). L'idée est simple, on va construire le cube face par face. On part d'un point d'une face, et hop on remplit toute la face, ensuite on prend un point sur une face adjacente, donc on change là l'orientation aussi, et hop et on remplit toute la face, etc..jusqu'à avoir rempli les 6 faces. Quand je dis "hop", ca veut dire que l'expression va positionner le calque sur une case voisine (en dupliquant), et lorsqu'on arrive en bout de ligne ( i.e. le nombre de colonnes que vous avez choisi pour votre cube) , le calque suivant en commence une nouvelle, etc..

    D'abord la position :
    Code:
    cols=4; // nb de colonnes, à modifier selon besoin //
    face=cols*cols; // nb de calques sur une face //
    w=width; // largeur du calque  //
    
    // les point origine de chaque face //
    origin1=[w/2,w/2,0]; origin2=[w*cols,w/2,w/2]; origin3=[w*cols-w/2,w/2,w*cols];
    origin4=[0,w/2,w*cols-w/2]; origin5=[w/2,w*cols,w/2]; origin6=[w/2,0,w/2];
    
    // suivant l'index du calque on connait sa face d'appartenance //
    // il y a 6 faces à construire, chacune à partir de son point origine //
    if( index/face <= 1 ) {
    pos=origin1+[((index-1)%cols ) *w ,Math.floor( (index-1)/cols ) *w,0];
    }
    else {
      if ( index/face <= 2) {
        pos=origin2+[0,Math.floor( (index-1-face)/cols ) * w,((index-1)%cols ) *w] ;
      }
      else {
        if( index/face <= 3 ) {
          pos=origin3+[-((index-1)%cols ) *w, Math.floor( (index-1-2*face)/cols ) *w,0] ;
          }
        else {
          if( index/face <= 4  ) {
            pos=origin4+[0, Math.floor( (index-1-3*face)/cols ) *w,-((index-1)%cols ) *w];
          }
          else {
            if( index/(cols*cols) <= 5   ) {
              pos=origin5+[((index-1)%cols ) *w,0, Math.floor( (index-1-4*face)/cols ) *w];
            } 
            else {
              pos=origin6+[Math.floor( (index-1-5*face)/cols ) *w,0,((index-1)%cols ) *w ];
             }
          }
        }
      }
    }
    pos
    Puis l' Orientation :
    Code:
    cols=4; // nb de colonnes
    face=cols*cols; // nb de calques sur une face
    
    // chaque face a la même orientation que sa face opposée //
    // il y a donc trois orientations différentes à préciser //
    
    if( index/face <= 1 || (index/face > 2 && (index/face <= 3 ))  ) {
    rot=[0,0,0];
    }
    if(  (index/face > 1 && index/face <= 2 ) || (index/face > 3 && index/face <= 4 ) ) {
    rot=[0,90,0];
    }
    if( index/face > 4   ) {
    rot=[90,0,0];
    }
    rot
    
    
    Une fois ces expressions appliquées sur le solide (pour mettre une expression, selectionner la proprieté concernée et faites Animation>Ajouter l'expression), on va le dupliquer.
    Combien de fois ? c est simple votre nombre total de solide doit être votre "nombre de colonnes au carré multiplié par 6" ( 6*cols*cols) pour former un cube complet. Apres libre à vous de vous arrêter avant dans la duplication et de construire un cube partiel ...Vos calques doivent être au sommet de la pile de calques (i.e. pas d'autres calques au dessus des solides).
    Ensuite commencer par augmenter (en positif) la Position en Z du Nul, afin de faire reculer le cube et de pouvoir le visualiser en entier à l'écran. Apres, faites varier son Orientation en Y par exemple et observez votre cube ;)...

    Comme souvent avec les expressions (ou avec AE en général), il existe plusieurs facons pour arriver au même résultat, cette méthode en est une parmi d'autres.

    Une premiere vidéo exemple (note: il y a aussi du son dans les 3 vidéos) où j'ai appliqué ces expressions sur des calques videos. On a le cube de videos (j ai ajoute un 2e cube dans l anim, construit de la meme facon, c'etait pour tester un autre truc...)
    cube de videos (3M)

    Pour la deuxième vidéo, j'ai rajouté une expression sur l'Opacité, de telle sorte que l'anim montre comment le cube est construit.
    cube construction (3M)

    Enfin pour la troisième vidéo, je joue aussi avec l Opacite, en la reliant avec le son.
    cube transparent audio (1M)

    Dans mes exemples, j'ai créé un cube de 3 ou 4 colonnes, mais il ne tient qu'à vous de créer des "giant cube" :)
    Voila pour le cubi :) , si vous avez des questions, ne vous génez pas pour les poser ici c'est fait pour ca.

    Je suis loin d'etre un expert alors n'hesitez pas non plus à me reprendre, me corriger si j'ai commis des erreurs ... je fais cela pour m'amuser :cool:

    a+, nab

    ps:j'ai crée un cube possédant 864 calques, mais là j ai pas d exemple animé car ma petite machine n'a pas suivi .:D.
    ps2: on lance le concours du plus gros cube ? :D
     
    #1 nab17connection, 22 Août 2005
    Dernière édition: 18 Novembre 2005
  2. Bob Sagett

    Bob Sagett Guest

    Appréciations:
    +0 / 0 / -0
    merci c'est vraiment tres interessant et ca touche au 2 choses que je gere reellement le moins danes AEX

    Expression et 3D

    :D
    merci
     
  3. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    De rien Bob ;)

    J'ajoute que tout le monde peut faire le test et rapidement, en suivant simplement la procédure décrite.
    Il n'y a besoin d'aucune connaissance particulière pour réaliser la manoeuvre.

    Je ne l'avais pas précisé mais la méthode fonctionne aussi avec une composition (à la place du solide). Donc vous pouvez faire une animation sur une compo séparée (à la taille d'une "case" de votre cube final), et appliquer ensuite la meme procédure que celle décrite avec un solide.

    Un exemple rapide utilisant une comp au lieu du solide :
    créer une comp ( de la taille d'une case du cube), avec un calque texte , écrire "A" (votre lettre doit remplir tout l'écran de la comp)et mettez un random ( "random(25.9) ") sur le décalage des caractères ( petit triangle Animer>Décalage de caractères ).
    créer une nouvelle comp, mettez-y la compo avec le texte(activer mode 3D), créer votre Nul (3D), parenter, comme on l'a vu...
    activer le Remappage Temporel de votre calque compo_texte, et y mettre une expression prenant en compte l'index du calque (du style:" timeRemap+index/50 "), (ici on a un décalage d'une seconde entre le premier calque et le 50e, etc..). On fait cela pour éviter d'avoir toutes les même lettres sur le cube.
    dupliquer le calque compo_texte autant de fois que vous voulez, regarder ce qui se construit ...(penser a regler la position Nul pour voir le cube en entier).
    Je ne mets qu'une image fixe mais vous n'aurez pas de mal à imaginer l'effet que cela fait lorsque les lettres défilent alétoirement sur le cube.

    [​IMG]

    A vous d'habiller et d'animer votre cube comme vous le sentez, have fun :)
     
    #3 nab17connection, 22 Août 2005
    Dernière édition: 22 Août 2005
  4. Bob Sagett

    Bob Sagett Guest

    Appréciations:
    +0 / 0 / -0
    mmmhh
    c'est bizarre
    pour un cube a 1 colone par face,il te fait les 6 faces,mais pour un cube a 4 colonnes par face,il ne m'en fait que 5!
    comment se fait ce?
    je vais me pencher sur l'expression mais c'est bizarre
    parceque sur tes videos tu as bien toute les faces!
    peut etre ca depend si c'est paire ou impaire...jai la flemme de regarder ce soir
    en tout cas la variante d'affichage progressif et aussi l'opacité qui varie sur le son ca me fait kiffer loool
    et les videos...
    enfin voila je kif lol!
     
  5. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    oui , tu as tout à fait raison Bob,

    j'avais pas copié-collé la bonne version en postant mon message, alors je donne la bonne ce coup-ci.
    en fait il n'y a que tres peu de modifications, mais pour vous simplifier le copié-collé je remets l expression en entier. Uniquement celle sur la position car celle pour l'Orientation reste inchangée.

    a coller dans le parametre Position :
    Code:
    cols=4; // nb de colonnes, à modifier selon besoin //
    face=cols*cols; // nb de calques sur une face //
    w=width; // largeur du calque  //
    
    // les point origine de chaque face //
    origin1=[w/2,w/2,0]; origin2=[w*cols,w/2,w/2]; origin3=[w*cols-w/2,w/2,w*cols];
    origin4=[0,w/2,w*cols-w/2]; origin5=[w/2,w*cols,w/2]; origin6=[w/2,0,w/2];
    
    // suivant l'index du calque on connait sa face d'appartenance //
    // il y a 6 faces à construire, chacune à partir de son point origine //
    if( index/face <= 1 ) {
    pos=origin1+[((index-1)%cols ) *w ,Math.floor( (index-1)/cols ) *w,0];
    }
    else {
      if ( index/face <= 2) {
        pos=origin2+[0,Math.floor( (index-1-face)/cols ) * w,((index-1)%cols ) *w] ;
      }
      else {
        if( index/face <= 3 ) {
          pos=origin3+[-((index-1)%cols ) *w, Math.floor( (index-1-2*face)/cols ) *w,0] ;
          }
        else {
          if( index/face <= 4  ) {
            pos=origin4+[0, Math.floor( (index-1-3*face)/cols ) *w,-((index-1)%cols ) *w];
          }
          else {
            if( index/(cols*cols) <= 5   ) {
              pos=origin5+[((index-1)%cols ) *w,0, Math.floor( (index-1-4*face)/cols ) *w];
            } 
            else {
              pos=origin6+[Math.floor( (index-1-5*face)/cols ) *w,0,((index-1)%cols ) *w ];
             }
          }
        }
      }
    }
    pos
    Là je viens de refaire le test et y'a pas de probleme ... :)

    et pour mettre une petite anim sur tout ca, c'est par là (1.9M)

    a+ :cool:
     
  6. Bob Sagett

    Bob Sagett Guest

    Appréciations:
    +0 / 0 / -0
    ok merci ca marche nikel maintenant :D
     
  7. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    alors c'est cool :D

    je viens d'en faire un où j'ai balancé un peu la patate :) sur mon cubi...

    cubi_korn(3.5M)
     
  8. Bob Sagett

    Bob Sagett Guest

    Appréciations:
    +0 / 0 / -0
    Comment fait tu pour faire un affichage progressif de tes cube,et la maniere dont tu fait varier l'opacité sur le son dans tes exemples du debut?
    pour ajouter une vide tu remplace chacun des solides par une composition de la meme taille qu'un solide ou tu as mis une video?
     
  9. ummo

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    135
    Appréciations:
    +0 / 0 / -0
    Superbe Nab, en plus je vois qu'on écoute du métal, c'est bon ça.

    Je vais répondre sur le thread ou tu m'as filé le plan pour le bargraph. J'ai pu me débrouiller et j'ai fini mon générique, que je mettrais en ligne.

    Voila et bonne continuation;)
     
  10. nab17connection

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

    Bob, pour un affichage progressif, un exemple concret:
    imaginons que tu veuillles faire apparaitre tes calques avec un décalage de 3 images entre chaque apparition, tu peux par exemple, mettre des keyframes sur ton premier calque, on le notera Calque1 (style: de 0 à 2i, opacité a 0%, et à 3i opacité à 100%), tu le dupliques (Calque2) et tu lui mets dans sa propriété d'opacité :
    Code:
    decalage=0.12;  // temps de 3 images
    thisComp.layer("Calque1").opacity.valueAtTime(time-decalage*(index-1))
    Tu dupliques ensuite ton calque2 autant de fois que nécessaire.
    Dans ton animation, un nouveau calque s'afffichera toutes les 3 frames (durée du décalage)

    Mais de facon plus générale, si tu comprends comment marchent les expressions (il y a assez peu de choses à savoir tout compte fait), tu as mille facons de faire mille choses :D, après ca dépend de ton imagination et de ta créativité ...
    Vois les expressions comme une suite d'instructions que tu donnes au logiciel, et lui se chargera d'executer le travail. Avec une 20aine de mots de syntaxe, tu peux "quasiment" tout faire :)

    Pour faire varier en fonction du son, c'est pareil. Une fois que tu as converti ton audio en clés, tu es freestyle pour relier ca à l'opacité. Mais il y a une infiinité d'expressions pour le faire. Tu peux faire quelque chose de linéaire (plus c'est fort, plus c 'est opaque), tu peux choisir un certain comportement pour une face, un autre pour sa face opposée, mettre de l'aléatoire,ou encore, comme tu peux accéder à chaque calque par son index, agir sur chacun d'entre eux indépendanmment ( un exemple au hasard, "si l'index de mon calque est pair et que l'audio dépasse une certaine limite alors je veux que l'opacité de ce calque soit à 100%.. ). C'est la force des expressions.

    Tu peux également mettre des effets sur ton calque de base, relier ces effets à ce tu veux par des expressions (niveaux audio, index du calque...)

    Tu peux également ...:D

    Pour mettre des vidéos à la place d'un solide, ben tu appliques les expressions sur le calque video ! Je n'ai ptet pas bien compris ta question ( ta video doit être de taille carrée, comme lorsque tu fais la manip avec un solide, seul impératif).
    Si tu as d'autres questions, n'hésites pas à les poser...et puis cela servira sans doute à d'autres, aujourd'hui, demain ou dans 6 mois. J'ai appris beaucoup dans les archives du repaire.


    Ummo, je te remercie pour tes encouragements et j'attends avec impatience ton générique maritime au parfum vendéen ;).

    Et pour ne pas venir les mains vides, je poste un autre exemple de cubi... tout en musique pechue :D

    cubi_baby (3.2M)
    [​IMG]



    Note : un script "Cubi.jsx" est disponible sur ce post cubi_script, il vous permet de construire le cube de votre choix en un seul click....donc plus besoin d'appliquer les expressions et de dupliquer, ...le script fait tout ca pour vous. ;)
     
    #10 nab17connection, 3 Septembre 2005
    Dernière édition: 4 Septembre 2005
  11. Bob Sagett

    Bob Sagett Guest

    Appréciations:
    +0 / 0 / -0
    il faudra que je me penche sur les expression,mais je m'etais dis que je m'y mettrai qu'une fois tout le logiciel bien assimilé :D
    ca a pas l'air compliqué,puis ya juste quelques imbriquations etc....on dirai du java lol,mais bon.....on verra quand je rentrerai de vacances :D
     
  12. nab17connection

    Points Repaire:
    1 900
    Recos reçues:
    1
    Messages:
    1 051
    Appréciations:
    +0 / 0 / -0
    Quand tu seras plus experimenté avec les expressions, tu regretteras de ne pas avoir commencé plus tot :), car tu vas envoyer du grain-grain après Bobby, attention ;) ...

    Je crois que beaucoup sont dans ton cas. A mon avis c est l' aspect "mathématique-programmation" qui rebute et effraie.

    J'hésite à faire un ptit site web, style "tout ce que vous avez toujours voulu savoir sur les expressions et que vous n'avez jamais osé demander". Avec des explications et des exemples en images. Histoire de synthétiser un peu les informations (en francais bien sur) et de donner un coup de main à ceux qui ont envie de démarrer mais qui ne savent par où commencer (et pour ceux qui taquinent un peu plus aussi ;) )

    Le jeu sur les expressions est très fourni en expressions mais est peut etre un peu déroutant pour quelqu'un qui ne sait pas vraiment ce qu'est une expression, car cela n'est pas structuré.

    Si cela interresse quelques personnes, j'essaierai de faire quelquechose dans ce sens. Faites le moi savoir donc ;)
     
  13. nikolo

    Points Repaire:
    1 000
    Recos reçues:
    0
    Messages:
    362
    Appréciations:
    +0 / 0 / -0
    Moi ta proposition de site m'interresse.

    J'ai en bookmark certains sites anglais d'explication sur lesexpressions mais faute de temps j'ai pas encore eu le temps de m'y plonger.

    Le tiens en français me permettrait une fois imprimé de les lire dans le metro en allant au boulot.

    Cela sera plus facile au début de comprendre le mecanisme en francais qu'en anglais.
     
  14. nab17connection

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

    bon cela fait une personne d'interessée pour le moment, à partir de deux, je m'y mets quand j'ai un peu de temps libre :)
     
  15. Gild

    Modérateur So

    Points Repaire:
    11 930
    Recos reçues:
    58
    Messages:
    7 758
    Appréciations:
    +8 / 25 / -0
    Je me suis arrêté ici grâce au titre:bravo:

    Malheureusement je suis à peine débutant en AE, mais si vous arrange je veux bien être le deuxième intéressé:D

    GiLd
     
Chargement...

Partager cette page

Vous souhaitez annoncer sur le Repaire ? Contactez-nous