search
  1. ソフト・サービス
  2. Blender
  3. Blenderのインポートとエクスポート
  4. BlenderのOBJのエクスポートとインポート|書き出しと読み込みの設定

Blender

BlenderのOBJのエクスポートとインポート|書き出しと読み込みの設定

編集部 読了 約10分

OBJ(Wavefront OBJ)は、モデルをほかのソフトとやり取りするときに使う形式の1つです。BlenderのOBJの書き出しの設定は、「全般」「ジオメトリ」「グループ化」「マテリアル」「アニメーション」の5つのまとまりに分かれています。読み込みの設定は、「全般」「オプション」「マテリアル」の3つです。

この記事の画面は、Blender 5.2 LTSです。設定の中身は、5.2の公式マニュアルと、画面に出る設定の説明文で確かめました。受け取る側のソフトで開いた結果は、編集部では試していません。

OBJは形とマテリアルの基本だけを持つテキストの形式

5.2の公式マニュアルによると、OBJは広く使われているテキストの形式ですが、形とマテリアルは基本的なものにしか対応しません。BlenderのOBJの書き出しと読み込みは、次のものに対応していません。アーマチュア(骨組みのオブジェクト)、ライト、カメラ、エンプティ(形を持たないオブジェクト)、親子関係です。オブジェクトのトランスフォーム(位置・回転・スケール)も持てません。マテリアルは、書き出すとOBJと同じ名前の.mtlのファイルに書かれ、読み込むときに.mtlがあればマテリアルも読み込まれます。

書き出しは、「ファイル」→「エクスポート」→「Wavefront (.obj)」から選びます。

「ファイル」→「エクスポート」のメニューの「Wavefront (.obj)」
「ファイル」→「エクスポート」のメニュー。赤枠が「Wavefront (.obj)」(Blender 5.2)

読み込みは、「ファイル」→「インポート」→「Wavefront (.obj)」から選びます。

「ファイル」→「インポート」のメニューの「Wavefront (.obj)」
「ファイル」→「インポート」のメニュー。赤枠が「Wavefront (.obj)」(Blender 5.2)

書き出しの「全般」で、書き出すオブジェクトと大きさと向きを決める

書き出しの画面の右の一番上が「全般」、その下が「ジオメトリ」です(「グループ化」はさらに下)。

OBJの書き出しの「全般」と「ジオメトリ」
OBJの書き出しの画面の右の設定(既定の値)。上から「全般」「ジオメトリ」。「モディファイアー…」は「モディファイアーを適用」、「トランスフォーム…」は「トランスフォームを適用」
設定既定中身
内容:選択物のみオフ選択したオブジェクトだけを書き出す(オフでは、対応するオブジェクトを全部書き出す)
スケール1.000書き出すときに、ワールドの原点を中心に掛ける倍率
前方の軸・上向きの軸-Z・Y軸の向きの変換。既定の「-Z」「Y」は、上がYのソフトへ渡すための変換(公式マニュアル)。Blenderは上がZ

「ジオメトリ」で、UV・法線・面・モディファイアーの扱いを決める

「ジオメトリ」の設定は、上の画像の下半分です。表の中のUVは画像を貼る座標、法線は面の向き、モディファイアーは形を変える機能です。

設定既定中身
UV座標オンアクティブなUVの座標を書き出す
ノーマルオン法線を書き出す(フラットの面は面ごと、スムーズの面は面の角ごと)。公式マニュアルによると、多くのソフトは法線を自分で計算するが、Blenderの法線マップに合わせるには書き出す
色オフ頂点カラーを書き出す(OBJの拡張の「xyzrgb」の形)
カーブのNURBS化オフカーブをメッシュにせず、NURBSのカーブとして書き出す。公式マニュアルによると、NURBSの面・3Dテキスト・メタボールは、書き出すときにメッシュに変換される
メッシュの三角面化オフ四角形以上の面を三角形にして書き出す(シーンのメッシュは変わらない)。公式マニュアルによると、三角形にしか対応しない簡単なOBJの読み込みのソフトがある
モディファイアーを適用オンモディファイアーを計算したあとの形で書き出す
トランスフォームを適用オンオブジェクトの位置・回転・スケールを頂点に入れ、ワールドの座標で書く。オフでは、オブジェクトのローカルの座標で書く
プロパティビューポート作業中の表示(ビューポート)と最終のレンダーで設定が違うもの(サブディビジョンサーフェスなど)の、どちらの設定を使うか

「メッシュの三角面化」をオンにすると、立方体は12枚の三角形の面になりました。

位置を変えて45°回した1辺2mの立方体を、「トランスフォームを適用」をオフにして書き出し、Blenderで読み込み直しました。立方体は原点に、回っていない向きで読み込まれました。OBJはトランスフォームを持たないので、オフにすると、置いた位置と向きが相手に渡りません。

「グループ化」で、OBJの中のグループの分け方を決める

OBJのファイルでは、「o」の行がオブジェクトの名前、「g」の行がグループの名前です。既定では、Blenderのオブジェクトごとに「o」の行が書かれます。「グループ化」の設定は、どれも既定ではオフです。

OBJの書き出しの「グループ化」「マテリアル」「アニメーション」
「グループ化」「マテリアル」「アニメーション」の設定(既定の値。閉じていた「アニメーション」も開いている)。「オブジェクトグル…」は「オブジェクトグループ」、「スムーズ…トフラグ」は「スムーズグループビットフラグ」、「PBRエクステンシ…」は「PBRエクステンション」。薄い設定は、上の設定がオフのため使えない
設定既定中身
オブジェクトグループオフ「o」の行の代わりに、オブジェクトの名前と「_」とメッシュの名前をつないだ「g」の行を書く。公式マニュアルによると、グループとオブジェクトを分けて扱うソフトのための設定
マテリアルグループオフマテリアルが違う部分ごとに、OBJのグループを作る
頂点グループオフ面の頂点グループの名前を書く(面の頂点のうち、一番多くが入っている頂点グループを選ぶ)
スムーズグループオフBlenderのシャープの辺を、スムーズグループとして書く
スムーズグループビットフラグオフスムーズグループを、ビットフラグで書く。「スムーズグループ」がオンのときだけ使える

「マテリアル」で画像の扱いを、「アニメーション」で連番のファイルを決める

「マテリアル」は、見出しのチェックボックスが既定でオンです。オンのとき、OBJと一緒に.mtlのファイルを書き出します。公式マニュアルによると、OBJに対応する多くの読み込みのソフトは.mtlも読みます。画面の説明によると、.mtlに画像テクスチャを書くには、マテリアルにプリンシプルBSDFのノードが必要です。プリンシプルBSDFは、新しく作ったマテリアルに最初から入っている、質感を決めるノードです。

まとまり設定既定中身
マテリアル(見出しのチェック)オン.mtlのファイルを書き出す
マテリアルPBRエクステンションオフ粗さ・メタリック・シーン(Sheen)・コート・異方性・伝播(Transmission)の値も、.mtlに書く
マテリアルパスモード自動テクスチャの画像の場所の書き方。自動・絶対・相対・マッチ・ストリップ・コピーの6つ
アニメーション(見出しのチェック)オフ開始から終了のフレームまで、フレームごとに番号を付けたOBJを書き出す(公式マニュアルによると、時間がかかることがある)
アニメーション開始フレーム・終了1・250書き出すフレームの範囲。「アニメーション」のチェックがオンのときだけ使える

画像テクスチャを貼った立方体を、書き出すフォルダの外に画像を置いたまま書き出しました。「自動」では、.mtlに画像の絶対パス(ドライブからの完全な場所)が書かれ、画像はコピーされませんでした。公式マニュアルによると、絶対パスは自分のパソコンでしか正しくないことがあります。「コピー」では、画像がOBJと同じフォルダにコピーされ、.mtlには画像のファイル名だけが書かれました。画像を一緒に渡すときは、「パスモード」を「コピー」にします。パスモードの6つの意味と画像の渡し方は、BlenderのFBX・OBJ・glTF・USDの選び方|書き出したモデルのテクスチャが消えないようにするで解説しています。

読み込みでは「オブジェクトで分離」と「バウンディングボックスで制限」が形の分かれ方と大きさを決める

読み込みの画面の右の設定は、「全般」「オプション」「マテリアル」の3つのまとまりです。

OBJの読み込みの設定
OBJの読み込みの画面の右の設定(既定の値)。「バウンディン…」は「バウンディングボックスで制限」、「カーブのループを…」は「カーブのループを探知」、「名前の衝突時」はマテリアル名の衝突時の処理
まとまり設定既定中身
全般スケール1.000読み込むときに、ワールドの原点を中心に掛ける倍率
全般バウンディングボックスで制限0.000読み込んだものが、この大きさの箱に収まるように縮める(0で使わない。箱より小さいものは大きくしない)。公式マニュアルによると、OBJはファイルによって大きさがまちまちなので、決まった大きさにそろえるための設定
全般前方の軸・上向きの軸-Z・Y軸の向きの変換
オプションオブジェクトで分離オンOBJの「o」(オブジェクト名)ごとに、別のオブジェクトにする
オプショングループで分離オフOBJの「g」(グループ)ごとに、別のオブジェクトにする
オプション頂点グループオフOBJのグループを、頂点グループとして読み込む
オプションメッシュを検証オン読み込んだメッシュの壊れたデータを調べて直す。オフのとき、壊れたデータがあると、表示や編集でBlenderが強制終了することがある。公式マニュアルは、読み込みは遅くなるがオンを勧めている
オプションカーブのループを探知オン重なった制御点があれば、カーブの端をつないで閉じる(オフでは、閉じたカーブにならない)
オプションパスセパレータ(空)オブジェクトの名前を、この文字で区切って、コレクションの階層に分ける
マテリアル名前の衝突時ユニーク化同じ名前のマテリアルがあるとき、別のマテリアルにする(ユニーク化)か、今あるものを使う(既存を参照)か

1辺2mの立方体を2つ、X方向に間をあけて並べ(全体で6m×2m×2m)、OBJに書き出して読み込み直しました。結果は次のとおりです。

読み込みの設定結果
既定立方体ごとに、2つのオブジェクト
「オブジェクトで分離」オフファイル名と同じ名前の、1つのオブジェクト
「バウンディングボックスで制限」1.01m×0.333m×0.333mに縮む
「バウンディングボックスで制限」10.06m×2m×2mのまま

同じOBJの「o」の行を「g」の行に書き換えて読み込むと、既定では1つのオブジェクトになりました。「グループで分離」をオンにすると、グループごとの2つのオブジェクトに分かれました。

BlenderからOBJを書き出して読み込み直すと、大きさと見た目の向きは変わりません。ただし、読み込んだオブジェクトの「回転」のXは90°になりました(軸の向きの変換のため)。

建築のモデルを渡すときと、受け取ったOBJを開くときに見直す設定

建物のモデルをOBJで渡すときに見直すのは、次の項目です。

  • 渡すオブジェクトだけを選択して「選択物のみ」をオンにする
  • テクスチャの画像も渡すときは、「マテリアル」の「パスモード」を「コピー」にし、書き出したフォルダごと渡す
  • テクスチャの画像を.mtlに書くため、マテリアルはプリンシプルBSDF(新しく作ったマテリアルに最初から入っているノード)を使う
  • 「トランスフォームを適用」はオンのままにする(オフでは、置いた位置と向きが渡らない)
  • 相手のソフトが三角形しか扱えないときは「メッシュの三角面化」をオンにする
  • カメラ・ライト・親子関係は、OBJでは渡せない。ほかの形式の選び方は、BlenderのFBX・OBJ・glTF・USDの選び方|書き出したモデルのテクスチャが消えないようにするで解説しています

受け取ったOBJをBlenderで開くときは、次の項目を見直します。

  • 1つのオブジェクトにまとめたいときは、「オブジェクトで分離」をオフにする
  • 分かれるはずのものが1つにまとまったときは、「グループで分離」をオンにする(ファイルが「o」でなく「g」で分けている場合)
  • 大きさが合わないときは、「スケール」で倍率を掛ける
  • 大きさがまちまちなファイルを、決まった大きさで確かめたいときは、「バウンディングボックスで制限」に大きさを入れる(寸法は実寸でなくなる)
  • .mtlのファイルは、OBJと同じフォルダに置いたまま読み込む

Blenderで建築パースを作る方法は、建築3DCGコース(Blender)で学べます。

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

あわせて読みたい