PDA

Voir la version complète : différents axes pour un même personnage



Philippe Lipo
29/05/2008, 17h00
je voudrais avoir un point de pivot à chaque pied de mon personnage. Le but : créer un mouvement de patineur; par exemple,
rotation arrière sur pied droit, se recevoir sur le pied gauche,donc rotation sur un axe-pivot pied gauche; ensuite reprendre
sur le pied droit, puis le gauche etc ... enchaîner une suite de rotations gauche/droite.
j'ai trouvé un sujet du forum qui traitait du même problème en indiquant de mettre le personnage (contrôleurs,joints,modèle) dans un nul positionné pied G puis dans un autre positionné pied D.
Le problème étant que l'on ne peut commencer le mouvement que par le nul parent (disons pied D) et puis le null enfant (pied G).
Le deuxième problème étant que au troisième mouvement (de nouveau le pied D), l'axe reste à sa première position, donc le personnage a perdu son point pivot et tourne sur un cercle au rayon égale à la distance entre la première et la deuxième position !

J'ai fait une tentative avec deux contrôleurs extérieurs contraints en position sur les nuls IK cible des pieds du groupe racine
du personnage pour qu'ils soient déplacés eux-mêmes dans le mouvement qu'ils contrôlent; donc, je mets des contraintes de rotation
sur les nuls pivots pied G/ pied D parents du personnage, avec les contrôleurs extérieurs en cible, contraintes que je m'imaginais
régler 100 % / 0 % alternativement pour le pied gauche puis pied droit. Ca ne marche pas !

J'ai contourné le problème: en revenant à la première solution, pour la troisème rotation, je copie le personnage et ses nuls parents
(les pivots des pieds); dans la timeline, je détruis les premières clefs de la copie, donc la mémorisation des axes est effacée: je peux alors recommencer deux nouvelles rotations; puis de nouveau, copier, effacer les clefs de la deuxième copie, et ainsi de suite, le truc étant d'animer la visibilité des différentes copies.
Processus qui fonctionne, mais très lent et fastidieux ...

Ceux qui connaissent le problème m'ont peut-être suivi dans mes errances ... je suppose qu'on a les mêmes complications
quand on veut animer un combat, où les axes de rotation des personnages se déplacent selon les positions debout, au sol,
quel pied frappe, etc

Je n'ai trouvé jusqu'à présent, aucun tutorials ni aucun sujet d'aucun forum donnant la solution de déplacement d'axes.

Question: est-ce un problème pour tout logiciel d'animation ou bien est-ce spécifique à C4D ou (j'espère) à ma propre ignorance
que je voudrais bien alors effacer par de justes informations ...

merci et bienvenue à toute aide

Philippe Lipo
02/06/2008, 15h40
Bon, une nouvelle expérimentation d'après un conseil reçu sur cgtalk.
Mon personnage avec comme hiérachie: null racine/contrôleurs Ik/joints/objets. Je crée deux nulls extérieurs positionnés aux
pieds pour me servir de pivot. Je mets une contrainte sur le null racine avec en parents les deux cibles extérieures, dont je
peux alterner le fonctionnement en réglant les % d'influence à 0 et 100 % selon le choix des cibles.
Le système fonctionne au défaut près que c'est l'axe du personnage qui sert de pivot et pas ceux des cibles.
Donc mon personnage tourne sur lui-même de la même façon qu'il soit contrôlé par l'une ou l'autre cible.
L'axe du null racine du personnage est positionné au centre des points.
Comment contraindre le positionnement de l'axe central du null racine à se déplacer à la position des nulls cibles sans
déplacer tout le perso.Qu'il se déplace en tant qu'axe et pas en tant qu'objet ? Pour que donc le perso pivote sur
l'un ou l'autre pied.
Il y aurait une fonction xpresso pour cela ?

shtl
02/06/2008, 19h00
Oui tu crées un xpresso ultra simple avec l'objet de référence et les objets qui doivent recevoir les coordonnées en position / rotation globale. Tu peux aussi recupérer les postions X et Z et laisser les Y libres. Ou clamper les Y.

Aurety
03/06/2008, 09h00
Tu as un noeud XPresso "Mix" qui permet de mélanger les valeurs et peut faire la bascule d'un point à l'autre, je pense. Mais j'ai pas testé :D

Philippe Lipo
03/06/2008, 11h58
si j'ai le système : hiérarchie nul racine conteneur de controleurs Ik / joints / perso_objets ; la position globale du nul racine est
au centre des points de ses enfants; je crée deux nuls positionnés au point pivot de chacun des pieds du perso. Je mets un tag de
contrainte sur le nul racine avec en cibles parents, les deux nuls piedG/pied D extérieurs (à la hiérarchie) .J'opère un rotation sur la cible d'un des pied, le nul racine (du perso) tourne autour de son propre axe, donc pas celui de la cible.

Quand je mets un expresso sur le nul racine (du perso), en liant sa position en sortie sur les entrées des cibles des pieds, la position des cibles s'ajuste à la position du null racine.
Si je fais l'inverse, les sorties en position des cibles branchées sur l'entrée position du nul racine, l'objet se déplace
sur la position des pieds.
Je voudrais (et je vois pas comment isoler l'axe de son modèle dans les opérateurs xpresso :coup:) que l'axe du
nul racine (du perso) s'ajuste sur celui des cibles, et puisse régler l'influence des contraintes des cibles des pieds.