Unreal Engine 5を使用して、Archvizプロジェクトにミニマップを追加する方法を紹介します。この記事では、前回の作業で発生した2つの問題を修正しながら、ゲーム内でのミニマップの動作を制御する手順を詳しく説明します。初心者の方でも理解しやすいように、ステップごとに解説しています。
ミニマップの表示切り替え機能の追加
タブキーを押すことでミニマップの表示をオン・オフする機能を追加します。
トグル機能の追加
BP Man Widgetでミニマップの表示を切り替えるカスタムイベントを作成します。
BP_FirstPersonCharacterのイベントグラフで「Sequence」のThen1のピンの接続を切ります。
CustomEventを作成し「ToggleMinimap」という名前にします。

BP_mainwidgetを開き、「FloorPlan」ボタンを選択し、イベントの「On Clicked」をクリックします。

BP_mainwidgetのイベントグラフで「Get All Actors Of Class」「For Each Loop」「Toggle Minimap」を配置しそれぞれ接続します。

カスタムイベント「ToggleMinimap」に「Print String」を接続し「Hello walkthrough」を出力されるようにします。
動作を確認します。「FloorPlan」ボタンを押すと画面左上に「Hello walkthrough」と表示されます。これによりボタンが機能していることが確認できました。

ミニマップの状態を保存
ミニマップの表示状態を保存し、再度ゲームを開始した際にその状態を反映させます。
「BP_FirstPersonCharacter」を編集します。
変数として「Walkthrough」として型を「Object Reference(オブジェクト参照)」とします。

WalkthroughをGETして「検証済みゲットに変換」します。「ToggleMinimap」を接続し「Is Valid」「Is not Valid」にそれぞれ「Print String」を配置接続します。
「Is Valid」側の「Set Visibility」の「in Visibility」を「Hidden」にします。
「Is not Valid」側の「Print String」から「Create BP Minimap Widget」に接続します。
「Walkthrough」を「Set」して「Is Valid」側の「Set Visibility」と接続します。
「Walkthrough」を「Set」して「Add to ViewPort」と接続します。
「Not Valid」=>ミニマップを表示。「Valid」=>ミニマップを非表示

すべての設定が完了したら、ゲームをテストしてミニマップが正しく機能しているか確認しましょう。タブキーを押してミニマップが表示・非表示に切り替わることを確認し、プレイヤーが移動した際にミニマップ上でインジケーターが更新されることをチェックします。
初期画面でミニマップを表示
「Custom Event」で「showminimap」を作成し、「Create Walkthrough Widget」に接続します。次にこのイベントを起動時に実行します。

「Event BeginPlay」の「Sequence」のThen1から関数呼び出しで「Show minimap」を接続します。これで起動時にミニマップが表示されます。

フォーカスが失われる問題の修正
最初の問題は、ゲーム開始時にキャラクターのフォーカスが失われることです。以下の手順で修正します。
(補足:この場合のフォーカスとはマウスを動かして画面を向きを動かすことです。)
BP_FirstPersonCharacterの編集
「Blueprints」内の「BP_FirstPersonCharacter」を開きます。
これは、ミニマップを追加したことによって発生した問題です。「Tab Event」を探し、その部分をコピーします。

「Event Begin Play」に戻り、コピーしたノードを配置し、入力を接続します。

「Compile」と「Save」をクリックして保存します。
ゲームを実行し、修正が正しく行われたか確認します。
モード変更時にミニマップが表示される問題の修正
次に、ゲームプレイ中にミニマップが誤って表示され続ける問題を修正します。
「トップビュー」「オブジェクトビュー」「マテリアルセレクトビュー」それぞれでミニマップを非表示にします。
BP_M_Widgetの編集
「BP_mainwidget」を開きます。
ボタンを押した際にミニマップを非表示にする設定を行います。
カスタムイベントの作成
「BP_FirstPersonCharacter」に戻り、空のキャンバス上で右クリックして「Add Custom Event」を選択します。
イベントに「HideMinimap」といった名前を付け、「Compile」をクリックして保存します。

「BP_mainwidget」に戻り、POIボタンが押された時に「HideMinimap」イベントを実行するように設定します。これにより「トップビュー」「オブジェクトビュー」「マテリアルセレクトビュー」でミニマップが非表示になります。

ミニマップの表示・非表示の切り替え
「BP_toppawn」を編集します。
WalkthroughボタンのOn Clickedを押して、イベントグラフに遷移します。

イベントグラフで、Hide POIから「Branch」で「Hideminimap」「Showminimap」のイベントをセットします。
「Branch」ノードを使い、条件がTrueの場合にミニマップを表示し、Falseの場合に非表示にします。

トグルロジックの作成
「BP_FirstPersonCharacter」を編集します。
左のパネルで変数を追加し、「MinimapActive?」という名前を付け、Boolean型に設定します。
「Sequence」と「Flip-Flop」ノードを使い、トグル時の動作を設定します。

次に「BP_toppawn」を編集します。
「MinimapActive?」変数を使用して、ミニマップがアクティブかどうかを判断します。

最後に「BP_FirstPersonCharacter」を編集します。
変数「MinimapActive?」を「Set Input Mode Game Only」に接続します。これにより、画面の切り替えの後でも、ミニマップのオン・オフの状態を保存してあるので、その情報に合わせてミニマップを表示します。

3. 動作確認
最後に、以下の手順で作業内容が正しく反映されているかを確認します。
ゲームプレイのテスト
「Tab」キーを押して編集モードに切り替えると、ミニマップが非表示になります。
再度「Tab」キーを押して作業モードに戻ると、ミニマップが表示されます。
この手順により、Unreal Engine 5でのミニマップの動作を適切に制御できるようになります。この記事が、ミニマップの設定に役立つことを願っています。次回のビデオでまたお会いしましょう!
参照動画①
9:00以降
