STL vs OBJ:どちらを使うべき?
印刷したい形状だけならSTL、UV・テクスチャ・色を持つモデルならOBJ。主要なスライサーはどちらも開けますし、無料で相互変換もできます。
- 実測ファイルサイズ
- スライサーの挙動を確認済み
- 無料ビューアーとコンバーター
STL vs OBJ:結論から言うと
単色の3Dプリントなら、STLが無難なデフォルトです。最も古く、最も広くサポートされているメッシュ形式で、三角形以外は何も保存しないため、スライサーが読み違える余地がありません。同じファイルを画面上でも正しく見せたい場合——Blender、ゲームエンジン、レンダラー——はOBJを選びましょう。OBJはテクスチャ座標(UV)、頂点法線、そしてマテリアルファイルへのリンクを保持できるからです。
STL vs OBJ の選択は、結局「書き出した後に何を残したいか」という問題です。形状だけでいいならSTL。形状に加えて表面の見た目まで必要ならOBJ。プリンター自体で色を出したい場合、どちらも理想的ではありません。3MFを使いましょう。スライサーはこれをフィラメントの割り当てとして読み込みます。
どちらの形式にも共通の落とし穴が2つあります。単位フィールドがないため、モデルが25.4分の1(インチで保存)や1,000分の1(メートルで保存)の大きさで届くことがあります。そしてどちらも単なる三角形メッシュなので、曲線はすでにポリゴン化されています。STEPファイルのように正確なCAD曲面を保つことはできません。
STL vs OBJ 比較表
各形式が保持できるもの・できないものを、仕様と実際のツールの読み込み挙動から整理しました。
| STL | OBJ | |
|---|---|---|
| ジオメトリの種類 | 三角形のみ。各三角形が3頂点とファセット法線を個別に持つ | ポリゴン(三角形・四角形・n-gon)で、頂点は共有・インデックス化。仕様上はNURBS曲線・曲面も可能だが、対応ツールはごく少数 |
| 色・テクスチャ | 標準仕様にはなし。互換性のないベンダー拡張が2種類あり、ファセットごとに15ビットカラーを保存 | ファイル内にUV座標を保持。色とテクスチャ画像は別の.mtlファイルから参照 |
| 単位 | なし。スライサーはミリメートルとみなす | なし。読み込むアプリが判断する |
| マテリアル | なし | .mtlに拡散・鏡面・不透明度・テクスチャマップ。PBRのメタル/ラフネスは非公式拡張のみ |
| ファイルサイズ | バイナリ:84バイト+三角形ごとに50バイト。ASCIIは約6倍 | テキストのみ。ジオメトリだけならバイナリSTLより小さいが、UVと法線を書き込むと大きくなる |
| 編集のしやすさ | 編集は困難。つながりのない三角形の寄せ集め | 比較的容易。接続されたトポロジ、グループ、クアッドが残る |
| ソフトウェア対応 | ほぼすべてのスライサー、CAD、メッシュツール | ほぼすべてのスライサー、Blender、Maya、3ds Max、Unity、Unreal、ほとんどのビューアー |
| 印刷用途 | 単一マテリアル印刷の事実上の標準 | 印刷にも使える。PrusaSlicerはマテリアルを無視するが、Bambu Studioは色をフィラメントに対応付けられる |
仕様どおりのバイナリSTL構造:80バイトのヘッダー、4バイトの三角形数、以降は三角形ごとに50バイト。
STLファイルとOBJファイルの中身
1987年に3D Systems最初の光造形装置向けに作られたSTLファイルは、三角形のリストです。各三角形は法線ベクトルと3つの頂点をそれぞれ完全な形で保持します。隣り合う三角形同士を結びつける情報がないため、6つの三角形に共有される頂点は6回保存され、受け取ったソフトは何かを修正・簡略化する前に接続関係を再構築しなければなりません。
Wavefront Technologies由来のOBJファイルは、リストを分けて持つテキストファイルです。v行が頂点座標、vtがテクスチャ座標、vnが法線、そしてf行がそれらを指して面を作ります。mtllib行には色やテクスチャ画像のパスを持つ.mtlファイル名が書かれます。このインデックス方式のおかげでOBJはメッシュの接続を保て、STLには置き場所すらないUVレイアウトを運べるのです。
- STL:三角形ごとに1レコード、それ以外は何もなし
- OBJ:頂点・UV・法線を一度だけ列挙して再利用
- OBJのテクスチャは別ファイル。必ず隣に置いて一緒に扱う
STL vs OBJ のファイルサイズ:同じモデルを両形式で保存
当サイトのギャラリーにあるAI生成モデル「スチームパンクのロボット騎士」(50万三角形、頂点287,963個、2048×2048のカラーテクスチャ)を各形式で書き出し、実測しました。
| 書き出し形式 | 内容 | サイズ |
|---|---|---|
| バイナリSTL | 三角形とファセット法線 | 25.0 MB |
| ASCII STL | 同じデータをテキストで | 150.9 MB |
| OBJ(ジオメトリのみ) | 頂点座標と面 | 21.4 MB |
| OBJ(UVと法線あり) | 座標、UV、法線、面 | 38.6 MB |
| OBJ(テクスチャ込み・フルセット) | .obj + .mtl(198バイト)+ PNGテクスチャ(5.0 MB) | 3ファイルで43.6 MB |
| 3MF(ジオメトリのみ・参考) | ミリメートル単位のXMLメッシュをZIP圧縮 | 10.3 MB |
バイナリSTLのサイズは計算どおり:84 + 50 × 500,000 = 25,000,084バイト。ジオメトリだけならOBJが有利で、287,963個の頂点が三角形ごとではなく一度だけ書き込まれるためです。
3DプリントにおけるOBJ vs STL
スライサーはどちらの形式も「スライスするメッシュ」として扱うため、正しいファイルならどちらでも同じように印刷できます。違いは「何が捨てられるか」にあります。PrusaSlicerのドキュメントによると、OBJ内のマテリアルとテクスチャ情報は読み込み時に無視され、ASCIIとバイナリの両方のSTLを読み込みます。UltiMaker Curaは対応モデル形式としてSTLとOBJを挙げ、ほかに3MF、PLY、glTFにも対応しています。Bambu StudioはOBJから色を読み取り、AMSのフィラメントに対応付ける提案ができるため、BambuプリンターではOBJがSTLより便利ですが、多色印刷でより確実なのはやはり3MFです。
実際に印刷を失敗させるのは形式ではなくジオメトリです。穴、裏返った法線、自己交差などです。怪しいファイルはスライスの前に無料のSTL修復ツールに通しましょう。メッシュを受け取り、水密なSTLを返します。
- 同じメッシュ、同じツールパス。形式が印刷品質を変えることはない
- OBJのテクスチャはほとんどのスライサーで無視される
- 印刷で色を出したいなら3MFで書き出す
STLとOBJの使い分け
STL vs OBJ は、ファイルを次にどこへ渡すかで決めましょう。
単色のFDMまたはレジン印刷
Blenderやゲーム用のテクスチャ付きモデル
Bambu AMSやPrusa MMUでの多色印刷
部品を機械加工業者やCADユーザーに渡す場合
手軽なプレビューを共有する
印刷可能な版をアーカイブする
STLとOBJをトラブルなく変換するには
変換しても形状は失われませんが、見た目の情報は失われます。
- OBJを共有するときは.mtlとテクスチャ画像を同じフォルダに置き、まとめてZIPにしましょう
- 読み込み直後にサイズを確認。25.4倍ずれていればインチ単位で保存されています
- ツールがテキストを要求しない限り、ASCIIではなくバイナリSTLを使いましょう
- スライスや送信の前に、ビューアーで結果をプレビューしましょう
- STL→OBJで色やUVが戻ってくることは期待しないこと。そもそもSTLに入っていません
- .mtlなしの.objだけを送ると、見た目が重要なのにグレーで開きます
- ファイルが小さい=低品質と決めつけないこと。OBJのジオメトリが小さいのは頂点を共有しているからです
- .objの拡張子を.stlにリネームしないこと。内部構造が違い、読み込みに失敗します
無料のSTL・OBJビューアーとコンバーター
いずれもブラウザで動き、ログイン不要。ファイルがデバイスの外に出ることはありません。
FAQ
よくある質問
3DプリントにはSTLとOBJのどちらが良い?
OBJファイルは色やテクスチャを保持しますか?
STLファイルがOBJよりずっと大きいのはなぜ?
STLを画質を落とさずにOBJへ変換できますか?
STL vs OBJ:Blenderに適しているのはどっち?
モデルが小さすぎる/大きすぎるのはなぜ?
STLファイルに色は持たせられる?
写真からSTLやOBJを作るには?
関連ツールとガイド
続きを読む
無料で始める
STL vs OBJはこれで解決。次はモデルを作ろう
写真から3Dモデルを通常1分以内で生成し、有料プランでSTL、OBJ、3MFとして書き出せます。ファイルの表示・変換はここで無料でどうぞ。
クレジットカード不要 · 無料クレジット3回分付き