VGO の version 2.0 について、VGOの設計・開発者が仕様等の解説を行います。
この記事の対象読者
- VGOの仕様を詳しく知りたい方
- UniVGOのプログラムを詳しく知りたい方
VGO 2.0 とは
2020年8月に発表した、新しい形式の3Dデータフォーマットです。
特徴
- VGO 1.0 から発展させた独自のフォーマットです。
-
Node
,Transform
,Rigidbody
,Collider
,Mesh
,BlendShape
,Material
,Texture
といった3Dモデルの基本情報を保存することができます。 - Unityでの使用を意識して
Human Avatar
,Light
,ParticleSystem
,Skybox
の情報も保存することができます。 - アプリケーションでの使用を意識して
BlendShapePreset
の情報も保存することができます。 - ファイルフォーマットはベースにIFFチャンクを採用しています。
- 内部データとして
JSON
,BSON
,Binary
を使用します。 - 座標系は
右手系
、左手系
のどちらのデータも持つことができます。 - 独自の定義拡張(チャンク、スキーマ)が可能な仕様となっています。
- 部分暗号化に対応した仕様となっています。
- リソースはファイル内に含めることを基本としていますが、別ファイルに切り出すこともできます。
- リソースは
sparse
でデータを圧縮することができ、またより強力なsparse
を独自に定義しています。
設計の経緯
VGOがバージョン2.0になる前の VGO 1.0 は、glTF 2.0 の拡張フォーマットでした。
しかし、機能を拡張し使用していくにつれ、また今後の使い方を考えた時に、glTFの仕様自体が抱える問題が私の中で顕著になってきてしまいました。
そこで、不満となっている問題点を解決した独自の3Dフォーマットを設計・実装することにしました。
仕様とプログラムについて
仕様とプログラムはすべてGitHubにて公開しています。
GitHubの説明は主に英語であるため、Qiitaにて日本語の説明を行います。
目次
解説は数回に分けて行っていく予定です。
-
- 1-1. ファイル拡張子
- 1-2. チャンク
- ヘッダー チャンク
- インデックス チャンク
- コンポーザー チャンク
- アセット情報 チャンク
- レイアウト チャンク
- リソース アクセサー チャンク
- リソース チャンク
- 1-3. データ フォーマット
-
- [データ スキーマ仕様] (https://qiita.com/izayoijiichan/items/0eb1c5c2bd2b4a063fa2)
- 2-1. アセット情報
- 2-2. レイアウト
- ノード
- アニメーター
- アバター
- 剛体
- コライダー
- メッシュ
- マテリアル
- テクスチャー
- ブレンドシェイプ
- 光源
- スカイボックス
- パーティクル
- 2-3. リソース
- リソース
- リソース アクセサー
-
- 暗号化
- 部分暗号化の仕組み
- 暗号アルゴリズム
-
- UniVGO(ツール)
- Uni VGO の特徴
- プログラムの解説
- 高速化の仕組み
-
- VGO Hub
- VGO Hub の特徴
外部リンク
- [Uni VGO] (https://github.com/izayoijiichan/VGO2)
- [VGO Hub] (https://vgohub.azurewebsites.net/)