是否有可能从枚举FbxNode中获取相关的ENodeId?例如,如果我想从FbxNode获得Character::eLeftHand
我尝试使用Character::GetCharacterLink(ENodeId, FbxCharacterLink),然后通过调用FbxCharacterLink::mNode从FbxCharacterLink中提取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:
passBodyNodesId只是一本字典
BodyNodesId = OrderedDict({
'kFBChestNodeId':'Spine1',
'kFBHeadNodeId':'Head',
'kFBHipsNodeId':'Hips',
'kFBLeftAnkleNodeId':'LeftFoot',
'kFBLeftCollarNodeId':'LeftShoulder',
'kFBLeftElbowNodeId':'LeftForeArm',
...
})发布于 2015-08-26 22:59:16
这对我来说很管用
from fbx import *
for i 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))https://stackoverflow.com/questions/32037389
复制相似问题