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
seconde vidéo
vous voyez autre chose ?
C'est classe!
Si tu fais une rotation de la caisse, les roues restent axées?
Fluffy mais costaud...www.fluffy4d.com
Tout à fait d'accord, tu nous fais partager ta trouvaille, pour l'étudier. :prie:Envoyé par Fluffy
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: )
de corporis etc etc...
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...
Eric GAUDET-TRAFFY alias TEG - 06 61 74 90 21 - web : http://www.tegatwork.com/
'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
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.
kenavo !! // Pinterest KAMIGAZ®
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?
Eric GAUDET-TRAFFY alias TEG - 06 61 74 90 21 - web : http://www.tegatwork.com/
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.
ça sera plus facile que les amortiseurs. :lol:Envoyé par teg
je vais effectivement essayer d'approfondir, si j'en suis capable. :?Envoyé par teg
et oui, je pense bien le faire tourner, si possible sous la forme de plugin, sinon en xpresso, on vera bien.
euh...
est-ce que quelqu'un sait s'il possible d'enregistrer une variable d'une frame sur l'autre en coffee ? :o
Tengaal ?
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:
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...)
merci merci merci
:poucehaut:
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 !!
Capoeira House DJ
: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:
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...
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...?p=72314#72314
ok, ça j'y arrive, sauf que j'ai une erreur là :
Code: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 ?
il manque un truc super important : une auto-stoppeuse russe en mini-juppe.
sinon joli travail !
r25 Perpétuelle - iMac 27 2019 - Radeon Pro Vega 48 - OSX 12.6.5
pourquoi russe?Envoyé par PP
de corporis etc etc...
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
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:
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
}
YEAH :bounce:
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:
kenavo !! // Pinterest KAMIGAZ®
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.
@+
iMac 24", Core 2 Duo 2,4 Ghz, 4 Go de Ram, Cinema 4D R 10.1 Studio Bundle (étudiant), CD IK Tools, CD Constraints… | ZBrush 2 | Creative Suite 3 Design Standard<br />Mon Blog…
Il n'y a toujours personne qui a cette expression???
Car celle de Blazouf, dans les tutoriaux, ne s'applique pas quand on tourne.
iMac 24", Core 2 Duo 2,4 Ghz, 4 Go de Ram, Cinema 4D R 10.1 Studio Bundle (étudiant), CD IK Tools, CD Constraints… | ZBrush 2 | Creative Suite 3 Design Standard<br />Mon Blog…
Quelqu'un a t il cette expression?