glTF JSON から glTF バイナリへのコンバーター
glTF JSONアセットをglTFバイナリコンテナに変換することで、個別のテキストマニフェスト、バイナリバッファ、テクスチャを単一のファイルにパッケージ化し、Web配信を高速化します。
フォーマットの比較と技術仕様
| 仕様 | GLTF | GLB |
|---|---|---|
| MIMEタイプ | model/gltf+json | model/gltf-binary |
| タイプ | runtime 3D asset transmission | self-contained binary 3D container |
| 圧縮 | lossless JSON manifest + external binary buffers | binary packaged JSON, buffers, and textures |
| 標準仕様 | Khronos glTF 2.0 Specification | Khronos glTF 2.0 Binary Container |
| マジックバイトヘッダー | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) |
フォーマットの概要と用途
glTF JSON形式は、プレーンテキスト構造を使用して3Dシーンを保存します。このテキストファイルは、外部のバイナリファイルや画像テクスチャを指しています。この構成により、開発者はコードエディタでマテリアルやジオメトリノードを直接編集できますが、モデルを移動するには複数のファイルを同時に管理する必要があります。1つのテクスチャファイルが行方不明になったり、ファイルパスが壊れたりすると、3Dモデルはブラウザやゲームエンジンで正しく読み込めなくなります。 glTF JSONをglTFバイナリに変換すると、これらすべての個別のパーツが1つのパッケージファイルにまとめられます。3DアーティストやWeb開発者は、アセットを本番Webサーバーに公開する前や、拡張現実ビューアに読み込む前にこの変換ステップを使用します。単一のファイルを使用することでHTTPリクエストが削減され、Eコマースの製品ページやインタラクティブな3D Webアプリケーションにアクセスするユーザーの読み込み時間が短縮されます。
技術仕様とコーデックの内訳
glTF JSON形式はMIMEタイプの model/gltf+json を使用し、外部のbinファイルや画像とペアになったテキストベースのglTFマニフェストに依存します。対照的に、GLB形式はMIMEタイプの model/gltf-binary を使用し、すべてを単一のバイナリコンテナにパッケージ化します。GLBファイルは、0x46546C67に設定された4Gマジックナンバー、4Gバージョン番号、4Gの合計ファイル長を含む12バイトのヘッダーで始まります。このヘッダーの後に、JSONマニフェストとバイナリバッファデータを保存するチャンクが続きます。変換中に基礎となるメッシュジオメトリやテクスチャピクセルデータが変更されることはないため、プロセスは厳密にロスレスです。
OSとブラウザの互換性
両方の形式は、サードパーティのプラグインを必要とせず、WebGLおよびWebGPUレンダラーを使用する最新のWebブラウザ全体でネイティブに動作します。WindowsやmacOSなどのデスクトップオペレーティングシステムは、組み込みのファイルプレビューツールを通じたGLBの表示をサポートしています。iOSやAndroidを含むモバイルプラットフォームは、拡張現実のQuick LookおよびScene Viewerアプリケーション内で直接GLBファイルをレンダリングします。
💡 役立つ情報
GLBファイルにパックする前に元のテクスチャをPNGまたはJPEG形式で保持することで、コンテナサイズを肥大化させることなく視覚的忠実度を維持できます。
フォーマットの比較と技術仕様
glTF JSONファイルと複数の外部テクスチャに分割された一般的な15 MBの3Dアセットは、標準的な4G接続で約3.0秒、5Gで0.8秒、光回線ネットワークで0.2秒でダウンロードされます。
よくある質問
品質を落とさずにglTF JSONをglTF バイナリに変換するにはどうすればよいですか?
glTF JSONからGLBへの変換は、頂点データの変更やテクスチャピクセルの追加圧縮を行わずに、既存のテキストマニフェスト、バイナリバッファ、画像ファイルを単一のコンテナに再パッケージ化するだけであるため、完全にロスレスです。
glTF JSONとglTF バイナリの違いは何ですか?
glTF JSONは、外部のbinおよび画像ファイルを参照する人間が読めるテキストファイルを使用するのに対し、glTFバイナリは、テキストマニフェスト、ジオメトリデータ、テクスチャをマジックバイトヘッダー付きの自己完結型ファイルにパッケージ化します。