月: 2026年5月

  • BlenderのMaterial設定で勘違いしやすいポイント

    BlenderのMaterial設定で勘違いしやすいポイント

    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 として管理されます。

    Image

    イメージとしては、次のような構造です。

    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つです。

    Image

    例えば、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単位で考える方が安全です。

    Image

    特に次のような作業では、Face Selectモードで確認するのがよいです。

    • 服の一部だけMaterialを変える
    • 肌の一部だけ別Materialにする
    • 余計なMaterial範囲を除外する
    • Materialを元に戻す
    • どのFaceがどのMaterialを使っているか確認する

    Material設定の基本操作として、Blender ManualではEdit Modeで対象部分を選び、Material SlotからAssignする流れが説明されています。


    4. OutlinerにMaterialが残っている意味

    OutlinerにMaterialが残っている場合、必ずしもそのMaterialが現在のFaceで使われているとは限りません。

    Image

    例えば、次のような状態があります。

    Material Slot 0 : Skin      ← 使用中
    Material Slot 1 : Shirt ← 使用中
    Material Slot 2 : Old_Mat ← どのFaceも使っていない
    Material Slot 3 : Test_Mat ← どのFaceも使っていない

    この場合、OutlinerやMaterial Propertiesには Old_MatTest_Mat が見えることがあります。
    しかし、実際にはどのFaceも参照していない可能性があります。

    この状態を放置すると、Materialがどんどん増えて、どれが本当に使われているのか分かりにくくなります。


    5. Materialを「解除する」という考え方

    Material作業でよく出てくる疑問に、

    FaceからMaterialを解除できないのか?

    というものがあります。

    Image

    これは直感的には自然な考え方です。
    しかし、Blenderでは通常操作として、Faceを完全に「Materialなし」にするというより、Faceが参照しているMaterial Slotを別のSlotへ変更すると考える方が実態に近いです。

    例えば、服Materialを解除して肌Materialに戻したい場合は、

    変更前:
    Face A → Material Slot 1 → Shirt

    変更後:
    Face A → Material Slot 0 → Skin

    という処理になります。

    つまり、「解除」というより、割り当て先を変更するという理解です。


    6. Materialが増え続ける原因

    Image

    Materialが増え続ける典型的な原因は、次のような作業です。

    1. あるFace範囲のMaterialを変えたい
    2. 元Materialに戻せない
    3. 新しいMaterialを作ってAssignする
    4. 古いMaterial Slotが残る
    5. さらに新しいMaterialを作る
    6. Material.001Material.002 のように増えていく

    この状態になると、見た目は一応整っていても、Object内部には未使用Materialや不要Slotが残ります。

    この問題を避けるには、新しいMaterialを増やす前に、

    • 既存Material SlotへAssignし直す
    • どのFaceがどのMaterial Slotを使っているか確認する
    • 未使用Material Slotを削除する

    という整理が必要です。


    7. Material SlotのSelectで確認する

    Materialの割り当て確認には、Material Propertiesの Select が便利です。

    手順は次の通りです。

    1. Objectを選択する
    2. Edit Modeに入る
    3. Face Selectモードにする
    4. Material Propertiesを開く
    5. 確認したいMaterial Slotを選ぶ
    6. 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の整理に関係する機能です。

    実務では、次の順番で整理すると安全です。

    1. Edit ModeでMaterial割り当てを確認
    2. 必要なFaceを正しいMaterialへAssign
    3. 使っていないMaterial Slotを削除
    4. 必要に応じてUnused DataをPurgeする

    ここで注意したいのは、Material Slotの削除Materialデータそのものの削除は別の作業だという点です。


    9. Material SlotとMaterialデータの違い

    Material Slotは、Object側にあるMaterialの参照枠です。
    Materialデータは、実際の色、Shader Node、Texture設定などを持つデータブロックです。

    簡単に言うと、次の違いがあります。

    項目意味
    Material SlotObjectが持つMaterialの参照枠
    Materialデータ実際のMaterial設定本体
    Faceのmaterial_indexFaceがどの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_indexFaceが参照するMaterial Slot番号0, 1, 2
    Material SlotObject側にある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 = 0Material 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本体が消えない主な条件は、次のどれかです。

    1. そのMaterial Dataを他のObjectが使っている
    2. 別のMaterial Slotにまだ入っている
    3. Fake Userが付いている
    4. Asset化・Library Link・Overrideなどで保持されている
    5. 未使用になっただけで、まだPurgeされていない
    6. Material内のNode GroupやImage Textureなど、関連データが別に残っている

    一番重要なのは、BlenderのMaterial Dataは「使用数=Users」を持つデータブロックであり、参照が残っている間は消えない、という点です。

    Fake Userとは、

    未使用Data-blockを保存時に消さないための保持フラグです。Material DataにFake Userが付いている場合、そのMaterialがどのObjectにも割り当てられていなくても、Blenderファイル内に残ります。詳しい解説はFake Userを見てください.

    Fake Userとは

    【出典】

    Image