レベル(マップ)関連

鏡マテリアルの作り方

Unreal Engine(UE)で鏡のマテリアルを作ってみよう!壁や床、箱などにも設定可能で自由度の高い鏡マテリアルの作り方を、初心者向けに解説します!

Unreal Engine(UE)で鏡のマテリアルを作ってみよう!
マテリアルにすることで、壁や床だけでなく、設定次第では箱など複雑な形状にも設定可能で、自由度の高いものになります。
初心者向けに丁寧に解説します!

鏡マテリアルのサンプル
完成イメージ

動作環境

当記事の動作環境は以下の通りです。
バージョンや環境によっては、正常に動作しない可能性があります。

ポイント

OS:Windows11 (Ver 22H2)

GPU:NVIDIA GeForce RTX 3060 Ti (Ver 3.27.0.112)

UE:UnrealEngine5 (Ver 5.3.0)

また、プロジェクトはサードパーソンプロジェクトの使用を前提とします。

鏡マテリアルの作成方法

プロジェクト設定の変更

メニューから「編集」-「プロジェクト設定」をクリックして、プロジェクト設定ダイアログを表示します。
プロジェクト設定ダイアログの左側にあるメニューから、「エンジン」-「レンダリング」を選択します。

  • 「反射」-「平面反射のグローバルクリッププレーンをサポート」にチェックを入れる
  • 「Lumen」-「高品質透過性反射」にチェックを入れる
  • 「Default Settings」-「モーションブラー」のチェックを外す
鏡マテリアルのプロジェクト設定

設定を変更したら、一度再起動します。

マテリアルの作成

マテリアルを新規作成します。

マテリアル作成
マテリアルの作成
マテリアルの作成

コンテンツブラウザにて、何もない部分を右クリックして、マテリアルを選択します。

マテリアル設定
鏡マテリアル設定

【マテリアル】

  • 「Blend Mode」を”Translucent”に設定
  • 「Shading Model」を”From Material Expression”に設定

メモ

「Shading Model」は”Default Lit”のままでも構いません。
上級者が応用する場合に便利になるよう、ここでは”From Material Expression”に設定しています。

透過処理
透過設定

【透過処理】

「Lighting Mode」を”Surface ForwardShading”に設定

フォワードシェーディング設定
フォワードシェーディング

【フォワードシェーディング】

  • 「High Quality Reflections」にチェックを入れる
  • 「Planar Reflections」にチェックを入れる
「Constant3Vector」ノード作成

マテリアルグラフの何もない部分を右クリックして、「Constant3Vector」のノードを作ります。

Constant3Vector

「Constant3Vector」のノードは、XYZ全てを1に設定して、マテリアル結果ノードのベースカラーに接続します。
続いて、マテリアル結果ノードの「Metallic」「スぺキュラ」「ラフネス」の3要素に対して、右クリックして「パラメータへ昇格」を選択します。

パラメータへ昇格
パラメータへ昇格

「Metallic」「スぺキュラ」については値を1に、「ラフネス」は値を0に設定します。
ここまでの設定を図にすると以下の通りです。

鏡マテリアルのマテリアルグラフ完成図
鏡マテリアルのマテリアルグラフ完成図
要素ノード設定値接続先
Constant3VectorXYZ全てを1ベースカラー
Metallic1Metallic
スぺキュラ1スぺキュラ
ラフネス0ラフネス

これでマテリアル自体は完成です。
保存してダイアログを閉じます。

設置してみる

マップにキューブやパネルなどを設置し、スタティックメッシュを作成したマテリアルに変更してください。

これでも十分鏡っぽく見えるのですが、映り込みがやや不鮮明で、キャラクターも一部欠けて映っています。
平面ではない形を鏡っぽくする場合や、意図的に不鮮明な表現にしたい場合はこれでも良いでしょう。

拡大したキューブに鏡マテリアルを設定した例
拡大したキューブに鏡マテリアルを設定した例

注意

これ以降の対応は環境によっては 少し 処理が重くなるので、低クオリティでも良ければこれで完成です!

もう少し鮮明にしたい場合は、Planar Reflection アクターを使用します。

アクター配置ビューの表示
アクター配置ビューの表示

メニューから「ウィンドウ」を選択し、「アクタを配置」にチェックを入れます。

Planar Reflection

ビジュアルエフェクトの中にある、「Planar Reflection」をマップに配置します。
この時、パネルやキューブなど鏡にしたいアクタを先に設置し、それに重なるように設置してください。

Planar Reflection アクターを追加した例が下図です。
先ほどと違って、キャラクターが欠けることなく映るようになります。
しかし、まだぼやけて映っています。

Planar Reflection アクターを追加した例
Planar Reflection アクターを追加した例

平面反射の各設定を調整

Planar Reflection

Planar Reflectionの設定を変更します。
ここからは、作りたい鏡の雰囲気や好みによるので、各自で値を調整してください。

具体的には、以下の表を参考に、平面反射欄の各項目を変更します。

項目内容
Normal Distortion Strength
通常のひずみ強度
平面反射を歪ませるときの法線の強度を制御します。
Prefilter Roughness
プレフィルターの粗さ
平面反射テクスチャをプレフィルターするための粗さの値。
低解像度を補間するのに役立ちますが、値が大きいほどGPU処理も大きくなります
Distance from Plane Fadeout Start
平面フェードアウト開始からの距離
反射面からこの距離でピクセルを受信すると、平面反射がフェードアウトし始めます。
Distance from Plane Fadeout End
プレーンフェードアウト終了からの距離
反射面からこの距離でピクセルを受信すると、平面反射が完全にフェードアウトされます。
Angle from Plane Fade Start
平面フェード開始からの角度
法線が反射面からこの角度にあるピクセルを受信すると、平面反射がフェードアウトし始めます。
Angle from Plane Fade End
平面フェードエンドからの角度
法線が反射面からこの角度にあるピクセルを受信すると、平面反射が完全にフェードアウトされます。
Show Preview Plane
プレビュー平面を表示
エディタでの作業中に反射面の表示/非表示を切り替えます。
これは作業中のみで、ゲーム起動中の平面反射には影響しません

例えば、「Normal Distortion Strength」「Prefilter Roughness」「Distance from Plane Fadeout Start」を全て0に設定すると下図のようになります。はっきり映るようになりました。

鏡マテリアルのサンプル
完成イメージ

注意点

Planar Reflection は有効にするとシーンのレンダリングにかかる​​合計時間が増えます。
つまり、設置数が多くなったり巨大なアクターを設置すると、描画に時間がかかりすぎるため注意が必要です。

まとめ

UEの鏡マテリアルは、工夫次第でいろいろな形の鏡を作成可能です。
例えば球体やコーンのような形にもできます。

鏡マテリアルのサンプル
鏡マテリアルのサンプル

だからこそ、別の開発者と差をつける近道にもなります。
自分なりのアレンジを加えて、ぜひ実装してみましょう!

  • この記事を書いた人
  • 最新記事
クルエイチ

クルエイチ

NextClueLabの代表・管理者。 (Clue + 英知・叡智・叡知)でクルエイチ。 平日は会社員。 土日は副業でWeb・スマホアプリの開発やブロガーをこなす。 祝日は休み、UE5で3DCG動画制作などをして過ごす。

人気記事

Unreal Engine(UE)で、フリーフォントや購入したフォントを使ってみよう!とてもシンプルなテクニックですが、他のUE製作者と簡単に差をつけることができます! 1

フリーフォントや購入したフォントを使ってみよう!とてもシンプルなテクニックですが、他のUE製作者と簡単に差をつけることができます!

Windows用にパッケージ化するとエラーが出る場合があります。当記事の対処方法で解決する場合があるので参考にしてみてください。 2

Windows用にパッケージ化するとエラーが出る場合があります。当記事の対処方法で解決する場合があるので参考にしてみてください。

Unreal Engine(UE)で鏡のマテリアルを作ってみよう!壁や床、箱などにも設定可能で自由度の高い鏡マテリアルの作り方を、初心者向けに解説します! 3

鏡のマテリアルを作ってみよう!壁や床、箱などにも設定可能で自由度の高い鏡マテリアルの作り方を、初心者向けに解説します!

-レベル(マップ)関連