DNACalib 라이브러리의 명령 및 툴 컬렉션을 통해 DNA 파일에 포함된 데이터를 수정할 수 있습니다. 라이브러리는 C++로 작성되었으며, Python 바인딩을 제공합니다. 바인딩은 SWIG 라이브러리를 사용하여 생성됩니다.
이러한 툴은 DNA 파일 데이터를 절차적으로 수정하기 위해 단독 표시하는 데 유용하며, 보다 인터랙티브하고 아티스트 친화적인 워크플로를 위해 자체 파이프라인 내에서 손쉽게 확장하거나 맞춤화할 수 있습니다. 예를 들어, DCC 애플리케이션에서 씬 및 해당 DNA 데이터를 모두 수정하는 이름변경 또는 삭제 명령을 생성할 수 있습니다.
DNACalib 툴은 다음 방식으로 사용할 수 있습니다.
C++ 프로젝트의 경우 소스를 통해 또는 바이너리와 연결하여 사용
호환되는 Python 환경에서 Python 바인딩을 통해 사용(명령줄 포함)
Maya의 경우 제공된 레퍼런스 구현을 통해 Python 바인딩으로 사용
DNA 데이터에 직접적인 영향을 미치는 명령이 DNACalib에 포함되어 있다는 것은 여러 번 강조해도 지나치지 않습니다. Maya 내에서 MayaPy 및 GUI의 스크립트 기능으로 레퍼런스 구현을 실행할 수 있지만, 이는 Maya 씬의 변경사항과 일치하거나 반응하지는 않습니다. 씬과 DNA 데이터에 동시에 영향을 줄 수 있는 래퍼를 사용하고 싶다면 이러한 래퍼를 직접 생성해야 합니다.
DNACalib 명령
조인트, 메시, 블렌드 셰이프, 애니메이션 적용된 맵 이름변경
이러한 컴포넌트는 모두 메타휴먼 헤드 릭이 올바르게 작동하는 데 꼭 필요합니다. DNACalib가 출시되기 전에는 이 컴포넌트들의 이름을 변경하면 일반적으로 연산자와 씬/에셋 오브젝트 및 파라미터 간의 연결이 끊어졌습니다.
DNACalib 명령을 사용하면 이 중 어떤 컴포넌트라도 원하는 (법적) 이름으로 변경할 수 있으므로, 파이프라인이나 툴링이 이름과 연관된 경우 이제 메타휴먼 헤드 릭을 그에 맞게 바꿀 수 있습니다.
조인트, 메시, 블렌드 셰이프, 조인트 애니메이션 제거
제거만 가능하며 추가는 불가능합니다. 또한 제거로 인해 기본 구조에 미치는 영향은 제거한 당사자의 책임입니다.
컴포넌트 파츠를 제거하면 LOD 콘텐츠 내에서 릭의 가중치를 줄이는 데 도움이 되기도 합니다. 또한 이렇게 조인트를 제거하면 웨이트 맵 생성 시 해당 조인트의 영향 없이 웨이트 맵이 지오메트리 전반에서 올바르게 파라미터화됩니다.
전체 릭 트랜스포메이션
이제 이 명령을 통해 전체 계층구조로 전파되는, 루트 노드의 이동, 회전, 스케일링이 가능합니다. 이 파라미터들의 어떤 조합이든 트랜스폼할 수 있습니다.
이 명령을 사용하여 비균등 스케일링을 수행하는 것도 가능하지만, 권장하지는 않습니다.
이 툴을 통해 메타휴먼 헤드를 스케일 조절하고, 제공되는 크기 외 다양한 크기의 커스텀 바디 또는 노멀 스케일과는 다른 세팅 및 크리처와 함께 사용할 수 있습니다.
LOD 제거
DNA는 많은 양의 LOD를 빌드하는 데 필요한 모든 것을 제공합니다. 그러나 가끔은 LOD의 서브셋만 필요할 때도 있으며, 메타휴먼 헤드 릭이 포함된 에셋을 업데이트할 때마다 사용되지 않는 LOD를 제거하는 것은 반복적이고 지루한 작업이 될 수도 있습니다.
이 명령은 DNA 파일의 콘텐츠에서 LOD를 제거하므로 빌드는 더 빨라지고 에셋은 더 작아지는 결과로 이어집니다.
중립 트랜스폼 및 메시 변경
이 명령을 사용하여 조인트 및 뉴트럴 포즈 메시의 뉴트럴 트랜스폼(이동, 회전, 스케일링)을 설정합니다.
이를 통해 바인드 포즈 세팅 및 새로운 사전 스키닝 버텍스 위치 세팅과 동일한 작업을 DNA에서 효과적으로 수행할 수 있습니다.
지오메트리 버텍스가 주어진 베이스 메타휴먼 메시에서 멀어질수록 릭에 문제가 생길 가능성도 커집니다. 특히 눈꼬리, 입꼬리 등 결정적인 영역에서는 더욱 그렇습니다. 영향이 매우 미미하고 리지드한 영역이나 비헤이비어가 단순한 영역(예: 귀, 아래턱 끝, 턱 모서리 등)을 수정하는 것은 일반적으로 더 자유롭습니다.