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

Blender

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

編集部 読了 約16分

FBX(エフビーエックス)は、3Dのソフトのあいだでデータをやり取りするときに広く使われる形式です。5.2の公式マニュアルによると、特にアニメーションのキャラクターや複雑なシーンに使われます。Maya・3ds Max・Cinema 4Dや、ゲームエンジンのUnity・Unreal Engineなどが対応しています。

Blender(ブレンダー)のFBXの書き出しの設定は、書き出しの画面の右の一番上の「パスモード」「バッチモード」と、その下のまとまりに分かれています。まとまりは「内容」「トランスフォーム」「ジオメトリ」「アーマチュア」「アニメーション」の5つです。読み込みには、新しい「FBX (.fbx)」と、非推奨の「FBX (.fbx) (旧)」の2つがあります。

この記事の画面は、Blender 5.2 LTSです。設定の中身は、5.2の公式マニュアル、画面に出る設定の説明文、アドオンのコードで確かめました。FBXの書き出しと読み込みは、Blenderに入っているアドオン(機能を足す仕組み)が受け持っています。受け取る側のソフト(3ds Max・Unity など)で開いた結果は、編集部では試していません。

FBXの書き出しは「FBX (.fbx)」、読み込みは新しい「FBX (.fbx)」を使う

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

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

読み込みは、「ファイル」→「インポート」に「FBX (.fbx)」と「FBX (.fbx) (旧)」の2つがあります。

「ファイル」→「インポート」のメニューの「FBX (.fbx)」と「FBX (.fbx) (旧)」
「ファイル」→「インポート」のメニュー。赤枠の上が新しい「FBX (.fbx)」、下が「FBX (.fbx) (旧)」(Blender 5.2)

5.2の公式マニュアルでは、(旧)の読み込みは非推奨で、新しい「FBX (.fbx)」を使うよう書かれています。新しい読み込みは、新旧どちらのFBXにも対応し、速く、メモリを多く使わない作りだと説明されています。

一番上の「パスモード」と「バッチモード」で、画像の扱いとファイルの分け方を決める

書き出しの画面の右の設定の一番上に、「パスモード」と「バッチモード」が並んでいます。表の中のテクスチャは、マテリアルで面に貼る画像です。

FBXの書き出しの「パスモード」と「バッチモード」
FBXの書き出しの画面の右の一番上(既定の値)。「パスモード」の右が「テクスチャを埋め込む」、「バッチモード」の右の青いアイコンが「バッチ毎のフォルダ」
設定既定中身
パスモード自動テクスチャの画像の場所の書き方。自動・絶対・相対・マッチ・ストリップ・コピーの6つ
テクスチャを埋め込む(「パスモード」の右のアイコン)オフ画像をFBXのファイルに埋め込む。「パスモード」が「コピー」のときだけ使える
バッチモードオフオフ=アクティブなシーンを1つのファイルへ。シーン=シーンごと。コレクション=コレクションごと(子のコレクションの中身は含まない)。シーンコレクション=すべてのシーンのコレクションごと。アクティブシーンコレクション=アクティブなシーンのコレクションごと(どちらも子のコレクションの中身を含む)
バッチ毎のフォルダ(「バッチモード」の右のアイコン)オンバッチモードで書き出したファイルごとにフォルダを作る

パスモードの6つの意味と画像の渡し方は、BlenderのFBX・OBJ・glTF・USDの選び方|書き出したモデルのテクスチャが消えないようにするで解説しています。ほかのパソコンへ渡すときは、「パスモード」を「コピー」にして「テクスチャを埋め込む」をオンにすると、画像がFBXのファイルに埋め込まれます。

「内容」で書き出すオブジェクトを選ぶ

「内容」の「対象」の3つは既定ではオフで、シーンのオブジェクトがすべて書き出されます。「バッチモード」がオフ以外のときは、「対象」の3つは使えません(アドオンのコード。公式マニュアルにも「バッチで書き出すときは当てはまらない」とある)。

FBXの書き出しの「内容」
「内容」の設定(既定の値)。「選択したオブジェ…」は「選択したオブジェクト」、「アクティブコレク…」は「アクティブコレクション」、「オブジェクト…」は「オブジェクトタイプ」

表の中のエンプティは形を持たず位置・回転・スケールだけを持つオブジェクト、アーマチュアは骨組みのオブジェクトです。

設定既定中身
対象:選択したオブジェクトオフ選択していて、表示されているオブジェクトだけを書き出す
対象:可視オブジェクトオフ表示されているオブジェクトだけを書き出す
対象:アクティブコレクションオフアクティブなコレクション(とその子)のオブジェクトだけを書き出す
オブジェクトタイプ全部オンエンプティ・カメラ・ランプ・アーマチュア・メッシュ・その他(カーブやメタボールなど。メッシュに変換して書き出す)から、書き出す種類を選ぶ
カスタムプロパティオフカスタムプロパティも書き出す

建物のモデルだけを渡すときは、「オブジェクトタイプ」でメッシュだけを選ぶと、カメラとライト(「オブジェクトタイプ」では「ランプ」)は書き出されません。カーブや3Dテキストで作った部分があるときは、「その他」も残します。

「スケールを適用」で、FBXの中の単位の書き方が変わる

「トランスフォーム」は、大きさと向きを決めるまとまりです。Blenderのシーンには単位の設定があり、プロパティの「シーン」の「単位」で「単位系」と「単位の倍率」を決めます。FBXは1単位を1cmとして扱います(アドオンのコードの注記)。そのため、Blenderの1m(1単位)は、FBXの数値では100になります。Blenderは前がY・上がZで、既定の「-Zが前」「Yが上」は、上がYのソフトへ渡すための変換です(公式マニュアル)。

FBXの書き出しの「トランスフォーム」
「トランスフォーム」の設定(既定の値)。「トランスフォー…」と切れて表示されているのが「トランスフォームを適用」で、右に注意の印がある
設定既定中身
スケール1.00すべてのデータに掛ける倍率(アーマチュアの倍率に対応しない読み込み側のソフトもある)
スケールを適用全ローカル「スケール」と単位の倍率を、FBXのどこに書くか。全ローカル・FBX単位スケール・FBXカスタムスケール・すべてFBXの4つ
前方・上-Zが前・Yが上軸の向きの変換
単位を適用オンBlenderの単位の設定を計算に入れる(オフでは、Blenderの数値をそのまま使う)
空間の変換を使用オン軸の向きの変換を、オブジェクトの回転に入れる
トランスフォームを適用オフ軸の向きの変換を、オブジェクトのデータ(頂点)に入れる。画面の設定の説明では試験的な設定で、アーマチュアとアニメーションでは正しく動作しないことが分かっていると注意されている

設定の説明によると、「スケールを適用」の4つは、「スケール」と単位の倍率の書き先の組み合わせです。書き先は、FBXの単位の値(FBXのスケール)か、各オブジェクトのトランスフォームです。

スケールを適用「スケール」の書き先単位の倍率の書き先
全ローカル(既定)各オブジェクト各オブジェクト(FBXのスケールは1.0のまま)
FBX単位スケール各オブジェクトFBXのスケール
FBXカスタムスケールFBXのスケール各オブジェクト
すべてFBXFBXのスケールFBXのスケール

1辺2mの立方体を4つの設定で書き出し、ファイルの中身を読むと、次のとおりでした(単位の設定は初期値)。アドオンのコードは、Blenderの1単位を、100×「単位の倍率」(初期値の1.0なら100)の値にしてFBXへ書きます。この100が、FBXのファイル全体のスケール(UnitScaleFactor)か、各オブジェクトのスケールに入ります。

スケールを適用FBXの単位の値(UnitScaleFactor)オブジェクトのスケール
全ローカル(既定)1100
FBX単位スケール100書かれない
FBXカスタムスケール1100
すべてFBX100書かれない

2m×1m×1mの箱は、どの設定で書き出しても、Blenderで読み込み直すと2m×1m×1m・スケール1で読み込まれました。画面の設定の説明は「Blender はインポート時の単位の探知に FBX スケールを使用しますが,他の多くのアプリケーションではこの方法で処理しません」です。受け取った側で、オブジェクトのスケールに100が入るのを避けたいときは、「FBX単位スケール」か「すべてFBX」で書き出し直します。表のとおり、この2つではオブジェクトのスケールが書かれません。

「ジオメトリ」で、面・スムージング・モディファイアーの扱いを決める

「ジオメトリ」を既定のまま書き出すと、モディファイアー(形を変える機能)を計算したあとの形と、カスタム法線(手で整えた面の向きの情報)が書き出されます。表の中のシェイプキーは、形の変化を記録する機能です。

FBXの書き出しの「ジオメトリ」
「ジオメトリ」の設定(既定の値)。「サブディ…スポート」は「サブディビジョンサーフェスをエクスポート」、「モディファイアー…」は「モディファイアーを適用」、「アクティブカラー…」は「アクティブカラーを優先」
設定既定中身
スムージング法線のみ滑らかさの書き方。法線のみ=カスタム法線だけを書く(読み込み側が対応していれば一番正確)/面=面ごとのスムーズの印/辺=シャープの辺で境目を決める/スムーズグループ=面をまとめたグループで書く
サブディビジョンサーフェスをエクスポートオフ最後のサブディビジョンサーフェスのモディファイアーを、FBXのサブディビジョンとして書き出す。「モディファイアーを適用」がオンでも、このモディファイアーは形に適用しない
モディファイアーを適用オンモディファイアーを計算したあとの形で書き出す(アーマチュアを除く)。オンのときは、シェイプキーを正しく書き出せない(画面の説明)
孤立する辺オフ面につながっていない辺を、2頂点の面として書き出す
三角面化オフすべての面を三角形にする
タンジェント空間オフ法線に加えてタンジェント空間を書く(三角形と四角形だけのメッシュで正しく動く)
頂点カラーsRGB頂点カラーの書き出し。なし・sRGB・リニア
アクティブカラーを優先オフアクティブな頂点カラーを最初に書き出す(最初の1つ以外の頂点カラーを使わないソフトがあるため)

「三角面化」をオンにすると、立方体は12枚の三角形の面になりました。公式マニュアルによると、三角面化はリンクしたオブジェクトで共有しているメッシュを別々のコピーにします。三角形しか扱えないソフトや、共有したメッシュを扱えないソフトに渡すときに使います。

公式マニュアルによると、NURBSの面・3Dテキスト・メタボールは、書き出すときにメッシュに変換されます。FBXのファイルでは、インスタンス(同じ形のデータを共有する複製)のオブジェクトも、それぞれのデータを持ちます。コンストレイント(ほかのオブジェクトに合わせて動かす仕組み)は書き出されず、その結果がキーフレームのアニメーションとして書き出されます。

「アーマチュア」と「アニメーション」は、動きのあるデータのための設定

アーマチュアは骨組みのオブジェクトで、1本1本をボーンと呼びます。Blenderのアクション(アニメーションのまとまり)は、FBXではAnimStackとして書かれます(公式マニュアル)。ベイクは、動きを細かく打ったキーフレームにして書くことです。建物のモデルのように動きの無いデータでは、この節の設定は変えずに書き出せます。「アニメーション」は、見出しのチェックで既定がオンになっています。

FBXの書き出しの「アーマチュア」と「アニメーション」
「アーマチュア」と「アニメーション」の設定(既定の値)。「プライマリボ…」「セカンダリボ…」はプライマリボーン軸・セカンダリボーン軸、「アーマチュアF…」はアーマチュアFBXノードタイプ、「強制的に…ーを挿入」は強制的に開始/終了キーを挿入、「サンプリング…」はサンプリングレート
まとまり設定既定中身
アーマチュアプライマリボーン軸・セカンダリボーン軸Y軸・X軸ボーンの軸の向き
アーマチュアアーマチュアFBXノードタイプNullBlenderのアーマチュアを、FBXでどの種類のノードとして書くか。Null・ルート・LimbNode
アーマチュア変形ボーンのみオフ変形するボーン(と、変形する子を持つボーン)だけを書き出す
アーマチュアリーフボーン追加オン各チェーンの最後にボーンを足し、前のボーンの長さが分かるようにする
アニメーション(見出しのチェック)オンベイクしたキーフレームのアニメーションを書き出す
アニメーション全ボーンのキーオンすべてのボーンに、少なくとも1つのアニメーションを書き出す
アニメーションNLA ストリップオンミュートしていない NLA ストリップを、それぞれ書き出す
アニメーション全アクションオンアクションを、FBXのアニメーション(AnimStack)として別々に書き出す
アニメーション強制的に開始/終了キーを挿入オンアクションの最初と最後に、必ずキーフレームを足す
アニメーションサンプリングレート1.00アニメーションの値を何フレームごとに計算するか
アニメーション簡略化1.00ベイクした値をどれだけ間引くか(0.0で間引かない)

読み込みの設定は、新しい「FBX (.fbx)」と「FBX (.fbx) (旧)」で違う

新しい「FBX (.fbx)」の読み込みの設定は、「全般」「ジオメトリ」「マテリアル」「アニメーション」「アーマチュア」の5つのまとまりです。

新しい「FBX (.fbx)」の読み込みの設定
新しい「FBX (.fbx)」の読み込みの画面の右の設定(既定の値。閉じていた欄も開いている)。「マテリアル名…」は「マテリアル名衝突時の処理」
まとまり設定既定中身
全般スケール1.000読み込むときに掛ける倍率
全般カスタムプロパティオンFBXのユーザープロパティを、カスタムプロパティとして読み込む
全般列挙を文字列でオンカスタムプロパティの列挙の値を、文字列として持つ
ジオメトリカスタム法線オンFBXにカスタム法線があれば読み込む(無ければBlenderが計算する)
ジオメトリ細分化データオフFBXのサブディビジョンの情報を、サブディビジョンサーフェスのモディファイアーとして読み込む
ジオメトリ頂点カラーsRGB頂点カラーの色空間。なし・sRGB・リニア
ジオメトリメッシュを検証オン読み込んだメッシュのデータが正しいかを調べる(オフにすると、表示や編集でBlenderが落ちるデータを読み込むことがある)
マテリアルマテリアル名衝突時の処理ユニーク化同じ名前のマテリアルがあるとき、別のマテリアルにする(ユニーク化)か、今あるものを使う(既存を参照)か
アニメーション(見出しのチェック)オンFBXのアニメーションを読み込む。公式マニュアルによると、FBXの「テイク」は、それぞれ別のアクションとして読み込まれる
アニメーションオフセット1アニメーションの時間をずらすフレーム数
アーマチュアリーフボーンを無視オフ各チェーンの最後のボーン(前のボーンの長さを示すためのもの)を読み込まない

「FBX (.fbx) (旧)」の読み込みの設定は、「内容」「トランスフォーム」「マテリアル」「アニメーション」「アーマチュア」の5つのまとまりです。

「FBX (.fbx) (旧)」の読み込みの設定の上の部分
「FBX (.fbx) (旧)」の読み込みの画面の右の設定(既定の値)。「列挙を文…ンポート」は「列挙を文字列としてインポート」、「デカールオフ…」は「デカールオフセット」、右に注意の印がある「トランスフォー…」は「トランスフォームを適用」、「Pre/Post Rotation…」は「Pre/Post Rotationを使用」

旧い読み込みにだけある設定のうち、上の部分の「内容」と「トランスフォーム」にあるものは次のとおりです。

まとまり設定既定中身
内容画像検索オン使われている画像を、サブフォルダまで探す(遅くなることがある)
トランスフォームデカールオフセット0.00アルファ(透明の度合い)のあるメッシュを動かす量
トランスフォームトランスフォームを適用オフ軸の変換をオブジェクトのデータに入れる。公式マニュアルでは試験的な設定で、アーマチュアとアニメーションでは正しく動作しないことが分かっていると注意されている
トランスフォームPre/Post Rotationを使用オンFBXのトランスフォームのPre/Post Rotationを使う。場合によってはオフにする必要がある(画面の説明)
トランスフォーム方向を手動で設定(前方・上)オフ(-Zが前・Yが上)FBXのファイルの向きの情報を使わず、向きを指定する

下の部分の「アーマチュア」には、旧い読み込みにだけある、ボーンのつなぎ方と軸の向きの設定があります。

「FBX (.fbx) (旧)」の読み込みの設定の下の部分
「FBX (.fbx) (旧)」の読み込みの画面の右の設定の下の部分(閉じていた欄も開いている)。「アニメのオフ…」は「アニメのオフセット」、「ボーン方向の自動…」は「ボーン方向の自動整列」
まとまり設定既定中身
アーマチュア子を強制的に接続・ボーン方向の自動整列・プライマリボーン軸・セカンダリボーン軸オフ・オフ・Y軸・X軸ボーンのつなぎ方と軸の向き

公式マニュアルによると、旧い読み込みは、FBXの版(バージョン)が7.1以降の、バイナリの形式のファイルにだけ対応します。旧い読み込みは非推奨で、マニュアルは新しい「FBX (.fbx)」を使うよう書いています。

建築のモデルを渡すときは、渡すものと相手のソフトに合わせて設定を選ぶ

建物のモデルをFBXで渡すときに、この記事の設定のうち見直すのは次の項目です。

  • 渡すオブジェクトだけを選択して「選択したオブジェクト」をオンにし、「オブジェクトタイプ」でメッシュを選ぶ。カメラとライトも渡すときは、カメラとランプも選ぶ。カーブや3Dテキストがあるときは、その他も選ぶ
  • テクスチャのある素材を渡すときは、「パスモード」を「コピー」にして「テクスチャを埋め込む」をオンにする
  • 配列やミラーなどのモディファイアーは、「モディファイアーを適用」(既定でオン)で、書き出す形に反映される。「サブディビジョンサーフェスをエクスポート」をオンにしたときは、最後のサブディビジョンサーフェスだけは形に反映されない
  • 相手のソフトが三角形しか扱えないときは「三角面化」をオンにする
  • 相手のソフトで、オブジェクトのスケールに100が入るのを避けたいときは、「スケールを適用」を「FBX単位スケール」か「すべてFBX」にして書き出し直す

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

  • 読み込みは、新しい「FBX (.fbx)」を使う
  • 大きさが合わないときは、読み込みの「スケール」で倍率を掛ける
  • 同じ名前のマテリアルが今のファイルにあって、それを使いたいときは、「マテリアル名衝突時の処理」を「既存を参照」にする

画面の設定の説明のとおり、ほかの多くのソフトはFBXのスケールをBlenderと同じようには扱いません。渡す前に、相手のソフトのマニュアルで、FBXの読み込みの説明を確かめてください。

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

会員登録(無料)

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

この記事について

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

あわせて読みたい