GLBとOBJ:違い・ユースケース・変換方法
GLBとOBJは最も一般的な3Dファイル形式の2つですが、それぞれ大きく異なる目的で使用されます。以下では、それぞれの用途と注意点について説明します。
2026年6月22日
3Dモデルが完成しました。エクスポートを選択すると、ドロップダウンにGLBとOBJが表示されます。どちらを選択すべきでしょうか?
率直な答えは、そのモデルがどこで使用されるかによって完全に異なります。Three.jsのシーンとCuraスライサーでは要件が異なります。アニメーションキャラクターは静止プリントとは異なるサポートを必要とします。選択を誤ると、テクスチャが失われたり、アニメーションが壊れたり、読み込み時間が大幅に増加したりします。これら2つのフォーマットを比較する際に実際に重要な要素を紹介します。
GLBとは? (GL Transmission Format Binary・glTFバイナリ形式)
GLBは、glTF(GL Transmission Format)のバイナリ形式で自己完結型のバージョンであり、WebGLやOpenGLを開発した同じ組織であるクロノスグループによって作成されました。3Dのシッピングコンテナのようなものと考えてください。すべてが一つの箱に収まり、そのままの状態で届きます。
GLBファイルは3つのものをひとつにまとめたものです:
- ジオメトリ:頂点、面、UV座標、法線。
- 素材とテクスチャ:すべてのPBRプロパティ、例えばベースカラー、メタリック、粗さ、ノーマルマップなどが、ファイル内に直接組み込まれています。
- アニメーション設定: スケルトンリグ、ブレンドシェイプス、キーフレームクリップ。
このシングルファイル設計こそが、GLBを他のほぼすべての3Dフォーマットと区別する特徴です。GLBファイルを送信する際には、受信者が求めるものを正確に送信できます。MTLファイルの欠落、未リンクのテクスチャフォルダ、破損したマテリアルリンクは一切ありません。
GLBの「B」はバイナリを表します。つまり、テキストエディタで開いて内容を確認・編集することはできません。代わりに得られるファイルは、同等のOBJデータよりもサイズが大幅に小さいコンパクトなファイルです。10MBのOBJセットアップ(.objテキストファイルと.mtlマテリアルファイル、独立したPNGテクスチャファイル)は、GLBとして3-5MBに圧縮されます。
GLBは、2017年にKhronosがglTF 2.0をリリースした後、Webベースの3Dにおける主要フォーマットとなりました。現在ではISO国際規格(ISO/IEC 12113:2022)として制定され、Three.js、Babylon.js、Google Model Viewer、そしてすべての主要なゲームエンジンでネイティブ対応されています。
OBJ とは?(Wavefrontオブジェクト形式)
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(マテリアルライブラリ)ファイルに保存します。テクスチャはMTLファイルがファイル名で参照する独立した画像ファイルです。フォルダを移動したり、画像の名前を変更したり、.mtlなしで.objだけを送信すると、テクスチャが表示されなくなります。これがフォーラムでよく見られる「OBJにテクスチャが適用されない」という不満の最も一般的な原因です。
OBJにはいくつかの根本的な制限があります。アニメーションデータを保存できません。標準化された方法でPBRマテリアル定義を保持できません。MTL形式は基本的なマテリアルプロパティ(環境光、拡散反射、鏡面反射、光沢度)をサポートしていますが、現代のリアルタイムエンジンが依存する物理ベースレンダリングのワークフローには対応していません。
GLBとOBJ:7つの主要な相違点
GLB | OBJ | |
ファイル構造 | シングルバイナリファイル (.glb) | 形状データ(.obj)+マテリアル(.mtl)+テクスチャ(別途) |
ファイルサイズ | 小型化(バイナリ圧縮) | 大(プレインテキスト、詳細表示) |
物資支援 | フルPBR(メタリック、粗さ、法線マップ、オクルージョン(環境遮蔽)) | ベーシック(MTLを使用したアンビエント/ディフューズ/スペキュラー) |
アニメーション対応 | はい、スケルトンとブレンドシェイプ | いいえ |
PBR(物理ベースレンダリング)テクスチャ | 組み込み型・自律型 | ツールごとにカスタムMTL設定が必要です |
ウェブのパフォーマンス | 優秀 ― 単一HTTPリクエスト | 低い ― 複数ファイルの読み込み |
人間が読みやすい形式 | いいえ | はい |
GLBの使用に適した場面:3つの代表的なケース
ウェブとリアルタイム3Dのレンダリング
Three.js、Babylon.js で開発している場合、またはGoogleの<model-viewer>ウェブコンポーネントを介してブラウザでモデルを表示する場合、GLBが最適な選択肢です。glTFは最初からこのために設計されており、これが「3DのJPEG」と呼ばれる理由です。
単一のGLBファイルは1回のHTTPリクエストで読み込まれます。ブラウザはジオメトリ、PBRマテリアルパラメータ、テクスチャをすべて一度に取得します。OBJの場合、ブラウザは.objファイルを取得し、解析し、MTL参照を見つけ、MTLファイルを取得し、解析し、その後各テクスチャ画像を取得する必要があります。これは1回ではなく4回または5回のラウンドトリップになります。モバイル接続での3Dビューアーでは、この差は体感できる差となります。
Three.jsのGLTFLoaderはGLBファイルをネイティブ対応しており、適切なテクスチャ・チャンネルでPBRマテリアルを自動設定します。MeshStandardMaterialのワークフローを使っているなら、ファイルからレンダリングモデルへの移行はほぼ摩擦なく行えます。
アニメーションコンテンツ対応ゲームエンジン
ゲームエンジンには形状データ以上のものが必要です。キャラクターは歩き、ジャンプし、剣を振ります。環境アセットには開くドアや作動するスイッチがあります。OBJはそのような情報には一切対応できません — OBJ形式は完全に静的だからです。
GLBは、スケルトン定義、ボーン重み付け、アニメーションクリップを含む完全なglTFシーングラフを保持します。UnityはFBXコンバーターフォールバックでGLBファイルを直接インポートします。Unreal Engineは試験段階のglTFインポーターまたはGLTF for UEプラグインを通じてGLB/GLTFを処理します。Godot 4はネイティブglTFインポート対応を備えています。
パイプラインにアニメーションキャラクター、リギング済みモデル、または動的な要素が含まれる場合、OBJは実用的な選択肢ではありません。GLBまたはFBXが推奨フォーマットです。
AIによって生成された3Dモデル
ほとんどのAI 3D生成ツール(Triverse、Meshy、Tripoなど)はデフォルトで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を通してSTLまたはOBJに変換してください。
OBJのジオメトリ形式のシンプルさは、互換性の問題が少ないことも意味しています。スライサーは数十年にわたりOBJを読み込んできました。エッジケースや仕様上の特徴は十分にドキュメント化されています。
クロスプラットフォーム対応のモデル交換機能
OBJは3Dファイルフォーマットの共通基盤です。すべての主要な3Dアプリケーション―Blender、Maya、3ds Max、ZBrush、Cinema 4D、Houdini、Substance―はプラグインや変換ステップなしで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)
- 単一ファイルとして保存する場合は、バイナリ形式 (.glb) を選択してください
- シーンの一部のみを含める場合は、「Include」セクションで「Selected Objects」を有効にしてください
コマンドラインでの使用(obj2gltf):
npm install -g obj2gltf
obj2gltf -i model.obj -o model.glb
このツールはOBJをglTF/GLB形式に変換します。基本的なマテリアル変換は行いますが、複雑なMTL設定を完璧に再現できるわけではありません。
オンライン変換ツール:
- 無料Triverse用OBJ to 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ファイル形式の基本的なプロパティをエクスポートしますが、PBRパラメータには非対応です
- 埋め込みテクスチャーは外部画像ファイルとして書き出されます — 共有時はフォルダ構成を維持してください
3Dプリンティングの場合:
お使いのスライスソフトが対応している場合は、GLBをOBJではなくSTLに変換してください。STLは3Dプリントの工程において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を直接エクスポートできます。中間変換ステップは不要です。
補足: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の比較に関するよくある質問
1. マテリアルのサポートが優れているのはどちらの形式ですか?
OBJのMTL形式は、アンビエント、ディフューズ、スペキュラー、光沢度といった基本的なマテリアルプロパティのみをサポートします。GLBのPBRマテリアルモデルは、ベースカラー、メタリック、ラフネス、ノーマルマップ、アンビエントオクルージョン、エミッシブプロパティに対応しており、最新のリアルタイムレンダリングエンジンが求める要件を満たしています。AIツールで生成されたテクスチャを含むモデルの場合、それらのテクスチャを完全に保持できるのはGLB形式のみです。
2. GLBファイルを3Dプリントできますか?
いいえ。スライサーソフトウェアはGLB形式を直接読み込めません。まずGLBをSTLまたはOBJに変換してください。Blenderでは、GLBをインポートした後、3Dプリント用にはSTLとして、スライサーがOBJを推奨する場合はOBJとしてエクスポートします。Triverse AIはSTLおよびOBJの直接エクスポートに対応しているため、モデルをスライサーで使用することが分かっている場合は、変換手順を省略できます。
3. OBJはアニメーションをサポートしていますか?
いいえ。OBJは静的なジオメトリ形式です。頂点、面、UV、法線などのメッシュデータのみを保存します。リギング、スケルタルアニメーション、ブレンドシェイプデータはすべて失われます。アニメーション付きモデルには、GLBまたはFBXを使用してください。
4. GLBファイルがOBJより小さいのはなぜですか?
理由は2つあります。バイナリエンコーディングはASCIIテキストよりも数値をはるかに効率的に圧縮でき、さらにGLBはジオメトリ、テクスチャ、マテリアルなどすべてを1つのファイルにパッケージ化するため、3つ以上のファイルに分ける必要がありません。OBJファイル(.obj)とMTLファイル(.mtl)、4つのPNGテクスチャで合計8MBになるものが、単一のGLBファイルでは3MBに圧縮されることもあります。この節約効果は、テクスチャの数やメッシュの複雑さに応じて大きくなります。
5. PythonやBlenderを使わずにGLBファイルを開くにはどうすればよいですか?
オンラインビューアーを使用しましょう。gltf.reportやGoogleのmodelviewer.devでは、GLBファイルをドラッグ&ドロップしてブラウザ上で確認できます。VS CodeにはGLTF Tools拡張機能があり、エディタ内でGLBのプレビューを表示できます。
6. AI生成3Dモデルにはどの形式を使用すべきですか?
リアルタイム3D用途(ゲーム、Web、AR/VR)を想定したAI生成モデルには、一般的にGLBが適しています。TriverseのようなAIツールはジオメトリとともに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の方が無難です。