여러개의 예제를 만들어 실행해 보아도, 도저히 차이점이 이해가 가지 않네요... help 파일의 내용으로도 이해가 가지 않아서... 도움 부탁드립니다.
dagObject는 hypergraph에서 connection을 display하면 알 수 있지만, 제가 질문한 것은 ls -type 과 ls -exactType과의 차이점을 질문 드린것입니다.
예로, 위에서 설명한 것처럼, 마야를 실행한 후, ls -type camera; 을 입력한 것과 ls -exactType camera; 을 입력한 것의 차이점이 없네요.
둘 다 // Result: frontShape perspShape sideShape topShape //라고 출력됩니다.
camera의 경우엔 상속받은 오브젝트 클래스가 없기 때문입니다.
제가 예제를 잘못 골랐네요.
새로운 scene을 open 하시고, pCube 하나랑 pSphere 하나를 만들어 둘을 animConstraint로 연결한 상태에서
아래처럼 해보시면 결과가 다른 걸 보실 수 있을 겁니다.
animConstraint 노드가 transform노드를 상속받았기 때문에,
ls -typ transform에서는 나오지만,
ls -exactType transform에서는 나오지 않지요.
ls -typ transform;
// Result: front pCube1 pSphere1 pSphere1_aimConstraint1 persp side top //
ls -exactType transform;
// Result: front pCube1 pSphere1 persp side top //
감사합니다. 이제 이해가 되네요. 쉽게 정리하면, 특정 object의 특정 transform node가 다른 node에 연결되어 있는 경우, ls -type "transform";을 사용하면, transform node들만이 출력되는 것이 아니라, 연결된 다른 node들의 이름도 함께 출력됩니다. 그러나, ls -exactType "transform";을 사용하면, transform node가 다른 node에 연결되어 있더라도, 그 transform node의 이름만이 출력되는 것이군요...
'연결'이 아니라 오브젝트가 애초에 '상속'되었을 때와 관련된 겁니다.
이건 마야 자체가 설계되는 시점에서 정해지는 관계구요.
'연결'은 사용자가 사용하면서 연결을 맺거나 끊을 수 있는거잖아요.
이런식의 '상속'관계에 대해서는 앞에서 말씀드린 링크에서 확인하실 수 있는 거구요.
헷갈리는 개념에 대해 감사합니다. 즉, object를 하나 만들면, 그 object에서 transform node의 child node로 shape node가 만들어지는 것과 같이 object가 만들어질 때 자동적으로 만들어지는 상속관계를 ls -type "node타입"; 을 사용하면 해당 node타입의 node의 상속관계가 함께 표시되지만, ls -exactType "node타입"; 을 사용하면, 해당 node타입만이 표시되는 것이군요.
죄송하지만, 그것도 아니구요, 여기서 말씀드린 '상속'관계란 마야 안의 씬그래프에서 보여지는 '계층'구조와는 무관한 마야 설계시의 Object Oriented Programming 방법론에서의 '상속'입니다.
간단하게 설명드리자면, 마야와 같은 프로그램이 작성될 때에 마야 내의 모든 오브젝트들을 하나씩 설계하는 것이 아니고, 어떤 오브젝트는 다른 오브젝트에 기반해서 설계하거든요. 이러한 관계를 '상속'이라고 부릅니다.
ls -typ 과 ls -exactType은 이러한 '상속'관계를 구분하여 오브젝트를 찾아내는 명령인 것이구요.
또 다른 tag에 대해 모르겠네요...
즉, ls -dag -type "노드타입";
과 ls -type "노드타입";
의 차이점... 즉, -dag의 용도가 무엇인지요??? 실행해서 본 결과 출력되는 결과물이 동일한 것 같아서....
ls -dag와 ls-type이 동시에 쓰여지면 별 의미가 없지요,
ls -dag 는 마야의 노드들중에 DAG노드만 리턴하라는 명령이니까요.
참고로 마야의 모든 노드들은 DG노드이고, DG노드중 일부가 DAG노드입니다.
DG 노드에서는 cycle이 가능하거든요, A->B, B->A 로 연결가능,
DAG노드는 cycle이 불가능하다는 뜻이지요. parent, child 관계는 한방향이기만 하니까요.
그러면, hierarchy에서 parent-child 관계를 이루는 node들은 DAG node들이고, hypergraph의 connection window에서 어떠한 node들의 attribute들이 서로 상호적으로 연결되어 있는 상태의 node들은 DG node이라는 말인가요?????

Maya의 모든 오브젝트들에는 상속관계가 있습니다. (OOP에서 inheritance)
예를 들어, 새로운 Maya scene을 open하시고,
ls -typ dagNode;
라고 입력하시면 다음과 같은 결과가 나오는데요,
// Result: front frontShape persp perspShape side sideShape top topShape //
ls -exactType camera;
라고 입력하시면 아래와 같이 결과가 다르게 나오지요.
// Result: frontShape perspShape sideShape topShape //
이 이유는, front오브젝트나 frontShape 오브젝트 모두 dagNode 라는 클래스를 상속받은 오브젝트이지만,
이중에 frontShape오브젝트만이 camera 클래스의 오브젝트이기 때문입니다.
이러한, 오브젝트들의 상속관계는
Maya Help에서 Nodes를 선택하시고,
Hierarchy를 선택하시면 보실 수 있습니다.
웹에서도 보실 수 아래 주소에서 보실 수 있네요.
http://download.autodesk.com/us/maya/2010help/Nodes/frame_hierarchy.html