GLBとOBJ:違い、用途、変換のポイント
GLBとOBJは代表的な3Dファイル形式ですが、その用途は大きく異なります。ここでは、それぞれの適切な使用場面と注意点を解説します。
3Dモデルを完成させ、エクスポートをクリックしました。ドロップダウンにGLBとOBJが表示されました。どちらを使うべきでしょうか?
結論から言うと、それはモデルの用途に完全に依存します。Three.jsのシーンとCuraスライサーでは要件が異なりますし、アニメーション付きキャラクターと静的なプリントでも必要な処理は違います。選択を誤ると、テクスチャが失われたり、アニメーションが壊れたり、読み込み時間が増加する恐れがあります。これら2つのフォーマットを比較する際に本当に重要なポイントを以下で解説します。
GLB とは?(glTF バイナリ形式)
GLBは、Khronos Groupが策定したglTF(GL Transmission Format)のバイナリかつ自己完結型のバージョンです。Khronos GroupはWebGLやOpenGLの開発元でもある同じ組織です。3Dにおける輸送コンテナのようなもので、すべてが1つの箱に入り、中身が損なわれずに届きます。
GLBファイルは、3つのデータをまとめてパッケージ化します:
- 形状:頂点、面、UV座標、法線。
- マテリアルとテクスチャ:ベースカラー、メタリック、ラフネス、ノーマルマップといったPBRマテリアル設定がファイルに直接埋め込み済みです。
- アニメーションデータ: スケルタル・リグ、ブレンドシェイプ、キーフレーム・クリップ。
この単一ファイル設計こそが、GLBを他のほぼすべての3D形式と際立たせている最大の特長です。GLBファイルを送れば、相手が必要とするものがすべて揃います。MTLファイルの欠落、リンク切れのテクスチャフォルダ、破損したマテリアルリンクは一切ありません。
GLBの「B」はバイナリーを意味します。つまり、テキストエディタで開いて中身を直接編集することはできません。その代わりに、同等のOBJデータよりも大幅に小さいコンパクトなファイルが得られます。10MBのOBJ構成(.objテキストファイル、.mtlマテリアルファイル、個別のPNGテクスチャファイル)は、GLBとして圧縮され、3~5MB程度になります。
Khronosが2017年にglTF 2.0をリリースして以来、GLBはウェブベースの3Dにおける第一選択のフォーマットとして定着しました。現在ではISO規格(ISO/IEC 12113:2022)であり、Three.js、Babylon.js、Google Model Viewer、そして主要なゲームエンジンすべてでネイティブサポートされています。
OBJとは何ですか?(Wavefront OBJ形式)
OBJの歴史は1980年代にさかのぼり、Wavefront TechnologiesがAdvanced Visualizerソフトウェア向けに開発しました。今なお現役で使われている最も古い3Dファイル形式の一つであり、その長寿命には意味があります。世界中のあらゆるツールがレーガン政権時代(1980年代)の形式をいまだに理解できるのには、理由があるのです。
OBJはプレーンテキスト(ASCII)形式です。.objファイルは任意のテキストエディタで開き、未加工のジオメトリデータをそのまま確認できます。頂点はv 1.0 0.5 -0.3のように表され、面はf 1/2/3 4/5/6 7/8/9のように表されます。この可読性の高さにより、OBJはデバッグ、解析、理解が非常に容易です。
OBJでは、ジオメトリが主要な.objファイルに、マテリアルが別の.mtl(Material Template Library)ファイルに保存されます。テクスチャは、MTLがファイル名で参照する外部の独立した画像ファイルです。フォルダを移動する、画像の名前を変更する、.mtlなしで.objだけを送信する——こうしたことをすると、テクスチャが表示されなくなります。これはフォーラムで"自分のOBJにテクスチャがない"という不満が寄せられる最も一般的な原因です。
OBJ形式にはいくつかの技術的な限界があります。アニメーションデータを格納できないため、PBRマテリアル定義も標準化された方法では保持されません。MTL形式は基本的なマテリアルプロパティ(アンビエント、ディフューズ、スペキュラー、シャイニネス)をサポートしていますが、現代のリアルタイムエンジンが前提とする物理ベースのレンダリングワークフローには対応していません。
GLB vs OBJ:7つの主な違い
GLB | OBJ | |
|---|---|---|
ファイル構成 | 単一バイナリファイル(.glb) | ジオメトリ (.obj) + マテリアル (.mtl) + テクスチャ (個別) |
ファイルサイズ | サイズを小さく(バイナリ圧縮) | 大(テキストのみ、冗長) |
対応素材 | 完全なPBR(メタリック、ラフネス、ノーマル、アンビエントオクルージョン) | 基本(MTLによる環境光/拡散反射/鏡面反射) |
アニメーション対応 | はい — 骨格とブレンド形状 | いいえ |
PBR テクスチャ | 組み込み型・自己完結型 | ツールごとのカスタムMTL設定が必要 |
ウェブパフォーマンス | 非常に良い — 単一のHTTPリクエスト | 低評価 — 複数のファイルフェッチ |
人間可読 | いいえ | はい |
GLBを使う場面:3つの具体的なケース
ウェブとリアルタイム3Dレンダリング
Three.js や Babylon.js で構築している場合、または Google の <model-viewer> Web コンポーネントを使用してブラウザでモデルを表示している場合は、GLB が最適な選択肢です。glTF は当初からこの目的のために設計されており、そのため「3D の JPEG」と呼ばれています。
単一のGLBファイルは1回のHTTPリクエストで読み込まれます。ブラウザはジオメトリ、PBRマテリアルパラメータ、およびテクスチャをすべて一度に取得します。OBJの場合、ブラウザは.objテキストファイルを取得して解析し、MTL参照を見つけてMTLファイルを取得・解析し、その後各テクスチャ画像を取得する必要があります。これは1回ではなく4〜5回のラウンドトリップが必要です。モバイル環境の3Dビューアーでは、この違いは体感できるほど大きいです。
Three.jsのGLTFLoaderはGLBファイルをネイティブに対応しており、正しいテクスチャチャンネルを用いたPBRマテリアルを自動的にセットアップします。MeshStandardMaterialのパイプラインを使用している場合、ファイルからレンダリング済みモデルへの移行はほぼスムーズです。
アニメーテッドコンテンツを搭載したゲームエンジン
ゲームエンジンにはジオメトリ(形状データ)だけでは不十分です。キャラクターは歩き、ジャンプし、剣を振ります。環境アセットには、開閉するドアやオンオフできるスイッチといったギミックが含まれます。OBJはそのような動的な挙動は一切扱えず、純粋に静的なフォーマットです。
GLBは、スケルトン定義、ボーンウエイト、アニメーションクリップを含む完全なglTFシーングラフを保持します。UnityはFBXコンバーターのフォールバック機能により、GLBファイルを直接インポートできます。Unreal Engineでは、実験的glTFインポーターまたはGLTF for UEプラグインを通じてGLB/GLTFを処理します。Godot 4はglTFのネイティブインポートに対応しています。
パイプラインにアニメーションキャラクター、リグ付きモデル、または動きのあるアセットが含まれる場合、OBJは適していません。GLBまたはFBXを使用すべきです。
AI生成 3Dモデル
Triverse、Meshy、Tripoなど、ほとんどのAI 3D生成ツールはデフォルトでGLB形式で出力されます。特にTriverse AIでは、エクスポート時にGLB、OBJ、STL、3MF、FBX、USDZから選択できます。その理由は明白です。これらのツールはジオメトリとともにPBRマテリアル情報を生成しますが、両方を単一のポータブルなファイルとして保存できる唯一の一般的な形式がGLBだからです。
同じモデルをOBJ形式でエクスポートすると、PBR情報はツールに応じて非標準のMTL設定に格納されるか、完全に破棄されます。ゲームエンジンや3Dソフトウェアに取り込まれるのは、シェーディングのない未加工のメッシュであり、AI生成のマテリアルは転送されません。
リアルタイム3DワークフローにAI生成モデルを取り込むクリエイターにとって、GLBエクスポートは品質をそのまま維持できる選択肢です。
OBJを使うべき3つの明確なケース
3Dプリントとスライサーのワークフロー
Cura、PrusaSlicer、Bambu Studio、Orca Slicerなど、すべてのスライサーソフトウェアは、OBJファイルをネイティブに、かつ問題なくインポートできます。スライサーはマテリアルやPBR設定を気にしません。必要なのは、レイヤーへスライス可能なクリーンなジオメトリです。OBJはまさにそれを、最小限の解析オーバーヘッドで提供します。
AI生成モデルの3Dプリント用変換には、ほぼ必ず中間フォーマットとしてOBJまたはSTLが使用されます。Triverse AIはOBJ形式での直接書き出しが可能であり、スライサーとの連携に役立ちます。AIツールからGLBを出力して造形する必要がある場合は、まずBlenderやMeshmixerでSTLまたはOBJに変換してください。
OBJのデータ形式がシンプルであることは、互換性の問題が少ないことも意味します。スライサーは何十年にもわたってOBJに対応しており、エッジケースや仕様上の癖も十分に文書化されています。
クロスプラットフォームモデル共有
OBJは3Dファイル形式における最小公約数的存在です。Blender、Maya、3ds Max、ZBrush、Cinema 4D、Houdini、Substanceなど、主要な3Dアプリケーションのすべてが、プラグインや変換作業なしでOBJを読み書きできます。異なるツールを使う協力者にモデルを送る必要がある場合でも、OBJなら大丈夫です。
この汎用性の高さこそが、OBJ に制限がありながらも、アーカイブ用途やデータ交換で今なお多用されている理由です。受け取る側がどのソフトウェアを使っているかわからない場合、OBJ が最も無難な選択肢です。
テキストベースの形式であるため、OBJは検証が容易です。モデルが正しく読み込まれない場合は、.objファイルを開いて頂点インデックスを確認し、フェイス定義を検証することで、問題を直接特定できます。
コンピュータグラフィックスの学習
OpenGLおよびWebGLのプログラミングチュートリアルでは、ほぼ例外なくOBJが例示用フォーマットとして使用されます。その理由は教育的なものです。OBJのシンプルで可読性の高い構文は、解説される基礎的なグラフィックス概念ときれいに対応付けられるからです。
頂点とは何か、法線とは何か、テクスチャ座標とは何か、面とは何か、そして3Dエンジンがそれらをどのように解釈するかを学ぶとき、OBJは中身が見える学習ツールです。学生はシンプルなOBJファイルを印刷して一行ずつ読み、データがレンダリングされたジオメトリにどのように対応するかを正確に理解できます。
OBJは、プロダクション用フォーマットとして最適でなくとも、教育用途には最適なフォーマットです。
GLBとOBJの相互変換方法
両方向とも直感的です。
OBJをGLBに変換する方法
Blenderを使用する方法(ほとんどのユーザーに推奨):
- Blenderを開き、OBJファイルをインポートしてください: ファイル → インポート → Wavefront (.obj)
- MTLファイルが同じフォルダに配置されているか確認してください。Blenderは自動的に読み込みます
- インポート後、テクスチャがビューポート(EEVEEまたはCycles)に正しく表示されることを確認してください
- エクスポート: ファイル→エクスポート→glTF 2.0 (.glb/.gltf)
- 1つの完結したファイルにはバイナリ形式 (.glb) を選択してください
- シーンの一部のみを含める場合は、「Include」セクションで「Selected Objects」を有効にしてください
コマンドラインでの使用(obj2gltf):
npm install -g obj2gltf
obj2gltf -i model.obj -o model.glb
このツールはOBJをglTF/GLB形式に変換します。基本的なマテリアル変換に対応していますが、複雑なMTL設定を完全には再現できません。
オンライン変換ツール:
- 無料 Triverse OBJ→GLB コンバーター: OBJファイルをアップロードするだけで、数秒でGLBファイルに変換できます。ソフトのインストール不要。
- convert3d.org: ブラウザベースでインストール不要
- 3dencoder.com: バッチ変換をサポートしています。
注:OBJ形式ではアニメーションが保存されないため、元のファイル内のアニメーションは変換後も残しません。
GLBをOBJに変換する方法
Blender での操作:
- glTF/GLBファイルをインポート: ファイル → インポート → glTF 2.0 (.glb/.gltf)
- Blenderは埋め込みのマテリアルおよびテクスチャを読み込みます
- エクスポート: ファイル → エクスポート → Wavefront (.obj)
- 「Export MTL」にチェックが入っていることを確認してください。これにより .obj ファイルと一緒に .mtl ファイルが生成されます
- テクスチャ画像は、同じフォルダ内に単体のPNGファイルとしてエクスポートされます
変換で失うもの:
- アニメーション — GLBの骨格データは往復変換で失われます
- PBRマテリアル定義 — Blenderは基本的なMTLプロパティをエクスポートし、物理ベースレンダリングのパラメータではありません
- 埋め込みテクスチャは外部画像ファイルとして保存されます。共有する際はフォルダを保持してください
3Dプリントに特化して
スライサーがSTLに対応しているなら、OBJではなくSTLへの変換を選んでください。STLは印刷ワークフローにおいてOBJよりシンプルで、ジオメトリ解釈に関する潜在的な問題を回避できます。Triverse AIはOBJに加えてSTLの直接エクスポートにも対応しているため、変換ステップを完全に省略できます。
ブラウザだけで素早く変換したい場合は、TriverseのGLBからOBJへの変換ツールを使えば、ソフトウェアをダウンロードせずに済みます。
Triverse AIからGLBとOBJを書き出す方法
Triverse AIを使えば、画像やテキストプロンプトから3Dモデルを生成し、GLB、OBJ、STL、3MF、FBX、USDZの6つの形式でそのままエクスポートできます。

選択してください:GLB(モデルをゲームエンジン、Web上の3Dシーン、またはAR/VRアプリケーションで使用する場合)。GLBは、ジオメトリとともにTriverseが生成するPBRマテリアルデータを保持するため、プレビューと同じ見た目がエンジンやブラウザでも再現されます。
3Dプリント用のスライサーにモデルを送信する場合や、変換なしですべての3Dアプリケーションが受け入れる形式が必要な場合は、OBJを選択してください。OBJは汎用的な代替形式です。受信者が使用するソフトウェアが不明な場合、OBJは無難な選択です。
AIモデルを3Dプリンターで出力する場合、スライサーでSTL形式が必要なときは、TriverseがSTLを直接エクスポートできるため、中間の変換ステップは不要です。
こちらもおすすめ:
Triverse 無料 3Dファイルコンバーター
補足:GLB vs OBJ vs FBX:3つ目のフォーマットについての解説
FBXは、複雑さと機能面においてOBJとGLBの中間に位置します。アニメーション、複雑なマテリアル、カメラデータに対応し、映画およびAAAゲーム制作における事実上の標準フォーマットです。
GLBとOBJのどちらを選ぶか検討している場合、FBXの有無はその選択に影響しません。WebやリアルタイムエンジンにはGLBを、3Dプリントや異なるツール間での互換性にはOBJを使用してください。FBXが真価を発揮するのは、標準的な制作パイプラインで最も強力なアニメーションおよびマテリアル対応が必要な場合です。そのようなケースでは、GLBと併用するのではなく、GLBよりもFBXが優先されるのが一般的です。
ほとんどの個人開発者、Web 3D制作者、AI 3Dアーティストにとって、GLBとOBJで実務上必要な範囲をカバーしています。
要点:フォーマットを処理パイプラインに合わせる
GLBとOBJは対立するものではありません。用途に応じて使い分けるべきツールです。
GLBは、Web向けに開発している場合、リアルタイムエンジンを扱っている場合、またはAIツールによって生成されたPBRマテリアルやアニメーションを保持する必要がある場合に最適な選択肢です。コンパクトで自己完結型であり、最新の3D Webスタック向けに設計されています。
OBJは、互換性が最優先される場合に最適な選択肢です。3Dプリントのワークフロー、ツール間のモデル交換、または頂点・面などの生データを確認・編集する必要がある教育現場などで役立ちます。派手さはありませんが、あらゆるツールに対応します。
Triverse AIトライバースAIエクスポート時に両方のオプションが選べます。ゲームエンジンやWebアプリに進む場合は、GLBを選べばOKです。3Dプリント用にスライスする場合や、異なるソフトウェアを使う共同作業者と共有する場合は、OBJまたはSTLの方がより確実です。


