maya Python API2.0 MItDependencyNodes에서 장면의 모든 노드 참조

3221 단어 파이썬maya
maya python API 2.0에서 클래스 테스트를 할 때 정리하고있는 자신의 메모입니다.
테스트하면서 정리하고 있기 때문에, 실수나 문장에서 하고 있는 것으로 보다 좋은 방법등 있으면 지적해 주시면 고맙습니다.

maya Python API2.0 MItDependencyNodes에서 장면의 모든 노드 참조



MItDependencyNodes 클래스의 거동 테스트를 했으므로 정리한 것입니다.
실행 환경은 Maya2017입니다.

공식 문서 링크 - OpenMaya.MItDependencyNodes Class Reference

PAI2.0에서 스크립트를 짤 때는 MGlobal에서 대상 노드를 선택하고 있었지만, 가는 것은 그렇게도 가지 않는 경우가 나올 것이라고 생각하기 때문에, cmds 로 말하는 곳의 ls 로서 이용할 수 있는 클래스를 찾았습니다.

문서를 보면 알 수 있듯이 기능은 매우 간단하고 장면의 모든 노드를 얻을 수 밖에 할 수없는 모양.

MItDependencyNodes_test.py
import maya.api.OpenMaya as om
# API2.0でシーン内全てのノードを参照する

test = om.MItDependencyNodes()

while not test.isDone():
    currentNode = test.thisNode() # イテレータの現在のノード

    # 指定のタイプを取得(ここではtransform)
    if currentNode.apiType() == om.MFn.kTransform:
        ### 対象ノードタイプへの処理 ###
        print om.MFnDagNode(currentNode).name() # 名前を確認
    test.next()                   # イテレータを進める

test.reset() # イテレータをリセット

API 유형 를 참조해, 지정된 노드를 취득할 수 있었습니다.

MItDependencyNodes.thisNode ()에서 MObject로 돌아 왔기 때문에 MFnDagNode
인스턴스를 작성하여 무사히 이름을 얻어 완료할 수 있었습니다.

테스트한 장면





또한 MItDependencyNodes를 정의한 후에 만든 노드도 제대로 참조되었습니다.

좋은 웹페이지 즐겨찾기