2009년 03월 15일
Nebula2 - 캐릭터 애니메이션 워크 플로우
이전 포스팅에서 엔진 및 미들웨어 별 캐릭터 워크 플로우에 대해서 이야기한 적이 있습니다.
Nebula2에서는 하나의 애니메이션 파일에 캐릭터의 모든 애니메이션들이 포함되어 있어야 하므로 개발시 새로운 애니메이션 등이 추가될 때 번거로운 점이 있다고 언급했는데 최근에 소스 코드를 보다고 이미 그러한 부분에 대한 코드가 있다는 것을 발견했습니다. 코드는 업데이트 되었지만 부실한(?) 문서와 관련 샘플이 없는 관계로 눈치채지 못했던 것이지요.
Nebula2에서는 nSkinAnimator 대신 nCharacter3Animator 를 이용하면 애니메이션 파일들을 순차적으로 로딩하면서 병합하여 사용할 수 있습니다. 즉, 작업은 개별 애니메이션 파일이 수정되거나 추가될 때마다 지정된 폴더 내로 애니메이션 파일만 추가하면 되며, 엔진에서는 실제로 nCharacter3Animator의 애니메이션을 읽어 들일 때, 해당 폴더의 모든 애니메이션들을 차례로 읽어 들이면서 병합해서 새로운 애니메이션 데이터를 생성합니다. 나머지는 기존의 nSkinAnimator 와 동일하며 차이가 없습니다.
실제로 nCharacter3SkinAnimator::LoadResources() 함수를 살펴 보면 nCombinedAnimation 클래스로 메모리의 애니메이션 파일 객체들을 병합하는 코드를 볼 수 있습니다.
그런데 애니메이션 데이터의 용량이 큰 경우에는 아무래도 이런 방법으로는 처리가 힘듭니다. 이 경우에는 좀 더 지능적인 스트리밍이 필요한데, Nebula2에서의 리소스 관리는 스트리밍 부분은 지원이 약하죠. (Nebula3에서는 모든 리소스에 대한 스트리밍 지원이 기본적으로 지원됩니다)
nCharacter2SkinAnimator 의 경우 현재 3dsmax 플러그인에서는 지원하고 있지 않습니다만 회사 일도 있고 하니 조만간 업데이트가 이루어지리라 생각합니다. ^^
Nebula2에서는 하나의 애니메이션 파일에 캐릭터의 모든 애니메이션들이 포함되어 있어야 하므로 개발시 새로운 애니메이션 등이 추가될 때 번거로운 점이 있다고 언급했는데 최근에 소스 코드를 보다고 이미 그러한 부분에 대한 코드가 있다는 것을 발견했습니다. 코드는 업데이트 되었지만 부실한(?) 문서와 관련 샘플이 없는 관계로 눈치채지 못했던 것이지요.
Nebula2에서는 nSkinAnimator 대신 nCharacter3Animator 를 이용하면 애니메이션 파일들을 순차적으로 로딩하면서 병합하여 사용할 수 있습니다. 즉, 작업은 개별 애니메이션 파일이 수정되거나 추가될 때마다 지정된 폴더 내로 애니메이션 파일만 추가하면 되며, 엔진에서는 실제로 nCharacter3Animator의 애니메이션을 읽어 들일 때, 해당 폴더의 모든 애니메이션들을 차례로 읽어 들이면서 병합해서 새로운 애니메이션 데이터를 생성합니다. 나머지는 기존의 nSkinAnimator 와 동일하며 차이가 없습니다.
실제로 nCharacter3SkinAnimator::LoadResources() 함수를 살펴 보면 nCombinedAnimation 클래스로 메모리의 애니메이션 파일 객체들을 병합하는 코드를 볼 수 있습니다.
그런데 애니메이션 데이터의 용량이 큰 경우에는 아무래도 이런 방법으로는 처리가 힘듭니다. 이 경우에는 좀 더 지능적인 스트리밍이 필요한데, Nebula2에서의 리소스 관리는 스트리밍 부분은 지원이 약하죠. (Nebula3에서는 모든 리소스에 대한 스트리밍 지원이 기본적으로 지원됩니다)
nCharacter2SkinAnimator 의 경우 현재 3dsmax 플러그인에서는 지원하고 있지 않습니다만 회사 일도 있고 하니 조만간 업데이트가 이루어지리라 생각합니다. ^^
# by | 2009/03/15 15:11 | Nebula Device | 트랙백 | 덧글(0)
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]