 | |  |
| diccy | Salut!
J'ai un petit souci: j'ai besoin de récupérer l'IK Object des membres de mes bipeds, dans un script, mais je n'y arrive pas.
La doc propose une propriété .osObject (ou .headObject pour la tête) mais impossible de le faire fonctionner... -- Unknown property: "osObject" in Controller:L_Clavicle
Je suis sur 3DS Max 2010.
Quelqu'un pourrait-il éclairer ma lanterne? |
diccy | Personne?  |
Malikarn - F1 - | Salut
La propriété osObject permet d'assigner ou de manipuler (lorsqu'il est assigné) le but cinématique d'une chaine IK du biped.
Par défaut les but cinématiques d'une chaine IK ne sont pas visibles sur un biped. Ils n'existent d'ailleurs - par défaut - qu'à partir des clavicules jusqu'aux mains et des fémurs jusqu'aux pieds. Il faut donc d'abord assigner un node en lieu et place dudit but cinématique. Pour cela tu peux le faire en maxscript ou via l'interface comme ici :
Je crée un point, je le "quick align" et l'assigne dans le panneau "key info" pour ce bras.
Dès lors, le point se comporte comme un but cinématique. En bougeant le point, tu bouges le bras en cinématique inverse.
Je peux ensuite récupérer ce point grâce à la propriété osObject tel que :
Code :
- MasterCtrl = $Bip001.controller
- osNode = MasterCtrl.osObject
- --etc
|
Attention la osObject est "selection dependant". Il faut donc utiliser des "select $node" si tu veux tout automatiser via mxs.
Garde aussi à l'esprit qu'assigner un node en tant que but cinématique diminue terriblement l'efficacité du biped car tu perds l'automatisation sur l' IK / FK snap.
Bon courage pour la suite.
++ |
diccy | Salut!
Merci pour ta réponse, le code m'a éclairé sur un point .
Et ça me pose encore problème xD! Je t'expose ça un peu plus précisément:
Ce que je veux faire, c'est sélectionner un biped et supprimer tout but cinématique de tous les membres (et la tête) de manière automatisée.
Mon problème initial est que je n'arrivais pas à accéder à cette variable. J'utilisais un code du genre:
Code :
- ((biped.getNode $ #lArm).controller).osobject
|
Et j'obtenais: -- Unknown property: "osObject" in Controller:L_Clavicle
J'ai essayé ton code, et en effet, en prenant le Bip01, je n'ai pas eu d'erreur. Par contre, j'ai des undefined. Quelque soit le nombre de buts cinématiques que j'ai (sur plusieurs membres), et qu'ils soient liés à des objets du même biped ou des objets indépendants, la valeur trouvée est toujours undefined .
Aurais-tu une idée de comment récupérer tous les buts cinématiques de tous les membres d'un même biped? |
Aego Obi Wan Profil : Pilier du Forum
| Ce sujet a été déplacé de la catégorie 3D vers la categorie 3dsmax Animation par Aego ---------------
Un mec qui parle trois langues c'est un trilingue, un mec qui parle deux langues c'est un bilingue, un mec qui parle une seule langue c'est un Anglais
Mon nouveau site : www.aego-prod.fr
Mon nouveau blog : http://aegozone.blogspot.com
|
Malikarn - F1 - | Re
Comme je l'avais plus ou moins bien expliqué dans mon précédent post, la propriété osObject dépend de la sélection. Elle ne fonctionne que sur les bras (des clavicules aux mains) et sur les jambes (des fémurs au pieds). Et même sur ces membres, elle renvoie undefined si aucun but cinématique "manuel" n'est assigné via l'interface. Si je delete le point qui est sur ma capture d'écran plus haut, mon code renvoie effectivement undefined. Sinon elle renvoie le point. Les buts cinématiques internes du biped ne sont pas accessibles via maxscript. D'ou la nécessité des osObject à condition que ces objets existent. Est-ce (un peu) plus clair ?
BF++ |
diccy | Oui merci bien \o/ !
Je n'avais pas saisi qu'il fallait avoir le membre voulu en sélection . C'est un peu bancal comme système je trouve mais bon xD!
Ton m'aide va m'être très précieuse ! Bonne continuation! |
| |
| | |