PDA

Voir la version complète : déplacement automobile



parksto
18/12/2003, 20h53
je viens de terminer (a peu près) un systeme xpresso avec un tout petit peu de coffee pour piloter un déplacement de voiture, avec rotation des roues, deplacement "correct"...

facile à mettre en place, il suffit de créer une spline, et c'est partie...



premiere vidéo (http://fc4d.free.fr/images/parksto_oiture.mov)
seconde vidéo (http://fc4d.free.fr/images/parksto_roues.mov)




vous voyez autre chose ?

SoKoa
18/12/2003, 20h56
:prie: moi je m'incline !! tu t'y est pris comment pour le mouvement gauche droite des roues ?? :poucehaut: :lol:

Fluffy
18/12/2003, 21h31
C'est classe!

Si tu fais une rotation de la caisse, les roues restent axées?

cratum
18/12/2003, 21h56
C'est classe!

Si tu fais une rotation de la caisse, les roues restent axées?

Tout à fait d'accord, tu nous fais partager ta trouvaille, pour l'étudier. :prie:

vesale2
18/12/2003, 21h59
manque plus qu'un peu de suspension pour faire bouger le bas de caisse (bonojur pour regler l'inertie) et la je dis bravo :prie: (deja là :poucehaut: ) :D

teg
18/12/2003, 23h13
La modelisation est fantastique!!! :mrgreen:

Non, sans rire, moi la prog ca me deprime, surtout quand je vois des p'tits trucs comme ca... nickel Parksto! Comme dis Vesale, manque plus que les suspensions...

Floby
18/12/2003, 23h30
'tention teg, c'est Vesale2 (t'inquiètes pas, moi non plus j'ai pas capté tout de suite :mrgreen: )

pareil parksto, moi je suis partant pour essayer de comprendre l'Xpresse, faute de pouvoir l'étudier par moi-même

Aurety
19/12/2003, 09h37
Superbe, si tu pouvais y ajouter un emetteur de particule pour la poussière et c'est parfait, bien sur en plus des suspensions et ah oui... Un petit Teg qui dodeline à l'arrière du véhicule.

teg
19/12/2003, 09h58
Vesale est un peu schizo en fait, il a un Vesale par machine connectée...
:mrgreen:

Je te fourni le nounours sans probleme, si tu veux suivre l'idée d'Aurety ;-)

Bon, plus serieusement, tu compte essayer d'approfondir ou pas? tu compte diffuser ton tag, apres? le transformer en plugin?

parksto
19/12/2003, 09h59
les suspensions, je vais essayer d'y réfléchir, c'est promis :wink:
vous voudriez quoi ? que la voiture se penche dans les virages ?
qu'elle reste collé à la route malgrès les trous et les bosses ?


pour la prog proprement dite, pour l'instant c'est un jeu d'xpresso relativement brouillon, je suis en train de me dire que je vais peut-être le faire completement en coffee, ça sera plus simple à utiliser.

une fois en place, il suffit de déplacer un point qui entraine le déplacement de la voiture, la rotation des roues, latéralement, et vers l'avant.
l'animation deviens un jeu d'enfant.

pour le principe, l'xpresso calcul l'angle entre la dernière position du véhicule et la position actuelle, et applique simplement le même angle aux roues. pour la rotation des roues (quand elle avance), c'est le principe du tutorial de blazouf (merci). pour le déplacement , l'xpresso fait suivre à distance fixe un point qui est l'axe des roues arrières.

parksto
19/12/2003, 10h02
...Je te fourni le nounours sans probleme, si tu veux suivre l'idée d'Aurety ;-)

ça sera plus facile que les amortiseurs. :lol:



Bon, plus serieusement, tu compte essayer d'approfondir ou pas? tu compte diffuser ton tag, apres? le transformer en plugin?

je vais effectivement essayer d'approfondir, si j'en suis capable. :?
et oui, je pense bien le faire tourner, si possible sous la forme de plugin, sinon en xpresso, on vera bien.

parksto
19/12/2003, 19h23
euh...
est-ce que quelqu'un sait s'il possible d'enregistrer une variable d'une frame sur l'autre en coffee ? :o



Tengaal ?

tabou
19/12/2003, 19h30
En COFFEE je ne sais pas, mais avec XPresso tu peux essayer les sorties du type "Postition précédente" ou "Matrice précédente", sinon il y a aussi un noeud "Mémoire" qui permet de stocker des variables.
En tout cas chapeau parksto pour ton expression :poucehaut:

Tengaal
19/12/2003, 19h58
Pour stocker des valeurs, l'idéal est de créer un tag perso (invisible) de type VariableTag qui s'utilise comme un tableau stockant 3 valeurs par index de pointage (idéal par exemple pour stocker les vecteurs x,y,z), le mieux pour comprendre est de jeter un oeil dans la doc COFFEE, dans la partie "Tags" puis "VariableTag".
Par contre il faut bien faire attention à ne créer qu'un seul tag perso invisible, car si le script créé un tag en parmanence, on se retrouve très vite avec des milliers de tags invisibles qui crééent un fichier C4D anormalement lourd (cf. cas d'Aurety il y a quelque temps avec son personnage polygonal...)

parksto
19/12/2003, 20h27
merci merci merci

:D :poucehaut:

virus
19/12/2003, 20h27
si tu peut rajouter un générateur de pneu brulé pour le burnout, que ton expression gère la dérive le ralentissement avant virage et l'accélration en sorti,elle sera parfaite,parce que ya que citroen qui peut se venter d'une des meilleure tenu de route contructeur généraliste.
sinon c'est cool !!

parksto
20/12/2003, 12h21
:cry: :oops:

je ne comprend pas comment récuperer les données du tag.
je connais GetFirstTag(), mais si on veux pas la premiere ?
et il faut vérifier si on est sur le bon variable tag, aussi...

je ne vois pas trop comment faire, je cherche dans la doc, mais elle n'est pas assez claire pour moi :oops:

Floby
20/12/2003, 12h29
y a pas des fonctions comme GetNextTag() ? ou d'autres ou l'on peut pointer avec le nom? je sais pas moi, je ne m'occupe pas encore des tags...

Tengaal
20/12/2003, 12h33
En effet GetFirstTag() donne accèes au premier tag d'un objet (tout à gauche des tags), donc pour accéder aux tags suivants, on fait exactement comme pour les objets d'un même groupe, on utilise GetNext().
donc si tag_1=objet->GetFirstTag();
alors le tag suivant est tag_2=tag_1->GetNext();
pour connaitre le type de tag recherché, il faut à chaque fois examiner son type avec la fonction instanceof(objet_à_contrôler, TYPE), seulement si le tag existe :
var trouve=FALSE;
if (tag_2) //le tag n'est pas NULL
{
// on regarde si le tag est un tag de lissage PhongTag
if (instanceof(tag_2,PhongTag)) trouve=TRUE
}

Plus de détails là dessus : http://www.frenchcinema4d.com/phpBB2/viewtopic.php?p=72314#72314

parksto
22/12/2003, 17h43
ok, ça j'y arrive, sauf que j'ai une erreur là :


var prov = new(VariableTag);
Member not found


j'y arrive avec un PhongTag, mais dès que je passe en variabletag, ça marche plus. :o

et ce, en expression coffee ou en node coffee dans un xpresso.



j'ai une erreur ?

PP
22/12/2003, 19h32
il manque un truc super important : une auto-stoppeuse russe en mini-juppe.

sinon joli travail !

vesale2
22/12/2003, 21h10
il manque un truc super important : une auto-stoppeuse russe en mini-juppe.

sinon joli travail !
pourquoi russe?

SoKoa
22/12/2003, 21h51
pour la fourrure a mon avis .... :lol:

parksto
23/12/2003, 19h55
voila un autre petit truc qui pourrait vous plaire...

c'est pas le système de deplacement automobile, mais un système "souple" sans mocca.
j'ai fait ça en réfléchissant au système d'amortisseur.


le fichier (http://fc4d.free.fr/images/souple.zip)
je précise que c'est pas définitif, non plus.
vous pouvez jouer avec les DU "durete" et "inertie".


mais pour ça j'ai aussi besoin d'enregistrer les variable en xpresso, là, je suis obligé d'utiliser des DU de sauvegarde.
Tengaal ??? :oops:

Tengaal
25/12/2003, 21h18
Oui, me revoilà...

Le stockage de variables peut se faire de 2 manières:
- un tag invisible pour mémoriser beaucoup de valeurs (coordonnées...)
- utiliser le container de l'objet pour stocker un petit nombre de paramètres

Le second cas te concerne d'avantage car tu as très peu de valeurs à stocker (1 vecteur et 2 réels), et le stockage dans le container est très proche des données utilisateurs sauf que leur présence est invisible pour l'utilisateur.
Tout objet est associé à un container (un espace de stockage qui contient notamment les paramètres des objets que l'on retrouve dans les attributs), ces paramètres sont accessible par un identifiant unique qui permet de lire leur valeur à un endroit précis du container, cet ID qui est sous forme d'un nom du genre LIGHT_MAIN_TYPE (paramètre "type" d'un objet "Lumière") est en fait un nombre.
On peut donc y stocker nos propres valeurs persos en utilisant pour cela des ID persos et uniques de manière à savoir exactement à quel endroit du container se trouvent nos données. En général, les ID de C4D commencent au nombre 1000, je conseille d'utiliser des ID persos inférieurs à 1000.

ATTENTION: cette pratique n'est pas officielle et par conséquent non documentée, c'est une astuce de développement réservée aux personnes qui ont une expérience du COFFEE, car de mauvaises manipulations peuvent détruire les données officielles d'un objet paramétrable dans le projet.

Voici un exemple d'écriture de donnée persos sur un objet ---------------------------

const var MON_TEXTE=100; // définition des IDs persos
const var MA_VALEUR=101;

main(doc,op)
{
var container=op->GetContainer();
container->SetData(MON_TEXTE,"Voici mon texte."); //on stocke le texte perso
container->SetData(MA_VALEUR,1234); //on stocke la valeur perso
op->SetContainer(container);
}


Voici comment lire les données persos ---------------------------------------------------

const var MON_TEXTE=100; //définition des IDs persos
const var MA_VALEUR=101;

main(doc,op)
{
var container=op->GetContainer();
var texte_perso=container->GetData(MON_TEXTE); //lecture du texte perso
var valeur_perso=container->GetData(MA_VALEUR);// lecture de la donnée perso
}

parksto
26/12/2003, 13h04
YEAH :bounce:

Aurety
26/12/2003, 13h21
Ton fichier est excellent Parksto, merci !! Là, ca me démange de me mettre vraiment à la prog. quand je vois ce que vous êtes capables de faire !! :prie:

Angeylus
07/06/2004, 20h14
Je remes se sujet à jour, car je cherche justemetn une expression pour une voiture, mais les liens sont morts. Alors si quelqu'un a dans son HD le fichier, si il pouvait me le passer, sa serait sympa.

@+

Angeylus
09/06/2004, 11h31
Il n'y a toujours personne qui a cette expression???

Car celle de Blazouf, dans les tutoriaux, ne s'applique pas quand on tourne.

lio
11/06/2004, 10h52
Quelqu'un a t il cette expression?

base80
21/06/2004, 01h53
Voila pas de panique.
Voici le fichier de parksto.
http://www.xs4all.nl/~roerend/3d/voiture%20xpresso.c4d
Le tout est parametrable dans les données utilisateur de la trajectoire.
Je ne suis pas encore tout a fait a l'aise avec le fichier donc pour plus de questions j'espère que parksto pourras y répondre

yassine588
21/06/2004, 03h13
kRAPLARSTRO :shock: parakstro :shock: ....c'est un truc de ouf... et le comble c'est que quand je lis l'animation a l'envers la voiture fait demi-tour comme dans la réalité :shock:

:efface: :efface: :efface: :efface: :efface: