【MAYA】머티리얼의 페이스 어사인이 있는지 여부를 판단한다
htps : // 이 m / 하라 요키 / ms / 8에 c88d8에서 7 ~ b91357fc8
이 근처의 고찰을 바탕으로 만들어 보았습니다. (이쪽의 기사로부터 꺼내서 이동했습니다.)
MAYA2018 + MacOS Sierra에서 작동 확인 중입니다.
SG에 대한 연결이 인스턴스 객체 그룹과 객체 그룹 중 어느 것에서 뻗어 있는지 확인해도 좋을 것 같지만,
objectGrpCompList
그 판단으로 해 보겠습니다.import pymel.core as pm
def has_face_assign(shape):
"""
シェイプにマテリアルのフェイスアサインがあるかどうか確認する
:param shape: チェックするシェイプ
:type shape: pymel.nodetypes.Shape
:rtype: bool
"""
instanceNumber = shape.instanceNumber()
objectGrpCompList = \
shape.instObjGroups[instanceNumber].objectGroups[0].objectGrpCompList
num_face_block = (len(objectGrpCompList.get()))
return num_face_block > 0
여기에서 동작 검증합니다.
shape = pm.PyNode('pCube1|pCubeShape1') # フェイスアサインのないシェイプ
has_fa = has_face_assign(shape)
print(has_fa)
#出力:False
shape = pm.PyNode('pCube2|pCubeShape1') # フェイスアサインのあるインスタンスシェイプ
has_fa = has_face_assign(shape)
print(has_fa)
#出力:True
shape = pm.PyNode('pCube3|pCubeShape2') # インスタンスが存在しないフェイスアサインのないシェイプ
has_fa = has_face_assign(shape)
print(has_fa)
#出力:False
shape = pm.PyNode('pCube4|pCubeShape3') #インスタンスが存在しないフェイスアサインのあるシェイプ
has_fa = has_face_assign(shape)
print(has_fa)
#出力:True
shape = pm.PyNode('pCube5|pCubeShape4') #マテリアルが外れてしまったシェイプ
has_fa = has_face_assign(shape)
print(has_fa)
#出力:False
문제 없을 것 같습니다.
Reference
이 문제에 관하여(【MAYA】머티리얼의 페이스 어사인이 있는지 여부를 판단한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/harayoki/items/9af90606167398bd8e68텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)