月: 2026年5月

  • Face Material Unassign Tool 取扱説明書

    Face Material Unassign Tool 取扱説明書

    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_indexFaceが参照するMaterial Slot番号
    Material SlotObject側にある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. 基本的な使い方

    手順

    1. 対象のMesh Objectを選択する
    2. Tab キーで Edit Mode に入る
    3. Face Selectモードにする
    4. 確認または修正したいFace範囲を選択する
    5. N キーでSidebarを開く
    6. Mat Fix タブを開く
    7. Refresh List を押す
    8. 選択Faceに含まれるMaterial一覧を確認する
    9. 必要に応じて解除・再割り当て・整理を行う

    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 が割り当てられている。

    操作

    1. 肌周辺のFaceを選択
    2. Refresh List
    3. リストに Shirt_Mat が表示される
    4. Shirt_Mat を選択
    5. Unassign Selected Material
    6. 必要なら 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しか使っていない。

    操作

    1. Objectを選択
    2. Remove Unused Material Slots を押す
    3. 必要に応じてOutlinerのOrphan DataでMaterial DataをPurgeする

    結果

    Object側のMaterial Slot一覧が整理されます。


    例3:選択Face内のMaterial状態を確認する

    操作

    1. Edit ModeでFace範囲を選択
    2. 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/