Pavpervision3D(이하 PV3D) 에서 애니메이션을 구현하는 방법은 크게 두가지가 있다. 첫번째는 트위너를 이용해서 PV3D 에서 만든 오브젝트를 직접 애니메이션 하는 방법과 3D 모델링 데이터의 애니메이션을 이용하는 방법이다. 전자의 경우는 Coverflow 와 같은 모션이나 트랜지션에 유리하지만 PV3D 에서 지원하는 이동이나 회전, 스케일을 제외한 디테일한 애니메이션에는 한계가 있다. 후자는 Collada 와 같이 애니메이션을 지원하는 3D 포멧을 이용한 방법이다. 이는 3D 제작툴(3ds max)을 이용하여 매우 디테일한 애니메이션이 가능하지만 파일을 파싱하는데 많은 자원을 소비한다는 단점이 있다.
이중 후자의 경우 현재 PV3D 에서 구현할 수 있는 포멧은 Collada의 .dae 와 Quake II의 .md2 가 있다. 오늘은 이 두가지 포멧에 대해서 알아 보겠다.
DAE
texture_1.png : 106KB
texture_2.png : 109KB
totalFrame : 30
먼저 Collada 의 .dae 포멧이다. Collada는 3D 데이터를 XML 로 저장하는 포멧이다. 오픈소스로 진행되고 있으며 최근 가장 많이 사용 되어지고 있다. 다만 각 어플리케이션에서 저장하는 방법이 약간씩 다른데 이 때문에 PV3D 에서 제대로 읽어오지 못하는 경우가 종종있다. 현재까지 테스트 해 본 바로는 3ds Max 에서 ColladaMAX 로 export 하는 방법이 가장 이상적이다. 다만 ColladaMAX 가 3.05C 이후 업데이트가 없으며 Max 2009 를 지원하지 않는다는 문제가 있다. 누군가 2009용으로 빌드한 것이 있으나 모든 시스템에서 정상적으로 작동되지는 않는다.
.dae 의 경우 3D 데이터에 대한 범용적인 저장 방법이다. 그러므로 대부분의 데이터를 저장 할 수 있다. 현재로서는 가장 현실적인 방법이기는 하나 텍스트인 XML 을 파싱해야하므로 퍼포먼스가 상당히 나쁘다. 위의 샘플에서 볼 수 있드시 30프레임 애니메이션을 로드하는데 상당한 시간이 필요하다.
MD2
blade_blue.png : 57 KB
totalFrame : 200
.md2 는 본래 Quake II 용 캐릭터 모델링 데이터 포멧이다. 많은 Quake 유저들을 통해서 많은 캐릭터 파일이 공개 되어있을 뿐 아니라 다른 게임등에도 사용되는 듯 하다. .md2의 특징은 ByteArray 를 통해서 파싱하는데 거의 시간이 걸리지 않는 다는 점이다. 위 md2 샘플을 보면 무려 200프레임의 애니메이션 정보를 담고 있으나 .md2 파일의 용량은 378 KB 밖에 되지 않는다. 30프레임에 1.5 MB 인 .dae 와는 큰 차이를 보인다. 물론 두 파일의 포멧적 특성상 이러한 차이가 나는 것은 당연하겠으나 PV3D에서 에니메이션을 구현할때 확실히 큰 장점이 아닐 수 없다. 하지만 아쉽게도 치명적인 단점이 존재하는데 그것은 파일의 태생상 한 파일에 여러 오브젝트와 메터리얼, 라이트 등에 대한 정보를 담을 수 없다는 것이다.
결과적으로 현시점에서 PV3D 를 웹사이트에 적용 시킨 다면 DAE 이 외는 대안이 없어 보인다. 하지만 이 또한 낮은 퍼포먼스라는 걸림돌 때문에 쉽게 적용시키기 어렵다. 결국 최소화된 모델링 데이터를 통한 최적화 밖에 답이 없어 보인다. Flash Player 10 이 보편화 되고 CS4 를 통한 3D 작업에 대한 정보가 더 많아지면 3D 작업은 CS4 에서 구현하는 것이 가장 좋을 것 같다.
Pingback: Collada was exported for Papervision3D & Away3D | Sewonist.com