PDA

Voir la version complète : Résolu Comment attacher une articulation à un polygone ? et problème d'orientation



Spasm One
26/01/2017, 19h55
Salut,

dans le cadre de la construction d'un personnage un peu bizarroïde, je suis confronté au problème de devoir attacher une articulation à un mesh qui se déforme. Cette articulation est une sorte de queue, je voudrais donc qu'en plus de l'attacher au mesh, qu'elle soit alignée avec l'orientation de la normale du polygone auquel elle est rattachée.
Je suis passé par un petit Xpresso pour ça, mais l'histoire de l'orientation de ne fonctionne pas… la normale du polygone n'est pas du tout prise en compte.
Est-ce que les informations d'une normale doivent être transformées en informations de rotation par un node spécifique ? Ou y a t-il une solution complètement différente de résoudre mon problème ?

Merci de votre aide.

1929919300

valkaari
26/01/2017, 20h14
Dans xpresso -> calculate tu as un noeud vector2matrix que tu peux mettre dans la global matrix de ton objet.

Par contre ton axe Z pointera dans la bonne direction (si tu sélectionnes l'axe Z dans le noeud vector2matrix) mais les autres axes peuvent être placés "n'importe comment"

Spasm One
26/01/2017, 21h24
j'ai fait ça (Cf image jointe)…
Du coup mon objet "racine" s'oriente et se cale à partir du centre de mon objet "mesh" et non pas du centre du polygone voulu.

19302

Spasm One
27/01/2017, 00h46
J'ai essayé avec des adaptateurs vecteur->réels, ce qui résout bien le problème du positionnement de mon objet "racine", mais pour sa rotation ça ne fonctionne, cela donne des valeurs de rotation qui évoluent lorsque l'objet "mesh" se déforme.

19303

valkaari
27/01/2017, 03h19
Tu as bien activé l'option 'use deformed points' de ton noeud polygon ?

Spasm One
27/01/2017, 08h51
oui.. :(

je joins mon fichier C4D

19305

Spasm One
27/01/2017, 14h42
Je pense avoir trouvé la solution avec cet Xpresso :

19306

valkaari
27/01/2017, 15h58
Alors je ne savais pas mais c'est parfaitement logique, il faut mettre le port matrice global (pour la rotation) avant le port position. La matrice globale a également un vector de position. Donc si tu la met après c'est normal qu'elle écrase la position. Et donc 0.0.0 elle est au centre de ton objet.

Par contre si tu inverses les ports, la position fonctionne bien.
19307

Condor34
27/01/2017, 16h00
J'ai essayé depuis ce matin, et cette première solution ne marchait pas chez moi. Celle de Vaalkari fonctionne en revanche.

Problème de version ?

Floc
27/01/2017, 19h19
Ah ben la je viens d’apprendre un truc. L'ordre des entrées détermine l'ordre d’exécution !
Très intéressant cette discussion :thumbup1:

valkaari
27/01/2017, 23h00
j'avais oublié de mettre la négation, parce que j'ai aussi appris un truc sur l'ordre des ports.

Personnellement je suis en R18 studio.