Blenderの本新刊をチェック!

BlenderからFBXをエクスポートする方法とUnityに持っていく際の注意点

Blenderで作成した3DモデルをFBX形式でエクスポートする方法と注意点を解説した記事のサムネイル画像

Blenderで作った3DモデルをUnityに取り込むには、FBX形式でのエクスポートが一般的です。

今回は、BlenderからUnity用にFBXをエクスポートする際の基本的な手順と、注意すべきポイントをわかりやすく解説します。

なお、当ブログはBlenderに特化した情報を発信するサイトですので、Unity側の操作にはあまり踏み込まず、Blenderでの設定や操作にフォーカスしてご紹介します。

目次

BlenderでエクスポートしたFBXをUnityに取り込むときの注意点|座標軸の違いに注意!

Blenderで作成した3DモデルをUnity用にFBX形式でエクスポートする際に注意が必要なのが、オブジェクトのローカル座標軸の違いです。

Blenderでは、Y軸が前後方向、Z軸が上下方向として扱われています。

Blenderでのローカル座標の向き。
Y軸が前後、Z軸が上下を示した画像
BlenderではY軸が前後、Z軸が上下

一方、Unityのローカル座標軸はY軸が上下方向、Z軸が前後方向です。

Unityでのローカル座標の向き。
Y軸が上下、Z軸が前後を示した画像
UnityではY軸が上下、Z軸が前後

このように軸の方向が異なるため、BlenderからUnity用にFBXを書き出す際には、Blender側で座標軸をUnityに合わせて調整しておく必要があります。

ということで、次のセクションでは、Blenderで3Dモデルの座標軸をUnity用に調整する方法を解説していきます。

BlenderからUnity用にFBXをエクスポートする基本手順

今回は、以下のような構成の3DモデルをBlenderからUnity用にFBX形式でエクスポートします。

Blenderで作成したヤシの木と看板と浮き輪のモデル構成
画像1:ヤシの木と看板のモデル構成(Blender)

また、オブジェクトのスケールと回転はすでに適用済み(スケール=1、回転=0)で、単位系は「メートル法」に設定されている前提です。

Blenderでスケールと回転を適用し、単位系をメートル法に設定した状態
画像2:スケール・回転を適用済み、単位系はメートル法に設定済み

BlenderからUnity用にFBXをエクスポートする手順ですが、大きく分けて2通りあります。

  • FBXのエクスポート時に「トランスフォームを適用」する方法
  • エクスポート前にオブジェクトの向きを手動で調整する方法

どちらにもメリット・デメリットがあるため、モデルの用途や作業の流れに応じて、適切な方法を使い分けるのがおすすめです。

このあとのセクションでは、それぞれの方法について具体的に解説していきます。

Blenderでトランスフォームを適用してUnity用にFBXを書き出す方法

では、「トランスフォームを適用」を使って、BlenderからUnity用にFBXを書き出す方法を見ていきましょう。

まずは、エクスポートするオブジェクトをすべて選択します。

選択した状態で「ファイル」→「エクスポート」→「FBX(.fbx)」をクリックします。

Blenderで「ファイル」→「エクスポート」→「FBX」を選択する画面
BlenderでFBX形式をエクスポートするメニュー操作

続いてエクスポートの設定で以下を設定します。

  • スケールを適用を「FBX単にスケール」に変更
  • トランスフォームを適用にチェックを入れる
BlenderのFBXエクスポート設定画面。スケール適用とトランスフォーム適用にチェックを入れる設定
BlenderのFBXエクスポート設定で「FBX単にスケール」と「トランスフォームを適用」に設定

補足:
「選択したオブジェクト(選択したオブジェクトのみがエクスポートされる)」や「可視オブジェクト(ビューポートで見えているオブジェクトのみがエクスポートされる)」のチェックは、好みに応じて設定すればOKです。

私は、意図しないオブジェクトがFBXファイルに含まれないように、どちらもチェックを入れています。

この設定でBlenderからエクスポートしたFBXファイルをUnityで開くと、オブジェクトのローカル軸がUnity用に変換されています。

Unityで表示したFBXファイル(トランスフォーム適用済み)
UnityでFBXを表示した状態。ローカル軸が変換されている

ちなみにテクスチャはBlenderで設定していた物を同じ場所に入れてあげると、勝手に反映されます。

Unityに自動で反映されたBlenderのテクスチャ
Blenderで設定していたテクスチャが、Unityでも自動的に反映されている様子

ここでお気づきの方もいると思いますが、メインのオブジェクトのローカル軸は変換されていますが、一部オブジェクト(浮き輪)のローカル軸は正常に変換されていません。

Unityでローカル軸が正しく変換されていない浮き輪オブジェクトの例
一部オブジェクトのローカル軸が正常に変換されていない様子

このオブジェクトをBlenderで見ても、回転やスケールは適用されていて問題ありません。

Blenderで回転とスケールが適用された状態の浮き輪オブジェクト
回転・スケールがすべて適用された状態のBlenderビュー

他のオブジェクトと異なる点は、この浮き輪オブジェクトの「階層」です。

メインオブジェクト(ヤシの木)との親子関係を確認してみると、浮き輪A・Bは「子の子」にあたる階層にあります。

これは、以前のBlenderバージョンでも同様ですが、FBXエクスポート時の「トランスフォームを適用」機能は、1階層下の子オブジェクトまでは適用されるものの、それより深い階層には適用されない仕様のようです。

そのため、親子関係が複雑なオブジェクト構造では、この方法はうまく機能しません

トランスフォームを適用してFBXを書き出す方法のメリット・デメリット

メリット
・親子関係がシンプルなオブジェクトなら、簡単な設定でUnity用にローカル軸を変換できる。

デメリット
・親子関係が複雑な構造では、ローカル軸の変換が一部反映されない可能性がある。

次のセクションでは、親子関係が複雑なオブジェクトをBlenderからFBX形式で正しくエクスポートする方法を解説します。

Blenderでオブジェクトの向きを調整してUnity用にFBXを書き出す方法

次はBlenderでオブジェクトの向きを調整して、親子関係が複雑な構造でもUnity用にFBX形式で出力する方法です。

まず、オブジェクトモードでEmptyを追加します。

BlenderでEmptyを追加する操作画面
BlenderでEmptyを追加して親子構造を整理する手順

次に、追加したEmptyをヤシの木のオブジェクトの親に設定します。

Emptyを親に設定して親子関係を再構成する操作画面
Emptyを親にすることで、複雑な階層を一括で扱えるようにする

補足:

親子関係を作成する際は、子にしたいオブジェクト → 親にしたいオブジェクトの順に選択し、「Ctrl + P」→「オブジェクト(トランスフォーム維持)」を選びます。

これで位置・回転・スケールを維持したまま階層を変更できます。

次に、親に設定したEmptyオブジェクトだけを選択して、X軸方向に「−90°」回転させます。

EmptyをX軸方向にマイナス90度回転させるBlenderの操作画面
EmptyだけをX軸に−90°回転させる

Emptyオブジェクトを選択した状態で、「オブジェクト」→「適用」→「回転」を選択します。

Blenderのオブジェクトメニューから「適用」→「回転」を選択している様子
Emptyオブジェクトの回転を適用してリセット

これで、Emptyオブジェクトの回転が0になりました。

Emptyオブジェクトの回転を適用してリセット
回転を適用後、すべての回転値が0度になっているのを確認

この状態で子のオブジェクト(ヤシの木)の回転の値をみるとX軸が-90度になっています。

Emptyを親にした子オブジェクト(ヤシの木)の回転がX軸-90°になっているBlenderの操作画面
親オブジェクト(Empty)の回転を適用させると、子オブジェクト(ヤシの木)が連動してX軸が-90度に変化している様子

子のオブジェクトの回転の値も0にするために、子オブジェクト(ヤシの木)以下の全てのオブジェクトを選択した状態で、「オブジェクト」→「適用」→「回転」を選択します。

Blenderで子オブジェクトの回転をゼロにリセットするための操作手順(「オブジェクト」→「適用」→「回転」)
子オブジェクトの回転値をリセットするために、「オブジェクト」メニューから「適用」→「回転」を選択します

これで、全てのオブジェクトの回転がリセットされて0になりました。

Blenderで全てのオブジェクトの回転をリセットして0度に設定した状態
全てのオブジェクトの回転がリセットされ、X・Y・Zすべてが0°になっているのが確認できます。

再びEmptyオブジェクトだけを選択して、X軸を90度回転させます。

こうすることで、各オブジェクトのローカル軸の向きがUnityの軸設定(Y軸が上下、Z軸が前後)と一致します。

BlenderでEmptyオブジェクトをX軸に90度回転させ、Unityと同じローカル軸配置にした状態
EmptyオブジェクトをX軸に90度回転させることで、Y軸が上下方向、Z軸が前後方向になるよう調整し、Unityの軸設定に合わせています。

それではいよいよ、FBXファイルとしてエクスポートしていきます。

まずは「Empty」オブジェクト以下の階層をすべて選択した状態にします。

その状態で画面左上のメニューから「ファイル」→「エクスポート」→「FBX(.fbx)」をクリックしましょう。

BlenderでEmptyオブジェクト以下を選択してFBX形式でエクスポートする操作画面
「Empty」以下のオブジェクトをすべて選択し、「ファイル」→「エクスポート」→「FBX(.fbx)」をクリック

続いて、FBXエクスポート時の設定についても確認しておきましょう。

BlenderのFBXエクスポート設定画面でスケール適用を「FBX単位スケール」に変更している様子
FBXエクスポート時は「スケールを適用」を「FBX単位スケール」に変更するのが必須!

特に重要なのが、スケールの設定です。

「スケールを適用」の項目を必ず「FBX単位スケール」に変更してください。

これを忘れると、Unityに読み込んだときに、モデルの大きさが意図とズレてしまうことがあります。

また、「選択したオブジェクト」や「可視オブジェクト」にチェックを入れておくと、不要なオブジェクトの混入を防げるのでおすすめです。

このあたりはお好みでOKですが、私は両方にチェックを入れるようにしています!

ちなみに、FBXのエクスポート設定は「オペレータープリセット」の隣にある「+」ボタンから、名前を付けて保存しておくことができます。

一度設定しておけば、次回以降に呼び出すだけで同じ条件でエクスポートできるので便利です。

複数のプロジェクトで同じ設定を使う場合や、ミスを防ぎたいときにおすすめの機能です。

BlenderでFBXエクスポート設定をプリセットとして保存する画面の操作例
FBXエクスポートの設定は「+」ボタンでプリセットとして保存可能!

こちらは、Blenderでオブジェクトの向きを調整してからエクスポートしたFBXファイルを、Unityに読み込んだ様子です。

UnityでBlenderからエクスポートしたFBXファイルを正しい向きで表示している様子
Blenderで向きを調整したFBXファイルは、階層が複雑でもUnityで正しく読み込まれる!

「トランスフォームを適用」だけではうまくいかなかったオブジェクトも、回転のリセット(Alt+R)→Emptyの活用によって、Unity側でも正しい向きで配置されています。

向きがズレやすい場合は、Blender側の調整とエクスポート設定を見直してみましょう。

Blenderでオブジェクトの向きを調整してFBXを書き出す方法のメリット・デメリット

メリット
・親子関係が複雑な構造でも、Unityで正しい向き・軸でインポートできる。
・Emptyを使うことで全体の構造を整理しやすく、再利用性も高まる。

デメリット
・作業手順がやや多く、慣れないうちは少しハードルが高く感じる場合もある。
・Emptyや階層構造の理解が必要なため、慣れるまではミスが起きやすい。

まとめ:BlenderからUnityにFBXを正しくエクスポートするコツを振り返り!

Blenderで作成した3DモデルをUnityに持っていくとき「向きやスケールが思い通りにならずに戸惑った…」という経験、あるあるですよね!

でも今回ご紹介したように、

  • 回転をリセット(Alt+R)
  • Emptyオブジェクトで構造を整理
  • 「トランスフォームを適用」に頼らず調整
  • FBXのエクスポート設定をプリセット化

といったポイントを押さえれば、Unityでも正しい向き・形でFBXを取り込むことができます。

特によく使うエクスポート設定は、名前を付けて保存しておくと毎回の作業がぐっとラクに!

ぜひ、自分の作業フローに合わせて取り入れてみてくださいね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Blenderでオリジナル・アニメーションを作っています。
愛犬がモチーフの作品が多め。

また、Blender作品集の展示場所として、メタバースのワールド制作もしています。

いつまで経っても難しいBlender!
けれど楽しいBlender!

No Blender No life.

コメント

コメントする

目次