Face・Material Slot・Outliner表示の関係を整理する
Blenderでキャラクターや小物を作っていると、1つのObjectに複数のMaterialを設定する場面がよくあります。
例えば、1つのキャラクターObjectの中に、
- 肌用Material
- 服用Material
- 目用Material
- 靴用Material
- 装飾用Material
などを設定することがあります。
このとき、OutlinerやMaterial Propertiesを見ると、Objectの下に複数のMaterialが並んで表示されます。ここで誤解しやすいのが、
Objectに複数Materialが見える
= 1つのFaceに複数Materialが重なっている
と考えてしまうことです。
しかし、BlenderのMaterial割り当ては、そのような構造ではありません。
1. Objectには複数のMaterialを登録できる
Blenderでは、1つのMesh Objectに複数のMaterialを持たせることができます。
このMaterialの並びは、一般的には Material Slot として管理されます。

イメージとしては、次のような構造です。
Object: Character
└─ Mesh Data
├─ Material Slot 0 : Skin
├─ Material Slot 1 : Shirt
├─ Material Slot 2 : Eye
└─ Material Slot 3 : Shoes
このリストは、「このObjectで使えるMaterialの候補リスト」と考えると理解しやすいです。
Outlinerで複数Materialが見えるのは、Objectが複数のMaterial Slotを持っているためです。
2. 1つのFaceが参照できるMaterialは基本的に1つ
重要なのはここです。
Object全体では複数Materialを持てますが、1枚のFaceが直接参照するMaterial Slotは基本的に1つです。

例えば、Faceごとの割り当ては次のようになります。
Face 1 → Material Slot 0 → Skin
Face 2 → Material Slot 0 → Skin
Face 3 → Material Slot 1 → Shirt
Face 4 → Material Slot 2 → Eye
Face 5 → Material Slot 3 → Shoes
つまり、Objectには複数Materialが登録されていても、Faceごとには「どのSlotを使うか」が決まっているだけです。
Blender Python API上でも、MeshPolygon、つまりFaceに相当する要素には material_index があり、これはMaterial Slotのインデックスを示します。
3. 「MaterialをVertexに割り当てる」という理解は少し危険
BlenderのEdit Modeでは、Vertex選択、Edge選択、Face選択を切り替えられます。
そのため、Vertexを選択してMaterialをAssignしたように見えることがあります。
しかし、Materialの割り当てを実務上正確に扱うなら、Face単位で考える方が安全です。

特に次のような作業では、Face Selectモードで確認するのがよいです。
- 服の一部だけMaterialを変える
- 肌の一部だけ別Materialにする
- 余計なMaterial範囲を除外する
- Materialを元に戻す
- どのFaceがどのMaterialを使っているか確認する
Material設定の基本操作として、Blender ManualではEdit Modeで対象部分を選び、Material SlotからAssignする流れが説明されています。
4. OutlinerにMaterialが残っている意味
OutlinerにMaterialが残っている場合、必ずしもそのMaterialが現在のFaceで使われているとは限りません。

例えば、次のような状態があります。
Material Slot 0 : Skin ← 使用中
Material Slot 1 : Shirt ← 使用中
Material Slot 2 : Old_Mat ← どのFaceも使っていない
Material Slot 3 : Test_Mat ← どのFaceも使っていない
この場合、OutlinerやMaterial Propertiesには Old_Mat や Test_Mat が見えることがあります。
しかし、実際にはどのFaceも参照していない可能性があります。
この状態を放置すると、Materialがどんどん増えて、どれが本当に使われているのか分かりにくくなります。
5. Materialを「解除する」という考え方
Material作業でよく出てくる疑問に、
FaceからMaterialを解除できないのか?
というものがあります。

これは直感的には自然な考え方です。
しかし、Blenderでは通常操作として、Faceを完全に「Materialなし」にするというより、Faceが参照しているMaterial Slotを別のSlotへ変更すると考える方が実態に近いです。
例えば、服Materialを解除して肌Materialに戻したい場合は、
変更前:
Face A → Material Slot 1 → Shirt
変更後:
Face A → Material Slot 0 → Skin
という処理になります。
つまり、「解除」というより、割り当て先を変更するという理解です。
6. Materialが増え続ける原因

Materialが増え続ける典型的な原因は、次のような作業です。
- あるFace範囲のMaterialを変えたい
- 元Materialに戻せない
- 新しいMaterialを作ってAssignする
- 古いMaterial Slotが残る
- さらに新しいMaterialを作る
Material.001、Material.002のように増えていく
この状態になると、見た目は一応整っていても、Object内部には未使用Materialや不要Slotが残ります。
この問題を避けるには、新しいMaterialを増やす前に、
- 既存Material SlotへAssignし直す
- どのFaceがどのMaterial Slotを使っているか確認する
- 未使用Material Slotを削除する
という整理が必要です。
7. Material SlotのSelectで確認する
Materialの割り当て確認には、Material Propertiesの Select が便利です。
手順は次の通りです。
- Objectを選択する
- Edit Modeに入る
- Face Selectモードにする
- Material Propertiesを開く
- 確認したいMaterial Slotを選ぶ
- Select を押す
すると、そのMaterial Slotを使っているFaceが選択(強調表示)されます。
これにより、
- 本当にそのMaterialが使われているか
- どのFaceに割り当てられているか
- 使っていないMaterial Slotが残っていないか
を確認できます。
8. 未使用Material Slotを削除する
Materialを整理する場合、使っていないMaterial Slotは削除できます。
Blender 5.1 Manualには、ObjectのClean Up機能として Remove Unused Material Slots が記載されています。これは、未使用Material Slotの整理に関係する機能です。
実務では、次の順番で整理すると安全です。
- Edit ModeでMaterial割り当てを確認
- 必要なFaceを正しいMaterialへAssign
- 使っていないMaterial Slotを削除
- 必要に応じてUnused DataをPurgeする
ここで注意したいのは、Material Slotの削除とMaterialデータそのものの削除は別の作業だという点です。
9. Material SlotとMaterialデータの違い
Material Slotは、Object側にあるMaterialの参照枠です。
Materialデータは、実際の色、Shader Node、Texture設定などを持つデータブロックです。
簡単に言うと、次の違いがあります。
| 項目 | 意味 |
|---|---|
| Material Slot | Objectが持つMaterialの参照枠 |
| Materialデータ | 実際のMaterial設定本体 |
| Faceのmaterial_index | FaceがどのMaterial Slotを使うかを示す番号 |
そのため、Material Slotを削除しても、Materialデータが他のObjectで使われていれば、そのMaterialデータ自体は残ります。
逆に、どこからも参照されなくなったMaterialデータは、Unused Dataとして整理対象になります。
10. 実務でおすすめのMaterial整理手順
Materialが混乱したObjectでは、次の手順が分かりやすいです。
手順1:残したいMaterialを決める
まず、最終的に使うMaterialを決めます。
例:
Skin
Shirt
Eye
Shoes
不要なテストMaterialや重複Materialは、この時点で候補から外します。
手順2:Face Selectで割り当て直す
Edit Modeに入り、Face Selectモードで作業します。
- 肌のFaceを選択 →
SkinにAssign - 服のFaceを選択 →
ShirtにAssign - 目のFaceを選択 →
EyeにAssign - 靴のFaceを選択 →
ShoesにAssign
このように、Faceごとに正しいMaterial Slotへ割り当て直します。
手順3:Material SlotのSelectで確認する
各Material Slotを選び、Selectを押して確認します。
SkinをSelect → 肌だけ選ばれる
ShirtをSelect → 服だけ選ばれる
EyeをSelect → 目だけ選ばれる
ShoesをSelect → 靴だけ選ばれる
想定外のFaceが選ばれる場合は、そのFaceのMaterial割り当てを修正します。
手順4:未使用Material Slotを削除する
どのFaceにも使われていないMaterial Slotは削除します。
この作業により、OutlinerやMaterial Propertiesの表示が整理されます。
11. Add-on化すると便利な機能
このMaterial整理は、標準操作だけでも可能です。
しかし、繰り返し行う場合はAdd-on化するとかなり楽になります。
特に便利なのは、次のような機能です。
| 機能 | 内容 |
|---|---|
| 選択FaceのMaterial一覧表示 | 選択Faceに含まれるMaterial Slotを一覧表示する |
| MaterialごとのFace数表示 | 選択範囲内で各Materialが何Face使われているか表示する |
| 選択Materialを解除 | 指定Materialを使う選択Faceを空Slotや基準Materialへ移す |
| 選択FaceをActive Materialへ変更 | 選択FaceのMaterial Indexを現在のMaterial Slotへ変更する |
| 未使用Material Slot削除 | どのFaceにも使われていないSlotを削除する |
このようなAdd-onがあると、「どのMaterialがどこに使われているのか」を確認しながら整理できます。
12. まとめ
BlenderのMaterial設定で大事なのは、次の3点です。
1つ目は、Objectには,複数のFaceで構成されることがほんどであり,そのFace毎にそれぞれMaterialを登録できるということです。
OutlinerやMaterial Propertiesで複数Materialが見えるのは、このためです。
2つ目は、各Faceが参照するMaterial Slotは基本的に1つ,即ちFaceは1つのMaterialしか登録できないということです。1つのFaceに複数Materialが重なっているわけではありません。
3つ目は、Materialを「解除する」というより、Faceの参照先Material Slotを変更すると理解することです。
この構造を理解すると、Materialが増え続ける原因や、未使用Material Slotが残る理由も分かりやすくなります。
Material設定で混乱した場合は、
Face Selectで確認
↓
正しいMaterial SlotへAssign
↓
Material SlotのSelectで確認
↓
未使用Material Slotを削除
という順番で整理すると安全です。
【注意点・例外】
- Modifier、Geometry Nodes、Linked Object、Library Overrideを使っている場合、見た目と元MeshのMaterial割り当てが一致しないことがあります。
- Shader Node側で透明化やMix Shaderを使っている場合、FaceのMaterial Slot割り当てとは別に、Material内部で見た目が変化します。
- Texture Paint、Color Attribute、Vertex Group、UV MapはMaterial割り当てとは別の仕組みです。
- 「未使用Material Slot」と「未使用Materialデータ」は別です。Slotを削除しても、Materialデータが他で使われていれば残ります。
- Blender 5.1での記事にする場合は、メニュー名やUI表示が過去バージョンと異なる可能性があります。
おまけ:Material Slot・Material Data・material_indexの関係
BlenderのMaterial設定で混乱しやすい理由は、画面上ではすべて「Material」として見えてしまう場面が多いからです。
しかし、内部的には少なくとも次の4つを分けて考えると分かりやすくなります。
| 用語 | 意味 | 例 |
|---|---|---|
| Face | メッシュを構成する面 | 頬の面、服の面、靴の面 |
material_index | Faceが参照するMaterial Slot番号 | 0, 1, 2 |
| Material Slot | Object側にあるMaterial Dataの参照枠 | Slot 0, Slot 1 |
| Material Data | 色・質感・Shader Nodeを持つMaterial本体 | Skin_Mat, Shirt_Mat |
重要なのは、FaceがMaterial Dataを直接見ているのではなく、Material Slot番号を見ているという点です。
FaceはMaterial Slot番号を参照している
例えば、Objectに次のMaterial Slotがあるとします。
Object: Character
Material Slot 0 → Skin_Mat
Material Slot 1 → Shirt_Mat
Material Slot 2 → Eye_Mat
このとき、Face側では次のような割り当てになっています。
Face A → material_index = 0
Face B → material_index = 1
Face C → material_index = 2
これは、次の意味です。
Face A → material_index = 0 → Material Slot 0 → Skin_Mat
Face B → material_index = 1 → Material Slot 1 → Shirt_Mat
Face C → material_index = 2 → Material Slot 2 → Eye_Mat
つまり、material_index = 0 は Material Slot 0を参照しているという意味です。
Slotの中身を変えると、Faceの見た目も変わる
ここが非常に重要です。
例えば、次の状態があるとします。
Face A → material_index = 0
Material Slot 0 → Skin_Mat
この場合、Face Aは Skin_Mat で表示されます。
しかし、Material Slot 0の中身を別のMaterial Dataに差し替えると、
Face A → material_index = 0
Material Slot 0 → Blue_Mat
Face Aの material_index は0のままですが、表示は Blue_Mat に変わります。
つまり、Faceが覚えているのは Skin_Mat という名前ではなく、Slot 0を見るという情報です。
「Materialを削除する」は言い方に注意
Materialまわりでは、「削除」という言葉が特に曖昧です。
次のように書き分けると、誤解が少なくなります。
| やりたいこと | 正確な表現 |
|---|---|
| Faceを別Materialに戻す | FaceのMaterial割り当てを変更する |
| Faceが見るSlotを変える | Faceの material_index を変更する |
| ObjectのSlot枠を消す | ObjectからMaterial Slotを削除する |
| Slotの中身だけ外す | Material SlotからMaterial Dataを外す |
| Material本体を消す | 未使用Material DataをPurgeする |
例えば、ObjectからMaterial Slotを削除するとは、Object側にあるSlotという枠を消すことです。
一方、Material SlotからMaterial Dataを外すとは、Slotの枠は残したまま、中身だけを空にすることです。
Material Slotを削除してもMaterial Dataが消えるとは限らない
ObjectからMaterial Slotを削除しても、その中に入っていたMaterial Data本体が完全に消えるとは限りません。
例えば、
Object A
Slot 0 → Skin_Mat
Slot 1 → Old_Mat
この状態でObject AからSlot 1を削除すると、
Object A
Slot 0 → Skin_Mat
になります。
しかし、Old_Mat は次のような場合にBlenderファイル内へ残ることがあります。
- 他のObjectが
Old_Matを使っている - Fake Userが付いている
- まだ未使用データとしてPurgeされていない
したがって、
Material Slot削除 = Objectから参照枠を消す
Material Data削除 = Material本体をファイルから消す
と分けて考える必要があります。
本記事でのおすすめ表現
この記事内では、次の表現で統一すると分かりやすくなります。
FaceのMaterial割り当てを変更する
Objectから不要なMaterial Slotを削除する
Material SlotからMaterial Dataを外す
未使用Material DataをPurgeする
逆に、次の表現は曖昧なので避けた方が安全です。
Materialを解除する
Materialを削除する
Material Slotから削除する
FaceからMaterialを外す
まとめ
BlenderのMaterial設定は、次の流れで理解すると整理しやすくなります。
Face
↓
material_index
↓
Material Slot番号
↓
Material Slot内のMaterial Data
↓
表示結果
この流れを理解すると、MaterialをAssignする操作、Material Slotを整理する操作、未使用Material DataをPurgeする操作の違いが分かりやすくなります。
Materialまわりで混乱したときは、まず「いま操作しているのはFaceなのか、Slotなのか、Material Dataなのか」を確認するとよいです。
まず、Material Properties右端の 「−」 は、
Objectから選択中のMaterial Slotを削除する
操作です。
一方で、Material Data本体を消す方法は、
Outlinerを Blender File または Orphan Data 表示にして、該当Material Dataを削除/Purgeする
という理解でよいです。
ただし、Material Slotを削除しても、Material Data本体が必ず完全削除されるわけではありません。
【注意点・例外】
- Geometry NodesやShader NodeでMaterialが上書き・混合されている場合、FaceのMaterial Slot割り当てだけでは見た目を完全には説明できないことがあります。
- 同じMaterial Dataを複数Objectで共有している場合、そのMaterial Dataを編集すると複数Objectに影響します。
- Linked LibraryやAsset由来のObjectでは、Material SlotやMaterial Dataの編集権限が制限される場合があります。
material_indexはPython API上の説明として有用ですが、通常のBlender操作では直接数値を編集する必要はありません。
【出典】
Blender Python API – MeshPolygon.material_index
https://docs.blender.org/api/current/bpy.types.MeshPolygon.html
Blender Python API – Mesh.materials
https://docs.blender.org/api/current/bpy.types.Mesh.html
Blender Python API – Material
https://docs.blender.org/api/current/bpy.types.Material.html
Blender Manual – Material Assignment
https://docs.blender.org/manual/en/latest/render/materials/assignment.html
最後に、Materialを削除する
Material Propertyの「-」は,
Objectから選択中のMaterial Slotを削除する
操作です。
一方で、Material Data本体を消す方法は、
Outlinerを Blender File または Orphan Data 表示にして、該当Material Dataを削除/Purgeする
という理解です。
ただし、Material Slotを削除しても、Material Data本体が必ず完全削除されるわけではありません。
Material Slotを削除してもMaterial Data本体が消えない主な条件は、次のどれかです。
- そのMaterial Dataを他のObjectが使っている
- 別のMaterial Slotにまだ入っている
- Fake Userが付いている
- Asset化・Library Link・Overrideなどで保持されている
- 未使用になっただけで、まだPurgeされていない
- Material内のNode GroupやImage Textureなど、関連データが別に残っている
一番重要なのは、BlenderのMaterial Dataは「使用数=Users」を持つデータブロックであり、参照が残っている間は消えない、という点です。
Fake Userとは、
未使用Data-blockを保存時に消さないための保持フラグです。Material DataにFake Userが付いている場合、そのMaterialがどのObjectにも割り当てられていなくても、Blenderファイル内に残ります。詳しい解説はFake Userを見てください.
【出典】
- Blender Manual – Material Assignment
https://docs.blender.org/manual/en/2.80/render/materials/assignment.html - Blender Python API – MeshPolygon.material_index
https://docs.blender.org/api/current/bpy.types.MeshPolygon.html - Blender 5.1 Manual – Clean Up / Remove Unused Material Slots
https://docs.blender.org/manual/ja/latest/scene_layout/object/editing/cleanup.html


