UltKit

glTFをGLBに変換

glTFの書き出しは通常、.gltf(JSON)、1つ以上の.binバッファ、テクスチャのフォルダという3種類のファイルで構成されます。GLBは同じモデルを1つのバイナリファイルにまとめた形式で、アップロードフォーム、ビューア、ARアプリが求めるのはこちらです。

3Dモデル変換

またはSTL, OBJ, MTL … ファイルをここにドロップ ·

1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除

出力

ファイルは当社のサーバーで処理され、30分後に削除されます。

このツールの使い方

  1. 1

    glTFフォルダをZIPにする

    エクスポート時に作られたフォルダ構成のまま、.gltf と .bin ファイル、テクスチャ画像を1つのZIPにまとめてアップロードします。データが埋め込まれた単体の .gltf は、そのままアップロードできます。1回に最大20ファイル、1ファイルあたり95 MBまでです。

  2. 2

    モデルはそのままにする

    モデルの単位は m、上方向の軸は「保持」のままにします。正しい glTF はもともとメートル単位かつ Y アップだからです。テクスチャとマテリアルを保持はオンにして、すべての画像を埋め込みます。

  3. 3

    GLBに変換する

    GLBに変換 → を押して、モデルごとに1ファイルずつダウンロードします。アップロードしたファイルと変換結果は30分後に削除されます。

回答

glTF と GLB の違いは何ですか?

どちらも同じ glTF 2.0 のモデルを格納します。.gltf は読み取れる JSON で、別ファイルの .bin や画像を指します。GLB は、その JSON とバッファ、画像を1つのバイナリファイルにまとめたものです。

glTFをGLBにまとめる理由

2017年に公開された glTF 2.0 は Khronos Group が設計した伝送用フォーマットで、3D ツールとモデルを表示する側をつなぐ最後のステップです。JSON 形式は読んで編集できるので開発者には扱いやすい反面、実際には壊れやすいものです。テクスチャの名前を変えたり、.bin なしで .gltf をアップロードしたり、CMS にフォルダ構造を削除されたりすると、ジオメトリが欠けたり表面が白くなったりした状態で読み込まれます。

GLB は、すべてを1つのコンテナに入れることでこの問題を解決します。Shopify の商品メディア、Android の Scene Viewer、Google の model-viewer、多くのアセットマーケットが GLB を求めるのはこのためです。変換はロスレスです。コンバーターは JSON を読み、参照されるすべてのバッファと画像を読み込んで1つのバイナリチャンクに書き込み、参照先をファイル内部に書き換えます。

GLBファイルの構造

ヘッダー:マジックワード glTF、バージョン2、全体の長さ
12バイト
最初に JSON、次にバッファと画像を含む BIN チャンク1つ
2チャンク
各チャンクがパディングされる境界
4バイト
.gltf + .bin + テクスチャの代わりに
1ファイル

GLTF

GL Transmission Format

glTF は、2015年に最初に公開された Khronos Group のオープンな 3D 形式で、「3D の JPEG」とも呼ばれます。.gltf ファイルはシーンを記述した JSON で、通常は別の .bin ジオメトリファイルやテクスチャ画像ファイルとセットになります。PBR マテリアル、アニメーション、スキニングに対応し、効率的なリアルタイムレンダリングを想定して設計されています。共有時に別ファイルが失われることがあるため、1ファイルの GLB 形式がよく好まれます。

圧縮方式
–
透過
–
アニメーション
対応
登場時期
2015 · Khronos Group
GLTF 変換

GLB

glTF バイナリ(GLB)

GLB は、2017年に Khronos Group が公開した 3D 伝送形式 glTF 2.0 のバイナリ形式です。ジオメトリ、PBR マテリアル、テクスチャ、アニメーションを、高速に読み込めるよう設計された1つのコンパクトなファイルにまとめます。Web 3D、AR ビューアー、Android の Scene Viewer、オンラインのモデルマーケットプレイスで広く使われています。古いデスクトップ向け 3D ツールや CAD プログラムの一部では読み込めません。

圧縮方式
–
透過
–
アニメーション
対応
登場時期
2017 · Khronos Group
GLB 変換

glTF から GLB への変換はパッケージ化の作業です。アップロードフォーム、Android AR、Web ビューアは単体で完結した1つのモデルファイルを求めるため、.gltf と .bin バッファ、テクスチャを1つにまとめます。

.binやテクスチャが見つからないエラーの対処法

  • GLB にジオメトリがない、または変換に失敗する

    .bin バッファがアップロードされていません。JSON が参照しているファイル名のまま、.gltf と一緒にZIPにまとめてください。

  • 表面が白またはグレーになる

    テクスチャが不足しています。.gltf をテキストエディタで開き、image の uri を確認して、該当ファイルを同じ相対パスでZIPに入れてください。

  • テクスチャのパスが C:\ や /Users で始まっている

    エクスポーターが絶対パスを書き出しています。相対パスで再エクスポートするか、画像を .gltf の隣に移動して uri をファイル名だけに書き換えてください。

  • テクスチャが KTX2 または WebP である

    これらには KHR_texture_basisu または EXT_texture_webp 拡張が必要で、非対応のビューアもあります。幅広く対応させるには PNG か JPEG で再エクスポートしてください。

glTFのGLB変換に関するよくある質問

glTFをGLBに変換するとモデルは変わりますか?

いいえ。メッシュ、マテリアル、ノード名、アニメーション、スキンはそのままコピーされ、変わるのはパッケージの形だけです。JSON は GLB の先頭チャンクに、バッファと画像はバイナリチャンクに格納されます。

.gltfだけでなくZIPでアップロードするのはなぜですか?

ファイル分離型の glTF は、.bin やテクスチャを相対パスで指しているだけです。単体でアップロードするとリンク先がなくなり、GLB にジオメトリや画像が含まれなくなります。フォルダごとZIPにすれば、参照されるファイルがすべて .gltf の隣に揃います。逆の操作についてはあらゆる端末でのZIP解凍方法のガイドもご覧ください。

GLBはglTFより容量が小さくなりますか?

すべてを base64 テキストで埋め込んだ .gltf と比べると、はい、約4分の1小さくなります。base64 はバイナリデータを約3分の1膨らませるためです。.gltf と .bin、画像を別々に持つ場合と比べると、合計サイズはほぼ同じで、メリットはファイルが1つになることです。

Draco圧縮されたglTFファイルに対応していますか?

KHR_draco_mesh_compression 拡張を使った glTF は読み込まれ、ジオメトリも保持されます。Web 用にできるだけ小さくしたい場合は、完成した GLB に glTF-Transform などのツールで Draco または meshopt 圧縮をかけてください。

GLBを個別のglTFファイルに戻せますか?

はい。GLB をアップロードし、3Dモデル変換の変換先で glTF を選んでください。JSON を手で編集したい場合や、再エクスポートせずにテクスチャを差し替えたい場合に便利です。

この方法でまとめられるglTFを書き出せるアプリは?

Blender の glTF エクスポーターは、glTF Separate でも GLB でも直接書き出せます。Sketchfab のダウンロード、Substance 系ツール、ほとんどのゲームエンジンのエクスポーターも同様です。お使いのツールが分離形式しか出力できない場合は、このページで1ファイルにまとめられます。