태그 : FBX

Asset Import Pipeline

게임 에디터에 모델과 같은 에셋(Asset)을 임포트하는 다른 방법이 있어 소개합니다. (이전에 Custom Schematic Editor의 FBX 이야기에 대한 답글이기도 합니다)


DCC 툴에서 작업한 게임 데이터(Assets)를 게임으로 삽입하는 방법은 별도의 플러그인을 사용하는 것이 일반적이다.

이 방법의 문제점이라면 게임 엔진이 사용하는 파일 포맷을 위해서 DCC 툴마다 별도의 플러그인을 작성해야 한다는 점과 게임으로 임포트한 데이터가 수정이 필요한 경우 DCC 툴에서 수정한 다음 다시 익스포트해야 한다는 것이다.

그런데 Unity3D에서는 모델의 임포트가 정반대로 이루어진다. Unity3D에서는 기존의 익스포트 플러그인을 사용하는 파이프라인 대신 DCC 툴에서 저장한 파일을 게임 에디터에서 바로 읽어 들이는 방식을 사용한다.

백문이 불여일견. 다음의 동영상에서 작업 방법을 확인하자.

http://unity3d.com/support/documentation/video/5.html

작업 방법을 간단하게 요약하면 이렇다. 처음에 마야에서 작업한 모델을 unity3d의 Asset 디렉토리에 저장하고 unity3D로 돌아간다. unity3d에서 해당 모델을 클릭하여 scene에 삽입하고 다시 마야로 돌아가서 모델을 수정하고 다시 unity3D로 돌아간다. 이 때 unity3D에서는 Asset 폴더의 내용이 갱신되면 이를 자동으로 감지하여 unity3D의 scene도 자동으로 업데이트된다. 때문에 아티스트는 DCC 툴에서 변경한 것을 별도의 익스포트 없이 바로 게임 에디터로 돌아가면 자신이 변경한 내용이 게임 에디터에도 업데이트 되어 있는 것을 볼 수가 있다. 피드백이 실시간으로 이루어진다는 이야기다.



다음의 방법들을 사용하면 크게 어렵지 않게 구현이 가능한 방법이다.

데이터 포맷 - FBX

플러그인을 사용하지 않고 DCC툴에서 저장한 데이터 포맷을 바로 게임 에디터로 임포트하려면 게임 에디터에서 DCC툴이 지원하는 다양한 포맷 중 하나를 사용해야 하는데 이 때 편리하게 사용할 수 있는 포맷이 바로 FBX 포맷이다.
FBX 포맷은 마야뿐만 아니라 3dsmax와 같은 여러 다른 DCC 툴에서도 지원하는 범용적인 데이터 포맷이다. 익스포트 플러그인의 경우 DCC 툴마다 플러그인을 작성해야 하지만 게임 에디터에서 FBX를 바로 읽어 들이는 방법을 사용하면 DCC 툴의 종류에 신경 써지 않아도 된다.

즉각적인 피드백 - Hot-loading

DCC 툴에서 데이터를 수정하고 저장하면 이를 게임 에디터에서도 자동으로 수정된 부분을 게임 에디터의 뷰에도 반영 시키는데 이것은 hotloading을 이용하여 구현할 수 있다. hotloading은 GPG6권의 "Stay in the Game: Asset Hotloading for Fast Iteration"에 자세한 설명이 있다. 이 방법은 애플리케이션이 특정 디렉토리(혹은 파일)를 정해진 시간마다 검사해서 변경이 된 경우 자동으로 해당 파일을 읽어 들이는 방법이다.

후처리 - Post Build

에디터에서는 FBX 포맷을 그대로 사용했지만 실제 배포시에도 이 포맷을 사용할 수는 없다. 게임에서 사용할 최적화된 형태로 변경하여 저장해야 하는데 이러한 처리는 게임을 배포할 때 포스트 빌드 과정에서 배치처리(모든 메쉬 데이터에 대해서)를 통해서 변경해주게 된다. 또 마지막 포스트 빌드 과정은 Cruise Control 등을 사용하는 게임의 전체 공정에 대한 빌드 자동화와 연결하여 자동화 시키는 방법도 고려해 볼 수 있다.

결론

프로그래머 입장에서 보면 스튜디오 내에서 Maya, 3dsmax의 여러 가지 DCC툴을 사용해도 엔지니어 그룹에서는 모델 임포트를 위한 하나의 코드 베이스만 작성하면 된다는 장점이 있다. 아티스트의 입장에서 본다면 익스포트의 번거로움이 없어지니 작업이 그만큼 빠르다. 전체적인 작업 파이프라인에서는 분명 시간 단축의 이점이 있는 방법이다.

by kimsama | 2008/12/23 23:34 | Development | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶