Preview3D
入手

.obj ファイルとは?テクスチャなしで届く理由と Mac で開く方法

OBJ は、Wavefront が 1990 年ごろに作った 3D メッシュ用のテキスト形式で、いまもほとんどの 3D プログラムと 3D スキャンアプリが読み書きできます。ただし、色とテクスチャはそれ自体には入っていません。別の .mtl ファイルと画像にあり、途中でそれらが離れてしまうと、モデルは白やグレーで届きます。

概要

拡張子
.obj, .mtl
種類
三角形メッシュ
開発元
Wavefront Technologies
登場
1990 年ごろ
規格
正式な規格ではない
アプリなしの macOS
開けて、プレビューも表示できる

情報の確認日:2026年11月4日

1 行ずつ読めるテキスト

正八面体をまるごと OBJ で書くと、こうなります。

o octahedron
v 10 0 0
v -10 0 0
v 0 10 0
v 0 -10 0
v 0 0 10
v 0 0 -10
f 5 1 3
f 5 3 2
f 5 2 4
f 5 4 1
f 6 3 1
f 6 2 3
f 6 4 2
f 6 1 4

v の行は頂点、f の行は頂点の番号で作る面です。番号は 1 から数え、負の数は現在の行から逆向きに数えます。STL と違って面同士が頂点を共有するので、ファイルに同じ点が繰り返し出てくることはありません。また、面は三角形でなくてもかまいません。四角形や一般の多角形でも大丈夫です。

Blender から書き出すと、法線(vn)、テクスチャ座標(vt)、スムージンググループ(s)、そして何よりマテリアルファイルへの参照が加わります。

# Blender 5.1.0
mtllib cylinder.mtl
o cylinder
v 17.677670 0.000000 17.677670
vn -0.0000 -1.0000 -0.0000
s 0
f 1//1 2//1 3//1

1//1 は、頂点 1 と法線 1 で、テクスチャ座標なしという意味です。

.mtl ファイルとテクスチャ:OBJ と一緒に送るべきもの

色とマテリアルは OBJ の中ではなく、OBJ が mtllib の行で指定するファイルにあります。.mtl の中では、各マテリアルが newmtl の下にあり、色は Kd、テクスチャは map_Kd に画像へのパスとして書かれます。そのため、1 つのモデルが同時に 3 種類のファイルから成ることがよくあります。

  • 形状の入った .obj
  • mtllib の行とまったく同じ名前の .mtl
  • .mtl が示すパスにあるテクスチャの画像(サブフォルダにあることが多い)

Apple の Model I/O フレームワークで試してみました。.mtl に Kd 1 0 0 と書いた三角形は赤で読み込まれ、サブフォルダのテクスチャも読み込まれます。.mtl が .obj の隣にないと、フレームワークは「Unable to find mtl file」と報告し、モデルは白になります。

このつながりがいかに簡単に切れるかは、Preview3D 自身のテストセットにも表れています。ファイル 07-mesh.obj は名前が変えられ、.mtl も 07-mesh.mtl という名前ですが、OBJ にはいまも mtllib cylinder.mtl と書かれています。ファイルの名前を 1 つ変えるだけで十分だったのです。.mtl の中の C:\Users\… のようなテクスチャの絶対パスも、別のコンピューターでは同じことを起こします。

ですから OBJ は、フォルダごとか ZIP にして送ってください。テクスチャごと 1 つのファイルにしたいなら、GLB で保存してください。

単位も階層もない

OBJ には単位がありません。Blender は直径 54 mm の円柱を 54 × 25 × 54(Y 軸が上)として書き出しました。glTF なら同じ円柱は 0.054 になります。数値が何を意味するかは、プログラムが読み込むときに推測するしかありません。

OBJ には、オブジェクトの階層、アニメーション、カメラ、ライトもありません。頂点ごとの色(v x y z r g b)は仕様の一部ではありません。最もよく使うのはスキャナーで、読めるのは一部のプログラムだけです。Library of Congress によると、たとえば MeshLab、three.js、Mac のプレビューです。

OBJ の生まれ

OBJ は Wavefront Technologies の Advanced Visualizer のために作られました。正確な年は誰も知らず、Library of Congress は「1990 年ごろ」としています。形式の説明は 1992 年ごろのマニュアルの付録として残っていて、.mtl の説明は 1995 年のものです。Wavefront は 1995 年に Alias と合併し、Autodesk が 2006 年に Alias を買収しました。形式は公開されていますが、誰も管理していません。

仕様には、ほとんどどのプログラムも読まない NURBS やベジェの曲線と曲面も書かれていて、文書化されることのなかったバイナリ版の .mod にも触れています。

Mac、iPad、iPhone で OBJ を開く方法

macOS は単体で OBJ を扱えます。Library of Congress によると、プレビューは OS X 10.11 から OBJ を開けます。macOS 27(27.0.1 で確認)では、クイックルックと Finder のサムネイルでも表示されます。OBJ はテキストなので、既定のアプリが変わっているとテキストエディットで開くことがあります。その場合は Finder で「情報を見る」→「このアプリケーションで開く」を選び、プレビューを選んで「すべてを変更」をクリックしてください。

ほかの選択肢は次のとおりです。

  • Blender と MeshLab は無料で、OBJ をマテリアル付きで開けます。
  • Preview3D(私のアプリ)は、Mac、iPad、iPhone、Apple Vision Pro で OBJ を開けます。

Preview3D は Model I/O を通して OBJ を読みます。法線のないファイルでは法線を計算するので、モデルがのっぺりしたり黒くなったりしません。モデル情報には、ファイル自体の単位での寸法と三角形の数、そしてメッシュチェックが表示されます。折り目の線付きの 3 つの表示があります。iPad と iPhone では、OBJ に単位がないので、AR でモデルを机に合わせた大きさで置きます。

OBJ を STL に変換する

Mac では、Preview3D の ファイル → モデルを別名で書き出し…(⌥⌘E)で、何もアップロードせずに STL や PLY に変換できます。STL は三角形しか扱えないので、四角形や多角形は変換の途中で分割されます。数値は変わらないので、変換後にスライサーでサイズを確認してください。また、STL にはマテリアルもテクスチャも入りません。

よくある質問

OBJ がテクスチャなしで開いたのはなぜですか?

.mtl や画像がないか、名前やパスが合っていないためです。.obj、.mtl、テクスチャを 1 つのフォルダにまとめ、OBJ の mtllib が正しい .mtl を指しているか確認してください。

.mtl ファイルとは何ですか?

OBJ のためのマテリアルを書いたテキストファイルで、色、光沢、テクスチャのパスが入っています。OBJ は名前でこのファイルを参照します。

OBJ に単位はありますか?

ありません。座標はただの数値で、ミリなのかメートルなのかは、プログラムが読み込むときに推測します。

3D プリントには STL と OBJ のどちらがよいですか?

単色のパーツなら STL で十分です。OBJ はマテリアルやテクスチャが必要なときに役立ちます。カラー印刷には、そのために作られた形式 3MF があります。

Mac はほかのアプリなしで OBJ を開けますか?

はい、プレビューとクイックルックで扱えます。

OBJ がテキストエディットで開くのはなぜですか?

OBJ はテキストなので、既定のアプリが変わっていることがあります。Finder で「情報を見る」→「このアプリケーションで開く」を選び、プレビューかほかの 3D ビューアを選んで、「すべてを変更」をクリックしてください。

関連ページ

出典

.mtl がすぐ隣にあったのに、Mac でテクスチャなしで開いた OBJ はありますか? どのプログラムから来たものかを添えて、apps@xfanta.com までお知らせください。

Preview3D で開く

STEP、3MF、STL、G-code、BGCODE などを Mac、iPad、iPhone、Vision Pro で。一度の購入で、アカウントもネットワークも不要です。

App Store の Preview3D