사실 이제 가볍게 훑어본 정도의 정보력만 가지고 막상API로 어디까지 커스터마이징이 가능한지도 모르고
노드나 커맨드의 구조작성을 어떤식으로 접근해야하는지도 잘 모르는 상태에서
공부를 해 나가는 겸 MultiConnectNode 라는 간단한 노드를 만들어 보고자한다.
원하는 MultiConnectNode의 구조는 이렇다.
1. DAG노드이어서 outliner 하이라키 구조에서 보인다.
2. outliner에서 커스텀 아이콘을 가지고 있어서 다른 오브젝트들과 구별된다.
3. attribute editor 에 선택 가능한 textList_1, textList_2 를 가지고 있다. ( ikSystem노드같은 방식 )
4. 다른 트랜스폼노드 등을 MultiConnectNode에 child 시키면 textList_1 에 그 목록이 뜬다.
5. textList_1에 나타난 노드들이 가지고 있는 keyable attribute들 중 공통된 attribute만 textList_2 에 뜬다.
6. textList_2에서 선택한 attribute들은 MultiConnectNode의 outputValue와 연결되고 다시 그 값은 MultiConnectNode의 inputValue와 연결된다.
이러한 노드 구조를 테스트 해보는 이유는 플러그인을 제작함에 있어
여러 기능들을 가진 각각의 노드들을 모듈처럼 활용하여
모듈들을 조합하여 플러그인을 만들어내는 방식을 구현하고자 한다.
예를 들어 앞서 만들었던 treeSet 같은 경우에도
데이터를 수집하는 모듈
수식을 담당하는 모듈
여러 개체들의 attribute의 Value를 일괄적으로 관리하는 모듈
세가지의 모듈이 있었으면 이들을 조합해서 쉽게 다양한 형태의 treeSet plugin 들을 빠르게 구현할 수 있었을 거다.
오브젝트 1 ---| |--- 오브젝트 1
| |
오브젝트 2 | --- 데이터 수집 ---- 수식 ---- 데이터 관리 --- | 오브젝트 2
| |
오브젝트 3 ---| |--- 오브젝트 3
이를 위한 기초단계이다.