Unreal Engine 5を使用して、Archvizのプロジェクトにマテリアル選択ウィジェットを追加する手順を初心者向けに詳しく解説します。この手順に従って、カメラで対象物を選択し、マテリアルを簡単に切り替えることができるインターフェースを作成しましょう。
マテリアル選択ウィジェットの作成
フォルダの準備: Unreal Engineのエディターで、Configurator>BPフォルダ内に新しいフォルダを作成し、これを「MaterialSelector」と名付けます。
新規ウィジェットの作成: 「Material Selector」フォルダ内で、右クリックしてユーザーインターフェース>ウィジェットブループリントをクリックして「Widget Blueprint」を作成します。名前は「BP_Widget_Material_Selection」としておきます。
ウィジェットのレイアウト設定
Canvas Panelの追加:「BP_Widget_Material_Selection」を開き、「Canvas Panel」を2つ追加します。
2つ目のCanvas Panelの「Anchor」を「Bottom」に設定し、OffsetとPosition(位置)をそれぞれ調整します。
Borderコンポーネントの設定: 「Border」コンポーネントを2つ目のCanvas Panelに追加し、アンカーをFullにして、全てのOffsetとPadding(位置)を0に設定。さらに「Draw As」を「Image」に変更します。

グラデーションマテリアルの作成
新規マテリアルの作成:「Material Selector」フォルダで、右クリックして新しいマテリアルを作成し、「Gradient_Material_Widget」と名付けます。
マテリアルの設定:「Material Domain」を「User Interface」に、「Blend Mode」を「Translucent」に変更し、適切なグラデーションを設定します。これを適用し、保存します。
「Constant3Vector(3+左クリック)」「Linear Interpolate(L+左クリック)」「Linear Gradient」

ウィジェットへのマテリアル適用
マテリアルの適用
「BP_Widget_Material_Selection」を開き、作成したグラデーションマテリアルを適用します。
その他の設定
「Border」コンポーネントを選択し、「draw」を「Box」にします。PaddingやMarginが0になっていることを確認します。

「オーバーレイ」コンポーネントをBorderの直下に追加し、「Vertical Box」をオーバーレイの直下に追加し、アライメント(Horizontal AlignmentとVertical Alignment)をフルにします。

「背景ブラー(Background blur)」コンポーネントをオーバーレイの直下に追加し、アライメント(Horizontal AlignmentとVertical Alignment)をフルにします。Blur Strengthを「2.0」にします。

「サイズボックス(Size Box)」コンポーネントを3つ「Vertical Box」の直下に追加します。
- 1つ目のSize Boxの「Height Override」を「40」に設定
- 2つ目のSize Boxの「Height Override」を「42」に設定
- 3つ目のSize Boxの「Height Override」を「95」に設定
「Horizontal Box」コンポーネントを3つ目のSize Boxの直下に追加します。さらに、「Border」を「Horizontal Box」の直下に追加します。
「Border」コンポーネントの「Padding」を「0.0」にし、「Draw As」を「Border」に設定します。
「ボーダー(Border)」コンポーネントを2つ複製(Ctrl+D)します。真ん中の「Border」コンポーネントの「Size」を「自動(Auto)」
「サイズボックス(Size Box)」コンポーネントを2つ目のボーダーコンポーネントに追加します。Child Layout>Width Overrideを「1600」にします。

- 「Text」コンポーネントをVertical Box内、1つ目の「サイズボックス」直下に追加し、「Text」を「LIVING ROOM FLOOR」にします。アライメントを調整して中央寄せに設定します。Fontの「Typeface」を「Light」、「Size」を「20」とします。
- 「Text」コンポーネントをVertical Box内、2つ目の「サイズボックス」直下に追加し、「Text」を「Floor Material Selection」にします。アライメントを調整して中央寄せに設定します。Fontの「Typeface」を「Light」、「Size」を「20」とします。

マテリアルサムネイルの作成
ブループリントクラスに変換
色を変更したい「SM_ChamferCube」をブループリントクラスに変換します。
「選択をブループリントクラスに変換(Convert Selection to Blueprint Class)」をクリック、さらに「Harvestコンポーネント」から「Actor」を選択し、必要に応じてブループリント名を追加します。ここでは「BP_object_material_switch」とします。また、パスは「/All/Game/Configurator/BP/MaterialSelector」とします。

マテリアルインスタンスの作成
Configurator>BP>Material Selector>「Materials」フォルダを作成し、そこに右クリックから「マテリアル」を選択し、新しいマテリアルを作成します。名前は「Testing Material」をします。
Testing Materialを開いて、「Constant3Vector(3+左クリック)」を追加してベースカラーとつなぎます。「Constant」から色を黄緑に設定して、適用します。

テスト用に異なる色のマテリアルインスタンスを作成します(例:ピンク、赤、青)。
「Testing Material」を複製(Ctrl+D)して「TestingMaaterial_Inst_1」を作成します。こちらはピンク色にします。

「Testing Material」を複製(Ctrl+D)して「TestingMaaterial_Inst_2」を作成します。こちらはオレンジ色にします。

「Testing Material」を複製(Ctrl+D)して「TestingMaaterial_Inst_3」を作成します。こちらは水色にします。

サムネイルの準備
各マテリアルインスタンスのサムネイルを作成します。
「TestingMaaterial_Inst_1」(ピンク)をダブルクリックして開きます。
ウィンドウ>シーン設定をプレビューをクリックし、シーン設定をプレビューから環境の「Show Environment」と「Show Floor」をチェックを外して無効にし、「Environment Color」を黒にします。これによりプレビューの背景が黒一色となります。

各種マテリアルをビューポートからスクリーンショットをします。



サムネイルの適用
Unreal Engineに戻り、作成したサムネイルをインポートして、ウィジェットに適用します。
アイコンのプロパティ設定
- アイコンを選択し、右クリックから「アセットアクション(Asset Actions)」>「プロパティマトリクスで選択内容を編集します(Bulk Edit via Property Matrix)」を選択します。
- 「圧縮設定」を「User Interface 2D(RGBA)」に変更し、「テクスチャグループ」を「UI」に設定します。
- 変更を保存します。

ボタンのレイアウト設定
「Horizontal Box」を追加して、アライメントを中央に設定します。さらに、ボタンを追加してpadding(Normal PaddingとPressed padding)を0にし、「draw as」を「image」に変更します。


「Button」と「space」をそれぞれ配置して、「Horizontal Box」を選択しTransform>ScaleからXとYをそれぞれ「2.0」に変更します。

各種「Button」の「Image」にサムネイル用の画像を入れます。さらに、Image SizeをX=32.0、Y=32.0にします。

アニメーションの追加
「BP_Widget_Material_Selection」で、Canvas Panelにフェードインとフェードアウトのアニメーションを追加します。
fade_inの作成
「fade_in」と名前を付けてアニメーションを追加します。さらに「Canvas Panel」を追加します。
「Canvas Panel」を選択し、位置Yを「0」にして、0秒時点にキーフレームを追加します。そのままアニメーションを「0.5」秒まで進めた時点で位置Yを「-200」に設定します。
これにより、0秒から0.35秒にかけて画面にCanvas Panelが表示されるようになります。
0.00秒時点

0.5秒時点

fade_outの作成
「fade_in」を複製して、位置Yを0.00秒時点を「-200」、0.5秒時点を「0」に設定します。
0.00秒時点

0.5秒時点

アニメーションの適用
Blueprintでアニメーションを再生するイベントを設定し、ボタンがクリックされたときにアニメーションが発動するようにします。
fade_inを適用
BP_Widget_Material_Selectionをデザイナーからグラフに切り替えます。
「変数」から「fade_in」をgetして、Play Animationを配置して、Event Contructとそれぞれ接続します。これにより、3DWidgetビューで先ほど作成したウィジェットが表示されるようになります。

「POI_pawn_1」を開いて編集します。

「POI_widget_1」を編集して、ボタンがクリックされた時にマテリアル選択ウィジェットが表示されるようにします。

動作確認します。

fade_outを適用



マテリアル変更機能の実装
- Blueprintクラスの作成: マテリアルを変更する対象物のBlueprintクラスを作成し、マテリアル変更の機能を実装します。
- クリックイベントの設定: ウィジェット内の各ボタンに、クリック時に対応するマテリアルが適用されるようにBlueprintで設定します。




最終調整とテスト
- 設定の最終調整: ボタンのサムネイルのホバーやプレス状態の設定を確認・修正します。
- テスト: 全体を通して動作を確認し、不具合があれば修正します。



最後に
以上で、Unreal Engine 5でのArchvizプロジェクトにマテリアル選択ウィジェットを追加する手順が完了しました。次回のビデオで、さらに進んだ機能について解説していきますので、お楽しみにしてください。

