PDA

Voir la version complète : WIP Dynamics...



Ariel
11/10/2002, 11h53
J'hésitait entre envoyer ce post dans la section plugins ou ici, mais comme il s'agit d'un travail en cours et que le forum est dépourvu de section 'Dynamics' - ce qui manque, à mon humble avis - j'ai opté pour la section wip...

http://ariel-showcase.ifrance.com/ariel-showcase/_images/bolide.jpg

Bon, c'est vrai, il est pas génial mon bolide, mais ce n'est pas ici l'aspect que j'ai développé;

http://ariel-showcase.ifrance.com/ariel-showcase/_images/details.jpg

Le projet, en fait, en est un sur l'utilisation des Dynamics... J'ai tenté de configurer mon bolide de façon à ce qu'il soit pourvu d'une suspension indépendante aux trois roues, et d'une
traction intégrale...

Voici le résultat de mes premiers tests
http://arielshowcase.150m.com/sim_test.htm

Pour l'anim, il n'y a aucun keyframe... Seulement une config dynamics !
Bien entendu, ce n'est pas encore tout à fait au point...

Quelques observations/questions :

- Il s'avère que les tag 'contrainte' de type 'joint' ne fonctionne pas... Enfin, ils fonctionnent, mais pas de façon pratique, c'est comme si le joint était élastique, et ce même avec des paramètres d'intégration maximums... Quelqu'un a une idée du pourquoi ?


- Serait-il possible de créer un plugin qui permettrait d'animer le tag 'contrainte - moteur' des Dynamics ? Je ne suis pas programmateur (ou programmeur ? enfin...), alors je n'ai aucune idée de la faisabilité de la chose. Cela permettrait, par exemple, de faire accélerer/déccélerer mon bolide, et même de le faire tourner !

- Y a t'il un moyen d'animer une 'helix' de façon à ce qu'elle se redimensionne en fonction de la distance d'un objet, afin de créer des ressorts ?

teg
11/10/2002, 12h13
L'anim s'annonce bien, mais tes images n'apparaissent pas...

Pour les ressorts, dans les exemples sur le CD de dynamics, il y a un bonhomme accroché au plafond avec des ressorts, tu dois pouvoir recuperer l'expression...

Ariel
11/10/2002, 12h16
Pourtant, quand j'ai prévisualisé le message, elles y était...
Enfin, elles sont là:
http://ariel-showcase.ifrance.com/ariel-showcase/_images/images.htm

teg
11/10/2002, 12h28
Et ben non plus, j'atteris sur une page avec l'emplacement des images, mais elles n'y sont pas, t'as un probleme de liens...

Renaud
11/10/2002, 13h56
Moi je vois tout très bien... pas de problème.
Je trouve ça bien sympatoche, mais je peux pas t'aider, j'ai pas dynamix :cry:

gizmo
11/10/2002, 14h11
hey cool,c'est chouette, moi personnelement , je comprends rien.
J'ai essayé d'animer une boucle d'oreille avec le mouvement de la tête, jamais réussis :(

tabou
11/10/2002, 16h38
- Il s'avère que les tag 'contrainte' de type 'joint' ne fonctionne pas... Enfin, ils fonctionnent, mais pas de façon pratique, c'est comme si le joint était élastique, et ce même avec des paramètres d'intégration maximums... Quelqu'un a une idée du pourquoi ?Je ne vois pas d'où ça peut venir, il faut bidouiller les réglages du joint, si tu veux tu peux m'envoyer par mail le fichier, je trouverai un peu de temps ce week-end pour voir ce que je peux faire

- Serait-il possible de créer un plugin qui permettrait d'animer le tag 'contrainte - moteur' des Dynamics ? Je ne suis pas programmateur (ou programmeur ? enfin...), alors je n'ai aucune idée de la faisabilité de la chose. Cela permettrait, par exemple, de faire accélerer/déccélerer mon bolide, et même de le faire tourner !Je ne sais pas si c'est possible de faire ça.

- Y a t'il un moyen d'animer une 'helix' de façon à ce qu'elle se redimensionne en fonction de la distance d'un objet, afin de créer des ressorts ?Il y a un plug payant qui fait ça : Helix de Mikael Sterner (http://www.xlentplugs.com/) sinon il faut écrire une expression ou peut être en adaptant Elastic Spline de Tengaal (http://tengaal.art.chez.tiscali.fr/Menu.htm)

Tengaal
11/10/2002, 17h27
- Serait-il possible de créer un plugin qui permettrait d'animer le tag 'contrainte - moteur' des Dynamics ? Je ne suis pas programmateur (ou programmeur ? enfin...), alors je n'ai aucune idée de la faisabilité de la chose. Cela permettrait, par exemple, de faire accélerer/déccélerer mon bolide, et même de le faire tourner !

- Y a t'il un moyen d'animer une 'helix' de façon à ce qu'elle se redimensionne en fonction de la distance d'un objet, afin de créer des ressorts ?

Pour la première question, je ne pense pas qu'il soit possible de manipuler les objets d'un plugin (Dynamics) à partir d'un autre plugin. Un plugin peut seulement travailler sur les objets et les outils propres à C4D.

Sinon pour faire un amortisseur c'est très simple regarde cette scène d'exemple (http://tengaal.art.chez.tiscali.fr/fc4d/coffee/amortisseur.htm).
L'objet est fixé en 2 points et la distance entre ces 2 points provoque l'allongement du ressort. Il suffit donc de placer ces 2 objets de fixation dans les objets mobiles du véhicule et de laisser faire !
Pour utiliser plusieurs amortisseur de mon exemple, il faut que les noms des points d'attaches soient différents, puis faire ces changements de nom dans les tags cibles.

tabou
11/10/2002, 20h16
Ah Tengaal, avec toi tout devient tellement simple :D

Tengaal
11/10/2002, 20h37
Ah Tengaal, avec toi tout devient tellement simple :D
Je prend ça comme un énorme compliment... :oops:
Merci Tabou.

teg
11/10/2002, 23h18
Classe, Tengaal...

Bon, ben moi j'ai quand meme été peché les expression que je disais, dans la scene tutarial "Rigid body springs 2" des Dynamics...

Alors, sur l'objet chemin d'extrusion, il y a l'expression :


GetPointNum(doc,objectname,objectpnt)
{
var dest = doc->FindObject(objectname);
if (!instanceof(dest,PointObject)) return;
var p = dest->GetPoint(objectpnt);
var mg = dest->GetMg();
p = mg->GetMulP(p);
return p;
}


GetPosition(doc,objectname)
{
var dest = doc->FindObject(objectname);
var p = vector(0,0,0);
var mg = dest->GetMg();
p = mg->GetMulP(p);
return p;
}

GetPositionObj(doc,dest)
{
var p = vector(0,0,0);
var mg = dest->GetMg();
p = mg->GetMulP(p);
return p;
}

SetPointNum(op,objectpnt,p)
{
var mg = op->GetMg();
mg->Invert();
p = mg->GetMulP(p);
op->SetPoint(objectpnt,p);
op->Message(MSG_UPDATE);
}

main(doc,op)
{
var p1 = GetPosition(doc,"spring_targetright");
var p2 = GetPositionObj(doc,op);
var m = op->GetUpMg();

m->Invert();

p1 = m->GetMulP(p1);
p2 = m->GetMulP(p2);

var w = VectorToHPB(p1-p2);
op->SetRotation(w);
}


et sur l'objet Helix :


main(doc,op)
{
//This changes length of spring
//get object id of spring_pivot and spring_target
var o1=doc->FindObject("SpringRight"); if (!o1) return FALSE;
var o2=doc->FindObject("spring_targetright"); if (!o2) return FALSE;
//get matrixs of them to get global position
var m1=o1->GetMg();
var m2=o2->GetMg();
//get global position of them
var p1=m1->GetV0();
var p2=m2->GetV0();
//get distance between them
var d=vlen(p1-p2);
//get container in spring
var sp=op->GetContainer();
//get height from the container
sp->SetData(PRIM_HELIX_HEIGHT,-d);
//set the height to the distance
op->SetContainer(sp);
//send redraw message to the spring
op->Message(MSG_UPDATE);
}


Voila, c'est totu ce que j'avais a dire :-P

Ariel
12/10/2002, 00h12
Merci à vous tous ! je n'en attendais pas tant...

Je continue mon projet, faut que je repense la suspension avant, ça fonctionne pas comme je voudrais. Et, qui sait, je vais peut-être me payer une direction, avec ça !

Je vais aussi peaufiner le modèle, c'est bien beau les test, mais faut en venir à quelque chose.
ps - il est vraiment génial, ce forum :D :wink:

teg
12/10/2002, 00h21
C'est ce qu'on se repete inlassablement tous les jours : il est genial se forum! ;-)

Il aide chacun de nous, quelque soit le niveau... N'oublies pas toi aussi de donner tes avis, critiques, sur totu ce qui se dit et ce montre ici, ok?