PDA

Voir la version complète : Asservir un maillage à des objets neutres



Perchlo
07/11/2010, 10h43
Bonjour à tous,

Dans C4d je récupère des points de tracking (Matchmover). Chaque track est automatiquement importé dans un objet neutre. J'en limite la quantité à une dizaine.
Ma question: Comment asservir les points d'un maillage à ces objets neutres?

Le but: Un tatouage est tracké sur un vrai visage puis doit être reporté sur un maillage 3D.

Il n'y a pas de mouvement de caméra, juste un déplacement du tatouage et de lègère déformation en fonction des mouvement de tête et des grimaces du personnage réel. Mon tracking fonctionne très bien, mais après cela se complique.

Une formalité pour vous, mais une prise de tête pour moi. Y a t il des "incontournables", quelle solution adopteriez vous? Cavalerie lourde ou solution simple ?(Studio 12)

Merci d'avance. :)

Tengaal
07/11/2010, 11h14
Salut !

déjà, il faut caler (avec le magnetisme 3D, magnetisme sur les axes) les points de ton objets polygonal sur chaque objet neutre.
Ca permet déjà de savoir quel est le numero de chaque point pour chaque neutre (voir onglet structure pour connaitre le numéro du point sélectionné de l'objet polygonal.), ça sera utile pour la méthode 1 ci-dessous.

après, je vois 2 solutions possibles:

1- Par Xpresso : avec un noeud "point" tu définis la position de chaque point de ton maillage par la position de chaque objet neutre.
Si tu en as juste une dixaine ça peut se caler très vite... c'est là ou il faut connaitre l'indice de chaque point pour l'associer au neutre correspondant.

2-une autre solution serait de mettre un objet "os" ou "articulation" dans chaque objet neutre (coordonnées à (0,0,0)) et de lier ces os à ton objet polygonal, ainsi les points du maillages seront collés aux neutres.

Perchlo
07/11/2010, 11h38
Salut !

après, je vois 2 solutions possibles:

1- Par Xpresso : avec un noeud "point" tu définis la position de chaque point de ton maillage par la position de chaque objet neutre.
Si tu en as juste une dixaine ça peut se caler très vite... c'est là ou il faut connaitre l'indice de chaque point pour l'associer au neutre correspondant.

2-une autre solution serait de mettre un objet "os" ou "articulation" dans chaque objet neutre (coordonnées à (0,0,0)) et de lier ces os à ton objet polygonal, ainsi les points du maillages seront collés aux neutres.

Merci,
Je m'en vais de ce pas essayer.

Aurety
07/11/2010, 11h52
Asservir les points d'un maillage par d'autres points, ce n'est pas trop dur mais tu risques d'avoir des effets de cisaillement ou d'overlapping de polygones, non ?? J'opterais donc pour une solution de type Cluster ( Grappe en francais je crois ).

Aurety
07/11/2010, 11h56
Salut !

1- Par Xpresso : avec un noeud "point" tu définis la position de chaque point de ton maillage par la position de chaque objet neutre.
Si tu en as juste une dixaine ça peut se caler très vite... c'est là ou il faut connaitre l'indice de chaque point pour l'associer au neutre correspondant.

J'ai pensé à ça aussi mais comment tu entres dans les points du maillage ? Accrocher un objet à un maillage, oui ca je vois mais que le point du maillage suive le neutre, je vois pas comment le noeud point peut m'aider ?

Tengaal
07/11/2010, 11h58
oui il y a l'outil "grappe" également ;), mes 2 méthodes concernaient en priorité un C4D de base, car Perchlo n'a pas indiqué avec quelle version de C4D il travaille.

la méthode Xpresso n'a pas de possibilité d'influence progressive contrairement la méthode des os ou de la méthode "grappe".
Si il y a des points intermédiaires dans le maillage (subdivision) ces 2 dernières méthodes seront les plus adaptées pour avoir une déformation souple et fluide du maillage.

EDIT : oups j'avais pas vu ton message au-dessus, donc Gong te donne la réponse détaillée plus bas ! ;)

Aurety
07/11/2010, 11h59
le fichier avec cluster

Sir Gong
07/11/2010, 12h02
je vois pas comment le noeud point peut m'aider ?
J'ai testé par curiosité, de cette manière ça fonctionne :
1914
(je ne sais pas si c'est très orthodoxe)

Aurety
07/11/2010, 12h07
:scared: super, j'avais jamais vu qu'on pouvait entrer dans le noeud point comme ça. Ca ouvre des possibilités ! Merci Gong

Perchlo
07/11/2010, 13h31
le fichier avec cluster

Ca marche!

Cette fonction "grappe" parait trés puissante et bien adaptée à mes besoins.

je vais quand même bosser aussi sur les autres propositions pour évoluer un peu.

Je reviens vers vous si ca coince.

Merci encore. :)

Tengaal
07/11/2010, 14h38
oui Mr Gong, ta méthode est bien la bonne. ;)

Il faut un noeud "point" pour contrôler chaque point du maillage, chaque noeud "point" utilise un indice de point qui est le numéro du point du maillage.
il faut ajouter en entrée le port "position du point" qui reçoit donc les coordonnées de n'importe quel autre objet.

donc quand on a créé déjà une "ligne" qui colle le point N à un objet, on duplique cette ligne, pour contrôler un autre point par un autre objet, c'est pour ça que c'est une méthode qui permet de contrôler rapidement des points sur des objets différents, c'est du "copier-coller".

ainsi on peut coller les points d'un maillage sur des objets externes, ça donne pas mal de possibilité de passer par cette méthode Xpresso.