是否可以FbxNode
从枚举 ENodeId 获取关联?例如,如果我想从Character::eLeftHand
我尝试使用然后通过调用Character::GetCharacterLink(ENodeId, FbxCharacterLink)
从中提取 FbxNodeFbxCharacterLink
FbxCharacterLink::mNode
然而,对于大多数 ENodeIds,此函数返回 False,因此不会FbxCharacterLink
创建。
character = myScene.GetCharacter(0)
lefthand = character.eLeftHand
lefthand_node = FbxCharacterLink()
character.GetCharacterLink(lefthand, lefthand_node) # False
lefthand_node = lefthand_node.mNode
当我在 Motionbuilder 中使用 Python 和 编写脚本时Pyfbxsdk
,这很容易,无论骨架对象如何命名,我都可以得到FBXObject
它
m = character.GetModel(self.BodyNodeObject[o])
并BodyNodeObject
生成
def BodyNodes(self):
for i in dir(FBBodyNodeId):
if i[0] == 'k':
try:
self.BodyNodeObject[BodyNodesId[i]] = getattr(FBBodyNodeId, i)
except:
pass
BodyNodesId
只是一本字典
BodyNodesId = OrderedDict({
'kFBChestNodeId':'Spine1',
'kFBHeadNodeId':'Head',
'kFBHipsNodeId':'Hips',
'kFBLeftAnkleNodeId':'LeftFoot',
'kFBLeftCollarNodeId':'LeftShoulder',
'kFBLeftElbowNodeId':'LeftForeArm',
...
})