python - FBX SDK - Get the FbxNode from an ENodeId of a Character -


is possible associated fbxnode enum enodeid ? example if want fbxnode character::elefthand

i tried use character::getcharacterlink(enodeid, fbxcharacterlink) extracting fbxnode fbxcharacterlink calling fbxcharacterlink::mnode

however function returns enodeids false, no fbxcharacterlink created.

character = myscene.getcharacter(0) lefthand = character.elefthand lefthand_node = fbxcharacterlink() character.getcharacterlink(lefthand, lefthand_node) # false lefthand_node = lefthand_node.mnode 

when scripting inside motionbuilder using python , pyfbxsdk, easy, no matter how skeleton objects named, can fbxobject of it

m = character.getmodel(self.bodynodeobject[o]) 

and bodynodeobject generated with

def bodynodes(self):     in dir(fbbodynodeid):         if i[0] == 'k':             try:                 self.bodynodeobject[bodynodesid[i]] = getattr(fbbodynodeid, i)             except:                 pass 

bodynodesid dictionary

bodynodesid = ordereddict({         'kfbchestnodeid':'spine1',         'kfbheadnodeid':'head',         'kfbhipsnodeid':'hips',         'kfbleftanklenodeid':'leftfoot',         'kfbleftcollarnodeid':'leftshoulder',         'kfbleftelbownodeid':'leftforearm',         ... }) 

this worked me

from fbx import *  in range(myscene.getcharactercount()):     character = myscene.getcharacter(i)     node = character.ehips     link = fbxcharacterlink()     while (character.getcharacterlink(node, link)):         print node, link.mnode.getname()         node = character.enodeid(int(node+1)) 

Comments

Popular posts from this blog

php - Admin SDK -- get information about the group -

dns - How To Use Custom Nameserver On Free Cloudflare? -

Python Error - TypeError: input expected at most 1 arguments, got 3 -