PDA

Voir la version complète : Comment animER les roues d'un véhicule qui roule ?



REDCAP
29/03/2003, 21h33
Je viens de modéliser un Trax en lego et j'aimerais le faire rouler, mais je ne vois vraiment pas comment faire pour animer les roues en fonction du sol, quelqu'un a-t-il la soluzionnn ?
:shock:

Zim
29/03/2003, 22h11
tu as la solution dans un tuto sur le site qui s'appelle "une tasse d'xpresso"

REDCAP
29/03/2003, 23h15
malheureusement je n'ai pas la version 8 de cinema 4d donc pas d'Xpresso....

virus
29/03/2003, 23h25
On m'as parlé d'un plug ou plutôt d'un coffee qui grace à la trajectoire d'un objet animais les roue ,mais j'oublie son nom,mais je l'ai en magasin si tu veux je te l'envoie !!?

REDCAP
29/03/2003, 23h49
ben ce serait bien volontiers, je dirais meme plus...avec plaisir ! :D

cratum
30/03/2003, 00h39
slt,
http://cratum.free.fr/101_car.c4d

c'est l'expression que tu cherches, ça provient d'une bibliothèque d'expression appelée "expressionmagic", fais une recherche sur le forum, il y avait un lien pour les télécharger.
a+

REDCAP
30/03/2003, 19h21
merci bien, simplement maintenant j'ai un autre probleme, j'ai copier l'expression coffee de la scène que tu m'as donné, dans la mienne.
J'ai apliquer l'expression a mes roues qui son composé de deux partie, une partie gente, et une partie pneu, mais aprés l'avoir apliqué ma roue disparait.....un peu bizarre :(

jc
30/03/2003, 21h25
Et avec une calculette, c'est pas si long que cela à faire, non?
Il suffit d'avoir le périmetre de ta roue, et d'assigner manuellement le degré de rotation, suivant le distance parcourue par la roue.

Ex: si ta roue fait 50 de périmetre, un déplacement de 200 "conduira" à une rotation de 1440°, etc...

Avec l'expresso, c'est certe plus rapide... et l'expression coffee va te calculer cela automatiquement aussi, mais quand ça marche pas, les bonnes vieilles méthodes ont encore de beaux jours devant elle! :wink:(par contre, c'est pas normal que ta roue disparaisse...)

eripon
30/03/2003, 21h43
Dis moi JC si on désire faire tourner les roues le calcul il est plus complexe non !

jc
30/03/2003, 21h51
Tu veux dire "dans un virage" je suppose :D
Soit un déplacement en X, et en Z... oui, c'est pas si simple, il faut d'abord calculer le déplacement suivant les 2 variables... (mais il existe une expression, ou un plug qui peut le faire pour toi, je pense...)
Par contre, c'est laborieux, dans le sens ou ce n'est pas automatique, et donc, toute modif sur l'anim, nécessite de recalculer... :roll:
mais dans l'urgence, ça peut rendre de bons services!

eripon
30/03/2003, 21h58
Merci du conseil JC. J'attaque ça (pour la jeep de Tintin) dès que j'ai fini mon château.

tabou
30/03/2003, 22h47
J'ai fait une expression qui synchronise la rotation de la roue avec le déplacement, elle ne fonctionne que sur un seul axe mais si ça peut t'être utile elle est là (http://tabou.free.fr/c4d/exp/exp.html)

REDCAP
30/03/2003, 22h57
je comprends pas ce qui se passe, dès que j'assigne mon expression coffee à ma roue elle disparait..........c pas si evident que ca en a l'air tout ca....

REDCAP
30/03/2003, 23h11
merci tabou, ton code a l'air mieux fait que celui que j'avais avant, maintenant ca ne disparait plus au moins....par contre je ne comprend pas ce qu'il faut faire avec le radius....merci encore

tabou
30/03/2003, 23h27
Pour adapter cette expression à un véhicule déjà modélisé il suffit de la placer sur chacune des roues de ton véhicule, ensuite il faut donner à l'objet radius le même rayon que celui de tes roues (= la moitié de la largeur ou de la hauteur) et finalement remplacer dans le script COFFEE "chariot" par le nom de ton véhicule, ou alors tu renommes ton véhicule "chariot" et dans ce cas tu n'as pas besoin de toucher au script.
L'objet radius doit rester invisible c'est juste une référence pour le script qui lui permet de calculer le diamètre des roues et donc la vitesse de rotation, il ne faut pas le supprimer de la scène sinon le script ne marche plus.

REDCAP
30/03/2003, 23h34
ok je vais essayer.....MERCI BIEN !!! :P

alphi
24/10/2003, 11h47
salut

J'essaye moi aussi de faire tourner les roues d'une voiture en fonction de son déplacement mais avec une expression
j'ai téléchargé une voiture sur le site de marlins studios, j'ai récupéré une expression qui fonctionne bien (les 4 roues tournent quand on déplace le volume qui simule une voiture dans mon fichier d'exemple) et j'ai essayé de fusionner le tout.
mais voilà... les roues de la voiture tournent mais par sur leur propre axes ! Cela aurait été trop facile, mais j'y ai cru :D

Voilà donc l'expression que j'ai appliquée à chacune des roues :
main(doc,op)
{
var car = op->GetUp(); if(!car) return;
var pos = car->GetPosition();

var m = pos.z;
var d = 50.0;
var r = m/d;

var rot = vector(0.0,-r,0.0);
op->SetRotation(rot);

return;
}


Voilà le lien pour le télécharger : voiture (http://perso.wanadoo.fr/alphimage/voiture-test.c4d)

Mes maigres compétences sur C4D m'arrêtent net dans mon élan !
il doit bien ns'agir d'un problème de rayon ou d'origine ...

Tengaal
24/10/2003, 12h37
Regarde les axes de tes roues...
Ils ne sont pas au centre des jantes mais carrément loin à l'extérieur, et la rotation se fait par rapport à cet axe d'objet, c'est pour cela que tes roues partent dans tous les sens.
Il faut que tu replaces les axes de tes roues au centre de celles-ci.

Je pense que c'est un modèle 3DS, non ? Car ces décalages d'axes qu'on retrouvent complètement à l'extérieur des objets sont fréquents avec l'import en 3DS, et puis je constate que tes objets sont maillés tout en triangles...

alphi
24/10/2003, 14h00
merci tengaal
maintenant que tu le dis, c'est évident :oops:

C'est effectivement au moment ou j'ai appliqué le tag sur chaque roues que celles-ci se sont décalés

Il doit bien avoir une technique pour centrer l'origine de façon très précise sur l'objet roue mais je ne la connais pas ... J'ai donc recalé les axes au centre de mes roue en zoomant le plus possible...sur la vue de côté et ca va nettement mieux :D

oui, il s'agit bien d'un fichier 3ds que j'ai téléchargé gratuitement sur le site de marlinstudios pour tester.
Pour une animation de petite taille, et à condition ne pas avoir avoir la voiture en premier plan, cela me parait acceptable, par contre les roues sont vraiment facétisées. je ne saisd pas si il ya un moyen de les améliorer sans les refaire complètement, j'ai essayé en modifiant les valeur du tag de lissage et aussi (tant qu'à faire des trucs stupides ...) avec un hypernurbs....c'est la cata la plus complète

Petite question au passage ... de mes roues :D
Depuis que j'ai appliqué ces expressions aux différentes roues, quand je lance un rendu pour une seul image, C4D met plus de temps à calculer...y a -t'il ub rapport avec ces tags ?

J'ai réouvert le fichier d'origine en 3DS, et il est vrai que c'est plus rapide au calcul, comme si ces tags me plombait mon fichier , étrange :?

stéphane

Tengaal
24/10/2003, 16h30
Je pense que c'est plus rapide et plus simple de somplement refaire les roues:
- Cylindre + biseau sur les 2 couvercles
- tu convertis en polygonal
- en vue de côté tu séléctionnes les points du centre de la jante et tu les ramène vers le centre avec la mise à l'échelle sur 1 seul axe pour obtenir la même forme que l'original.
- tu termines en appliquant la texture en planaire, pour la cadrer sur toute ta roue, dans le gestionnaire d'objet Texture->Adapter à l'objet, ensuite tu peux la figer en UVW avec Texture->Convertir en UVW.

Sinon, si tu veux garder tes roues "3DS" d'origine, tu commences par
- Structure->Convertir en rectangles
- Structure->Optimiser
- Tu met l'objet dans un huper Nurbs ou bien tu le subdivises avec Structure->subdiviser (choisir mode Hyper Nurbs)
Par contre la texture d'origine en UVW risque de faire des trucs bizarres car la structure polygonal de l'objet à changer, il faut donc refaire l'application de la texture (voir plus haut)

Pour l'info, une expression COFFEE n'a pas d'influence sur le calcul d'une image, elle peut avoir une influence sur le rendu d'une vidéo si il y a des calculs à faire entre 2 rendus d'images successives.

Pour centrer automatiquement un axe dans un objet, il y a le plugin "Axis Center" dispo chez http://www.plugincafe.com, utilise la fonction de recherche pour le trouver rapidement. :wink:

alphi
24/10/2003, 20h15
merci beacoup

j'ai essayé de faire une autre roue, le problème que je rencontre c'est au moment de plaquer la texture.
je l'a met pourtant bien en planaire, je l'adapte à l'objet mais impossible de faire plaquer cette image sur la le voile du cylindre qui doit représenter l'enjoliveur, l'image ne veut se mettre seulement que sur le pneu ...

J'ai aussi essayé ta métode pour conserver la roue, mais au moment de mettre l'ypernurbs, l'image de la roue se déforme complètemnt, comme si elle était passée à la machine à laver. J'ai essayé différents mode placage mais rien y fait

stéphane

Tengaal
24/10/2003, 21h19
Pour ta texture planaire, il faut que tu la fasses tourner à 90° sur Y (Rotation H) en te mettant en mode "Axe de texture", l'icône représentant un axe avec un petit damier noir et blanc.
Ainsi tu visualises ta texture sous forme d'une grille bleue que tu manipules comme n'importe quel objet avec les déplacements et les rotations...
Tu peux de cette manière placer précisément les textures sur un objet. :wink: