1. このAdd-onの目的
このツールは,BlenderのFace単位Material割り当てを確認・解除・整理するAdd-onです.
Blenderでは、1つのObjectに複数のMaterialを登録できます。
しかし、各Faceが実際に参照しているMaterialは、Material Data本体ではなく、Object側の Material Slot番号 です。
つまり、内部的には次のような関係になります。
Face
↓
material_index
↓
Material Slot番号
↓
Material Slot内のMaterial Data
↓
表示結果
例えば、
Face A → material_index = 0 → Material Slot 0 → Skin_Mat
Face B → material_index = 1 → Material Slot 1 → Shirt_Mat
という構造です。
このAdd-onは、Blender標準UIでは分かりにくい次の作業を補助します。
- 選択FaceにどのMaterialが割り当てられているか確認する
- 選択FaceのMaterial割り当てを一覧表示する
- 選択Faceから指定Materialを「解除」する
- 選択FaceをActive Materialへ割り当て直す
- 未使用Material Slotを削除して整理する
ここでいう「解除」は、Blender内部では完全なMaterialなしにするという意味ではなく、選択Faceの参照先を空のMaterial Slotへ移すという処理です。
2. このAdd-onが解決する問題
BlenderでMaterial作業をしていると、次のような問題が起こります。
Materialを割り当てる
↓
一部Faceから外したい
↓
標準操作では「解除」の考え方が分かりにくい
↓
別Materialを作って回避する
↓
Material.001、Material.002、Old_Mat などが増えていく
↓
OutlinerやMaterial Slotが混乱する
このAdd-onは、このような「Materialが増え続ける問題」を避けるために、Face単位のMaterial状態を確認しながら整理できるようにします。
3. 前提知識:Material SlotとMaterial Dataの違い
このAdd-onを使う前に、次の違いを理解しておくと安全です。
| 用語 | 意味 |
|---|---|
| Face | メッシュを構成する面 |
| material_index | Faceが参照するMaterial Slot番号 |
| Material Slot | Object側にあるMaterial Dataの参照枠 |
| Material Data | 色・質感・Shader Nodeなどを持つMaterial本体 |
| Fake User | 未使用Data-blockを保存対象にする保護フラグ |
Material Slotは「枠」です。
Material Dataは「中身」です。
Material Slot 0 → Skin_Mat
Material Slot 1 → Shirt_Mat
Material Slot 2 → Old_Mat
この場合、Slot 0, 1, 2 がMaterial Slotで、Skin_Mat などがMaterial Dataです。
4. Add-onの表示場所
Add-onを有効化すると、次の場所にパネルが表示されます。
3D Viewport
↓
Nキー
↓
Sidebar
↓
Mat Fix タブ
↓
Face Material Unassign
対象Objectは Mesh Object である必要があります。
また、主な操作は Edit Mode でFaceを選択して行います。
5. 基本的な使い方
手順
- 対象のMesh Objectを選択する
Tabキーで Edit Mode に入る- Face Selectモードにする
- 確認または修正したいFace範囲を選択する
NキーでSidebarを開く- Mat Fix タブを開く
- Refresh List を押す
- 選択Faceに含まれるMaterial一覧を確認する
- 必要に応じて解除・再割り当て・整理を行う
6. 操作ボタンの意味
6-1. Refresh List
ボタン名
Refresh List
目的
現在選択しているFace範囲に含まれるMaterialを一覧表示します。
実行内容
選択Faceを調べ、各Faceの material_index を読み取ります。
その material_index に対応するMaterial SlotとMaterial Data名を一覧に表示します。
達成されること
選択Faceの中に、どのMaterialが何枚のFaceで使われているか分かります。
例:
[0] Skin_Mat 24 face(s)
[1] Shirt_Mat 8 face(s)
[3] Old_Mat 2 face(s)
この表示により、選択範囲に不要Materialが混ざっていないか確認できます。
6-2. Unassign Selected Material
ボタン名
Unassign Selected Material
目的
リストで選択したMaterialを、現在選択中のFace範囲から解除します。
重要な注意
Blender内部では、Faceは常にMaterial Slot番号を参照します。
そのため、このAdd-onでの「解除」は、
選択Faceのうち、指定Materialを使っているFaceを、空のMaterial Slotへ移す
という意味です。
実行内容
例えば、次の状態だとします。
Face A → material_index = 1 → Slot 1 → Old_Mat
ここで Old_Mat を選んで Unassign Selected Material を押すと、Add-onは空のMaterial Slotを探します。
空Slotがなければ、新しく空のSlotを作ります。
その後、Face Aの参照先を空Slotへ変更します。
変更前:
Face A → Slot 1 → Old_Mat
変更後:
Face A → Empty Slot → None
達成されること
選択Faceから、指定Materialの表示を外すことができます。
ただし、Material Data本体が削除されるわけではありません。
あくまで、FaceのMaterial割り当てが空Slotへ変更されるだけです。
6-3. Selected Faces -> Active Material
ボタン名
Selected Faces -> Active Material
目的
選択Faceを、Material Propertiesで現在選択しているActive Material Slotへ割り当て直します。
実行内容
選択Faceの material_index を、Active Material Slot番号へ変更します。
例:
Active Material Slot = Slot 0 → Skin_Mat
この状態でボタンを押すと、
変更前:
Face A → Slot 1 → Shirt_Mat
変更後:
Face A → Slot 0 → Skin_Mat
になります。
達成されること
Materialを誤って割り当てたFaceを、元Materialや任意のMaterialへ戻せます。
実務的には、次の用途に向いています。
- 肌に戻す
- 服に戻す
- 下地Materialへ戻す
- 一時的に空Slotへ移したFaceを通常Materialへ戻す
6-4. Remove Unused Material Slots
ボタン名
Remove Unused Material Slots
目的
どのFaceにも参照されていないMaterial SlotをObjectから削除します。
実行内容
Add-onはObject内の全Faceを調べ、使われているMaterial Slot番号を集計します。
例えば、次の状態だとします。
Object
├─ Slot 0 → Skin_Mat 使用中
├─ Slot 1 → Shirt_Mat 使用中
├─ Slot 2 → Old_Mat 未使用
└─ Slot 3 → Test_Mat 未使用
このボタンを押すと、未使用のSlot 2とSlot 3をObjectから削除します。
整理後:
Object
├─ Slot 0 → Skin_Mat
└─ Slot 1 → Shirt_Mat
達成されること
ObjectのMaterial Slot一覧が整理されます。
不要なSlotが減るため、Material管理が分かりやすくなります。
注意
この操作で削除されるのは、基本的には Object側のMaterial Slot です。
Material Data本体がBlenderファイルから完全に削除されるとは限りません。
Material Data本体を削除したい場合は、Outlinerの Orphan Data などでPurgeします。
7. 「解除」と「削除」の違い
このAdd-onを使う上で、次の違いは重要です。
| 操作 | 意味 |
|---|---|
| FaceのMaterial割り当てを変更する | Faceの material_index を変更する |
| Unassign Selected Material | 指定Materialを使う選択Faceを空Slotへ移す |
| ObjectからMaterial Slotを削除する | Object側のSlot枠を消す |
| Material SlotからMaterial Dataを外す | Slotは残し、中身だけをNoneにする |
| Material DataをPurgeする | Material本体をBlenderファイルから削除する |
このAdd-onの Unassign は、Material Data本体を削除する処理ではありません。
Faceの参照先を変更する処理です。
8. Material Dataが残る条件
ObjectからMaterial Slotを削除しても、Material Data本体が残ることがあります。
主な条件は次の通りです。
他のObjectが使っている
同じObjectの別Slotが使っている
Fake UserがONになっている
AssetやLibrary Link由来で保持されている
まだOrphan DataでPurgeしていない
特にFake UserがONの場合、Usersが0でもMaterial Dataは保持されます。
Fake Userは、
未使用でも残したいData-blockを保存対象にするための保護フラグ
です。
そのため、不要なMaterial Dataを完全に整理したい場合は、Slot削除後にFake Userの状態も確認します。
9. おすすめの作業手順
Materialが混乱したObjectでは、次の順で作業すると安全です。
1. Edit ModeでFaceを選択する
2. Refresh ListでMaterial割り当てを確認する
3. 不要Materialが混ざっていればUnassignする
4. 必要なFaceをActive Materialへ割り当て直す
5. Remove Unused Material SlotsでObject側のSlotを整理する
6. 必要に応じてOutlinerのOrphan DataでMaterial DataをPurgeする
10. 使用例
例1:肌Faceに混ざった服Materialを外す
状態
肌の一部Faceに誤って Shirt_Mat が割り当てられている。
操作
- 肌周辺のFaceを選択
- Refresh List
- リストに
Shirt_Matが表示される Shirt_Matを選択- Unassign Selected Material
- 必要なら
Skin_MatをActiveにして Selected Faces -> Active Material
結果
誤って混ざった服Materialを外し、肌Materialへ戻せます。
例2:Material.001、Material.002が増えたObjectを整理する
状態
Material Propertiesに次のようなSlotがある。
Slot 0 → Skin_Mat
Slot 1 → Shirt_Mat
Slot 2 → Material.001
Slot 3 → Material.002
Slot 4 → Old_Mat
しかし、実際にはSlot 0とSlot 1しか使っていない。
操作
- Objectを選択
- Remove Unused Material Slots を押す
- 必要に応じてOutlinerのOrphan DataでMaterial DataをPurgeする
結果
Object側のMaterial Slot一覧が整理されます。
例3:選択Face内のMaterial状態を確認する
操作
- Edit ModeでFace範囲を選択
- Refresh List を押す
結果
選択Face範囲に含まれるMaterialとFace数が表示されます。
[0] Skin_Mat 120 face(s)
[1] Shirt_Mat 35 face(s)
[4] Old_Mat 3 face(s)
これにより、意図しないMaterialが混ざっているか確認できます。
11. 注意点
このAdd-onは、Mesh Objectの元Faceに対して処理します。
以下の状況では、見た目と処理結果が一致しない場合があります。
- Geometry NodesでMaterialを上書きしている
- Shader Node内で透明化やMix Shaderを使っている
- Modifier適用前後でFace構造が変わっている
- Linked LibraryやAsset由来のObjectで編集権限がない
- 同じMaterial Dataを複数Objectで共有している
また、Material Dataを完全に消したい場合は、このAdd-onだけで完結しない場合があります。
不要なMaterial Dataは、OutlinerのOrphan DataでPurgeしてください。
12. このAdd-onで達成できること・できないこと
| 項目 | 可否 |
|---|---|
| 選択Faceに含まれるMaterial一覧の確認 | 可能 |
| 選択Faceから指定Materialを外す | 可能 |
| 選択FaceをActive Materialへ戻す | 可能 |
| 未使用Material Slotの削除 | 可能 |
| Material Data本体の完全削除 | 直接は行わない |
| Fake UserのON/OFF管理 | 現行版では行わない |
| Orphan DataのPurge | 現行版では行わない |
| Geometry Nodes後の生成Faceへの直接処理 | 対象外 |
13. 用語の統一
取説やBlog記事では、次の表現で統一すると分かりやすくなります。
| 推奨表現 | 意味 |
|---|---|
| FaceのMaterial割り当てを変更する | Faceの material_index を変更する |
| ObjectからMaterial Slotを削除する | Slot枠をObjectから消す |
| Material SlotからMaterial Dataを外す | Slotを空にする |
| Material DataをPurgeする | Material本体を未使用データとして削除する |
| Fake Userを付ける | 未使用でもMaterial Dataを保持する |
避けた方がよい表現は次です。
Materialを解除する
Materialを削除する
Material Slotから削除する
FaceからMaterialを消す
これらは、Slotを消すのか、Slotの中身を外すのか、Material Data本体を消すのかが曖昧になるためです。
【注意点・例外】
このAdd-onの「Unassign」は、Blenderの内部仕様に合わせた実用的な解除処理です。
厳密には、Faceを完全なMaterial未割り当て状態にするのではなく、選択Faceの参照先を空Material Slotへ変更します。
そのため、作業後に空Slotが残る場合があります。
不要な空Slotや未使用Slotは、Remove Unused Material Slots で整理してください。
ただし、空SlotをFaceが参照している場合、そのSlotは「使用中」扱いになります。
その場合は、Faceを別のMaterial Slotへ割り当て直してから整理する必要があります。
【出典】
Blender Manual – Material Assignment
https://docs.blender.org/manual/en/latest/render/materials/assignment.html
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 Manual – Data-block / Fake User
https://docs.blender.org/manual/en/latest/interface/controls/templates/data_block.html
Blender Developer Documentation – ID Datablocks
https://developer.blender.org/docs/features/core/datablocks/id_type/

