PDA

Voir la version complète : Résolu Thinking Particles pour illustrer un concept de "réseau"



Spasm One
08/07/2012, 18h57
Pour illustrer un concept de "réseau" j'ai essayé d'utiliser Thinking Particles. Je suis parti d'un exemple de la médiathèque de C4D dans lequel les particules créent des plantes, je trouvait ça intéressant pour l'idée d'arborescence.
Le problème principale que je rencontre c'est que je voudrais que les particules ne meurent pas, et restent apparentes à la fin de leur trajet comme sur le schéma A, mais actuellement elle se divisent et disparaissent (Schéma B), et si je ne les fais pas mourir elles restent visibles mais continuent sur leur lancée.

http://img15.hostingpics.net/pics/413201schema.gif

Est-ce que vous auriez une idée ? Peut-être que Thinking Particles n'est pas une bonne idée pour ce genre de chose...
Merci de votre aide.

Un test :

https://vimeo.com/45395406
http://img15.hostingpics.net/pics/509170Capture.png

et mon projet C4D :
http://www.spasmdesign.com/test particles-03.c4d.zip (http://www.spasmdesign.com/test%20particles-03.c4d.zip)

Sir Gong
08/07/2012, 19h27
Il y a peut-être une piste à creuser avec Mograph, du côté des Mospline en mode turtle.
(je ne peux pas être 100% affirmatif, parce que j'explore Mograph depuis très peu, et que je ne maîtrise pas vraiment :icon_redface: )

Spasm One
08/07/2012, 21h36
oui en effet merci ! mais ça soulève d'autres problèmes : l'animation de la construction de l'arborescence avec MoSpline ne se fait pas par "strates", et j'arrive bien à mettre mes pyramides aux connections des segments mais elles sont multiplié par le nombres des segments...
bref c'est pas gagné :icon_wink:

http://img15.hostingpics.net/pics/404817test2.jpg

Kaldera Lake
08/07/2012, 23h49
Je pense qu'il y a une solution via TP:

Il faut créer 3 groupes:
-Groupe 1 : les particules qui devrons un jour exploser
-Groupe 2 : les particules immobiles
-Groupe 3 : les particules qui vont exploser tout de suite!
-Groupe 4 : les particules issues de l'explosion

Ensuite l'idée est la suivante:

Les particules sont crées dans le groupe 1.
A une image d'exploser (condition selon ton bon vouloir), elles se divisent en 2:
- l'une va dans le groupe 2
- l'autre dans le 3
(la séparation devrait se faire via un test à la naissance du type : si "numéro de particule" est paire alors dans groupe 2 sinon dans groupe 3)

Les particules du groupe 2 ont la propriété d'être immobile.
Les particules du groupe 3 explosent tout de suite après leur naissance! et vont dans le groupe 4 où elle pourront ensuite regagner le groupe 1 pour exploser à leur tour sous condition.

Je pense que cela devrait marcher, a voir, je n'ai "que" la visualize sur mon ordi, pas de TP donc, mais je sais un peu m'en servir :p

valkaari
09/07/2012, 00h40
il y a des chances que tu ai mal placé ton objet dans tes règles.
un exemple qui vas créer 4 branches et mettre un object à chaque bout avant de recommencer.

A=[+FFIA]T[-FFIA]T[&FFIA]T[^FFIA]

edit : bien sur, étant donné que les objets sont rajoutés avant la division des branches, il faut s'arrêter à une croissance de X.99 et pas le chiffre rond suivant. (sinon ça divise, et ça remet des clones pour les branches suivantes)

Spasm One
09/07/2012, 07h34
merci de vos réponses. Je teste tout ça aujourd'hui.

Spasm One
09/07/2012, 15h54
bon c'est bien ce que je pensais vos solutions dépassent mes compétences.

@valkaari : ta solution concerne bien l'idée de partir sur la solution MoSpline en mode tortue ?
Quand je remplace les règles par défaut qui sont :
A=!"[B]///[B]///[B]///B
B=&FTFTFTA
par ton exemple, ça plante complètement mon C4D...
Inutile de te dire qu'en faisant ce genre de modifications je ne sais absolument pas ce que je fais...

@Kaldera Lake : théoriquement je comprends ton idée, mais concrètement je bloque totalement.
Dans mon test j'utilise un TP Standard Emitter qui crée 3 particules, ensuite j'utilise des TP Spawning Emitters qui à la fin des premières particules créent une nouvelle émission de particules, et ainsi de suite. J'ai essayé d'ajouter un TP Spawning qui émettrait des particules immobiles mais ça ne fonctionne pas...


Je continue de chercher...

Aurety
09/07/2012, 17h11
Je suis un peu pris par le taf mais j'essaierais ce soir de te faire un petit setup TP, soit direct TP soit plus facile en passant par X-particles. Ca m'intéresse ce genre de défi !:icon_bave:

Spasm One
09/07/2012, 17h55
cool merci j'ai hâte ! :icon_bouncy::P

Spasm One
10/07/2012, 16h00
youhou j'ai presque réussi !

http://img15.hostingpics.net/pics/343348xpressoparticules.jpg

Bon ce tuto m'a bien aidé à comprendre Thinking Particles :
https://vimeo.com/21882236

Maintenant il me reste encore à régler :
- mes particules fixes ont une direction inversée à celles des autres !??
- chaque nouvelle émetteur a toujours le même axe, visuellement ce n'est pas très chouette, il faudrait que leur axe soit dans la continuité de la trajectoire de la particule émettrice. Et alors ça je ne vois vraiment pas comment faire...
- pour voir les trajectoires des particules j'utilise un traceur, est-on obligé d'utiliser uniquement une propriété style d'esquisse pour les visualiser ?, on ne peut pas utiliser de textures standard ?

merci de votre aide.

voici mon Xpresso si ça intéresse des gens :
http://img15.hostingpics.net/pics/934386xpresso.png

Aurety
10/07/2012, 16h01
ouaip mais mon client ne me lâche pas d'une semelle, d'autant qu'il sait que je me barre à la fin du mois :icon_grin:
Que ça ne t'empêche pas de chercher car je ne suis pas sur de pouvoir te faire ça tout de suite, tout de suite :icon_cry:

Edit : ahh ! cool ! que tu ais réussi.

Un traceur reste une spline alors unr extrusion controlée nurbs et zou, le matériau que tu veux dessus.

valkaari
10/07/2012, 23h17
Tu devrais pouvoir jouer sur l'orientation de ton emmeteur en jouant avec son alignement qui demande une matrice.
Dans xpresso, tu as sur la gauche deux onglet, dont un qui se nomme X-Pool. Dedans tu as system Presets->matrix-> Generate Matrix.
Ce noeud demande une position et une rotation pour générer une matrice. Du coup tu peux connecter la matrice généré au port alignement de ton emmeteur.

Sinon avec le L-system, c'est assez facile aussi de faire ça. Par contre, il y a un "bug" quand on génère des branches de manière aléatoire. Il devient impossible ou presque de rendre une frame précise dans le viewver. Par exemple la frame 49. Il faut à chaque fois rendre toutes les frames. (ce qui est trop contraignant si on doit rendre une moitié d'anim)

Par contre, il n'y a pas de raison que ça fasse planter ton c4d. Les commandes sont dans l'aide je n'ai rien inventé ^^

Je mets quand même le fichier au cas où.
5236

Spasm One
11/07/2012, 19h05
merci valkaari, je vais regarder ça :icon_wink:

Kaldera Lake
11/07/2012, 21h44
Ca ressemble un peu a ce que j'avais en tête.
Dans ce système tu crées un triplet de groupe de particule par division. Il me semble qu'il est possible de faire tout cela en un cou avec un test logique :

A la place du bloc pAge, qui je pense, vérifie que l'age vaut une certaine valeur, tu peux mettre un petit groupe de bloc regroupé dans un "GroupeX" qui vérifie que l'age est un multiple de l'age que tu a mis, pour ce faire, tu peux utiliser en série

* un "prélevé les données" pour récupérer l'age des particules
* un bloc "Math:Addition" à convertir en "Math:modulo" en passant la deuxième entrée à le période que tu souhaite
* et un bloc "Comparé" dont la deuxième entré est a zéro.

La sortie de ce groupe est un booléen qui vaut vrai(1) si l'age des particules est un multiple de la période.

Tu ne devrait donc plus avoir besoin d'un groupe fixe (au lieu des fixe1, fixe2, ...)

et tu devrait pouvoir remplacer tout les groupe2, groupe3, ... par des groupe1.

Sauvegarde bien au cas où je dise une bêtise :p
en espérant avoir été clair... je n'ai toujours que la version Visualize, sans TP, pas de fichier démo dsl :'(

Spasm One
11/07/2012, 22h31
merci Kaldera Lake, je vais essayer de comprendre tes explications :icon_wink:

sinon

Tu devrais pouvoir jouer sur l'orientation de ton emmeteur en jouant avec son alignement qui demande une matrice.
Dans xpresso, tu as sur la gauche deux onglet, dont un qui se nomme X-Pool. Dedans tu as system Presets->matrix-> Generate Matrix.
Ce noeud demande une position et une rotation pour générer une matrice. Du coup tu peux connecter la matrice généré au port alignement de ton emmeteur.

Alors le problème c'est que mon Prélever les données n'a pas de sortie Rotation, je ne peux donc pas le connecter au Generate Matrix. En revanche il a bien une sortie alignement, mais quand je le connecte en direct à mon émetteur ça ne fonctionne pas dans la scène.

http://img4.hostingpics.net/pics/335411Capture20120711.jpg

Kaldera Lake
11/07/2012, 22h43
J'ai un doute... Tu n'a pas besoin de créer les particules du groupe fixe, il te suffit de passer la particule dans le groupe fixe, tu conserves donc les paramètres.

valkaari
11/07/2012, 22h53
Tu devrais utiliser un Porage également pour les particules fixes. Là, tu ne vas récupérer que la position de la dernière particules du groupe 1.

Sinon pour généré la matrice de rotation, je pensais plus à récupérer la normal d'une collision ce qui n'a rien à voir avec ton problème xD

Spasm One
11/07/2012, 23h34
Pour l'instant ce que je ne comprends pas c'est ce problème d'alignement. J'ai l'impression que les toutes premières particules émises héritent de l'alignement de leur émetteur (axe Z) et non pas de l'alignement de leur trajectoire.

Spasm One
06/08/2012, 18h20
Re-salut à tous,

voici l'application et le résultat final de mes "recherches". Il s'agît d'un très court générique pour une émission web.
N'hésitez pas à me faire part de vos commentaires et critiques, il y'a sûrement plein de choses à améliorer.

Et merci à tous pour votre aide.


https://vimeo.com/47023606