3DVF Network :
ico_magazine
Magazine
ico_boutique
Boutique
ico_cgjobs
Portail Emploi
ico_upload
Hébergement d'image
blogs
Blogs
ico_progiss
Progiss
ico_social
Social
Login Membre :
blogs
Login
?
Join
space
space
  FORUM 3DVF
  3dsmax Animation
  Character Studio

  Biped IK Object Maxscript

 

tmaes Services - Divers : InbornDesign Actu. sur 3DVF : nobrainnobrain, 3 utilisateurs anonymes et 50 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Biped IK Object Maxscript

n°3041
diccy
Posté le 25-03-2011 à 11:14:11  profilanswer
 

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?  :whistle:

(Publicité)
n°3042
diccy
Posté le 05-04-2011 à 18:06:40  profilanswer
 

Personne? :(

n°3043
Malikarn
- F1 -
Posté le 05-04-2011 à 22:52:36  profilanswer
 

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 :
http://uppix.3dvf.com/thumbs/ikbip.jpg
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 :
  1. MasterCtrl = $Bip001.controller
  2. osNode = MasterCtrl.osObject
  3. --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.
++

n°3044
diccy
Posté le 07-04-2011 à 10:25:47  profilanswer
 

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 :
  1. ((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?

n°3045
Aego
Obi Wan
Profil : Pilier du Forum

Posté le 07-04-2011 à 11:10:34  profilanswer
 

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
n°3046
Malikarn
- F1 -
Posté le 07-04-2011 à 12:37:20  profilanswer
 

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++

n°3047
diccy
Posté le 08-04-2011 à 18:25:50  profilanswer
 

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!


Aller à :
Ajouter une réponse
  FORUM 3DVF
  3dsmax Animation
  Character Studio

  Biped IK Object Maxscript

 

Haut de page
space
space
space
A Propos | Contact
Copyright © 2000-2012 3DVF. Tous droits réservés. | Infogérance serveur | tracker
space