GLB vs glTF:主な違い、ファイルサイズ、使い分けの指針

glb vs gltf glb vs gltf key differences file size and when to use each
  • GLBとJSON glTFは、glTF 2.0アセットフォーマットの2つの表現形式です。
  • JSON glTFはリソースを分離して保持するか埋め込むかを選択でき、リソースを分離することで検査や反復作業に役立ちます。
  • GLBはリソースをコンテナに含めることで、単一ファイルでの便利な受け渡しを実現します。
  • ファイルサイズに固定的な優劣はありません。同等のエクスポートを比較し、配信先のランタイムに合わせてペイロードを最適化してください。
  • 配信先がサポートするパッケージ形式を選択し、そのビューアやエンジンで最終アセットを検証してください。

3Dモデルをエクスポートすると、.gltf.glb という2つの選択肢が表示されます。どちらを選ぶべきでしょうか?簡潔に答えると、GLBとglTFはKhronos Groupが策定した同一のオープン3Dフォーマットの2つのバージョンです。.gltfファイルはJSONを使用し、外部リソースを参照するか埋め込むことができます。GLBは同じアセットフォーマットのバイナリコンテナ形式です。このガイドでは、構造・ファイルサイズ・編集・Web配信における実際の違いと、各フォーマットの使い分けについて説明します。

glTFとは?

glb vs gltf what is gltf

glTF(GL Transmission Formatの略)は、Khronosが管理するオープンな3Dアセット標準です。この仕様はシーンの記述と、メッシュ・マテリアル・アニメーション・カメラ・ライト・画像を含むレンダリングに必要なリソースを定義しています。

.gltfファイルはシーン記述にJSONを使用します。バッファや画像は.bin、.png、.jpgなどの別ファイルとして保存するか、データURIとして埋め込むことができます。したがって、JSON glTFアセットは必ずしも複数ファイルのフォルダ構成になるわけではありません。

これにより、glTFは検査・編集・自動化パイプラインでの利用が容易です。ブラウザ、three.js、Babylon.js、ゲームエンジン、ARフレームワークで広くサポートされています。

GLBとは?

glb vs gltf what is glb

GLBはglTFアセットのバイナリコンテナ形式です。JSONシーン記述とバイナリデータを1つの.glbファイルにまとめることで、リソースをコンテナに含めた場合に自己完結型の受け渡しが実用的になります。

これにより、GLBは配布に適した形式となります。アップロード・共有・埋め込み・プレビューに必要なファイルが1つだけで済むからです。また、.gltfファイルをリンクされたアセットなしでアップロードした際に発生しうる、テクスチャ欠損の問題を防ぐのにも役立ちます。

GLBファイルのサイズは同等のglTF配信と近くなる場合がありますが、固定的なサイズ優位性はありません。結果はバッファや画像のエンコード方法、リソースが埋め込まれているか外部参照かの違い、使用する圧縮設定によって異なります。GLBはWeb配信・ARビューア・マーケットプレイス・Tripo AIの3D Viewerなどのプラットフォームでよく選ばれます。

GLBとglTFの主な違い

特徴JSON glTF (.gltf)GLB (.glb)
パッケージングJSONシーンファイル。リソースは外部参照または埋め込み可能JSONチャンクとバイナリチャンクを含むバイナリコンテナ
可読性JSONは検査・差分確認が容易内容の確認にはビューアまたはエディタが必要
リソース管理ファイルを個別に差し替えやバージョン管理が可能単一ファイルの受け渡しで相対パス切れを回避
ファイルサイズリソースのエンコードと圧縮に依存リソースのエンコードと圧縮に依存
適した用途編集可能なJSONや独立したアセットが有益なパイプライン単一ファイルでの共有・アップロード・配信ワークフロー
glb vs gltf key differences between glb and gltf

実質的な違いはパッケージングにあり、レンダリング品質ではありません。JSON glTFは外部リソースまたは埋め込みデータを使用できますが、GLBはJSONチャンクとバイナリチャンクをひとまとめにして保持します。リソースを分離することは本番パイプラインで有用な場合があり、アセットを1ファイルにまとめたGLBの受け渡しは相対パスの欠損を防ぐことができます。

ファイルサイズの比較

glb vs gltf file size comparison

GLBとglTFは同じシーンを表現できますが、どちらの拡張子もダウンロードサイズが小さくなることを保証するものではありません。JSONのオーバーヘッド、データURIエンコード、GLBチャンクのパディング、画像フォーマット、ジオメトリ圧縮、未使用リソースはすべて最終サイズに影響します。

テクスチャが多いアセットでは、画像解像度と画像圧縮がペイロードの大部分を占めることがよくあります。テクスチャが少なくジオメトリが多いアセットでは、メッシュデータがより重要になります。固定のテクスチャ対ジオメトリ比率を仮定するのではなく、実際にエクスポートしたファイルを比較してください。

ファイルを小さくしたい場合は、拡張子名で選ぶのではなくアセット自体を最適化してください。Dracoやmeshoptでジオメトリのペイロードを削減でき、対象ランタイムがサポートしている場合はKTX2/Basis UniversalでテクスチャのペイロードをExtension経由で削減できます。未使用のマテリアルや画像を削除し、実際に配信するビューアやエンジンで最終的なアセットをテストしてください。

パッケージングがダウンロードサイズに影響する理由

JSON glTFでは、バッファや画像を別リソースとして取得するか、データURIとして埋め込むことができます。リソースを分離すると個別にキャッシュ・更新が可能ですが、データURIは自己完結型のJSONファイルをシンプルにする一方でBase64のオーバーヘッドが生じます。GLBはJSONとバイナリチャンクを1つのコンテナに収めることでJSONの別リクエストを不要にしますが、バイナリチャンクにはアライメントのパディングが含まれる場合があります。これらの実装上の詳細が、拡張子だけではファイルサイズの信頼できる指標にならない理由です。

汎用的なスコアではなくランタイムに合わせて最適化する

アセットを配信するビューアやエンジンをテスト環境として使用してください。圧縮Extensionが効果を発揮するのは配信先がそのデコーダをサポートしている場合に限られ、マテリアル・アニメーション・テクスチャが正常に読み込まれなければファイルが小さくても意味がありません。編集用にソースアセットを保持し、配信候補をエクスポートし、パッケージ化されたリソースを検査して、ターゲットプラットフォームで読み込み動作と最終ダウンロードサイズを比較してください。これにより、チームはパーセンテージベースの経験則ではなく、再現可能な判断基準を持てます。

確認すべきデプロイ上のトレードオフ

単一のGLBは配布を簡素化できます。受け取り側は1つのアセットをダウンロードするだけでよく、ディレクトリ構造を維持する必要がないからです。JSON glTFでの配信は、ビルドプロセスでアセット全体を再パッケージせずに画像のフィンガープリント・キャッシュ・差し替えを行いたい場合に有用です。どちらの選択肢を選んでも、相対パス・HTTP配信・デコーダサポート・プラットフォームの現在のインポート制限をテストする必要はなくなりません。配信先のドキュメントと実際のテストアップロードを最終的な判断材料としてください。

GLB vs glTFの使い分け

glb vs gltf when to use glb vs gltf

glTF は本番パイプラインの作業中に使用してください。アーティストがテクスチャを差し替える必要がある場合、開発者がJSONを検査する必要がある場合、またはビルドシステムがジオメトリ・テクスチャ・メタデータを個別に処理する場合に適しています。

GLB はモデルを完成アセットとして配信する必要がある場合に使用してください。プラットフォームへのアップロード・Webサイトへの埋め込み・クライアントへの送付・ARビューアの使用・Tripo AI Studioからのエクスポートによる即時利用などに適しています。

実用的なデフォルトとして、リソースの分離と人間が読めるJSONがワークフローに役立つ場合はJSON glTFを保持し、単一ファイルの受け渡しの方が便利な場合はGLBにパッケージ化するという方針をお勧めします。レンダリング結果は同じになる場合があり、実質的な違いはリソースのパッケージングと配信先ツールの要件です。

GLB vs glTFの実践的なワークフロー

  1. 配信先から始める:ビューア・ゲームエンジン・ARプラットフォーム・マーケットプレイス・クライアントポータルが必須の拡張子やサポートされているglTFワークフローを文書化しているか確認する。
  2. 反復作業中は、チームがJSONの検査・テクスチャの差し替え・ファイルの個別バージョン管理から恩恵を受ける場合にのみリソースを分離して保持する。
  3. 単一ファイルのアップロード・共有リンク・受け渡しで相対パス欠損の可能性を減らせる場合は、候補となるGLBをエクスポートする。
  4. 実際のペイロードを最適化する:過大なテクスチャをリサイズし、適切な画像フォーマットを選択し、未使用リソースを削除し、ターゲットランタイムがサポートしている場合にのみジオメトリまたはテクスチャ圧縮を適用する。
  5. 配信先ランタイムで最終エクスポートを検証する。配信前にマテリアル・アニメーション・ファイルサイズ・読み込み動作、そすべてのリンクリソースが存在することを確認する。

静的メッシュの編集ワークフローでは、OBJを優先するソフトウェアにアセットを渡す前に、GLBをOBJに変換することができます。

よくある質問

glTFとGLBはどちらが優れていますか?

どちらが常に優れているということはありません。リソースの分離や検査可能なJSONがワークフローに役立つ場合はJSON glTFを選択し、単一ファイルのアップロード・共有・受け渡しの方が便利な場合はGLBを選択してください。

glTFとGLBは同じものですか?

両者はglTF 2.0アセットフォーマットの2つの表現形式です。.gltfファイルはJSONベースであり、GLBはglTFアセットのバイナリコンテナです。

GLBとglTFのファイルサイズの違いは?

固定的なパーセンテージの差異はありません。画像エンコード・データURI・パディング・圧縮・未使用リソースがすべて結果に影響するため、同等のエクスポートを比較してください。

GLBは3Dプリントに使用できますか?

GLBは通常の最終製造フォーマットではありません。3Dプリントのワークフローでは一般的に、モデルをプリンタやスライサーが受け入れるフォーマットに変換またはエクスポートし、メッシュの整合性・スケール・マテリアル要件を確認します。

three.jsのデフォルトフォーマットは?

three.jsはGLTFLoaderでglTF 2.0アセットを読み込み、.gltfと.glbの両方のファイルに対応しています。アセットパイプラインとデプロイ要件に合ったパッケージング形式を選択してください。

ARプラットフォームはGLBとglTFのどちらを優先しますか?

サポートはプラットフォームによって異なります。配信先プラットフォームの最新のインポートドキュメントを確認してください。GLBはそのプラットフォームが対応している場合、アセットを1ファイルで転送できるため便利なことが多いです。

まとめ

GLBとJSON glTFは同じglTFアセットフォーマットの2つの表現形式です。JSON glTFはリソースをモジュール化して検査や反復作業に活用でき、GLBは単一ファイルでの配信をより便利にします。配信先がサポートするワークフローに基づいて選択し、受け渡し前に実際にエクスポートしたアセットを検証してください。

Tripo AI Studioから直接3Dモデルを生成・エクスポートできます。

利用可能な機能とエクスポートオプションはTripo AI Pricingでご確認ください。

記事をシェア

3Dであらゆるものを生成

下のボタンをクリックして、数百万の3Dクリエイターに加わりましょう。超高精細なモデル生成と業界トップクラスのPBRテクスチャをお試しください。