PDA

Voir la version complète : flipPoz



ksaa
01/02/2012, 15h01
Bonjour,

flipPoz, un plug pour inverser les poses!
C'est en faisant une petite animation du cycle de marche que j'ai pensé à faire ce plugin. au lieu de faire du copier/coller + changer les valeurs, la moitié du cycle suffit, le reste est à inverser avec flipPoz..
Je l’ai testé avec peu de perso, vu qu’il est destiné à être utiliser avec le nouveau Character Tool r13 , donc, maybe, quelques bugs en vue
Dites moi ce que vous en pensez.

>>> FlipPoz (http://safina3d.blogspot.com/2012/02/flippoz-v10b.html)

demo :

http://www.youtube.com/watch?v=1APLTmwchPY&feature=related

+

http://vimeo.com/35960911

Aurety
02/02/2012, 01h59
Merci Ksaa ! Toujours aussi généreux et aussi talentueux ! Je mate ça demain :thumbup1:

clemz
02/02/2012, 10h48
waouw super Ksaa :) . merci pour ton partage .
ça fonctionne par transfert en "translation" ( ' -X ' par ex ) ? ou par multiplication de matrices ?

ksaa
02/02/2012, 12h07
Merci :)
Au début j'ai commencé par utiliser des matrices... mais j'ai fini par opter pour le fameux X >> -X, beaucoup plus simple.

clemz
03/02/2012, 11h54
ha ok :) .
Je m'étais fais un script qui fait du mirroir de poses aussi , mais par matrices car je voulais pouvoir choisir les objets à mirrorer et l'objet de centre du mirroir . pour les plans de mirroir aussi ça me permet de choisir si je fais un mirroir sur XY XZ ou YZ , le tout sur le X de l'objet de ref etc . enfin j'ai les 9 combinaisons de mirroir possible à chaque fois .

ksaa
03/02/2012, 12h39
Ha !! Ça ressemble grandement à ce que je voulais faire :) ... la version initiale était avec une interface quasi proche de la tienne



def symAxePos(nomAxe, pos):
if nomAxe == 'XY':
return c4d.Vector(pos.x, pos.y, pos.z*-1)
elif nomAxe == 'XZ':
return c4d.Vector(pos.x, pos.y * -1, pos.z)
elif nomAxe == 'YZ':
return c4d.Vector(pos.x*-1, pos.y, pos.z)
else:
print 'No selected axis'


Mais comme j'ai vu que je ne faisais que des sym par rapport à l'axe Y, j'ai viré le reste
D’ailleurs petite question de débutant, comment on récupère la valeur de la rotation à partir d'une matrice ?

clemz
03/02/2012, 14h00
enfait mon interface (enfin celle que j'aurais souhaité avoir) c'était celle-ci (faite avec le plugin Resedit ):

http://kiteclem35.free.fr/3D/C4D/userinterface9.jpg

mais comme on ne peut pas jouer avec les userdatas et créer des poses dynamiques ( à ma connaissance ) , en Coffee , j'ai laissé tomber la finalisation de mon plug :) . j'utilise un simple tag coffee avec la base de fonctionnement , ça me suffit déja bien .

Pour connaitre la rotation , il y a une fonction ( en coffee ) mat->GetHPB();
dans mon scirpt je n'ai pas utilisé cette fonction , je prends chaque axe V1() V2() et V3() qui définissent la "rotation" et je les multiplie par un vecteur (1,1-1) par ex etc . je n'ai pas de donnée angulaire donc je veux dire .