首页 > 解决方案 > Maya API removeChild 让孩子从大纲中消失?

问题描述

我在下面运行这段代码,当我运行最后一行时,定位器 B 从大纲中消失了……如何将定位器 B 放在世界上,将定位器保留在大纲中?

import maya.api.OpenMaya as new_om

def getMObject(node):
    selList = new_om.MSelectionList()
    selList.add(node)
    return selList.getDependNode(0)

cmds.spaceLocator(name="A")
cmds.spaceLocator(name="B")

A_MObj = getMObject("A")
B_MObj = getMObject("B")

parentNode_B_to_A = new_om.MFnDagNode(A_MObj)

parentNode_B_to_A.addChild(B_MObj)

parentNode_B_to_A.removeChild(B_MObj)

多谢!

标签: pythonmaya

解决方案


您需要添加B世界节点。在您的情况下A,并且在worldB下是直接父级,因此您可以查询和使用' 父级:A

...
parentNode_B_to_A.removeChild(B_MObj)

world_obj = parentNode_B_to_A.parent(0)
world_node = new_om.MFnDagNode(world_obj)
world_node.addChild(B_MObj)

推荐阅读