glTF JSON (.gltf)
ISO/IEC 標準GL Transmission Format (glTF) は、WebGL、WebGPU、ゲームエンジン、およびネイティブアプリケーションによる 3D シーンやモデルの効率的な送信と読み込みのための、オープン標準かつロイヤリティフリーの JSON 仕様です。
GLTF を GLB に変換
無料のブラウザ内 GLTF から GLB へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してglTFファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してglTFファイルを識別します:
16進数シグネチャ(オフセット0):
7B 0A 20 20 22 61 73 73 65 74 22ASCII表現: {\n "asset"
標準化: ISO/IEC 12113:2022 / Khronosオープン標準
技術仕様
| コンテナアーキテクチャ | シーングラフ、ノード、メッシュ、アクセサー、マテリアル、アニメーションを記述し、外部バッファを参照する可読JSON文書 |
| 圧縮 | 外部テクスチャ(PNG、JPEG、WebP)とオプションのDraco形状圧縮 |
| バイトエンディアン | UTF-8のJSONテキスト(リトルエンディアンの.binバッファを参照) |
| 色空間 | sRGBベースカラー, リニア粗さ/金属度 |
| チャンネルと構造 | シーン階層、ノード、カメラ、PBRマテリアル、スキニング用骨格、モーフターゲット |
| 最大寸法 | 座標空間と三角形数に上限なし |
| 透過性 | アルファモードBLEND、しきい値付きMASK、またはボリューム透過 |
| ストリーミングとプログレッシブ | glTFはシーンの記述をバイナリのジオメトリデータやテクスチャデータと分離するため、ビューアーは単一の大きなファイル全体を待たずに、必要な要素を読み込めます。 |
技術比較表:glTFと競合製品
| 技術属性 | glTF (現在) | GLB | OBJ | FBX |
|---|---|---|---|---|
| ファイルアーキテクチャ | JSON シーンテキスト + 付属の .bin / テクスチャ | 単一の自己完結型バイナリファイル | プレーンテキストの頂点と面 + .mtl | プロプライエタリなバイナリ/ASCII コンテナ |
| PBR マテリアル標準 | 標準化されたメタリックラフネス PBR | 標準化されたメタリックラフネス PBR | レガシーな Phong/Lambert マテリアル | カスタムプロプライエタリマテリアル |
| アニメーションサポート | スケルトンスキニングとモーフターゲット | スケルトンスキニングとモーフターゲット | なし (静的ジオメトリのみ) | 複雑なアニメーションとボーン |
| ランタイムパフォーマンス | WebGL およびリアルタイムエンジン向けに最適化 | WebGL およびリアルタイムエンジン向けに最適化 | 低速な解析と再構築が必要 | 複雑なデスクトップ SDK 解析が必要 |
一般的な破損モードと16進数リカバリガイド
3Dエンジンのエラー: 'Failed to load buffer: URI not found'。
根本原因: 付属の .bin バイナリファイルまたはテクスチャ画像が .gltf ファイルと一緒にアップロードされませんでした。
復旧: すべての付属ファイルをまとめてパッケージ化するか、File2File.app を使用して単一の GLB ファイルに直接変換します。
セキュリティ分析とパーサー攻撃ベクトル
glTF の JSON ファイルは、サーバーサイドリクエストフォージェリ (SSRF) やパストラバーサルを引き起こす可能性のある外部 URI (データ URI またはリモート URL) を参照します。
既知の攻撃ベクター
- 相対バッファ URI (例: 'uri: ../../../etc/passwd') を介したパストラバーサル。
- サーバーサイドの 3D サムネイルジェネレーターでのリモートネットワークバッファ取得を介した SSRF。
- 不正な再帰的ノード階層サイクルを通じたサービス拒否 (DoS)。
防御的ベストプラクティス: 読み込み前に、リモートURLを無効にし、すべてのローカルバッファURIパスを正規化します。
歴史的背景とマイルストーン
主なメリット
- 人間が読める JSON 構造により、プログラムによる編集、パイプラインスクリプトの作成、視覚的な検査が可能になります。
- モジュラー設計: 軽量なシーンメタデータを、重いバイナリジオメトリ (.bin) やテクスチャから分離します。
- PBR マテリアルは一貫性の向上に役立ちますが、結果はレンダラー、照明、設定によって異なります。
技術的な制限とデメリット
- マルチファイルの複雑さ: モデルを共有するには、.gltf、.bin、および画像テクスチャを一緒に ZIP 圧縮またはバンドルする必要があります。
- 複数の HTTP リクエストが発生するため、単一ファイルの GLB よりも初期のネットワーク起動がわずかに遅くなります。
- 関連するテクスチャファイルの名前が変更されたり移動されたりすると、相対パスの依存関係が壊れる可能性があります。
興味深い技術トリビア
- glTF は、オーサリングよりもランタイムでの送信と表示に厳密に焦点を当てているため、正式に「3D の JPEG」というニックネームが付けられています。
- Khronos Groupは、ウェブやモバイルアプリで3Dアセットを転送しやすくするためにglTFを導入しました。
- NASA は、ローバー、衛星、宇宙飛行士の 3D モデルを glTF 形式で一般公開しています。
よくある技術的な質問
glTFファイルの色や形状が欠けているのはなぜですか?
.gltfファイルにはJSONシーンの指示のみが含まれています。3D形状には付属の.binファイル、色には.png/.jpgファイルに依存しています。すべての付属ファイルが同じフォルダ内にあることを確認してください。
glTFファイルを単一のGLBファイルに変換するにはどうすればよいですか?
.gltfファイルと、その付属の.binおよびテクスチャファイルをFile2File.appにアップロードし、単一の自己完結型.glbファイルに即座に統合します。
どのようなプログラムがglTFをサポートしていますか?
Blender、Three.js、Babylon.js、Unity、Unreal Engine、Godot、およびWindows 3D Viewerは、標準でglTFをサポートしています。
関連するglTF変換ペア
glTF JSONアセットをglTFバイナリコンテナに変換することで、個別のテキストマニフェスト、バイナリバッファ、テクスチャを単一のファイルにパッケージ化し、Web配信を高速化します。
GLBをGLTFに変換すると、単一のバイナリコンテナが個別のテキストファイルとアセットファイルに分解され、開発者がテクスチャや3Dジオメトリコードを簡単に編集できるようになります。
Wavefront OBJ ジオメトリファイルを glTF JSON マニフェストに変換することで、静的な 3D モデルを標準的な Web ブラウザ内で瞬時に読み込める Web 対応のアセットに近代化します。