オープンゲームエンジンエクスチェンジ

オープンGEX
ファイル名拡張子
.ogex
インターネットメディアの種類
モデル/vnd.opengex
開発者エリック・レンゲル
初回リリース2013年12月21日; 11年前 (2013-12-21)
最新リリース
3.0
2021年2月2日; 4年前 (2021-02-02)
フォーマットの種類3Dコンピュータグラフィックス
延長オープンDDL
オープンフォーマット?はい
Webサイトオープンジェックス

Open Game Engine ExchangeOpenGEX )は、ゲームエンジンや3Dモデリングアプリなどの3Dグラフィックアプリ間で、アプリケーションに依存しない複雑なシーンデータの転送を支援するフォーマットです。データ保存には、人間の可読性を維持しながら任意のデータを保存する方法であるOpen Data Description Language( ODDL)を使用します。OpenGEXファイルフォーマットは、Internet Assigned Numbers Authority(IANA)にメディアタイプとして登録されていますmodel/vnd.opengex[1]

OpenGEXフォーマットはOpen Game Engine Exchange仕様[2]で定義されており、公式サイトopengex.orgで公開されています。

OpenGEX 形式を書き込むエクスポート プラグインは、Autodesk Mayaおよび3D Studio Maxで使用でき、 Blender用の非公式プラグインも使用できます

形式

OpenGEXファイルは、最も基本的なレベルでは、ノード階層、オブジェクト群、マテリアル群、そしてグローバル単位と軸の向きに関する追加情報から構成されます。ノード、オブジェクト、マテリアルの各構造には、OpenGEXによって定義された階層構造内のジオメトリデータやアニメーショントラックといった詳細情報がすべて含まれています。OpenGEXファイルには、以下の種類のデータが含まれる場合があります。

  • 階層的なシーン構成 (ノード ツリー)。
  • ノードとオブジェクトの変換 (4×4 行列、移動、回転、スケール)。
  • ジオメトリ オブジェクト、ライト オブジェクト、およびカメラ オブジェクト。
  • 複数の詳細レベルに対応する頂点属性配列とインデックス配列で構成されたメッシュ。
  • スキンメッシュ (スケルトン、バインドポーズ変換、ボーンの影響重み付けデータ)。
  • メッシュおよびアニメーション化されたモーフ ウェイト用の複数のモーフ ターゲット。
  • 線形、ベジェ、TCB アニメーション カーブを使用したキーフレーム アニメーション。
  • マテリアルの色とテクスチャ (拡散、鏡面、法線、放出、不透明度、透明度)。

緑色の立方体を記述する完全なOpenGEXファイルの非常にシンプルな例を以下に示します。このファイルは、Metric測定単位とグローバルな上方向を定義する一連の構造体で始まります。その後に、GeometryNode立方体の名前と変換を提供する単一の構造体が続きます。立方体のジオメトリデータは、GeometryObjectジオメトリノードによって参照される構造体に格納されます。ジオメトリオブジェクト構造体には、頂点ごとの位置、法線、テクスチャ座標を含む三角形プリミティブの単一のメッシュが含まれています。最後に、ファイルの末尾にある構造体には、緑色の拡散反射色が含まれています。 Material

メトリック(キー = "距離"){float {0.01}}
メトリック (キー = "up") {文字列 {"z"}}

ジオメトリノード $node1
{
    名前 {文字列 {"Cube"}}
    オブジェクト参照 {ref {$geometry1}}
    マテリアル参照 {ref {$material1}}

    変身
    {
        フロート[12]
        {
            {1.0, 0.0, 0.0,
             0.0、1.0、0.0、
             0.0, 0.0, 1.0,
             50.0, 50.0, 0.0}
        }
    }
}

ジオメトリオブジェクト $geometry1 // 立方体
{
    メッシュ(プリミティブ = "三角形")
    {
        頂点配列 (属性 = "位置")
        {
            浮動小数点数[3] // 24
            {
                {-50.0, -50.0, 0.0}, {-50.0, 50.0, 0.0},
                {50.0, 50.0, 0.0}, {50.0, -50.0, 0.0},
                {-50.0, -50.0, 100.0}, {50.0, -50.0, 100.0},
                {50.0, 50.0, 100.0}, {-50.0, 50.0, 100.0},
                {-50.0, -50.0, 0.0}, {50.0, -50.0, 0.0},
                {50.0, -50.0, 100.0}, {-50.0, -50.0, 100.0},
                {50.0, -50.0, 0.0}, {50.0, 50.0, 0.0},
                {50.0, 50.0, 100.0}, {50.0, -50.0, 100.0},
                {50.0, 50.0, 0.0}, {-50.0, 50.0, 0.0},
                {-50.0, 50.0, 100.0}, {50.0, 50.0, 100.0},
                {-50.0, 50.0, 0.0}, {-50.0, -50.0, 0.0},
                {-50.0, -50.0, 100.0}, {-50.0, 50.0, 100.0}
            }
        }

        頂点配列 (属性 = "normal")
        {
            浮動小数点数[3] // 24
            {
                {0.0, 0.0, -1.0}, {0.0, 0.0, -1.0}, {0.0, 0.0, -1.0},
                {0.0, 0.0, -1.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, 1.0},
                {0.0, 0.0, 1.0}, {0.0, 0.0, 1.0}, {0.0, -1.0, 0.0},
                {0.0, -1.0, 0.0}, {0.0, -1.0, 0.0}, {0.0, -1.0, 0.0},
                {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0},
                {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 1.0, 0.0},
                {0.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {-1.0, 0.0, 0.0},
                {-1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}
            }
        }

        頂点配列 (属性 = "texcoord")
        {
            浮動小数点数[2] // 24
            {
                {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0},
                {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0},
                {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0},
                {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0},
                {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0},
                {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}
            }
        }

        インデックス配列
        {
            uint32[3] // 12
            {
                {0, 1, 2}, {2, 3, 0}, {4, 5, 6}, {6, 7, 4}, {8, 9, 10},
                {10, 11, 8}, {12, 13, 14}, {14, 15, 12}, {16, 17, 18},
                {18, 19, 16}, {20, 21, 22}, {22, 23, 20}
            }
        }
    }
}

マテリアル $material1
{
    名前 {文字列 {"Green"}}

    色 (属性 = "拡散") {float[3] {{0, 1, 0}}}
}

歴史

OpenGEXフォーマットの開発は、2013年5月8日に終了したクラウドソーシングキャンペーン[3]によって資金提供されました。フォーマットの設計が進むにつれ、 OpenGEXの基盤となる汎用ベース言語として、オープンデータ記述言語(Open Data Description Language)も作成されました。OpenGEXフォーマットのサポートは、 C4エンジンバージョン3.5で最初に実装されました

参照

参考文献

  1. ^ 「IANA メディア タイプ、モデル」。
  2. ^ Lengyel, Eric (2021). Open Game Engine Exchange 仕様 バージョン 3.0 . Terathon Software LLC. ISBN 978-0-9858117-8-5
  3. ^ 「Open 3D Model Exchange Format and Exporters for Popular Software」。
  • 公式サイト
Retrieved from "https://en.wikipedia.org/w/index.php?title=Open_Game_Engine_Exchange&oldid=1207700172"