PDA

Voir la version complète : 3 problèmes : Instances Xpresso et thinking particle



guiguip
25/10/2009, 17h50
Bonjour à tous;
J'ai trois choses que je voudrais faire depuis longtemps, mais je ne sais pas comment :

1-Creer dans expresso une valeur aléatoire constante. j'entend par là que j'ai 150 objets en instances, et que j'aimerais leur donner à chacun un nombre différent (ce sont des splines de texte par exemple). Mais je veux que ce chiffre ne change pas, ou mieux, que je puisse après les faire changer, mais de manière contrôlée (additionner à une autre valeur par exemple)
Ca reviendrait à afficher ces 150 chiffres, tous différents, et par exemple à partir de l'image 10, chaque valeur va se mettre à gagner 1 par image.
Pour courronner le tout, j'aimerais que tout ceci soit controlé par une expression et non une expression par objet.

2-Deuxieme probleme : encore une fois, j'ai plein d'instances d'objets qui sont des petits personnages. ils ont pour l'instant tous les memes pistes d'animation. mais pour eviter ce coté "trop parfait", j'aimerais decaller un peu dans le temps les pistes temporelles de chacun pour donner un aspect plus naturel au mouvements de mon regiment.
Pour courronner le tout, encore une fois, j'aimerais que tout ceci soit controlé par une expression et non une expression par objet.

3-Troisieme probleme :
Sous thinking particles, j'aimerais que les particules d'un meme groupe consrvent une certaine distance les unes entre les autres. pour eviter que les formes geometriques rentrent en colision.Comme une force de repulsions des perticules les unes entre les autres.

Si vous avez des idées sur un de ces trois sujets, ce serait très gentil.
Merci

guiguip
29/10/2009, 05h21
S'il vous plait.
au moins un des trois points?
un petit coup de pouce.

oli_d
29/10/2009, 06h38
Salut,

Pour ton pb n°1 je n'xpresse pas je coffeese.

Un début de réponse en coffee (à coller dans un tag coffee sur l'objet parent contenant tes objets texte):


main(doc,op)
{
var obj = op->GetDown(); //on prend le premier sous objet
if(!obj)return;//si pas de ss-objet on quitte


var rdm=new(Random);//nouvel objet random
rdm->Init(1234546);//initialisation du random

while(obj)//boucle pour parcourir les ss-objets
{
if(!instanceof(obj,SplineTextObject))break;//si ce n'est pas une spline texte on saute
var nb = rdm->Get01()*1000;//obtention d'un nombre aléatoire
var txt = tostring(nb,".0f");//conversion en texte
obj#PRIM_TEXT_TEXT=txt;//attribution du texte
obj=obj->GetNext();//objet suivant
}
}

Pour l'instant le code alloue un nombre aléatoire entre 0 et 1000 aux objets texte en enfant, si tu veux de 0 à 150 remplace le 1000 par 150 (var nb = rdm->Get01()*150). Le random s'initialise selon le chiffre entre parenthèse (rdm->Init(1234546)) si les valeurs ne te plaisent pas change ce nombre ou si tu veux un truc qui change contiunuellement remplace le nombre par la fonction "time()". Pour le reste je regarderai plus tard si j'ai le temps...

pour le pb n°2 : je sais que c'est possible avec des particules, mais avec les instances ??? mais je serai également curieux de savoir si c'est possible

3 : regarde peut-être du côté des noeuds TP "P Répulsion & rebond"

Bon courage ...

actarus
29/10/2009, 15h52
Salut
Avec un noeud PRepulse and Bounce, tu peux faire en sorte que 2 groupes distincts s'attirent ou se repoussent, par contre appliquer ce noeud à un seul groupe, il me semble pas que ce soit possible.

http://img8.hostingpics.net/thumbs/mini_688026Image_1.png (http://www.hostingpics.net/viewer.php?id=688026Image_1.png)