Blender から FBX を書き出して Unity に入れると、スケールが 100、X の回転が -90 になることがあります。
これは Blender と Unity で、長さの単位と上の向きの決め方が違うためです。
- 初期設定のまま書き出すと、オブジェクトに「スケール100・X回転-90」が書き込まれる
- 「Apply Scalings」を「FBX Units Scale」にすると、スケールは1になる
- さらに「Apply Transform」をオンにすると、回転も書き込まれなくなる(ただしアーマチュアやアニメーションでは壊れることがあると注意書きがある)
- ボーンの末端に余分な「_end」を足したくなければ「Add Leaf Bones」をオフ
この記事は、2026年9月29日に Blender 5.2.1 LTS で立方体とボーンを FBX に書き出し、Blender 付属の FBX 読み取り機能でファイルの中身を調べた結果にもとづいています。
Unity 側での読み込みは試しておらず、Unity の項目は公式マニュアルの説明です。
書き出しの画面
「ファイル」→「エクスポート」→「FBX (.fbx)」で書き出します。
この記事の項目名は、書き出しの画面の英語の表記です。
設定ごとにFBXの中身を比べた
2m の立方体を1つ置き、設定を変えて4回書き出しました。
書き出したファイルの、単位(UnitScaleFactor)と、オブジェクトの回転(Lcl Rotation)・スケール(Lcl Scaling)を読み取った結果です。
| Apply Scalings | Apply Transform | 単位(UnitScaleFactor) | 回転 | スケール |
|---|---|---|---|---|
| All Local(初期値) | オフ | 1(cm) | X -90 | 100 |
| FBX Units Scale | オフ | 100(m) | X -90 | 1 |
| FBX Units Scale | オン | 100(m) | 0 | 1 |
| FBX All | オフ | 100(m) | X -90 | 1 |
初期設定の All Local は、FBX の単位を1(cm)のままにして、Blender の m との差の100倍を、オブジェクトのスケールに書き込みます。
FBX Units Scale にすると、100倍は FBX の単位の方に書かれ、オブジェクトのスケールは1のままになります。
-90度の回転はどこから来るか
Blender は Z が上、Unity は Y が上です。
書き出しの「Forward」「Up」の初期値は「-Z Forward」「Y Up」で、Y が上のソフトに合わせて向きを変えます。
このとき、向きの変換がオブジェクトの回転(X -90)として書き込まれます。
Apply Transform をオンにすると、その回転がメッシュの頂点の方に焼き込まれ、オブジェクトの回転は0になりました。
Unity向けのおすすめ設定
| 項目 | 設定 | 理由 |
|---|---|---|
| Apply Scalings | FBX Units Scale | オブジェクトのスケールが1になる |
| Forward / Up | -Z Forward / Y Up(初期値のまま) | Unity の Y が上に合わせる |
| Apply Transform | メッシュだけならオン | 回転が0になる。アーマチュアやアニメーションがあるならオフ |
| Add Leaf Bones | オフ | ボーンの末端に余分なボーンが足されない |
| Only Deform Bones | リグの補助ボーンを省くならオン | 変形ボーンを中心に出力する。階層維持に必要な親ボーンは残る場合がある |
| Smoothing | Normals Only(初期値)か Face | Unity が法線を読める |
Apply Transform は、書き出しの画面の説明に「実験的な項目で、アーマチュアやアニメーションでは壊れることが知られている」と書かれています。
キャラクターのように、ボーンやアニメーションのあるデータではオフにして、Unity 側で向きを合わせます。
Add Leaf Bonesを試した
ボーンを2本(Bone と Bone.001)つないだアーマチュアを、Add Leaf Bones のオン・オフで書き出して、ボーンの名前を読み取りました。
| Add Leaf Bones | 書き出されたボーン |
|---|---|
| オン(初期値) | Bone・Bone.001・Bone.001_end |
| オフ | Bone・Bone.001 |
オンにすると、ボーンのつながりの先に「_end」の付いたボーンが足されます。
Blender の説明では、書き出したデータでボーンを編集し直すときのための、最後のボーンの長さを示すものです。
Unity で使うだけなら要らないので、オフにします。
Unity側の設定
Unity では、FBX を選んだときのインスペクターの Model タブに、読み込みの設定があります。
| 項目 | 働き |
|---|---|
| Scale Factor | 読み込むモデル全体の大きさを変える。Unity は 1 単位を 1m として扱う |
| Convert Units | FBX に書かれた単位を、Unity の単位に変換する |
| Bake Axis Conversion | 向きの違いの変換を、頂点やアニメーションのデータに焼き込む。オフにすると、一番上のオブジェクトの Transform で補う |
Blender 側で Apply Transform を使えないキャラクターのデータでは、Unity 側の Bake Axis Conversion で回転を焼き込む方法があります。
書き出す前に確かめること
- オブジェクトのスケールと回転を、Blender で適用しておく(オブジェクト → 適用 → 回転とスケール)
- シーンの単位(プロパティのシーン → 単位)が、メートル・単位の倍率 1.0 になっているか
- テクスチャも渡すなら、Path Mode を Copy にして Embed Textures をオン(FBXの中に画像が入る)
今回の練習用のシーンの単位は、初期値のメートル・単位の倍率 1.0 でした。
練習用FBXで寸法と階層を確認する
Blender練習用データ第2セット(ZIP・約1.9MB)
ZIPを別フォルダーに展開し、元のファイルを上書きせずコピーで試してください。
2026年10月2日に Blender 5.2.1 LTSで生成し、背景実行で確認したデータです。
GUIのクリック操作、Unityへの取り込み、CyclesのGPUレンダーは今回の検証に含みません。
- fbx-box-source.blendを開く。Boxは2単位の立方体で、単位はMetric・倍率1
- Boxを選択し、コピー上でFBXを書き出す。各設定は上の比較表と同じ条件にする
- 同梱のbox-default.fbx、box-units.fbx、box-units-applied.fbxと、出力したFBXを比較する
- fbx-two-bones.blendでは、Add Leaf Bonesだけをオン・オフして2つを書き出す
- Unityが使える場合は空の練習用プロジェクトで読み込み、寸法・向き・階層を確認する
今回の実機背景処理でも、既定値は単位1・回転X=-90・スケール100、FBX Units Scaleは単位100・スケール1になりました。
FBX Units ScaleとApply Transformを併用したメッシュでは回転0となり、末端ボーンはオンで3本、オフで2本でした。
Only Deform Bonesは、名前がDEFのボーン以外をすべて消す設定ではありません。
基本人体のRigifyを試すと、変形用35本に加えて親階層21本が残り、56本を書き出しました。
Unityでの結果が違う場合は、Blenderのオブジェクト変換、シーンの単位倍率、FBX出力設定、Unityの読み込み設定を別々に確認します。
アニメーション済みのリグへ一括で変換を適用する前にコピーを作り、静止形だけでなくポーズとアニメーションも確認してください。
やり直すには元のblendコピーから書き出し直し、Unity側では実験用FBXを外します。
まとめ
- 初期設定のままだと、オブジェクトにスケール100と X -90 の回転が書き込まれる
- Apply Scalings を FBX Units Scale にすると、スケールは1になる
- Apply Transform で回転も消えるが、ボーンやアニメーションのあるデータには使わない
- Add Leaf Bones はオフにすると、余分な _end のボーンが付かない
参考:Blender Manual「FBX (Legacy)」、Unity「Model tab」(2026年9月29日に確認)と、Blender 5.2.1 での実測。
