【UE5】マテリアルマスターへの道!Materialを学ぼう!
Material関連 Additive, Alpha Composite, Alpha Holdout, Alpha体, Alpha値, Blend Mode, Masked, Material, Material Domain, Modulate, Opaque, RGB値, Tutorial, UE, UE4, UE5, UnrealEngine, Zバッファ, アルファ値, アンリアルエンジン, エッジ, ガンマ, ゲームプログラミング, ゲーム開発, チュートリアル, にじみ, ブルーム, マテリアル, マテリアルドメイン, ロジック構築, 事前乗算アルファ, 発光本記事の概要
本記事はマテリアルマスターへの道!というマテリアルを日々学んでいく専用記事になります。随時更新を掛けていくので、定期的に覗いていく価値あり!という記事を目指して作成していきます!更新したときには、X(旧Twitter)でお知らせをするので、こちらからフォローしてもらえると最新情報の更新を知ることができるかと思います
- 2025/05/09:マテリアルについてと一部Shading Modelについて記載
- 2025/05/07: マテリアルドメイン(Material Domaion)とブレンドモード(Blend Mode)について
マテリアルとは、3Dオブジェクトの見た目(表面の質感・色・光の反射など)を定義するための視覚的ルールセットです。このメッシュは金属なのか?布なのか?濡れているのか?透明なのか?などなどを決めるのがマテリアルです。
マテリアルのできることは、「色の設定」 「光の反射」 「透過」 「発光」 「法線変化」 「表面の材質間」 「複雑な表現」など、とても多く存在します。
これらは、マテリアルのイベントグラフこと、マテリアルグラフで、ノード接続を行うことで表現することが可能です。

ちなみに少し細かくなりますが、マテリアルの背後では、「シェーダー」と呼ばれるGPU上で動作するコードが生成されています。UnrealEngineでは、このシェーダーをノード接続で直感的に構築できるようになっています!

カラーの基本概念とは?
色とは「光の波長の組み合わせ」による視覚情報です。
UnrealEngineでは、もっとも基本的な加法混色モデル(RGB)を使用しています。RGBはRed、Green、Blueの頭文字を組み合わせて表記されています。
各成分の強さを加算して色を作っていきます!
例) ・白(0,0,0) ・黒(1,1,1) 赤(1,0,0)
またRGBに加えてA「Alpha値」を使用します。
Alpha値とは、色の透明度を表す値になります。
(0=完全透明、1=完全不透明)
つまり、どのような色でもAlpha値が0に近いほど、透明になっていき0になると完全に透明になり、人間の目では視認できなくなります。
それでは色について説明できたので、マテリアルの詳細タブにある設定項目についてみていきましょう

マテリアルドメインとは
このマテリアルをどこで利用するのかの設定
この設定を間違えてしまうと、マテリアルが反映されなかったり、そもそも使えなかったりといったエラーが発生します。注意して設定しましょう!
設定項目は6つあるので、それぞれの用途や役割をみていきます

レイマーチングベースとは、光線を少しずつ進めながら空間内の情報(密度や色など)をサンプリングして、結果を可視化する技術

Vertual Textureという設定項目が以前は存在したようですが、UE5以降では、無くなりマテリアルの設定やノードで扱うように統一されたようです。
マテリアルのMaterial Domainは、ほとんどがSurfaceに設定され作成されているそうです。
なので、あまりMaterialDomainの設定を変更することはないかと思いますが、各種設定項目を理解していることは大事になりそうですね
ちなみに、Material Domainの設定を変更すると、有効なインプットピンが切り替わる。また、BlendModeやShadingModelの有効/無効も切り替わるので、覚えておきましょう!

例として、Material Domainを「Light Fanction」に切り替えてみました。
出力結果はエミッシブカラーのみ有効となり、BlendModeとShadingModelは無効化されました。
モード名 | 主な用途 | 特徴 |
Opaque(不透明) | 通常のメッシュ、UI、背景など | 透明度なし・最速 |
Masked(マスク型不透明) | 葉っぱ、金網、カーテンなど | 透明・不透明のどちらかだけ |
Translucent(半透明) | ガラス、水、魔法、UIなど | α値に応じて部分透明(表現力は高いが思い) |
Additive(加算) | 火、光、魔法、レーザーなど | 明るい部分だけを加算表示(黒=透明) |
Modulate(変調) | 古いUIやHUD系、マルチプライ用 | 色を乗算して暗くする |
Alpha Composite(アルファ合成) | 正確な半透明表現が必要なUIやVFX | 高品質な半透明(Translucentより高負荷) |
Alpha Holdout(アルファ合成) | 透明な穴を作る | 完全透明または部分的に透明(Translucentより軽い) |

モード一覧の用途と特徴
こちらもMaterial Domainの時同様、モードを変更すると出力結果ノードの各種インプットピンの有効と無効が切り替わるようになっています。

Opaqueの訳は「不透明」になります。その名の通り、UnrealEngineにおいても、オブジェクトが完全に不透明であることを示します。
このモードを使用すると、オブジェクトの背後が完全に隠され、透過効果や合成は一切行われません。透明度の調整が不要で、シンプルな描画パフォーマンスを持つため、ほとんどの通常の不透明オブジェクトで使用されます。
- 特徴1: 完全に不透明なオブジェクト(透明度は常に1)
- 特徴2: Depth(深度)に基づいて描画され、他のオブジェクトとの関係で前後の描画順が管理される
- 特徴3: エッジの処理が必要なく、通常はアルファマスクを使うことがない
- 特徴4: 透過処理がないため、最も軽い描画オプション

不透明なオブジェクトに最適で、パフォーマンスが良いかほとんどのゲームオブジェクトで使用されているそうです。透過効果を利用したいときは、他のブレンドモードを利用しよう!

さぁ次は「Masked」を見ていきましょう。Maskedは、オブジェクトが透明部分と不透明部分を切り分けて描画されるモードです。
特定のアルファ値(透明度)によってオブジェクトの一部が完全に透明になります。
✅アルファ(Opacity)が0=完全透明
✅アルファ(Opacity)が1=完全不透明
に基づいて、「透過部分」と「不透明部分」を選択的にマスクします。

Maskedモードに変更すると、出力結果ノードのオパシティマスクが有効になります。設定されている数値を「0」に設定するとプレビューモードから球体が非表示になったようにみえます。
ですが、これは透明なマテリアルとして処理されているため、このマテリアルを設定されているMeshは見た目が透明になるというわけです。
- 🔹 特徴1:透明部分と不透明部分を明確に切り分ける
- 🔹 特徴2:Alpha Maskを使用して特定のエリアを透明にする
- 🔹 特徴3:透過処理は行うがピクセル単位で処理されるため透明度のグラデーションはない
- 🔹 特徴4:パフォーマンスが比較的良い
- 🔹 特徴5:深度テストが正確に行われるため、描画順序を管理する際に便利
背景透過で使用する例をご紹介します。

シーンキャプチャ2Dと、ブループリントキャラクターをワールド内に配置して、背景が真っ黒のキャラクターのみが描画されているスタティックテクスチャを作成しました!

実際に、作成したスタティックテクスチャを確認してみるとキャラクターのみ透過されていることが分かるかと思います。
ちなみに再インポートのとなりに「R・G・B・A」とボタンが並んでいるので、そのA(アルファ値)を逆にするとキャラクターが、シーンキャプチャ2Dで描画している状態と同じになります。

マテリアルを作成して、RGBの値を「ベースカラー」と接続、アルファ値は「オパシティマスク」に接続してプレビューを確認するとキャラクターのみ透過されている状態になったと思います。
(スタティックテクスチャと同じ見た目)
Maskedは、アルファ値が0の場合は完全透明になり、1の場合は完全不透明になるので、スタティックテクスチャのキャラクターが描画されている部分のアルファ値は0で、背景部分のアルファ値は1になります。

つまり、背景を透過するときは、設定されているアルファ値を逆転させてあげることによって、背景を透過させて、キャラクターを完全不透明にすることができます!

中途半端な数字「0.3」などはそのまま使われずOpacity Mask Clip Value(マスククリップ値)によって0か1かに処理されるよ!0.○など細かい透明感がほしい場合はTranslucentを利用しよう。
Opacity Mask Clip Valueって何?
解説:どの値を境目にして、不透明と透明を切り替えるかを決めるしきい値です。デフォルトの設定では「0.333…」にしきい値は設定されているので「0.334以上の場合は1と判定」されて「0.33以下の場合は0と判定されます」

Translucentは「透明度(アルファ値)をグラデーションで制御できる」モードです。さきほどもお話したとおりMaskedとは違って「0.0(完全に透明)」~「1.0(完全に不透明)」までの範囲をリアルに描画します。
以下の計算式で計算されます
計算式:表示色 = A × 前景色 + (1 – A) × 背景色
- 🔹 特徴1:アルファ値で透明度を調整可能
- 🔹 特徴2:カスタム深度処理が必要な場合がある
- 🔹 特徴3:シャドウは落とせない
- 🔹 特徴4:描画負荷が高め

アルファ値を0~1の間で、柔軟に設定することができるので、透明度を細かく設定することができます。画像は右から順番に設定しているマテリアルのオパシティを「0.7」 「0.5」 「0.3」と微調整して適応してみました。
画像で見て分かる通り、透過先に「特徴3」のとおり、影が落ちていません。影を出したい場合には、「カスタムノード」や「シャドウダミー用マテリアル」などの応用が必要になります。
★MaskedとTranslucentの比較表★
★比較項目★ | ★Masked★ | ★Translucent★ |
透明度 | 0 or 1(完全透明/不透明) | 0 ~ 1(グラデーション) |
アンチエイリアス | 霧吹きが荒くなることがある | なめらかに表現 |
パフォーマンス | 高速 | やや重い(ソートが必要) |
シャドウ生成 | 可能 | 不可(応用が必要) |

半透明マテリアルにおける描画順をここからはおさえていきましょう!
半透明(Translucent)マテリアルは「奥から手前へ」の描画順が命になります。OpaqueやMaskedは「Zバッファ」によって正確に奥行きを判断できるのですが、TranslucentはZバッファを使わず、描画された順に重ねていきます。
✅よくある症状
・手前にあるはずのガラスが、後ろのエフェクトの裏に描画される
・半透明パーティクルが不自然に前後する
・オーラエフェクトがキャラより前にでるはずが、後ろに描画されて見えない
並び順を手動で設定する場合は、詳細タブにあるRendering項目のTranslucency Sort Priorityなどで、描画の優先順位を設定することができます。
必要に応じて手動で設定をしましょう!
Zバッファって何?
解説:各ピクセルの「カメラからの距離(奥行き)」を記録するためのバッファ(メモリ領域)です。画面に「どのオブジェクトが前にあるか」を正しく判定して、見える面だけを描画する目的です。

Additiveは、ピクセルの色に「加算して描画する」BlendModeで、光・エネルギー・魔法エフェクトによく使われます。
1を超える値が入る場合、ブルームで発光感に変換されます
内部での処理はおおよそ以下のような計算式で出力されているとのことです。
計算式:最終ピクセル色 = 背景の色 + マテリアルの色(RGBのみ)
- 🔹 特徴1:アルファは使われないため、透明度としては無視され、描画には関係ない
- 🔹 特徴2:加算なので暗い背景ほど強調される(黒に足すと色そのまま)
✅Additiveでは、Opacityは無視されるため、Emissiveカラーの設定が命になります!まあ、描画の順番を制御するにはTranslucentと同様に、Translucency Sort Priorityで管理します。

エミッシブカラーに1以上の値が入る場合は、画像のように色が発光します。画像では、X(赤)の値を100に設定して、エミッシブカラーに設定しているため、かなり発光しています!

・見えづらい状況
ワールド内の明る位置や白い背景の場合視認しづらくなります
・見えやすい状況
ワールド内の暗い位置や背景が黒に近いほど視認しやすい
ブルームって何?
解説:画面内の「とても明るい部分」が周囲に光をにじませるポストプロセスエフェクトです。肉眼でみるとまぶしい部分がふわっと広がって見える、あの現象を再現します。

ふわっと見えるが、発行させすぎると目が痛くなるから注意しよう!

マテリアルの色を、背景(下にあるオブジェクトの色)に「乗算(Multiply)」して合成するBlendModeです。
描画結果は以下のような計算式で計算されます。
計算式:表示色=背景の色 × マテリアルの色
- 🔹 特徴1:黒は透明(0×背景色=0→完全に見えなくなる)
- 🔹 特徴2:白はそのまま(1×背景色=背景色→何も変化しない)
- 🔹 特徴3:中間値は暗くなる(0.5×背景色=半透明に暗くなる)

エミッシブカラーに数値を入力して、ワールド内に配置します。画像のように、背景が黒の場合、手前にメッシュがあるのですが、メッシュは透明になっています。
(左のメッシュと同じメッシュを配置しています)
これは先ほどの、計算式のとおり黒はRGBが0のため、何をかけても表示色の値が0になり透過されたということです。

図のように黒以外の表示色をもつメッシュが重なると表示色の値が大きくなるので、光が強くなっていきます。

重なり値が1を超える場合は、光り方が強くなっていきます!

白は値が1なので、変化はありません。

UEでは、Modulateはやや特殊で使いどころが限られるため、AddtiveやTranslucentとの違いを把握しておくといいかもね!

高精度な半透明合成を行いたいときに利用します。特に、正しい色ブレンドやエッジの処理が重要なUI、VFX、Naiagaraなどに向いている。
別名:Pre-Multiplied Alpha(事前乗算アルファ)
以下の計算式で計算されます
計算式:表示色 = 前景色(RGB×A済) + (1 – A) × 背景色
つまり、Premultipliedでは、前景色(RGB)自体がすでに「RGB×A」された値である全逓で計算されるので、
✅Translucent:実行時にRGB×A
✅Premultiplied Alphaは事前にかけておく
※RGBに事前に乗算しているテクスチャを用意する必要がある
となります
- 🔹 特徴1:事前にRGB×Alphaを掛けた状態で出力し、それを使って合成
- 🔹 特徴2:Translucentよりもエッジの部分のにじみが少ない
- 🔹 特徴3:映像やHUD・UI素材を扱うときに使われる
- 🔹 特徴4:不透明オブジェクトより後に描画される必要がある
・TranslucentとAlpha Compositeとの違い
Blend Mode | エッジ | ガンマ | 色のにじみ |
Translusent | 少しぼやける | ガンマ誤差あり | にじみやすい |
Alpha Composite | シャープ | 線形で正確 | にじみにくい(正確) |
ガンマって何?
解説:人間の目の見え方に合わせて、明るさを調整するためのカーブ処理。人間の目は明るさが2倍になっても、2倍明るく見えない。暗いところの変化には敏感だが、明るい部分の変化には鈍感。この性質を反映させるためにガンマ補正(Gamma Corredtion)が必要。

重ねたマテリアルの一部を「穴あき」にしたり、背景や他のマテリアルを「くり抜いて」見せたいときに利用します。
特に「VFXやUI、マスク処理」などで便利!
Alpha Holdoutは「そのピクセルを透明にする」だけではなく、「下にある他のオブジェクトの描画そのものを阻止する」特殊な動作をします。
アルファ値 | 表示結果 |
---|---|
1.0(白) | 完全に不透明(そのまま表示) |
0.0(黒) | 完全にくり抜かれる(透明になる) |
- 🔹 特徴1:背景が描かれなくなる(ゼロ描画)ため穴が開く
- 🔹 特徴2:特定の形で描画領域をマスクできる(任意のシェイプ)
- 🔹 特徴3:炎・霧・オーラなどの穴開き表現に最適
- 🔹 特徴4:通常のTranslucentより軽量な場合もあり(遮断なので)

冒頭でも話している通り、この記事だけで、マテリアルをマスターすることができる!を目指して日々本記事を更新していきたいと思います。本日もご覧いただきありがとうございました!また、後日お会いしましょう!

【簡易説明】Shading Model(一覧と用途)
Shading Model | 主な用途・特徴 |
Unlit | 光を一切受け付けない(UI・HUD・特殊効果用) |
Default Lit | 通常のPBR表現(金属、プラスチックなど) |
Subsurface | 皮膚やろうのように光が透けるもの(SSS) |
Preintegrated Skin | 人肌専用のシェーディングモデル(リアルなSSS) |
Clear Coat | 自動車の塗装など、2層構造の反射層を持つもの |
Subsurface Profile | 光が中を通って出てくる質感の再現 |
Two Sided Foliage | 葉っぱや紙など、裏からも光が通るマテリアル |
Hair | 髪の毛・毛皮に特化した反射計算モデル |
Cloth | 衣服や布地に特化(わずかな透過と拡散) |
Eye | 目玉専用。屈折・反射の複雑な計算付き |
Single Layer Water | 水面表現用。屈折・反射・深度色など対応 |
Thin Translucent | 薄いガラスやプラスチックのような透過物 |
Strata(実験的) | UE5の新しい物理ベースレンダリングモデル |
PBR(Physically Based Rendering)って何?
解説:光が物体の内部に入り込んで拡散・散乱し、外に漏れだす現状をシミュレートする技術。肌やロウ、ミルク、葉っぱなどの半透明な物質のリアルな見た目を再現するために使われます
ここからは、各種項目を単独でみていきましょう!
ゲームの背景・UI的要素・VFX・2D素材など、「ライティングの影響を不要とする」場面で非常に重要なShading Modelになります。
ライティングを受け付けないだけでなく、影の影響も無視されます。ちなみに反射の影響も受けません。

左側がShading Modelを「Unlit」に設定しているマテリアルを適用したもので、右側がShading Modeを「Default Lit」に設定しているマテリアルを設定したものです。ライティングや影の影響を受けないため、こうやって見ると立体ではなく平面に見えますね!
計算処理が少ないためパフォーマンスも最高に軽く、処理負荷が少ないです。

そうそうお伝え漏れてましたが、自己発光することは可能なので、カラーの値が1を超えると発光します!

基本的にリアルな見た目を必要とするゲームオブジェクト(キャラ、背景、プロップなど)はほとんどがDefault Litに設定されています。
さきほどのUnlitとは真逆で、光源の営業はフル対応しておりもちろん影の影響も対応(キャスト・レシーブの両方)しています。
反射・スペキュラーはPBRベースで対応しており、あらゆる3Dメッシュ、背景、キャラクター、アイテムなどで使用されます。
PBR(Physically Based Rendering)って何?
解説:現実の物理法則に基づいた光の反射・吸収・散乱の挙動をシミュレートして再現するレンダリング手法

ちなみに「Modulate」を利用することができないため、透過処理を行うときにはBlend Modeを「Translucent」か「Masked」を利用する必要があります。

光が物体の内部に入り込み、散乱し、外に漏れる様子=SSSをシンプルに再現するためのShading Modelです。キャラクターの肌やロウソク、植物の葉や液体などに適用するマテリアルで使用されます。
裏からの光透過が必要な場合は「Two Sided」を有効化!

サブサーフェイスカラーのピンが有効になります。Subsurfaceでは、こちらの設定が大事になります!このサブサーフェイスのピンは「内部で散乱する色」を設定することができるピンです。
つまり、ベースカラーやエミッシブカラー+内部で散乱する色がマテリアルのカラーになる。画像では、ベースカラーが赤でサブサーフェイスカラーは青なので、ビューポートの出力は紫で表示されているわけです。

エミッシブカラーなどに繋いでみると、色の混ざりかたが分かりやすいかもしれません!

肌の質感を高品質かつ効率的に表現するための特殊なシェーディングモデルです。本格的な皮膚の反射・散乱(SSS)+スペキュラ表現を可能にします。
AAAゲームのキャラクター肌表現などを作成するときに使用されるようです。
モデル | 特徴 | 品質 | 負荷 |
Default Lit | 標準PBR | 高 | 中 |
Subsurface | SSS表現(軽量) | 中 | 低 |
Subsurface Profile | 高精度SSS(プロファイル使用) | 高 | 中~高 |
Preintegrated Skin | SSS+Specular+事前統合 | 非常に高い | 中 |
YouTubeもやってます!