SupaVoxel
3Dファイル形式

STL vs OBJ:どちらを使うべき?

印刷したい形状だけならSTL、UV・テクスチャ・色を持つモデルならOBJ。主要なスライサーはどちらも開けますし、無料で相互変換もできます。

  • 実測ファイルサイズ
  • スライサーの挙動を確認済み
  • 無料ビューアーとコンバーター
更新日 2026年10月

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 比較表

各形式が保持できるもの・できないものを、仕様と実際のツールの読み込み挙動から整理しました。

STLOBJ
ジオメトリの種類三角形のみ。各三角形が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またはレジン印刷

STLを使いましょう。どのスライサーも印刷サービスも受け付け、失くすような別ファイルもありません。PrintablesやThingiverseなどのモデルサイトで最もよく見かける形式でもあります。

Blenderやゲーム用のテクスチャ付きモデル

OBJ、できればテクスチャを1ファイルにまとめたGLBを使いましょう。OBJはUVを保持するので、テクスチャが正しい位置に貼られます。

Bambu AMSやPrusa MMUでの多色印刷

3MFを使いましょう。色付きOBJしかない場合もBambu Studioで対応付けできますが、3MFはパーツごとのフィラメント割り当てを直接保存できます。

部品を機械加工業者やCADユーザーに渡す場合

STEPがあるならSTEPを使いましょう。メッシュ形式はどちらも、CADユーザーが穴やフィレットを編集するのに必要な正確な曲面を失います。

手軽なプレビューを共有する

OBJは色付きでほぼどこでも開けます。Webページに載せるなら、1つのコンパクトなファイルになるGLBに変換しましょう。

印刷可能な版をアーカイブする

3MFプロジェクトと一緒にバイナリSTLも残しましょう。10年後もどのツールでも開けるのはこの形式です。

STLとOBJをトラブルなく変換するには

変換しても形状は失われませんが、見た目の情報は失われます。

やるべきこと
  • OBJを共有するときは.mtlとテクスチャ画像を同じフォルダに置き、まとめてZIPにしましょう
  • 読み込み直後にサイズを確認。25.4倍ずれていればインチ単位で保存されています
  • ツールがテキストを要求しない限り、ASCIIではなくバイナリSTLを使いましょう
  • スライスや送信の前に、ビューアーで結果をプレビューしましょう
避けたいこと
  • STL→OBJで色やUVが戻ってくることは期待しないこと。そもそもSTLに入っていません
  • .mtlなしの.objだけを送ると、見た目が重要なのにグレーで開きます
  • ファイルが小さい=低品質と決めつけないこと。OBJのジオメトリが小さいのは頂点を共有しているからです
  • .objの拡張子を.stlにリネームしないこと。内部構造が違い、読み込みに失敗します

FAQ

よくある質問

3DプリントにはSTLとOBJのどちらが良い?

単色印刷ならどちらも同じツールパスになるため、互換性が最も広く別ファイルも不要なSTLを選びましょう。OBJが役立つのは色が重要な場合だけです。Bambu StudioはOBJの色をAMSフィラメントに対応付けられますが、PrusaSlicerはOBJのマテリアルを無視します。どのスライサーでも確実に多色印刷したいなら、テクスチャやマテリアルファイルに頼らずパーツごとのフィラメント割り当てを保存する3MFで書き出しましょう。

OBJファイルは色やテクスチャを保持しますか?

はい。ただし.objの中にではありません。OBJはUV座標を保持し、.mtlマテリアルファイルを指し、その.mtlがPNGなどのテクスチャ画像を指します。3つは必ず一緒に扱う必要があります。.objだけを受け取ると、モデルはグレーで開きます。テクスチャ込みの1ファイルにしたいなら、OBJではなくGLBを使いましょう。

STLファイルがOBJよりずっと大きいのはなぜ?

STLは頂点に接する三角形ごとに頂点を繰り返し書き、OBJは各頂点を一度だけ列挙して参照します。50万三角形での検証では、バイナリSTLが25.0 MB、ジオメトリのみのOBJが21.4 MBでした。ASCII STLはさらに大きく150.9 MBです。UVと法線を加えるとOBJは38.6 MBまで増えるため、大小関係は逆転します。

STLを画質を落とさずにOBJへ変換できますか?

はい。STLからOBJへの変換では、すべての三角形と位置が正確に保たれ、共有頂点がマージされるためOBJは通常少し小さくなります。ただしSTLには元々色もUVもないため、それらを取り戻すことはできません。無料のSTL→OBJコンバーターはブラウザで動作し、ダウンロード前に3Dプレビューを表示します。

STL vs OBJ:Blenderに適しているのはどっち?

Blenderはどちらもインポートできますが、テクスチャ付きのモデルならOBJが適しています。UVとマテリアルスロットがそのまま引き継がれるからです。STLはUVレイアウトのない単一のグレーのメッシュとして読み込まれます。テクスチャ付きモデルをBlenderに持ち込むなら、GLBがOBJよりさらに簡単です。テクスチャが埋め込まれ、PBRマテリアルがBlenderのPrincipled BSDFに直接マッピングされるからです。

モデルが小さすぎる/大きすぎるのはなぜ?

STLもOBJも単位を保存しないため、読み込むアプリ側が推測します。スライサーはミリメートル前提なので、インチで保存されたモデルは25.4分の1、メートルで保存されたモデルは1,000分の1の大きさで届きます。PrusaSlicerやBambu Studioは、インチで保存されたらしいモデルを検出すると変換を提案します。そうでなければ、スライス前に正しい倍率でスケールしてください。

STLファイルに色は持たせられる?

標準仕様では不可です。VisCAM/SolidViewとMaterialise Magicsによる2つのベンダー拡張は、各三角形の余った2バイトに15ビットの色を隠していますが、チャンネルの順序が逆で、ほとんどのスライサーはどちらも無視します。印刷パーツに色を付けたいなら3MF、画面上で色を見たいならOBJかGLBを使ってください。

写真からSTLやOBJを作るには?

画像をSupaVoxelの画像から3Dモデルを作成するスタジオにアップロードすると、通常1分以内にテクスチャなしのモデル、通常3〜5分でテクスチャ付きのモデルが得られます。新規アカウントには3つの無料クレジットが付き、GLBを無料でダウンロードできます。STL、OBJ、3MFの書き出しは有料プランに含まれます。無料のGLBをブラウザのコンバーターでSTLやOBJに変換することもできます。

無料で始める

STL vs OBJはこれで解決。次はモデルを作ろう

写真から3Dモデルを通常1分以内で生成し、有料プランでSTL、OBJ、3MFとして書き出せます。ファイルの表示・変換はここで無料でどうぞ。

クレジットカード不要 · 無料クレジット3回分付き