search
  1. ソフト・サービス
  2. Blender
  3. Blenderのインポートとエクスポート
  4. BlenderのFBX・OBJ・glTF・USDの選び方|書き出したモデルのテクスチャが消えないようにする

Blender

BlenderのFBX・OBJ・glTF・USDの選び方|書き出したモデルのテクスチャが消えないようにする

編集部 読了 約10分

Blender(ブレンダー)から書き出したモデルを別のパソコンで開くと、テクスチャ(マテリアルで面に貼る画像)が消えていることがあります。原因は、書き出したファイルが画像の場所だけを持ち、画像そのものが渡った先に無いことです。FBX・OBJ・glTF・USDの4つの3Dデータのファイルの形式は、画像をファイルの中に含められるか、別のファイルとして一緒に渡すかが違います。渡す相手のソフトが読める形式を選び、その形式に合った設定で画像を一緒に渡します。

この記事の画面は、Blender 5.2 LTSです。画像を貼った箱を4つの形式で書き出し、書き出したフォルダだけを別の場所へ移しました。元の画像も別の場所へ移し、受け取った人のパソコンと同じ状態にしてから、読み込み直して確かめました。

テクスチャが消えるのは、書き出したファイルが画像の場所だけを持っているため

書き出したファイルが持っているのが「画像の場所」だけのときは、別のパソコンへ渡すと画像が見つからず、テクスチャが消えます。画像そのものをファイルに入れるか、画像を別のファイルとして一緒に渡すと、テクスチャは消えません。

書き出したファイルが画像の場所だけを持つときと、画像もファイルの中に入るときの違いの図
左は画像の場所だけを持つファイルで、渡した先では画像が見つからず箱がピンク色になる。中は画像もファイルの中に入っている場合、右は画像を別のファイルとしてフォルダごと渡す場合で、どちらも渡した先で木目が貼られている(生成AIで作った図)

画像を貼った箱をFBXの既定の設定で書き出すと、できるのはbox.fbxだけでした。このファイルを別の場所で読み込むと、画像が見つからず、箱はピンク色に表示されました。表示は、3Dビューポートのマテリアルプレビュー(マテリアルの見た目を表示する表示方法)です。画像の場所の書き方の設定「パスモード」を「コピー」にして、「テクスチャを埋め込む」をオンにしました。すると画像はbox.fbxの中に含まれ、別の場所で読み込んでも画像が貼られていました。

4つの形式で同じように試した結果は、次の表のとおりです。

形式と設定書き出されるファイル別の場所で読み込み直すと
FBX(既定)box.fbx画像が見つからない
FBX(「パスモード」=「コピー」、「テクスチャを埋め込む」=オン)box.fbx画像がファイルの中に含まれている
OBJ(既定)box.obj、box.mtl画像が見つからない
OBJ(「パスモード」=「コピー」)box.obj、box.mtl、画像画像が見つかる
glTF(「glTF バイナリ (.glb)」・既定)box.glb画像がファイルの中に含まれている
glTF(「glTF セパレート (.gltf+.bin+テクスチャ)」)box.gltf、box.bin、画像画像が見つかる
USD(既定)box.usdc、texturesフォルダ(画像)画像が見つかる

画像が別のファイルになる形式では、書き出したフォルダごと渡します。

4つの形式は、持てるデータと向いている相手が違う

5.2の公式マニュアルに書かれている、4つの形式の特徴は次のとおりです。画像の渡し方は、最初の節で確かめた結果です。表の中のアーマチュアは骨組みのオブジェクト、エンプティは形を持たないオブジェクト、透視投影は遠くの物ほど小さく写す写し方です。

形式公式マニュアルに書かれていること画像の渡し方
FBXソフトのあいだで3Dデータをやり取りするのに広く使われる。特にアニメーションのキャラクターや複雑なシーン。Maya・3ds Max・Cinema 4D、Unity・Unreal Engineなどが対応ファイルの中に埋め込める
OBJ広く使われているテキストの形式で、形とマテリアルの基本だけを持つ。アーマチュア・ライト・カメラ・エンプティ・親子関係と、オブジェクトの位置・回転・スケールの値は持たない別のファイル(.mtlと画像)で渡す
glTFWebやアプリで3Dモデルを表示するための形式で、3Dモデルの大きさと表示までの処理を小さくする。Unity・Unreal Engine・Godotなどが対応。カメラとライト(ポイント・スポット・サン)も持てる。書き出すと四角形や多角形の面は三角形になり、カーブはメッシュに変換しないと残らない.glbならファイルの中に入る
USD形・ライト・カメラなどを、シーンの階層のまま持つ。Blenderの書き出しは、表示されているオブジェクトのうち対応している種類のものを書き出す。カメラは透視投影のものだけが書き出されるtexturesフォルダで渡す

渡す相手のソフトが読める形式を選び、画像を1つにまとめるか一緒に渡す

形式は、まず渡す相手のソフトが読めるかどうかで選びます。相手のソフトのマニュアルで、読み込める形式を確かめます。読める形式が複数あるときは、4つの形式の特徴の表の「画像の渡し方」と、持たせたいデータで選びます。

  • 画像を1つのファイルにまとめて渡したいときは、FBX(「テクスチャを埋め込む」)か、glTFの.glbを選びます
  • 形とマテリアルの基本だけを、広く使われている形式で渡すときは、OBJを選び、書き出したフォルダごと渡します
  • Webやアプリで表示するモデルは、glTFを選びます。書き出すと四角形の面は三角形になります。カーブは残らないので、メッシュに変換してから書き出します
  • カメラやライトも含めて渡したいときは、glTFかUSDを選びます(USDのカメラは透視投影だけ)。OBJはカメラとライトを持ちません

受け取る側のソフトで開いたときの見え方は、編集部では試していません。渡す前に、相手のソフトのマニュアルで、読み込める形式と画像の扱いを確かめてください。

FBXは「パスモード」と「テクスチャを埋め込む」で画像を含める

4つの形式の書き出しは「ファイル」→「エクスポート」、読み込みは「ファイル」→「インポート」から選びます。形式ごとのメニューの名前は、FBXが「FBX (.fbx)」、OBJが「Wavefront (.obj)」です。glTFは「glTF 2.0 (.glb/.gltf)」、USDは「Universal Scene Description (.usd*)」です。

「ファイル」→「エクスポート」のメニュー
「ファイル」→「エクスポート」のメニュー。FBX・OBJ・glTF・USDの項目が並ぶ(Blender 5.2)

FBXの読み込みには、「FBX (.fbx)」と「FBX (.fbx) (旧)」の2つがあります。公式マニュアルでは、(旧)の読み込みは非推奨で、新しい「FBX (.fbx)」を使うよう書かれています。

FBXの書き出しの画面では、右の設定に「パスモード」があります。既定は「自動」で、画像はbox.fbxに含まれません。画像をbox.fbxに含めるには、次のように設定します。

  1. 「パスモード」を「コピー」にします
  2. 「パスモード」の右のアイコン(テクスチャを埋め込む)をオンにします
  3. 「FBXをエクスポート」を押します
FBXの書き出しの「パスモード」と、右の「テクスチャを埋め込む」のアイコン
FBXの書き出しの画面の右の設定。「パスモード」を「コピー」にし、右のアイコン(テクスチャを埋め込む)をオンにしている

「テクスチャを埋め込む」は、「パスモード」が「コピー」のときだけ使えます。設定の説明にも「FBXバイナリファイル内にテクスチャを埋め込みます(「コピー」パスモードのみ!)」とあります。

「パスモード」の選択肢は6つで、公式マニュアルによると、書き出したファイルの中に画像の場所をどう書くかの違いです。絶対パスはドライブ名から書いた場所(例:C:\…\wood.png)、相対パスは書き出したファイルのある場所から見た場所(例:wood.png)です。

パスモード画像の場所の書き方
自動(既定)書き出す場所の下のフォルダにある画像は相対パス、それ以外は絶対パス
絶対フルパス(絶対パス)
相対どれも相対パス(Windowsで別のドライブにある画像は除く)
マッチBlenderで使っているパスの書き方に合わせる
ストリップパスを書かず、ファイル名だけを書く。受け取る側のソフトが決まった場所から画像を探すときに使う
コピー画像を書き出す場所にコピーし、相対パスで書く

公式マニュアルによると、絶対パスは自分のパソコンでしか合わないことがあります。相対パスはほかへ持ち出しやすい代わりに、ファイルをまとめたまま動かす必要があります。ほかのパソコンへ渡すときは、「コピー」にすると画像も書き出したフォルダに入り、フォルダごと渡せば画像が見つかります。

OBJは画像を別のファイルとして一緒に渡す

OBJには、画像をファイルの中に含める設定がありません。書き出されるのは、形のbox.objと、マテリアルのbox.mtlです。

画像を一緒に書き出すには、書き出しの画面の「マテリアル」の「パスモード」を「コピー」にします。既定の「自動」では画像は書き出されず、別の場所で読み込むと画像が見つかりませんでした。「コピー」では画像がbox.objと同じフォルダに書き出され、フォルダごと移して読み込むと画像が見つかりました。

OBJの書き出しの「マテリアル」の「パスモード」
OBJの書き出しの画面の「マテリアル」。「パスモード」を「コピー」にしている

OBJの「パスモード」の選択肢は、FBXと同じ6つです。MTLは、OBJと一緒に書き出す、マテリアルを書いた.mtlのファイルです。「マテリアル」のチェックの説明によると、MTLに画像テクスチャを書き出すには、マテリアルにプリンシプルBSDFのノードが必要です。プリンシプルBSDFは、新しく作ったマテリアルに最初から入っている、質感を決めるノードです。

glTFの.glbは画像まで1つのファイルに含まれる

glTFの書き出しの画面では、「フォーマット」でファイルの形を選びます。既定は「glTF バイナリ (.glb)」で、画像までbox.glbの1つのファイルに含まれます。

glTFの書き出しの「フォーマット」
glTFの書き出しの画面の右の設定。一番上の「フォーマット」が「glTF バイナリ (.glb)」(既定)

「glTF セパレート (.gltf+.bin+テクスチャ)」を選ぶと、box.gltf、box.bin、画像が別のファイルになります。box.binは、形のデータを入れたファイルです。画像は、貼っている画像の数だけできます。公式マニュアルによると、この形は、すべてのファイルをまとめて渡す必要があります。

USDは画像をtexturesフォルダに書き出す

USDの書き出しの画面では、「マテリアル」の「テクスチャをエクスポート」で画像の扱いを選びます。選択肢は「維持」「保護」「新規パス」で、既定は「新規パス」です。公式マニュアルによると、「維持」は画像の元の場所をそのまま使います。「保護」は、読み込んだUSDの画像は元のパスのまま残し、ほかの画像をUSDの隣のtexturesフォルダへ書き出します。「新規パス」は、画像をUSDの隣のtexturesフォルダへ書き出します。

USDの書き出しの「マテリアル」の「テクスチャをエクスポート」
USDの書き出しの画面の「マテリアル」。「テクスチャを…」と切れて表示されているのが「テクスチャをエクスポート」で、既定は「新規パス」。その下の「USDZテクス…」は別の設定

既定のまま書き出すと、box.usdcと同じ場所にtexturesフォルダが作られ、画像がその中に書き出されます。フォルダごと別の場所へ移して読み込むと、画像が見つかりました。

なお、Blender 4.5 LTSでは、「テクスチャをエクスポート」が既定でオフです。4.5で書き出すときは、この設定を確かめてください。

Blender同士なら、大きさと向きは既定のまま戻る

2m×1m×1mの箱を既定の設定で書き出し、Blender 5.2で読み込み直すと、4つの形式とも2m×1m×1mのまま、同じ向きで読み込まれました。OBJだけは、読み込んだオブジェクトの「回転」のXが90°になります。見た目の向きは、書き出す前と同じです。

軸の設定は、書き出すファイルの前と上を、Blenderのどの軸にするかを決めます。このときの軸と単位の既定は、OBJが「前方の軸」=「-Z」・「上向きの軸」=「Y」、FBXが「前方」=「-Zが前」・「上」=「Yが上」です。glTFは「+Yが上」がオン、USDは「単位」が「メートル」です。確かめたのはBlender同士の往復で、ほかのソフトで開いたときの大きさと向きは試していません。

形式ごとの書き出しと読み込みの全部の設定は、次の記事で解説しています。

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

会員登録(無料)

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

この記事について

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

あわせて読みたい