3D Max 에서 데이터를 Export 할 수 있는 방법은 크게 3 가지가 있다.
  1. ASCII로 출력해서 읽어들이는 방법
  2. Max SDK를 이용하여 추출하는 방법
  3. Max Script를 이용하여 추출하는 방법

1. ASCII Export

 가장 이해하고 다루기 쉬우면서 불편한 방법이다. ASCII Export는 기본적으로 3D 데이터들을 직접 Text형태의 ASCII 파일로 출력하는 방법이다. 파일의 확장자가 ASE이므로 일반적으로 ASE파일이라 부른다. 3D의 각종 데이터들을 Text로 출력하므로 출력된 파일들을 직접 눈으로 읽을 수 있다.

 필요한 3D 데이터를 직접 Text파일로 출력한 이후 ASCII로 된 Text파일들을 직접 Parsing 과정을 거쳐 읽어들인 다음 사용할 수 있다. 이러기 위해서는 ASCII 데이터를 읽어서 3D 데이터로 바꿔줄 프로그램이나 툴이 필요하다.

 일반적으로 작고 소소한 데이터나 후결합이 필요한 데이터의 경우 ASE와 같은 간단한 것을 사용하는 경우가 많다. 또 게임 제작 중 각종 테스트 등을 할 때도 역시 ASE를 많이 사용한다.

ASCII파일의 장단점
  1. 출력된 데이터를 직번 눈으로 보고  상태를 확인할 수 있다.
  2. 출력된 ASCII 파일은 Text 형태의 파일이므로 필요에 따라서 자기가 직접 조작이나 변형을 하기 쉽다.
  3. 출력을 위한 프로그래밍 과정이 없거나 적다.
  4. ASCII 데이터를 Parsing하여 읽어들일 프로그램이나 툴이 필요하다.
  5. 데이터로 사용하기 위해서 Parsing 과정이 필요하므로 실행 시 상당한 시간을 필요로 한다.
  6. ASCII로 되어 있어 파일의 크기가 상당히 크다. 따라서 대용량의 그래픽 데이터의 경우 크기가 상상을 초월한다.
  7. 실제 게임에서는 기능 테스트나 소용량 데이터 처리를 위한 중간 파일로 많이 사용한다.

2. Max SDK

 3D Max에서 Max Script와 같이 Max의 거의 모든 기능을 조작하거나 추가할 수 있도록 Max SDK라는 것을 제공해 준다. 이 Max SDK는 Scipt와 다르게 실행파일 형태인 DLL로 제작하는 것이다. 확장자는 DLE등 다양하게 되어 있으나 실질적, 그리고 내부적으로 DLL 파일으로 확장자만 바꾸어 놓은 것이다.
 SDK는 Max의 Scipt 처리기에서 읽혀져서 실행되는 것이아니라 DLL 파일을 사용한다는 점이 다르다.
즉, SDK를 사용하게 되면 Max Scipt와 같은 조작하고자 하는 기능을 마치 3D Max의 하나의 부분처럼 미리 제작해 처음이 초기화 단계에서 읽어 들여 사용할 수 있다는 것이다.

 MAP 데이터나 복잡한 형태의 데이터 혹은 내부적으로 '커스터마이징' 이 필요한 데이터의 경우 Max SDK 를 많이 사용한다.

Max SDK 장단점
  1. Max SDK를 사용하면 실행하는 부분을 DLL 파일로 미리 제작한 다음 실행하므로 빠르고 기능에 거의 제약이 없이 Max의 모든 부분을 조작할 수 있다.
  2. 제작 시 직접적으로 프로그램을 짜고 컴파일해야 하므로 버그 수정과 테스트가 용이하지 않다.( 제작이 어렵다. )
  3. 또 필요할 때 약간만 수정해 다시 사용하는 것이 힘들다.
  4. DLL 파일은 버전에 따른 호환을 보장하지 않다.
  5. 제작 시간이 오래 걸리며 범용적이지 않고 특정 데이터에 특화된 것이 일반적이다.
  6. 실제 게임에서는 특화된 데이터 처리나 대용량의 데이터를 처리해야 하는 곳에서 많이 사용된다.

3. Script

 3D Max에는 내부적으로 간단한 명령을 Script 형태로 받아서 처리하는 Scipt 처리기를 내장하고 있다. 이것을 이용해 Max의 거의 모든 기능을 조작하거나 수정이 가능하다. 바로 이 Script를 이용해 데이터를 출력하게 하는 방법이다.

 Script의 경우 그 빈도가 비교적 낮은 편이지만 역시 간단한 테스트용으로 종종 사용한다.

Script의 장단점
  1. Script를 이용해 Script 프로그램 작성, 3D Max의 특정데이터를 파일로 저장하게 하는 방법을 사용하게 된다.
  2. Script를 이용하므로 프로그램이 잘못되거나 사소한 변경이 필요할 때 즉시 열어서 수정할 수 있다.
  3. 고정적인 기능이 아니므로 사용상 약간의 불편이 있으며 Script 소스를 이용해 관리해야 하며 복잡한 프로그램을 작성할 때 약간의 한계가 있다.
Posted by deviAk

댓글을 달아 주세요