Maya 저장할 수 없는 노드 만들기

5482 단어 OpenMayamaya
이 기사는 Takumi Akashiro 혼자 Advent Calendar 2020의 8 일째 기사입니다.

오늘도 소립입니다. 소립이라고 하면 낫토군요. 오랜만에 미토 1 에 여행을 가서 작은 낫토를 사고 싶다.

전치



저장하고 싶지 않은 임시 노드를 만든 적이 있습니까?
자신은 있었던 것처럼, 없었던 것 같은 생각도 합니다.

벌써 1년 이상 정도 전에 조사한 것을 내기 때문에, 동기의 모호함은 용서해 주세요.

해보자





이 장면에서 다음을 실행하여 저장해 봅니다.

from maya import cmds

cmds.toggle("pCubeShape2", doNotWrite=True)


그리고 다시 열면 ...



pCubeShape2가 사라지고 3dView에 있는 Cube도 하나가 되었습니다.
성공입니다!

조임



아니, 처음에는 이렇게 짧아질 예정이 아니었어요!

「OpenMaya 사용하지 않으면 안 되네요-귀찮네요-」같은 것을 말해, 사용할 수 없는 틈새 지식을 피로할 예정이었어요! 사실입니다!
하지만 쓰고있을 때 OpenMaya의 어떤 클래스에 donotwrite를 설정하는 사람이 있습니까? 라고 고민하고, 「Maya donotwrite」로 검색하면, toggle 의 MEL 커멘드 레퍼런스가 나오지 않습니까?
cmds로 시도하면 보통 저장되지 않는 노드를 만들 수 있습니까?
이상하게 어려운 방법으로 하는 것보다 cmds로 할 수 있는 것이 대부분의 TA는 기뻐하지 않습니까?
결과 일행으로 끝나는 기사가 완성되었고, 나는 나쁘다… 아니 나쁘네요. 주로 머리가.

...라고 생각했습니다.

어느 쪽인가 하면, 폴리곤 형상을 만드는 노드의 polyCube2 쪽을 지우고 싶네요.
조금 시도해 봅시다.
from maya import cmds

cmds.toggle("polyCube2", doNotWrite=True)



사라지지 않는다… … 그렇다면…? !
toggle 명령 도움말을 읽어 보자!

toggle 명령은 객체가 가진 다양한 객체 구성 요소를 표시하거나 숨깁니다.
예를 들어, 목록의 NURBS 커브와 서페이스에 대해 CV 및 편집 포인트를 표시하거나 숨길 수 있습니다.

오브젝트 컴포넌트…
pCubeShape는 객체이며, 형상이므로 컴포넌트도 가지고 있지요.
PolyCube는 오브젝트 컴퍼넌트에 포함되지 않기 때문에 조작 불가능한 것인가…

그래서 OpenMaya를 사용합시다!

from maya.api import OpenMaya

def set_flag_of_dont_write(nodename):
    sel = OpenMaya.MSelectionList()
    sel.add(nodename)


    if sel.isEmpty():
        return

    for i in range(sel.length()):
        mobj = sel.getDependNode(i)
        mfn = OpenMaya.MFnDependencyNode(mobj)
        mfn.setDoNotWrite(True)



set_flag_of_dont_write("polyCube2")



무사(?), polyCube2(와 3dView상의 Cube가) 사라졌네요.

진짜 조임



이번에는 polyCube를 지운 탓에 Shape 안의 형상 데이터까지 잃어 버렸습니다만,
확실히 찾고 있었을 때는, 툴용으로 일시적인 노드를 만들고 싶었다고 생각합니다.

그 이외에도 노드 에디터 사용하면 되어 버린다.

어째서 그 노드는 디폴트로 MayaNodeEditorSavedTabsInfo 플래그 서 있지 않아…
"패널과 레이아웃 저장"을 꺼도 당연히 저장됩니다 ...

생각하면, 아마도 1년 전의 나도 같은 것을 검증한 것 같아요.
… … 뭐 그런 일도 있군요!



앵무새가 먹고 싶기 때문에 오아라이도 가능. 라고 할까 냉정하게 되면 오아라이가 좋다. 안키모 먹고 싶다!

좋은 웹페이지 즐겨찾기