Papervision3D(PV3D) 와 Away3D(AW3D) 같은 3D 라이브러리는 여러종류의 3D 포멧을 임포트 해서 쓸 수 있습니다. 대표적인 것들로는 Collada, 3Ds, Md2 같은 포멧을 사용 할 수 있습니다. 이들 중 가장 널리 사용되고 있는 포멧은 Collada 입니다. Collada ( www.collada.org ) 3D 포멧을 공통으로 사용 할 수 있게 해주는 XML 스키마 입니다. 거의 대부분의 3D 어플이 이 포멧을 지원하며 포토샵 같은 어플에서도 임포트가 가능 합니다. 이 Collada 는 거의 대부분의 3D 속성을 저장 할 수 있습니다. Mesh, Material, Camera, Light 등등 그 중 가장 유용한 점은 자체에 애니메이션을 저장 할 수 있다는 점입니다. 퍼포먼스만으로 만 본다면 다른 Obj 나 3Ds 등의 포멧이 더 좋을 지도 모르겠으나 이들 포멧은 애니메이션을 사용 할 수 없습니다. 애니메이션이 가능한 포멧으로는 Md2도 있지만 이는 다른 속성이 저장되지 않습니다. 이와 관련해서 전에 비교한 글이 있습니다. ( https://sewonist.com/2009/01/dae-vs-md2/ ) 즉 현재로서 애니메이션된 3D 오브젝트를 표현하는 가장 적당한 답은 Collada 로 가져 오는 것 입니다.
근데 아쉽게도 여기에 약간의 문제가 있습니다. Collada는 3D 데이터를 표현하는 단순한 XML 스키마 즉 구조 일 뿐입니다. 그러다보니 각각의 프로그램들이 이 포멧을 표현하는 방식에서 조금씩 차이를 보입니다. 이 표현의 차이가 우리가 PV3D 나 AW3D 에서 파일을 가져다 쓰기 어렵게 만듭니다. 여러번 테스트 해 본 결과 일단 단순한 정지 상태의 오브젝트는 왠만해서는 잘 가져와지는 것 같습니다. 하지만 본애니메이션이 포함되면 이야기가 달라집니다. PV3D 에서 사용할 경우는 Autodesk 의 FBX Converter 로 컨버터를 한번 해주면 대부분 잘 출력됩니다. Collada 가 Mesh 와 Animation 을 표현하는 방법이 몇가지 있는데 FBX Converter의 경우 Mesh 는 폴리곤 Animation 은 각 frame 별로 bake 된 데이터를 저장 하는 것 같습니다. 그리고 PV3D 와 AW3D 모두에서 사용 하려면 Autodesk 3ds Max 에서 ColladaMax 로 ( 또는 Maya 에서 ColladaMaya ) 로 익스포트 하는 방법이 최선입니다. ColladaMax는 Feeling Software 란 곳에서 제작, 배포했었는데 언젠가 부터 다운로드가 사라졌더군요. 여튼 이것저것 고민 하기 싫으시면 그냥 위의 솔루션으로 작업하시면 모든게 해결 됩니다.
하지만 저는 3ds Max 를 사용하지 않는다. ColladaMax 가 업데이트 되지 않고 있다는 쓸데 없는 이유로 다른 3D 프로그램에서 Collada 를 가져오는 방법을 고민해 봤습니다. 결과는 참패입니다. 무려 5일간을 잠도 안자고 고민했지만 답이 없습니다. 죄송합니다 ㅜ.,ㅜ 아래 부터는 결과 데이터 입니다.
테스트 환경
- Cinema4D R11.523
- Blender 2.52b
- 3ds max 2009
- Flash CS5
- Autodesk FBX Converter 2011.3
- Papervision3D 2
- Away3D 3.5
Setting
결과
collada 는 해당 프로그램의 기본 collada 익스포트입니다. fbx 는 먼저 FBX 로 익스포트 한후 Autodesk FBX Converter 로 컨버터 한 파일입니다. 3dsmax 의 경우 기본 익스포트가 autodesk collada 입니다. 이 익스포트는 실제로 FBX Converter 로 나온 collada 와 동일 합니다. 3dsmax_collada 가 ColladaMax 를 통해서 나온 collada 입니다. 실제 익스포트 이름으로 구분했습니다.
표를 보시면 바로 느껴지는게 PV3D는 대부분의 경우 출력을 합니다. AW3D 의 경우 FBX Converter 로 나온 파일을 출력하지 못합니다. 이유는 PV3D 의 경우 ascollada 라는 프로젝트를 통해 파싱하기 때문에 거의 모든 옵션을 파싱하는 거 같습니다. 하지만 AW3D의 경우 폴리곤으로 지정된 Mesh 를 파싱하지 못합니다. 이거 출력하게 만들라고 이틀 까먹었습니다 ㅜ,.ㅜ 그리고 blender_collada 의 경우는 애니메이션이 안되는데 blender 에서 익스포트하는 속성값이 AW3D에 정의 되어 있지 않았습니다. 이건 약간의 소스 수정만 해주면 기본적인 애니메이션은 작동을 해주었습니다. 하지만 최종적으로 원하는 본애니메이션의 경우는 제대로 되지 않았습니다.
결국 위 표에서 보는 바와 같이 모든 라이브러리에서 정상적으로 작동하는 collada 는 ColladaMax 로 익스포트 하는 경우 밖에 없었습니다.
Papervision3D
(W, A, S, D, 마우스 드래그)
Away3D
(마우스 드래그)
테스트에 사용된 캐릭터는 3008폴리 입니다. 테스트 하면서 느낀점은 의외로 PV3D 의 퍼포먼스가 더 좋다라는 점 입니다. 특히 AW3D 의 경우 FlashPlayer10 전용으로 퍼블리싱 했다는 점을 감안 하면 위의 결과는 매우 재미있습니다. PV3D 에서는 AW3D 의 다양한 쉐이더를 사용 할 수 없는게 아쉽고 AW3D 는 Collada 를 맘컷 사용 할 수 없는게 아쉽군요. 앞으로 이 두 엔진이 서로의 장단점을 잘 커버해서 더 좋은 엔진으로 발전 하길 기대합니다.
안녕하세요.
Collada 땜에 검색하는중에 우연히
내용보고 해결이 가능하실듯해서
지금 한 3일째 알아보는 중인대요.
제가 맥스2011 을 사용합니다.
여기서 모델링및 애니메이션을 준후 collada
파일로 익스포트 해서 다른곳에서
불러올려고 하는대…계속 실패네요.
일단타 프로그램에서 모델링한 데이타는
넘어오는대 애니메이션이 넘어오질 않습니다.ㅜ_ㅜ 2틀해맬대 맥스9용을 받아서 해보니
모델링 애니메이션 전부 제대로 넘어오긴 하는대 주 사용이 2011 이라서 계속 알아보고
있느중인대 딱히 해결이 안대네요.
혹시 맥스 2011 을 애니메이션 까지 가능하게
collada파일로 변환해서 넘기는 방법을 아시는지 문의드립니다.
오토데스크.dae로 넘겼으니 모델링한 파일만 들어가더구뇽 9쪽은 따로 플러그인이 있어서
애니까지 넘어가고.
제 글에도 남겼지만 현재 가장 깔끔하게 떨어지는 방법은 ColladaMax를 사용 하는 것입니다. 하지만 이게 Max2009 까지 밖에 없지요. 2010 까지는 구했던 거 같은데 정확하지가 않네요. 현재 개발사가 뭐하는지 업데이트가 없어서 참 그렇습니다.
일단 맥스에서 FBX 로 뽑으시고 Autodesk FBXConverter 로 DAE 를 다시 뽑아서 해보시죠. DAE 용량이 좀 늘어나기는 하지만 작동은 할 겁니다. ^^;;;