GLBとOBJ:違い・ユースケース・変換方法
GLBとOBJは代表的な3Dファイル形式ですが、その用途は大きく異なります。ここでは、それぞれの使い分けと注意点について解説します。
2026年6月22日
3Dモデルが完成しました。エクスポートを押すと、ドロップダウンに表示されるのはGLBとOBJです。どちらを選択すべきでしょうか?
率直に言えば、それはそのモデルがどの用途で使われるかに完全に依存します。Three.js のシーンと Cura スライサーソフトでは必要なものが異なります。アニメーションキャラクターには、3D 印刷用の静止モデルとは異なるサポートが必要です。間違った選択をすると、テクスチャが失われたり、アニメーションが壊れたり、読み込み時間が長くなったりします。これら 2 つのフォーマットを比較する際、本当に重要な点は以下の通りです。
GLBとは? (glTFバイナリ形式【The glTF Binary Format】)
GLBは、クロノス・グループ(WebGLやOpenGLを開発した組織)が作成した3Dモデル伝送フォーマット「glTF」の自己完結型のバイナリバージョンです。3Dデータの輸送コンテナのようなもので、すべてが1つの箱に収められ、そのまま届くのです。
GLB ファイルは、3 つの構成要素を単一ファイルにパッケージ化しています:
- 幾何形状:頂点、面、UV座標、法線。
- 素材と質感:ベースカラー、メタリック、ラフネス、ノーマルマップなどのPBRの各プロパティが、ファイル内に直接含まれています。
- アニメーションデータ:スケルトンリグ、ブレンドシェイプ、キーフレームクリップ。
この単一ファイル設計こそが、GLBを他のほとんどの3Dフォーマットと一線を画しています。GLBファイルを送信する際、受信者が必要とするものを正確に送信できます。不足しているMTLファイル、孤立したテクスチャフォルダー、リンク切れのマテリアルは一切ありません。
GLBの「B」はバイナリの略です。つまり、テキストエディタで開いて中身を確認したり編集したりすることはできません。その代わりに得られるのは、同等のOBJデータよりも大幅に小さいコンパクトなファイルです。10MBのOBJ一式(.objテキストファイル、.mtlマテリアルファイル、バラバラのPNGテクスチャ)が、GLBでは3〜5MB程度に圧縮されることもあります。
GLB は、Khronos が 2017 年に glTF 2.0 をリリースした以降、Web 向け 3D のためのデファクトスタンダードとなりました。現在は ISO 国際規格(ISO/IEC 12113:2022)に制定されており、Three.js、Babylon.js、Google Model Viewer、および主要なゲームエンジンすべてでネイティブ対応しています。
OBJとは? (Wavefront Object形式)
OBJは1980年代に起源を持ち、Wavefront TechnologiesがそのAdvanced Visualizerソフトウェア向けとして開発しました。これは現在も活発に使用されている最も古い3Dファイル形式の一つであり、その長寿は何かを示唆しています。世界中のあらゆるツールがレーガン政権時代のフォーマットを今でも対応しているのには理由があるのです。
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 対 OBJ: 7つの主要な違い
GLB | オブジェクト | |
ファイル構成 | 単一バイナリファイル (.glb) | 形状 (.obj) + マテリアル (.mtl) + テクスチャ (別ファイル) |
ファイルサイズ | サイズ縮小(バイナリ圧縮) | 大(テキストのみ、詳細表示) |
資材支援 | フル PBR(メタリック、ラフネス、法線、オクルージョン) | 基本(MTLによる環境光、拡散光、鏡面光) |
アニメーション対応 | はい — 骨格とブレンドシェイプ(モーフ) | いいえ |
PBRテクスチャ | 組み込み/自己完結 | ツール毎にカスタムMTLのセットアップが必要です |
ウェブパフォーマンス | 優れた ― 単一HTTPリクエスト | 不適切 — 複数ファイルの取得処理 |
人間可読 | いいえ | はい |
GLBを使用すべき3つの具体的なケース
Webとリアルタイム3Dレンダリング
Three.js や Babylon.js で開発している場合、または Google の<model-viewer> ウェブコンポーネントでブラウザ上でモデルを表示している場合、GLB が明確な選択肢です。glTF はこの用途向けに最初から設計されており、そのため「3D 版の JPEG」と呼ばれています。
1つの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が生成したマテリアルは反映されません。
AI 生成モデルをリアルタイム 3D ワークフローに取り込むクリエイターにとって、GLB エクスポートは品質を損なわずに保つための選択です。
OBJ を利用する 3 つの明確なシナリオ
3D プリントとスライサーワークフロー
すべてのスライサーソフトウェア — Cura、PrusaSlicer、Bambu Studio、Orca Slicer — は、OBJファイルをネイティブかつ問題なく受け入れます。スライサーは、材料やPBR設定を気にしません。必要なのはクリーンな形状データであり、レイヤーごとにスライスできます。OBJは、最小限の解析処理の負荷でまさにそれを提供します。
AI 生成モデルを 3D プリンティング用に変換するプロセスでは、中間フォーマットとして OBJ または STL がほぼ常に用いられます。Triverse AI は直接 OBJ エクスポートに対応しており、これがスライサーとの連携を容易にします。AI ツールから GLB をエクスポートして印刷する必要がある場合は、まず Blender や Meshmixer 経由で変換してください。
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 ファイルを開いて 1 行ずつ読み解くことで、データがレンダリングされた 3D 形状にどのようにマッピングされるかを正確に理解できます。
したがって、OBJ というフォーマットは、生産用として最適でなくても、教育用としては適切な形式となります。
GLBとOBJの相互変換方法
どちらの方向も明快です。
OBJをGLBに変換する方法
Blenderの場合(ほとんどのユーザーに推奨されます)。
- Blenderを開き、OBJファイルをインポートしてください:ファイル → インポート → Wavefront形式 (.obj)
- MTL ファイルを同じフォルダに配置しているか確認してください。Blender は自動的に読み取ります
- インポートした後、テクスチャがビューポート(EEVEEまたはCycles)に表示されているか確認してください
- エクスポート: ファイル → エクスポート → glTF 2.0 (.glb/.gltf)
- 単一の自己完結型ファイルにはバイナリ(.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ファイル内のアニメーションは変換後も維持されません ― OBJフォーマットは元々アニメーションを保存しません。
GLB から OBJ への変換方法
Blender の場合:
- GLB/GLTFファイルをインポートします。ファイル → インポート → glTF 2.0 (.glb/.gltf)
- Blender は組み込まれたマテリアルとテクスチャを読み込みます
- 書き出し: ファイル → 書き出し → Wavefront (.obj)
- "Export MTL"にチェックが入っていることを確認してください——これにより.objファイルに併せて.mtlファイルが生成されます
- テクスチャ画像は、同じフォルダ内にPNGファイルとしてエクスポートされます
変換時に失うもの:
- アニメーション — GLBボーンデータがラウンドトリップで保持されない
- PBRマテリアルの定義 ― Blenderは物理ベースパラメータではなく、基本的なMTLプロパティをエクスポートします
- 埋め込みテクスチャは外部画像ファイルとして出力されます — 共有時にはフォルダ構造を維持してください
3D プリントの場合:
スライサーが対応している場合は、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つの形式で直接エクスポート可能です。

モデルをゲームエンジン、Web 3Dシーン、またはAR/VRアプリケーションに導入する場合は、GLBを選択してください。GLBは、Triverseが生成するジオメトリとともにPBRマテリアルデータを保持するため、プレビューで表示される内容がエンジンやブラウザに忠実にロードされます。
3Dプリント用のスライサーにモデルを送信する場合や、変換不要であらゆる3Dアプリケーションで利用できる形式が必要な場合は、OBJを選択してください。OBJは標準的な代替形式です。受信者が使用するソフトウェアが不明な場合でも、OBJを選択するのが安全です。
AIモデルの印刷時には、スライサーがSTLを必要とする場合、TriverseはSTLを直接エクスポートします。中間変換ステップが不要です。
補足: GLB vs OBJ vs FBX: 3Dファイルフォーマットに関する簡単な比較
FBXは、機能の豊富さや能力の面でOBJとGLBの中間に位置するフォーマットです。アニメーション、複雑なマテリアル、カメラデータをサポートしており、映画やAAA級ゲーム制作においてデファクトスタンダードとなっています。
GLBとOBJのどちらかを選ぶ場合、FBXはその決定に影響しません。ウェブやリアルタイムレンダリングエンジンにはGLBを、3Dプリントや各種ツール間での互換性にはOBJを使用してください。FBXは、従来の制作ワークフローで最も堅牢なアニメーションとマテリアルサポートが必要な場合に使用されます — その場合、通常はGLBではなく、FBXを選択することになります。
ほとんどのインディー開発者、Web 3Dクリエイター、AI 3Dアーティストにとって、GLBとOBJで実際に必要な範囲は十分にカバーしています。
GLB と OBJ に関するよくある質問
1. どちらの形式がマテリアルサポートに優れていますか?
OBJ ファイルの MTL 形式は、アンビエント、ディフューズ、スペキュラー、シャイニネスという基本的なマテリアルプロパティのみをサポートしています。一方、GLB の PBR(Physically Based Rendering)マテリアルモデルは、ベースカラー、メタリック、ラフネス、ノーマルマップ、環境遮蔽、エミッシブといったプロパティを網羅しており、現代のリアルタイムレンダリングエンジンが期待する仕様と一致しています。AI ツールで生成されたテクスチャを含むモデルの場合、それらのテクスチャが完全に保持されるのは GLB 形式だけです。
2. GLB ファイルを 3D プリントできますか?
いいえ。スライサーソフトウェアは GLB 形式を直接読み込むことはできません。まず GLB を STL または OBJ に変換する必要があります。Blender では GLB をインポートした後、印刷用には STL として、あるいはお使いのスライサーが OBJ を好む場合は OBJ としてエクスポートします。Triverse AI は直接 STL および OBJ エクスポートに対応しているため、モデルがスライサー向けであることがわかっている場合、変換ステップをスキップできます。
3. OBJ はアニメーションをサポートしていますか?
いいえ。OBJ は静的ジオメトリフォーマットであり、メッシュデータ(頂点、面、UV、法線)のみを保存します。リギング、スケルトンアニメーション、ブレンドシェイプなどのデータは失われます。アニメーション付きモデルの場合は、GLB または FBX を使用してください。
4. なぜ GLB ファイルは OBJ よりも小さいのですか?
その理由は主に 2 つあります。第一に、バイナリエンコーディングは ASCII テキストよりもはるかに効率的に数値を圧縮します。第二に、GLB はジオメトリ、テクスチャ、マテリアルなどを 3 つ以上のファイルではなく、単一のファイルにパッケージ化します。例えば、.obj ファイル、.mtl ファイル、および 4 つのテクスチャ PNG ファイルで構成され 8MB になる OBJ ファイルも、単一の GLB として圧縮すると 3MB 程度になります。この圧縮効果は、テクスチャの数やメッシュの複雑さに比例して大きくなります。
5. Python や Blender を使わずに GLB ファイルを開く方法はありますか?
オンラインビューアを使用してください:Google のgltf.reportやmodelviewer.devを使えば、ブラウザ上で GLB ファイルをドラッグ&ドロップして詳細を確認できます。また、VS Code には「GLTF Tools」拡張機能があり、エディタ内で GLB プレビューをレンダリングできます。
6. AI 生成の 3D モデルにはどの形式を使うべきですか?
GLB は、ゲーム、Web、AR/VR などのリアルタイム 3D 用途を想定した AI 生成モデルにとって、一般的により優れた選択肢です。AI ツールであるTriverse は PBR マテリアルを生成しますは、ジオメトリとともに PBR マテリアルデータを生成し、GLB 形式でエクスポートすることでその情報を保持します。一方、3D プリント用のエクスポートであれば、スライサーがこれらのフォーマットを直接読み込めるため、OBJ または STL の方が実用的です。
7. AI 生成モデルを GLB から OBJ に変換しても品質は劣化しませんか?
ジオメトリ(メッシュ)の変換自体は問題なく行えます。ただし、GLB に埋め込まれた PBR マテリアルの定義は、OBJ の MTL 形式への往復変換では維持されません。OBJ で得られるのは、基本的なディフューズ色とスペキュラー値のみであり、完全な PBR マテリアルスタックではありません。3D プリント用途であればこれは問題になりませんが、リアルタイムレンダリング用途では、ターゲットアプリケーション内でマテリアルの再構築または再生成が必要です。
要するに:パイプラインに適合するフォーマットを合わせる
GLBとOBJは競合相手ではありません。それぞれ異なる目的に適した異なるツールです。
GLBは、Web開発を行う際、リアルタイムエンジンで作業する場合、またはAIツールで生成されたPBRマテリアルやアニメーションを維持する必要がある場合に最適な選択肢です。コンパクトで単一ファイル形式であり、最新の3D Webスタック向けに設計されています。
OBJ は、互換性が最優先される場合に最適な選択肢です。3D プリンティングワークフロー、ツール間でのモデル交換、または生ジオメトリデータを直接確認・編集できる学習環境などにおいて有効です。派手さはありませんが、あらゆるツールと互換性があります。
ほとんどのAI 3D生成ツール(Triverse AIを含む)では、エクスポート時に両方の形式を選べます。ゲームエンジンやWebアプリで使用する場合はGLBを選んでください。3Dプリント用にスライスしたり、異なるソフトウェアを使用する共同作業者と共有する場合は、OBJまたはSTLの方が無難な選択です。