【Blender→Unity】FBXでボーンが消える不具合と原因
投稿日: 2026年6月23日(2026年9月19日更新)
対象読者: BlenderからUnityへFBXでスキンメッシュやリグを持ち込んだときに、ボーンが消えて困っている人
不具合内容
作成したモデルをBlenderから書き出し、Unityに取り込むとボーンが消えている。
原因
書き出すときにアーマチュアが対象に入っていないため。アーマチュアを非表示にしたまま「選択したオブジェクト」で書き出したとき、ボーンが反映されない。
解決方法
- 書き出し前にアウトライナーで目のアイコンを開き、アーマチュアとメッシュを両方選択してから書き出す
- Unityに取り込んだら、Skinned Mesh Renderer が付いているか、ボーン数が合っているかを確かめる
動作環境
| 項目 | バージョン |
|---|---|
| Blender | 5.0.1(日本語UI) |
| Unity | 6000.0.58f2 (Unity 6・日本語UI) |
| 検証モデル | 高さ1.8mの円柱 +ボーン3本(Bone0〜2) 自動ウェイトでスキン済み |
解決方法の詳細:ボーンを入れて書き出す手順
ここからは、Blenderで書き出したFBXにボーンが入った状態にする手順を、実際の画面で順に説明します。 またそのあとに、今回の不具合内容の再現手順も載せておきます。
手順1:アーマチュアの目のアイコンを開く
画面右上のアウトライナーで、Armature の行の右端にある目のアイコンをクリックします。閉じている(非表示)と、3Dビューにボーンが表示されません。
手順2:アーマチュアとメッシュを両方選択する
アウトライナーで Armature をクリックし、続けて Ctrl を押しながら Body をクリックします。2つの行が両方とも選択された色になり、3Dビューにボーンが表示されます。
手順3:ファイル → エクスポート → FBX を開く
画面左上の「ファイル」メニューから「エクスポート」にカーソルを合わせ、「FBX (.fbx)」を選びます。
手順4:書き出し画面の「内容」を確かめる
書き出し画面の右側にある設定のうち、「内容」パネルで次の2つを確かめます。
- 「対象」の「選択したオブジェクト」にチェックが入っている(手順2で選んだ2つだけを書き出す)
- 「オブジェクトタイプ」で「アーマチュア」と「メッシュ」が青く選ばれている(既定ではすべて選ばれている)
「アーマチュア」パネルの設定は既定のままで構いません。
手順5:「FBXをエクスポート」を押す
画面下の欄にファイル名を入れ、右下の「FBXをエクスポート」を押します。
確認1:書き出したFBXをBlenderに読み込み直す
ボーンが入ったかを確かめるため、新しいシーン(または新規ファイル)で「ファイル → インポート → FBX (.fbx)」を選び、いま書き出したファイルを開きます。
確認2:アウトライナーにボーンがあれば成功
読み込んだアーマチュアの下に Bone0〜2 が並び、3Dビューにもボーンが表示されれば、FBXにボーンが入っています。Body しか無い場合は、手順1〜4のどこかでアーマチュアが対象から外れています。
一番上の Bone2_end は、書き出し時の「リーフボーン追加」(既定でON)で足される末端のボーンです。
このFBXをUnityに取り込むと、Armature の下にボーンが並び、Body には Skinned Mesh Renderer とルートボーン(Bone0)が設定されます。
参考:スクリプトで書き出す場合
スクリプトでも手順は同じで、選択より先に表示を戻します。非表示のままでは選択できないためです。
import bpy
armature = bpy.data.objects["Armature"]
body = bpy.data.objects["Body"]
armature.hide_set(False) # 手順1:先に表示する
bpy.ops.object.select_all(action='DESELECT')
armature.select_set(True) # 手順2:両方を選択
body.select_set(True)
bpy.ops.export_scene.fbx( # 手順3〜5
filepath="model.fbx",
use_selection=True,
)
書き出したいのがシーン全体なら、「対象」のチェックをすべて外して書き出すのが確実です。下の表のとおり、アーマチュアが非表示でもボーンは入ります。
原因詳細:非表示のオブジェクトは「選択したオブジェクト」に入らない
不具合は次の手順で再現できます。
再現1:アーマチュアを非表示にする
アウトライナーで Armature の目のアイコンを閉じます。3Dビューからボーンが消え、メッシュだけが表示されます。
再現2:「選択したオブジェクト」にチェックを入れて書き出す
「ファイル → エクスポート → FBX」を開き、「対象:選択したオブジェクト」にチェックを入れて書き出します。
書き出したFBXを読み込み直すと、アウトライナーには Body しか現れません(冒頭の比較画像の右側)。
なぜボーンが消えるのか
Blenderでは、オブジェクトを非表示にした瞬間に選択も外れます。Armature を選択してから非表示にしても、書き出し時点では選択されていません。実際に hide_set(True) の直後に select_get() を確かめると False でした。
結果、選択されているのは Body だけになり、FBXにはメッシュしか入りません。
参考:ほかの書き出し方でも起きるか
同じリグを条件を変えて書き出し、FBXの中にボーン(LimbNode)が入っているかを数えました。
| アーマチュア | 書き出しの「対象」 | ボーン |
|---|---|---|
| 表示・両方選択 | 選択したオブジェクト | 入る |
| 表示・メッシュだけ選択 | 選択したオブジェクト | 消える |
| 非表示 | 選択したオブジェクト | 消える |
| 非表示 | 可視オブジェクト | 消える |
| 非表示 | チェックなし(全体) | 入る |
| ビューポートで無効 | チェックなし(全体) | 入る |
| レンダーで無効 | チェックなし(全体) | 入る |
「非表示」はアウトライナーの目のアイコン、「ビューポートで無効」はモニタのアイコン、「レンダーで無効」はカメラのアイコンで切り替える状態です。
アーマチュアが見えていても、メッシュだけを選んで書き出せばボーンは消えます。原因は「非表示」そのものではなく、アーマチュアが書き出し対象から外れることです。「対象」の下にある「可視オブジェクト」も同じで、非表示のアーマチュアは対象に入りません。
まとめ
- ボーンが消えるのは、アーマチュアが書き出し対象に入っていないから。非表示のまま「選択したオブジェクト」や「可視オブジェクト」で書き出すと起きる
- 表示されていても、メッシュだけを選んで書き出せば同じことが起きる
- 目のアイコンを開き、アーマチュアとメッシュを両方選択して書き出す。シーン全体なら「対象」のチェックを外す
- 取り込んだら Skinned Mesh Renderer とボーン数を確かめる
Scaleが100になる不具合は原因も直し方も別で、【Blender→Unity】FBXのScaleが100になりコライダーが100倍になる不具合と原因にまとめています。
このパイプラインで作ったモデルは、MediaPipeとUnity WebGLでポーズ推定を動かす仕組みの記事や、写真からポーズを3D化する PoseMirror 本体で動いています。











