PDA

Voir la version complète : Random rotation par incrément de 90° ?



shtl
17/11/2009, 08h52
Hello.
Est-ce que quelqu'un connait un moyen, une méthode, pour appliquer une rotation "randomisé" par incréments de 90° à une multitude d'objets? Idéalement sous Mograph (pas réussi perso), sinon d'une autre manière?

Merci par avance :prie:

Sir Gong
17/11/2009, 09h29
Mode de randomisation sur "trié" et en mettant un multiple de 90 dans les paramètres de rotation on arrive à quelque chose, mais c'est du big pifomètre pour moi.
Je suis sûr que c'est faisable. :mrgreen:

shtl
17/11/2009, 09h35
Euh, merci Gong. Sympa tes icones dockées années 90, mais il me manque l'Object Manager Ohh Sir!
T'as fais quoi, t'as créé dans ton cloner plusieurs objets que tu as tourné à 90 ?
N'y arrive pas moi :cry2:

:calim:

OK j'ai réussi à reproduire ton bidule. Mais ça marche apparement pas si je veux une rotation sur un seul axe :calim:

Sir Gong
17/11/2009, 09h41
Les transformations de rotation sont sur le random effector.
Mais bon, c'est juste une piste, j'y connais que dalle, hein.

shtl
17/11/2009, 09h49
Yup merci, j'ai édité mon message, et en plus depuis, j'ai réussi!!!! :bounce:

Yahooo merci oooohh messir gong, faux modeste, tu défourailles du mogaph :prie:


EDIT:
znort non, ça marche avec une grille de 3x3 et une rotation de 360; 720 etc...
J'ai essayé avec une grille de 6x6 et là ça marche plus :coup:


EDIT2:
Il doit y avoir un savant calcul mathématique à éffectuer:
Avec une grille de 6x6, il faut impérativement un multiple ≥ 3150° (mais c'est pas au centième de degré pret en plus)

Grillons mes derniers neurones: 3x3=9 incrément de rotation =360°

6x6=36 incréments de rotation. Et là j'ai plus de neurone, car je trouve pas la logique.
Quelqu'un d'intelligent dans l'assemblé? :mrgreen:



EDIT3:
Autre essai: grille de 20, facteur de 3420°

Bon en tout cas la méthode marche, reste lus qu'à la comprendre.

Merci Sir Gong :love:

valkaari
17/11/2009, 15h48
essayes de mettre ce code dans un effecteur coffee (r11.5) en le mettant en mode complet avant. (pour être dans la bonne fenêtre de code)
c'est pas super super (surtout avec un cube :oops:)

mais ça pourrait t'aider. Le code est hyper simple (normal il vient de l'effecteur à peine modifié par moi :cry2:)


main(doc,op)
{
var md = GeGetMoData(op);
if (!md) return false;
var cnt = md->GetCount();
var marr = md->GetArray(MODATA_MATRIX);
var fall = md->GetFalloffs();
var i = 0;

var SauvPos;
var RandomRot;
var Randomize = new (Random);
// on définit un seed pour le random
Randomize->Init(434675);

for (i = cnt - 1; i >= 0; --i)
{
//sauvegarde de la position actuelle du clone
SauvPos = marr[i]->GetV0();
// un chiffre random entre 0 et 1 * 4;
// on injecte les rotations dans l'ordre HPB

RandomRot = floor(Randomize->Get01()*4);
RandomRot *= PI/2;
marr[i]->SetRotY(RandomRot);

RandomRot = floor(Randomize->Get01()*4);
RandomRot *= PI/2;
marr[i]->SetRotX(RandomRot);

RandomRot = floor(Randomize->Get01()*4);
RandomRot *= PI/2;
marr[i]->SetRotZ(RandomRot);
// on remet la position du clone avant le changement de rotation
marr[i]->SetV0(SauvPos);

}
md->SetArray(MODATA_MATRIX, marr, true);
return true;
}


www.valkaari.com/cinema/mographcoffee.zip (http://www.valkaari.com/cinema/mographcoffee.zip)

shtl
17/11/2009, 16h45
Tiens je reçois plus de notifications par mail ? :(

Merci Vaalkari, je file essayer ça! :poucehaut:

Jean-Laurent
17/11/2009, 18h27
znort non, ça marche avec une grille de 3x3 et une rotation de 360; 720 etc...
J'ai essayé avec une grille de 6x6 et là ça marche plus :coup:


EDIT2:
Il doit y avoir un savant calcul mathématique à éffectuer:
Avec une grille de 6x6, il faut impérativement un multiple ≥ 3150° (mais c'est pas au centième de degré pret en plus)

Grillons mes derniers neurones: 3x3=9 incrément de rotation =360°

6x6=36 incréments de rotation. Et là j'ai plus de neurone, car je trouve pas la logique.
Quelqu'un d'intelligent dans l'assemblé? :mrgreen:



EDIT3:
Autre essai: grille de 20, facteur de 3420°

Bon en tout cas la méthode marche, reste lus qu'à la comprendre.



Je n'ai pas mograph et je ne comprends rien à ce que vous faites.
Je ne sais donc pas ce que c'est que "la grille" ni à quoi correspondent vos angles mais ça a l'air marrant votre truc.

En décomposant en facteurs premiers:
360= 5*32*23 pour la 3*3
3150= 2*7*52*32 pour la 6*6
3420 =19*5*32*22 pour la 20*20

On constate donc que ce sont tous des multiples de 90° ce qui est visiblement voulu mais également des multiples de la taille de la grille.
Mais pas de la taille au carré.

Pour la grille 6*6 ça ne marche pas à partir de 540 ?
Je vais jeter un coup d'oeil à la doc de mograph si je trouve ça. :wip:

Edit: En cherchant j'ai trouvé ça:
http://forums.cgsociety.org/showthread.php?t=811812

shtl
17/11/2009, 22h44
...

Edit: En cherchant j'ai trouvé ça:
http://forums.cgsociety.org/showthread.php?t=811812


Ah génial, merci beaucoup Jean-Laurent :bounce:

valkaari
18/11/2009, 00h21
'tain quel con de pas avoir pensé au shader effector, en plus c'est dans la doc avec en texture un noise et un colorize ....


pour me racheter : pour bouger un parent sans les enfants il faut appuyer sur contrôle ....

:calim: moi je l'ai appris y a pas longtemps

ethylen
18/11/2009, 07h39
pour me racheter : pour bouger un parent sans les enfants il faut appuyer sur contrôle ....


:poucehaut:
super, je connaissais pas non plus.
T'es pardonne :wink: