【MAYA】 머티리얼의 페이스 어사인시의 노드 구성 이해 #2

3998 단어 파이썬maya
이 기사는 이전 기사 #1 이후입니다.

얼굴 할당 + 인스턴스



얼굴 할당이 있는 상태의 모양에서 인스턴스를 생성해 봅니다.


인스턴스 객체 그룹 (인스턴스 각각을 나타내는)이 하나 증가하고, 각각의 객체 그룹 (페이스 그룹을 나타내는)에서 각 SG로 연결이 늘어나고 있습니다. 예상대로입니다.


자식 인스턴스 측에 SG3의 머티리얼 페이스 어사인을 늘려 보았습니다. 인스턴스 오브젝트 그룹 1측에 오브젝트 그룹이 1개 늘어나, SG3에 커넥션이 늘어나고 있습니다. 여기도 예상대로입니다.
(지금까지 구성 요소의 인스턴스 개체 그룹 측 상태에는 변화가 없습니다.)

그래서, 생각했습니다만, 인스턴스간에서는 셰이프의 형상은 쉐어 하고 있습니다만, 머티리얼의 상태는 완전 별개로 보관 유지되고 있는 것 같기 때문에, 페이스 어사인을 한 셰이프의 인스턴스를 건간 늘리면, 데이터량이 점점 늘어나는 일이 되지 않을까요. .

자식 인스턴스 측에만 얼굴 할당




먼저 얼굴 할당하기 전에 인스턴스를 만듭니다. 각각 인스턴스 객체 그룹에서 SG로 연결이 붙여져 있습니다.


자식 인스턴스 측에 머티리얼을 얼굴 할당합니다. 페이스 어사인이 없는 쪽은 인스턴스 오브젝트 그룹으로부터 SG에 커넥션이 붙여진 채로, 페이스 어사인이 있는 쪽은, 인스턴스 오브젝트 그룹내의 오브젝트 그룹측으로부터 SG에 커넥션이 다시 붙여졌습니다. 역시, 컴퍼넌트의 인스턴스 오브젝트 그룹측의 상태에는 변화는 없습니다.

우선, 인스턴스가 얽혀도 알기 어려운 노드 그래프가 되는 일은 없는 것 같습니다.

또한,
objectGroup = shape.instObjGroups[0].objectGroups[0]
attrs = (objectGroup, objectGroup.objectGrpCompList,
  objectGroup.objectGroupId, objectGroup.objectGrpColor)
for a in attrs:
    print('{}({}) : {}'.format(a, a.type(), a.get()))
#以下、出力:
#pCubeShape1.instObjGroups[0].objectGroups[0](TdataCompound) : [[], 0, -1]
#pCubeShape1.instObjGroups[0].objectGroups[0].objectGrpCompList(componentList) : []
#pCubeShape1.instObjGroups[0].objectGroups[0].objectGroupId(long) : 0
#pCubeShape1.instObjGroups[0].objectGroups[0].objectGrpColor(short) : -1

페이스 어사인이 없는 셰이프에 대해서도 objectGroupsobjectGrpCompList 에의 액세스는 할 수 있었습니다. 대응 페이스 번호가 없어지고 있습니다.

일단 정리


  • 머티리얼의 페이스 어사인을 하면 노드 그래프가 복잡해진다
  • 그러나 본질적으로 인스턴스 객체 그룹 아래를 보면 충분합니다.
  • 모양의 인스턴스가 얽혀도 거기까지 복잡하지 않습니다
  • 페이스 어사인이 있는 모양의 인스턴스를 건간 만들면 관리가 번거로울 것 같다
  • 컴포넌트의 인스턴스 객체 그룹에 대해 잘 모르겠다. 기본 머티리얼 할당?

  • 컴포넌트의 인스턴스 객체 그룹에 대해 뭔가 조사가 진행되면 #3을 쓰고 싶습니다.
    영문으로 상관 없기 때문에, 해설이 있는 링크 등 아는 분은 가르쳐 주시면 행복.

    좋은 웹페이지 즐겨찾기