glTF バイナリから glTF JSON へのコンバーター
GLBをGLTFに変換すると、単一のバイナリコンテナが個別のテキストファイルとアセットファイルに分解され、開発者がテクスチャや3Dジオメトリコードを簡単に編集できるようになります。
フォーマットの比較と技術仕様
| 仕様 | GLB | GLTF |
|---|---|---|
| MIMEタイプ | model/gltf-binary | model/gltf+json |
| タイプ | self-contained binary 3D container | runtime 3D asset transmission |
| 圧縮 | binary packaged JSON, buffers, and textures | lossless JSON manifest + external binary buffers |
| 標準仕様 | Khronos glTF 2.0 Binary Container | Khronos glTF 2.0 Specification |
| マジックバイトヘッダー | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) |
フォーマットの概要と用途
GLB形式は、3Dシーン、アニメーション、マテリアル、テクスチャを1つの整理されたバイナリパッケージにまとめます。これは、オブジェクトをWebページやゲームに素早く読み込むのに優れていますが、生データの編集を困難にします。開発者は、シーン構造の検査、テキストエディタでのマテリアルプロパティの微調整、または埋め込みシェーダーパラメータの変更を行うために、しばしばGLBファイルをGLTF形式に分解する必要があります。 分解されたGLTFアセットを扱うことで、エンジニアリングチームは標準的なGitワークフローを使用して特定の3Dメッシュコンポーネントのバージョン管理を行うことができます。巨大なバイナリデータ全体を追跡する代わりに、開発者は個別のバイナリバッファファイルを管理しながら、JSONマニフェストに対する小さなテキスト変更をコミットできます。この変換プロセスは、実行時デプロイの前にカスタムシェーダーのインジェクションや動的なテクスチャスワップを必要とする高度なWeb開発パイプラインをサポートします。
技術仕様とコーデックの内訳
GLBは model/gltf-binary MIMEタイプを使用し、4バイトのマジックナンバー(0x46546C67)、4バイトのバージョン整数、4バイトのファイル総長を含む12バイトのヘッダーで始まります。このヘッダーの後に、JSONマニフェストとバイナリバッファを含むチャンクが続きます。これを model/gltf+json MIMEタイプを使用するGLTFに変換すると、マニフェストは .gltf 拡張子を持つ人間が読めるテキストファイルに分離されます。ジオメトリデータやピクセルマップは、 .bin や .png などの個別の外部ファイルとして書き出されます。どちらの形式もデフォルトでは非可逆圧縮を使用しません。どちらも、頂点の位置、法線、UV座標を完全な数学的精度で保持します。
OSとブラウザの互換性
分解されたGLTFファイルは、WebGLおよびWebGPUレンダラーを使用するGoogle Chrome、Mozilla Firefox、Apple Safari、Microsoft Edgeなどのすべての最新Webブラウザでスムーズに動作します。Windows 10および11、macOS、Linuxなどのデスクトップオペレーティングシステムは、Windows 3DビューアーやBlenderなどのネイティブツールを通じたGLTFの閲覧をサポートしています。iOSやAndoridのモバイルオペレーティングシステムは、ネイティブのAR環境やWebアプリケーション内でGLTFアセットをレンダリングしますが、クロスドメインリソース共有のエラーを回避するために、開発者はサーバー上で個別の .bin および .gltf ファイルを正しくホストする必要があります。
💡 役立つ情報
変換後は、JSONマニフェストがパスエラーを起こさずに外部依存関係を見つけられるよう、テクスチャマップを必ずメインの .gltf ファイルと同じフォルダーに保管してください。
フォーマットの比較と技術仕様
GLB形式で15メガバイトの複雑な3Dキャラクターモデルは、 .gltf マニフェストと外部の .bin ファイルに分割された場合でも、同等の合計データ容量になります。秒速30メガビットで動作する標準的な4G接続では、このアセットのダウンロードに約4秒かかります。5Gネットワークや300メガビットの光回線にアップグレードすると、転送時間がコンマ数秒に短縮され、複数ファイルのWeb読み込みがほぼ一瞬になります。
よくある質問
品質を落とさずに glTF バイナリを glTF JSON に変換するにはどうすればよいですか?
GLBからGLTFへの変換は、両方の形式が同じ基礎的な数学的構造を使用しているため、完全に可逆的です。このプロセスでは、単一のバイナリコンテナからJSONチャンクとバイナリバッファを抽出し、頂点データやピクセル圧縮を変更することなく、ディスク上に個別のファイルとして書き出します。
glTF バイナリと glTF JSON の違いは何ですか?
GLBは、シーンの説明、ジオメトリ、テクスチャを1回のダウンロードにまとめた自己完結型のバイナリファイルです。GLTFは、シーンのグラフを読みやすいテキストファイルに保存する一方で、ジオメトリとテクスチャを外部のバイナリおよび画像ファイルに保持することで、これらの要素を分離します。