Maya 참조 주위의 명령 소개
소개
참조 주위의 명령의 소개입니다.
해설이라고 하는 것보다 잘 사용하는 것만 정리한 것이 됩니다.
이미 비슷한 내용으로 어드벤드 캘린더에 투고되고 있습니다만 신경쓰지 않는다!
참조 노드의 이름 가져오기
참조된 객체에서 참조 노드를 가져옵니다.
우선 잘못된 방법을 소개.
node = "ref:pSphere1"
namespace = node.split(":")[0]
RNnode = namespace + 'RN'
# Result: u'refRN' #
문제없이 움직이는 것처럼 보이지만 객체의 네임 스페이스가 변경되면 움직이지 않습니다.
올바른 방법이 여기
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
# Result: u'refRN' #
원래 객체의 네임스페이스가 변경되어도 문제없이 RN 노드의 이름을 얻을 수 있습니다.
참조 노드에서 정보 검색
자주 사용하는 것
withoutCopyNumber는 모르면 빠지므로 조심합시다.
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
# リファレンスのネームスペースを取得
cmds.referenceQuery(RNnode, namespace=True)
# Result: u':ref' #
# リファレンスのファイルパスを取得
cmds.referenceQuery(RNnode, filename=True)
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# filenameのResultが'C:/Users/ponty/Desktop/ref.ma(1)'となる場合はこちらを使います。
# リファレンスのファイルパスを取得
cmds.referenceQuery(RNnode, filename=True, withoutCopyNumber=True)
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# リファレンスのロード状態を取得
cmds.referenceQuery(RNnode, isLoaded=True)
# Result: True #
# リファレンスされたオブジェクト一覧を取得
cmds.referenceQuery(RNnode, nodes=True)
"""
Result: [
u'ref:pSphere1',
u'ref:pSphereShape1',
u'ref:shapeEditorManager',
u'ref:poseInterpolatorManager',
u'ref:layerManager',
u'ref:defaultLayer',
u'ref:renderLayerManager',
u'ref:defaultRenderLayer',
u'ref:polySphere1',
u'ref:uiConfigurationScriptNode',
u'ref:sceneConfigurationScriptNode'
]
"""
기능화
장면의 자산 정보 목록을 함께 사전에 요약해 봅니다.
def getRefarenceInfo():
ret = []
refNodes = cmds.ls(references=True)
for RNnode in refNodes:
ref = {}
ref.update({
'namespace' : cmds.referenceQuery(RNnode, namespace=True),
'filenam' : cmds.referenceQuery(RNnode, filename=True),
'w_filenam' : cmds.referenceQuery(RNnode, filename=True, withoutCopyNumber=True),
'isLoaded' : cmds.referenceQuery(RNnode, isLoaded=True),
'nodes' : cmds.referenceQuery(RNnode, nodes=True),
'node' : cmds.referenceQuery(RNnode, nodes=True)[0],
})
ret.append(ref)
return ret
"""
# Result: [{'filenam': u'C:/Users/ponty/Desktop/cube.ma{1}',
'isLoaded': True,
'namespace': u':ref',
'node': u'ref:pCube1',
'nodes': [u'ref:pCube1',
u'ref:pCubeShape1',
u'ref:shapeEditorManager',
u'ref:poseInterpolatorManager',
u'ref:layerManager',
u'ref:defaultLayer',
u'ref:renderLayerManager',
u'ref:defaultRenderLayer',
u'ref:polyCube1',
u'ref:uiConfigurationScriptNode',
u'ref:sceneConfigurationScriptNode'],
'w_filenam': u'C:/Users/ponty/Desktop/cube.ma'},
{'filenam': u'C:/Users/ponty/Desktop/ref.ma{2}',
'isLoaded': True,
'namespace': u':ref1',
'node': u'ref1:pSphere1',
'nodes': [u'ref1:pSphere1',
u'ref1:pSphereShape1',
u'ref1:shapeEditorManager',
u'ref1:poseInterpolatorManager',
u'ref1:layerManager',
u'ref1:defaultLayer',
u'ref1:renderLayerManager',
u'ref1:defaultRenderLayer',
u'ref1:polySphere1',
u'ref1:uiConfigurationScriptNode',
u'ref1:sceneConfigurationScriptNode'],
'w_filenam': u'C:/Users/ponty/Desktop/ref.ma'}] #
"""
실제 직장에서 자주 사용합니다.
Reference 주변 조작
# リファレンスの作成
cmds.file('C:/Users/ponty/Desktop/ref.ma', reference=True, ns='ref')
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# リファレンスのリムーブ
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
RNpath = cmds.referenceQuery(RNnode, filename=True)
cmds.file(RNpath, removeReference=True)
# リファレンスの置き換え
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
cmds.file('C:/Users/ponty/Desktop/cube.ma', lr=RNnode)
같은 캐릭터를 레퍼런스로 읽을 필요가 있는 경우는, 커멘드로부터 읽으면 편해집니다.
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_1')
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_2')
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_3')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_1')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_2')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_3')
파일 조작을 수작업으로 하면 나중에 고통받는 날개가 되기 때문에 가능한 범위에서 자동화합시다!
이상!
Reference
이 문제에 관하여(Maya 참조 주위의 명령 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pontya/items/ba302f397151ae0bf442
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
참조된 객체에서 참조 노드를 가져옵니다.
우선 잘못된 방법을 소개.
node = "ref:pSphere1"
namespace = node.split(":")[0]
RNnode = namespace + 'RN'
# Result: u'refRN' #
문제없이 움직이는 것처럼 보이지만 객체의 네임 스페이스가 변경되면 움직이지 않습니다.
올바른 방법이 여기
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
# Result: u'refRN' #
원래 객체의 네임스페이스가 변경되어도 문제없이 RN 노드의 이름을 얻을 수 있습니다.
참조 노드에서 정보 검색
자주 사용하는 것
withoutCopyNumber는 모르면 빠지므로 조심합시다.
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
# リファレンスのネームスペースを取得
cmds.referenceQuery(RNnode, namespace=True)
# Result: u':ref' #
# リファレンスのファイルパスを取得
cmds.referenceQuery(RNnode, filename=True)
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# filenameのResultが'C:/Users/ponty/Desktop/ref.ma(1)'となる場合はこちらを使います。
# リファレンスのファイルパスを取得
cmds.referenceQuery(RNnode, filename=True, withoutCopyNumber=True)
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# リファレンスのロード状態を取得
cmds.referenceQuery(RNnode, isLoaded=True)
# Result: True #
# リファレンスされたオブジェクト一覧を取得
cmds.referenceQuery(RNnode, nodes=True)
"""
Result: [
u'ref:pSphere1',
u'ref:pSphereShape1',
u'ref:shapeEditorManager',
u'ref:poseInterpolatorManager',
u'ref:layerManager',
u'ref:defaultLayer',
u'ref:renderLayerManager',
u'ref:defaultRenderLayer',
u'ref:polySphere1',
u'ref:uiConfigurationScriptNode',
u'ref:sceneConfigurationScriptNode'
]
"""
기능화
장면의 자산 정보 목록을 함께 사전에 요약해 봅니다.
def getRefarenceInfo():
ret = []
refNodes = cmds.ls(references=True)
for RNnode in refNodes:
ref = {}
ref.update({
'namespace' : cmds.referenceQuery(RNnode, namespace=True),
'filenam' : cmds.referenceQuery(RNnode, filename=True),
'w_filenam' : cmds.referenceQuery(RNnode, filename=True, withoutCopyNumber=True),
'isLoaded' : cmds.referenceQuery(RNnode, isLoaded=True),
'nodes' : cmds.referenceQuery(RNnode, nodes=True),
'node' : cmds.referenceQuery(RNnode, nodes=True)[0],
})
ret.append(ref)
return ret
"""
# Result: [{'filenam': u'C:/Users/ponty/Desktop/cube.ma{1}',
'isLoaded': True,
'namespace': u':ref',
'node': u'ref:pCube1',
'nodes': [u'ref:pCube1',
u'ref:pCubeShape1',
u'ref:shapeEditorManager',
u'ref:poseInterpolatorManager',
u'ref:layerManager',
u'ref:defaultLayer',
u'ref:renderLayerManager',
u'ref:defaultRenderLayer',
u'ref:polyCube1',
u'ref:uiConfigurationScriptNode',
u'ref:sceneConfigurationScriptNode'],
'w_filenam': u'C:/Users/ponty/Desktop/cube.ma'},
{'filenam': u'C:/Users/ponty/Desktop/ref.ma{2}',
'isLoaded': True,
'namespace': u':ref1',
'node': u'ref1:pSphere1',
'nodes': [u'ref1:pSphere1',
u'ref1:pSphereShape1',
u'ref1:shapeEditorManager',
u'ref1:poseInterpolatorManager',
u'ref1:layerManager',
u'ref1:defaultLayer',
u'ref1:renderLayerManager',
u'ref1:defaultRenderLayer',
u'ref1:polySphere1',
u'ref1:uiConfigurationScriptNode',
u'ref1:sceneConfigurationScriptNode'],
'w_filenam': u'C:/Users/ponty/Desktop/ref.ma'}] #
"""
실제 직장에서 자주 사용합니다.
Reference 주변 조작
# リファレンスの作成
cmds.file('C:/Users/ponty/Desktop/ref.ma', reference=True, ns='ref')
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# リファレンスのリムーブ
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
RNpath = cmds.referenceQuery(RNnode, filename=True)
cmds.file(RNpath, removeReference=True)
# リファレンスの置き換え
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
cmds.file('C:/Users/ponty/Desktop/cube.ma', lr=RNnode)
같은 캐릭터를 레퍼런스로 읽을 필요가 있는 경우는, 커멘드로부터 읽으면 편해집니다.
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_1')
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_2')
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_3')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_1')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_2')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_3')
파일 조작을 수작업으로 하면 나중에 고통받는 날개가 되기 때문에 가능한 범위에서 자동화합시다!
이상!
Reference
이 문제에 관하여(Maya 참조 주위의 명령 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pontya/items/ba302f397151ae0bf442
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
# リファレンスのネームスペースを取得
cmds.referenceQuery(RNnode, namespace=True)
# Result: u':ref' #
# リファレンスのファイルパスを取得
cmds.referenceQuery(RNnode, filename=True)
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# filenameのResultが'C:/Users/ponty/Desktop/ref.ma(1)'となる場合はこちらを使います。
# リファレンスのファイルパスを取得
cmds.referenceQuery(RNnode, filename=True, withoutCopyNumber=True)
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# リファレンスのロード状態を取得
cmds.referenceQuery(RNnode, isLoaded=True)
# Result: True #
# リファレンスされたオブジェクト一覧を取得
cmds.referenceQuery(RNnode, nodes=True)
"""
Result: [
u'ref:pSphere1',
u'ref:pSphereShape1',
u'ref:shapeEditorManager',
u'ref:poseInterpolatorManager',
u'ref:layerManager',
u'ref:defaultLayer',
u'ref:renderLayerManager',
u'ref:defaultRenderLayer',
u'ref:polySphere1',
u'ref:uiConfigurationScriptNode',
u'ref:sceneConfigurationScriptNode'
]
"""
def getRefarenceInfo():
ret = []
refNodes = cmds.ls(references=True)
for RNnode in refNodes:
ref = {}
ref.update({
'namespace' : cmds.referenceQuery(RNnode, namespace=True),
'filenam' : cmds.referenceQuery(RNnode, filename=True),
'w_filenam' : cmds.referenceQuery(RNnode, filename=True, withoutCopyNumber=True),
'isLoaded' : cmds.referenceQuery(RNnode, isLoaded=True),
'nodes' : cmds.referenceQuery(RNnode, nodes=True),
'node' : cmds.referenceQuery(RNnode, nodes=True)[0],
})
ret.append(ref)
return ret
"""
# Result: [{'filenam': u'C:/Users/ponty/Desktop/cube.ma{1}',
'isLoaded': True,
'namespace': u':ref',
'node': u'ref:pCube1',
'nodes': [u'ref:pCube1',
u'ref:pCubeShape1',
u'ref:shapeEditorManager',
u'ref:poseInterpolatorManager',
u'ref:layerManager',
u'ref:defaultLayer',
u'ref:renderLayerManager',
u'ref:defaultRenderLayer',
u'ref:polyCube1',
u'ref:uiConfigurationScriptNode',
u'ref:sceneConfigurationScriptNode'],
'w_filenam': u'C:/Users/ponty/Desktop/cube.ma'},
{'filenam': u'C:/Users/ponty/Desktop/ref.ma{2}',
'isLoaded': True,
'namespace': u':ref1',
'node': u'ref1:pSphere1',
'nodes': [u'ref1:pSphere1',
u'ref1:pSphereShape1',
u'ref1:shapeEditorManager',
u'ref1:poseInterpolatorManager',
u'ref1:layerManager',
u'ref1:defaultLayer',
u'ref1:renderLayerManager',
u'ref1:defaultRenderLayer',
u'ref1:polySphere1',
u'ref1:uiConfigurationScriptNode',
u'ref1:sceneConfigurationScriptNode'],
'w_filenam': u'C:/Users/ponty/Desktop/ref.ma'}] #
"""
# リファレンスの作成
cmds.file('C:/Users/ponty/Desktop/ref.ma', reference=True, ns='ref')
# Result: u'C:/Users/ponty/Desktop/ref.ma' #
# リファレンスのリムーブ
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
RNpath = cmds.referenceQuery(RNnode, filename=True)
cmds.file(RNpath, removeReference=True)
# リファレンスの置き換え
node = "ref:pSphere1"
RNnode = cmds.referenceQuery(node, referenceNode=True)
cmds.file('C:/Users/ponty/Desktop/cube.ma', lr=RNnode)
같은 캐릭터를 레퍼런스로 읽을 필요가 있는 경우는, 커멘드로부터 읽으면 편해집니다.
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_1')
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_2')
cmds.file('C:/Users/ponty/Desktop/characterA.ma', reference=True, ns='CH_A_3')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_1')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_2')
cmds.file('C:/Users/ponty/Desktop/characterB.ma', reference=True, ns='CH_B_3')
파일 조작을 수작업으로 하면 나중에 고통받는 날개가 되기 때문에 가능한 범위에서 자동화합시다!
이상!
Reference
이 문제에 관하여(Maya 참조 주위의 명령 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pontya/items/ba302f397151ae0bf442텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)