3DS Max File
拡張子.3ds
MIMEタイプapplication/x-3ds, image/x-3ds
マジック
ナンバー
4D 4D (hex), MM (ASCII)
開発者オートデスク
種別3Dファイル形式

.3dsは、Autodesk 3ds Max (3Dモデリング、アニメーション、レンダリングソフトウェア) で使われるファイル形式の一つである。

これは古い3D Studio DOS (リリース 1から4) のネイティブファイル形式であった。3D Studio DOSは、1996年4月にその後継ソフトウェア (3D Studio MAX 1.0) に置き換えられるまで、大衆的であった。この形式は、1990年 (3D Studio DOSの最初のバージョンが立ち上げられた)から存在していることで、3Dプログラム間を転送したり、3Dリソースカタログのためにモデルを保管するためのデファクトな業界標準へと成長してきた (モデル保管ファイル形式としてより頻繁に使われているOBJと共に)[1]

3DS形式はインポートおよびエクスポート形式 (必要不可欠なジオメトリ、テクスチャおよびライトデータのみを保持している) の提供を目指している一方、関連するMAX形式 (今はPRJ形式で置き換えられている[要出典])は、Autodesk 3ds Max特有の追加情報を含み、シーンを完全に保存/読み込みすることができる。

構造

3dsはバイナリファイル形式である。

この形式はチャンクに基づいており、データのそれぞれのセクションは、チャンク識別子と(次の主ブロックの場所を提供するための)データの長さ、並びにデータ自身の含むブロックが埋め込まれている。これはパーサーに理解できないチャンクのスキップを許容し、また、形式の拡張を許す。

チャンクは、XMLのDOM木に似た階層的構造より成る。その値により、パーサーはチャンクを特定でき、そのチャンクのパースするかスキップするかどうかを決定する。次の4バイトは、データ、サブブロックおよび6バイトのヘッダより成るチャンクの長さを、リトルエンディアン整数で含む。次のバイトは、チャンクのデータであり、その次に、数レベル深く延長しているであろう構造のサブチャンクが続く。

以下は、チャンクの中の最も一般的なIDの、それらの依存を示し階層的様式で表現した一覧である:[2][3]

0x4D4D // 主チャンク
├─ 0x0002 // M3Dバージョン
├─ 0x3D3D // 3Dエディターチャンク
  ├─ 0x4000 // オブジェクトブロック
    ├─ 0x4100 // 三角メッシュ
      ├─ 0x4110 // 頂点一覧
      ├─ 0x4120 // 面の記述
        ├─ 0x4130 // 面マテリアル
        └─ 0x4150 // スムーシンググループ一覧
      ├─ 0x4140 // 頂点マッピング一覧
      └─ 0x4160 // ローカル頂点システム
    ├─ 0x4600 // ライト
      └─ 0x4610 // スポットライト
    └─ 0x4700 // カメラ
  └─ 0xAFFF // マテリアルブロック
     ├─ 0xA000 // マテリアル名
     ├─ 0xA010 // 環境色
     ├─ 0xA020 // ディフューズ色
     ├─ 0xA030 // スペキュラ色
     ├─ 0xA200 // テクスチャマップ 1
     ├─ 0xA230 // バンプマップ
     └─ 0xA220 // リフレクションマップ
          /* それぞれのマップのサブチャンク */
        ├─ 0xA300 // マッピングのファイル名
        └─ 0xA351 // マッピングのパラメータ
└─ 0xB000 // Keyframerチャンク
   ├─ 0xB002 // メッシュ情報ブロック
   ├─ 0xB007 // スポットライト情報ブロック
   └─ 0xB008 // フレーム (開始および終了)
      ├─ 0xB010 // オブジェクト名
      ├─ 0xB013 // オブジェクトのピボットポイント
      ├─ 0xB020 // 位置トラック
      ├─ 0xB021 // 回転トラック
      ├─ 0xB022 // 拡縮トラック
      └─ 0xB030 // 階層の位置

欠点

この形式は欠点を指摘されてきており、その大衆さにもかかわらず、3Dデータ交換のために最も適合するものではない。言及された欠点のいくつかは[1]:

脚注

注釈

  1. ^ スムーシンググループ (これの使用する理論的根拠については、メッシュモデリングの要素のサーフィスについてを読め)は、それぞれの面毎に4バイト (long int)のビットフィールドとして保存されるため、面当たり32 (4×8) 個までのスムーシンググループを許容する。

出典

  1. ^ a b 3D Studio .3ds Geometry Export Converter
  2. ^ Spacesimulator.net - 3ds format file reader, loader, by Damiano Vitulli
  3. ^ The Labs: 3DS Specifics

外部リンク

Webページ
テキスト形式のリファレンス