1つのファイルか、複数のファイルか——正解はそのときどきで変わる
glTFアセットには2つの形があり、どちらが欲しいかはこれから何をするかで完全に決まります。
GLB — 1つのバイナリファイル。 JSON、バッファ、テクスチャがすべて中に入っています。メール添付でテクスチャが行方不明になることも、フォルダ構成を整理した拍子に壊れることもなく、ディレクトリ構造なしでどのビューアにもそのまま放り込めます。納品するのはこちらです。
glTF — JSONと分割されたファイル群。 シーン記述は人が読めるテキストで、開いて確認でき、gitで差分を取れ、手で編集もできます。テクスチャはフォルダに置かれたただのPNGやJPEGで、3Dツールを経由せずその場で編集できます。作業に使うのはこちらです。
この無料オンラインパッケージャーは、両者をブラウザ内で双方向に変換します。
アンパックは過小評価されている
多くのツールはGLB方向への一方通行しか用意していません。納品が分かりやすい用途だからです。しかしアンパックは、ほかの手段では本当に厄介な問題を解決します。
- テクスチャを1枚だけ直す。 アンパックし、任意の画像エディターでPNGを開いて保存し、再びパックする。DCCツールは一切不要です。
- マテリアルの値を読む。
.gltfはJSONです。metallicFactorを検索して数値を読むだけで済みます。 - バージョン管理。 バイナリのGLBの差分は役に立ちません。アンパックしたglTFなら、プルリクエストでどの値が変わったのかが正確に分かります。
- ローダーのデバッグ。 エンジンがファイルを受け付けないとき、JSONを読めれば理由はたいてい数秒で分かります。
画像の埋め込み
アンパックにはもう1つの状態があります。画像をbase64のデータURIとしてインライン化した .gltf です。これなら、1つのファイルでありながら同時に人が読めるテキストでもあります。バグレポートに貼り付けたり、小さなアセットをコミットしたりするのに便利です。代償はおよそ33%のサイズ増加で、base64がコンパクトな符号化ではないためです。小さなアセット向けであって、40MBのモデルに使うものではありません。
再エンコードは一切ありません
どちらの方向でも、テクスチャのバイト列はそのままコピーされます。GLBに入れたPNGは、アンパック後もバイト単位で同じPNGとして出てきます。DracoやMeshoptで圧縮されたジオメトリも、読み込み側と書き出し側の双方がそれらの拡張を理解しているため、往復しても無傷のまま残ります。
不足リソースは、はっきりエラーにします
.gltf は単体では不完全なアセットで、一緒に持ち運ばれるべき .bin バッファや画像ファイルを指しています。それらの関連ファイルを渡さずにパックしようとすると、このツールは処理を止め、どれが不足しているかを正確に伝えます。一部のコンバーターが取る代替案は、開いてみるまで問題なさそうに見えて、実際にはジオメトリが存在しないGLBを作ってしまうことです。
プライバシー
パックとアンパックはすべてブラウザ内で行われます。アップロードも保存もログ記録もありません。
Tiny Online Tools







