긴 헤어에 사용할 Maya 전용 헤어 애니메이션 시스템을 고안하는 프로젝트를 소개합니다. 페인트 효과를 사용할 수도 있지만 헤어 전용 툴을 만들면 원하는바를 보다 정확히 표현할 수 있습니다. 제가 예전에 라이트웨이브(Lightwave)를 사용할 때 다뤄본 Joe Alter의 Shave and a Haircut 또한 최근 출시되었습니다. 정말 훌륭한 툴이죠. 이 프로그램의 주목적은 시뮬레이션에 기반을 두지 않는 헤어 툴을 만드는 것입니다. 즉 캐릭터에 살을 붙이는 대신 헤어에 초점을 맞추고 있는 씬을 위한 것입니다. 하지만 Maya에 내장된 동영학 시스템을 지원할 것을 염두에 두고 프로젝트를 진행했습니다. Maya API와 Mel 스크립트를 익힐 수도 있습니다. 원한다면 사용해보고 이를 알려주십시오.
초기 코드 개발과 연구의 대부분은 제가 Kansas State University의 대학생일 때 이뤄졌습니다. 연구 결과를 반영해 만든 툴은 애니메이션과 트윅(Tweak)에 처음 사용했을 때보다 향상되었습니다. 직접 사용해보고 변경할 사항이 있으면 알려주십시오. 이 소프트웨어의 저작권 소유자가 누구인지(필자 또는 Kansas 대학 이사회)와 같은 몇 가지 법적 문제 때문에 이 프로젝트를 오픈 소스로 출시하여 사용자가 금전적인 문제나 소유권 같은 골치 아픈 문제를 신경 쓰지 않아도 되도록 하였습니다. 정말로 저는 그런데 관심이 없습니다. 단지 이것을 보고 감명을 받은 누군가 저를 채용하고 싶어하기를 바랄 뿐입니다. 이 글을 읽고 저를 채용하고 싶으시다면 pickler@softhome.net로 연락처를 남겨주십시오.
최신 릴리즈 정보
v0.4의 주목적은 서브디비전 서페이스(Subdivision Surface)를 지원하는 것입니다. 이 플러그인은 그 디자인한 방식의 특성상 서브디비전 서페이스 기능을 추가하면서 넙스(Nurbs)에 거의 영향을 주지 않았습니다. 보다 빠르고 유연한 파트 시스템을 만들었다고 분명히 말할 수 있지만 그로 인해 몇 가지 문제가 발생하기는 합니다. 이번 릴리즈에서 다음과 같은 문제가 발견되었습니다.
- hairStage1 (hairRootInfluenceStage)는 멀티 쓰레드 방식이 아닙니다. 새로운 버전은 이전 버전에서 멀티 쓰레딩으로 인해 발생한 문제를 모두 수정했지만 그 때문에 쓰레드가 하나인채 운영됩니다. 이 노드의 버그를 모두 수정하면 멀티 쓰레드 방식으로 구현하겠습니다.
- HairShape용 속성 에디터 인터페이스에서 컨트롤 웨이트의 인터페이스를 수정해야 합니다.
- 평평한 서페이스라고 하는 이름만 들어도 느낌이 좋지 않은 버그가 있습니다. 헤어가 달린 서페이스가 완전히 평평할 때(평면일 때) Influences 노드에서 오류가 발생하는 버그입니다. 이 버그를 찾아서 고치는 것은 어렵지 않습니다. 이 문제는 궁극적으로 완전히 해결할 수 있습니다.
- 파트가 현재 깨져서 사용할 수 없습니다. 새로운 버전에는 새로운 파트 아키텍처가 포함되어 있지만 일부는 좀 이상하게 작동합니다.
- 예상보다 빨리 릴리즈하는 바람에 새로운 버전을 완전히 테스트할 시간이 없었습니다.
- Windows를 지원하지 않습니다. 요즘엔 모두 Windows를 필요로 하지요.
- 좋은 예제가 필요합니다. 털복숭이 애완견과 같이 헤어를 적용해볼 적당한 서브디비전 캐릭터가 있으면 알려주십시오.
- 매뉴얼을 좀 만들어봤는데 아직 멀었습니다. 일부 사용자들이 자원해서 튜토리얼을 만들어준다고 했지만 모두 Windows 포트를 필요로 하는 바람이 진척되지 않았습니다. 곧 시작할 수 있도록 준비하겠습니다.
Maya 4.0.1을 설치한 Redhat Linux 7.3에서 이 소스를 구현하고, 테스트했습니다. 다른 버전의 Maya나 운영 체제는 사용할 수 없었기 때문에 그에 호환되는 플러그인을 개발할 수 없습니다. 현재 Windows용으로 개발중인 플러그인은 v0.4.1에서는 사용하실 수 있습니다. Linux의 다양한 구성으로 인해 프리컴파일 버전을 제공할 수 없습니다. 문제가 있으면 언제든지 이메일로 문의하십시오.
헤어: (최신 버전은 20030127)
- 20030217 121.8k v0.4.1
- Influence 코드의 일부 버그 수정(또한 일부 코드의 복잡한 정도를 N^3에서 N^2로 완화함)
- 파트 다시 활성화
- 20030127 117.8k v0.4.0
- 서브디비전 서페이스 지원
- Script Paint 툴과 완전히 호환하여 페인트를 지원
- 보다 빠르고 유연한 새로운 파트 아키텍처
- Shelf의 Script Paint 버튼 수정. 이제 서페이스를 선택한 다음 Scalp를 누르면 서브디비전이나 넙스에 맞게 구성된 Script Paint 툴로 이동됩니다.
- 향상된 매뉴얼
- 20021228 142.6k v0.3.4
- 이중 쓰레딩을 지원하는 hairStage2(hairRootSlaveStage). 컨트롤 커브를 조절하여 헤어를 모델링할 경우 반응 시간이 상당히 빨라집니다.
- 땋은 머리 예제 파일 추가, 이 플러그인이 작동하는 방식을 이해할 수 있는 좋은 예제입니다(힌트: 하이퍼그래프를 확인하십시오).
- 애니메이션 도중 일부 헤어가 묶음 둘레를 점프하는 버그 수정, 랜덤 함수가 사용하는 키를 속성을 통해 수동으로 설정하도록 만들어서, 프레임 사이에서 일정하면서 다양한 결과를 얻을 수 있도록 함.
- 다시 작동하도록 버튼 수정(헤어 페인트 툴 제외)
- hairAttach 명령 완성
- hairPartAttach 명령 완성
- 20021209 92.0k v0.3.3
- 파트를 교차는 효과를 계산할 때 발생하는 오류 수정
- 묶음의 양끝을 난수화하여 뭉툭하게 보이지 않게 만듬(아래에서 새로운 버전의 Liquid를 다운로드하십시오)
- 20021203 90.8k v0.3.2
- 20021201 90.5k v0.3.1
- 20021121 89.6k v0.3.0
- 20021024 81.0k
- 20021019 79.4k
- 20020917 62.4k
- 20020916 62.0k
- 20020913 38.2k
- 20020907 36.1k
- 20020903 32.1k
Liquid 확장판:
- 일반 Liquid : Alfred를 지원하지 않습니다. BMRT의 ribwrite 라이브러리에서 컴파일하고 3Delight를 렌더러로 사용하도록 설정되어 있습니다. 최신 테스트 버전이므로 확실히 작동합니다.
- 패치 : sourceforge.net cvs에 있는 기본 Liquid의 패치입니다. 일련의 훕스(Hoops)와 패치를 거쳐 ediff를 연구한 결과입니다. 아직 제대로 작동하는지 테스트하지는 않았습니다. 임의의 Liquid 버전으로 본 헤어 프로젝트를 테스트하려면 이 패치를 사용하십시오.

간단한 서브디비전 서페이스를 테스트하기 위한 스크린샷입니다. 서페이스에서 헤어는 넙스 버전과 비슷한 방식으로 페인트되었기 때문에, 본 플러그인의 서브디비전 및 넙스 버전용 인터페이스와 테크닉은 거의 동일합니다.

v0.3 시리즈에서 렌더링한 이미지입니다. 어떤 사람이 이 플러그인에서 땋은 머리도 만들 수 있냐고 묻길래 만든 것입니다. 말하지 않아도 엉성한 묶음을 보면 알 수 있겠지만 그다지 심혈을 기울이지는 않았습니다. 하지만 본 플러그인의 가능성을 입증하기에는 충분하다고 봅니다. 이 테스트를 통해 v0.7 시리즈를 위해 준비해온 Self Collision의 중요성을 확인할 수 있습니다.

위는 Liquid의 확장 버전에서 만들고 3Delight에서 렌더링한 이미지입니다. Liquid에서 파일을 직접 수정한 다음 Deep Shadow Map을 사용하여 3Delight로 렌더링하였습니다. Liquid를 확장하여 Deep Shadow Map을 지원할 수 있기 때문에 Perl 스크립트로 실행하지 않아도 됩니다.

위 이미지는 헤어를 부착한 간단한 스피어(Sphere)입니다. 위에서 0.3 버전으로 완전히 렌더링한 이미지로 가기 전 테스트 단계입니다.
|