| ファイル名拡張子 |
.ogex |
|---|---|
| インターネットメディアの種類 |
モデル/vnd.opengex |
| 開発者 | エリック・レンジェル |
| 初回リリース | 2013年12月21日 |
| 最新リリース | 3.0 2021年2月2日 |
| フォーマットの種類 | 3Dコンピュータグラフィックス |
| 延長 | オープンDDL |
| オープンフォーマット? | はい |
| Webサイト | オープンジェックス |
Open Game Engine Exchange ( OpenGEX ) は、ゲームエンジンや 3D モデリングアプリなどの3D グラフィックアプリ間で、アプリケーションに依存しない複雑なシーンデータの転送を支援する形式です。データ保存には、人間が読みやすい任意のデータ保存方法であるOpen Data Description Language を使用します。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}
}
}
}
GeometryObject $geometry1 // 立方体
{
メッシュ (プリミティブ = 「三角形」)
{
VertexArray (属性 = "位置")
{
浮動小数点数[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が構築される汎用ベース言語としてオープンデータ記述言語も作成されました。OpenGEX形式のサポートは、もともとC4エンジンバージョン3.5で実装されました。
参照
- glTF - 3D シーンおよびモデル用のKhronos Groupファイル形式。
参考文献
- ^ 「IANA メディア タイプ、モデル」。
- ^ Lengyel, Eric (2021). Open Game Engine Exchange 仕様、バージョン 3.0。Terathon Software LLC. ISBN 978-0-9858117-8-5。
- ^ 「一般的なソフトウェア向けのオープン 3D モデル交換フォーマットとエクスポーター」。
外部リンク
- 公式サイト
