Unreal Engine

【UE5】Interior Element Configurator Tutorial Part 7|環境を変えよう

こんにちは、設計屋です!今回はCar Configuratorのチュートリアル第7弾として、環境の変更機能を追加していきます。手順を分かりやすく説明していきますので、ぜひ参考にしてください。

1. 変更処理の概要

まず、今回実装する処理の概要を説明します。基本的には以前のCarPaintの仕組みと同様です。キーボードのQキーが押されると環境がNight Sceneに変化する処理を追加します。

  • 初期状態でA(現在の環境)が表示されている。
  • Qキーが押されるとBにNight Sceneの情報がセットされる。これにはHDRIやライトの情報が含まれています。
  • Timeラインノードを使ってTimeを0から1に変化させ、AからBに変化します。
  • 変化後、AにBの情報をセットしてTimeを0にリセットし、Aが再び表示されます。この繰り返しです。

2. HDRI Backdropの複製と設定

既存のHDRI Backdropを改造するため、まずは複製します。元のブループリントをいじるのは推奨されないためです。

  1. View OptionsからShow Engine ContentとShow Plugin Contentにチェックを入れます。
  2. HDRI Backdrop Contentフォルダ内のBlueprints、Materials、MeshesをEnvironmentフォルダにコピーします。

次に、コピーしたマテリアルを設定します。

  1. HDRI Projectionを開き、Material Functionをコピーした方に差し替え、セーブします。
  2. MI_HDRI_CenterProjectionを開き、コピーしたHDRI Projectionに差し替えます。
  3. HDRI Backdropを開き、Create MaterialのParentをコピーしたMI_HDRI_CenterProjectionに差し替え、不要な部分を削除します。

3. 環境情報の設定

HDRI Backdropの環境情報を設定します。

  1. レベルのDirectional Lightをコピーして複製します。Transformがリセットされるため、Rotationを元に戻します。
  2. HDRI BackdropのCubemapのDefault Valueを新しいHDRI (Sunset in the Chalk Quarry 8K) に差し替えます。
  3. Sky Lightも同様にCubemapを使用します。プレイ中のキャプチャは重いためです。

Env_01_Mapの元のHDRI BackdropとDirectional Lightを削除し、新しいものを配置します。

4. 背景切り替えの実装

次に、Env_01からEnv_02への切り替えを実装します。

  1. HDRI Attributesを開き、HDRI_MapをHDRI_Map_Aに設定します。
  2. 複製してHDRI_Map_Bを作成し、Lerpノードを追加します。
  3. TimeにはScalar Parameterを使用し、S + LMBで追加します。

CarPaintと同様に、Structureを作成します。

  1. "Str_Env"という名前で4つのパラメータを準備します。
    • Texture Cube: "CubeMap"
    • Rotator: "DL_Rotation"
    • Float: "DL_Intensity"
    • Float: "DL_Temperature"

HDRI Backdropに戻り、環境変数を追加します。

  1. "Env_01" として現在の環境を設定します。Variable TypeはStr_Envです。
  2. Directional Lightの情報をコピーして設定します。
  3. Env_01を複製して"Env_02"にし、Env_02_Mapの環境情報を設定します。

5. イベント処理の追加

最後に、Event Graphに処理を追加します。

  1. Env_01をGetし、Breakノードを追加します。
  2. MaterialInstanceをGetしてSet Texture Parameter Valueを設定します。Parameter NameはHDRI_Map_Bです。
  3. CubeMapやライト情報を格納する変数を作成します。
    • "Cubemap_A"、"Cubemap_B"
    • "DL_Rotation_A"、"DL_Rotation_B"
    • "DL_intensity_A"、"DL_intensity_B"
    • "DL_Temperature_A"、"DL_Temperature_B"

AのDefault Valueを設定し、Bをセットします。

  1. Macroを作成し"Mcr_Env"とします。
  2. Timelineを追加し、3秒で0~1に変化するよう設定します。
  3. MaterialInstanceをGetしてSet Vector Parameter Valueを設定します。Parameter NameはTimeです。
  4. SkyLightをGetしてSet Cubemap Blend Sourceを設定します。
  5. Directional LightをGetしてSet Relative Rotationで角度を変えます。
  6. IntensityやTemperatureも同様にLerp(Float)を使用して設定します。

キーボードの入力で環境を切り替える処理を追加します。

  1. Qキーを押すことでEnv_01に、Wキーを押すことでEnv_02に変化するようにします。
  2. Auto Recieve InputをPlayer 0に設定し、キーボードイベントを使えるようにします。

コンパイル後、Env_02_Mapを削除しても問題ありません。これで、Qキーで昼のシーン、Wキーで夜のシーンに切り替えが可能です。

次回予告

次回はいよいよ最後のパートです。UIを作成し、色や背景の変更をUIから行えるようにしていきます。

質問や不明点があれば、コメントでお知らせください。詳しく説明が必要な場合や追加の情報は、ブログや追加の動画で提供します。ブログのURLは概要欄をご覧ください。

動画が参考になりましたら、高評価やチャンネル登録をよろしくお願いします。最後までご覧いただき、ありがとうございました!

-Unreal Engine
-