UE5:複数の鍵を所持している場合のみ開く扉の作成!備忘録
先日に続いて鍵を所持している場合のみ開く扉を作成していこうと思う。
まずはこちらの記事を参照することをお勧めします!
◆列挙型の作成(Enum)
複数のブループリントを作成するのではなく、今回は、鍵用ブループリントのConstructionScriptで変数を設定して切り分けを行う関係からまずはEnumを作成する。
○Enum名:E_KeyName
・Red
・Green
・Blue
とりあえず、3色でいいかなと。

◆構造体の作成
構造体ではさきほど作成したEnumと色設定用にVector型を作成する
○構造体名:DS_Key
・KeyName:Enum(E Key Name)

◆ConstructionScriptの記述(鍵BP)
グラフの処理を作成する前に変数を設定する。
⊕で変数を追加し、型をさっき作成した「DS Key」に設定して、「インスタンス編集可能」と「スポーン時に公開」にチェックを入れる。

変数の作成ができたらグラフの処理を作成していく。
・Create Dynamic Material Instance
・Set Vector Parameter Value
※Parameter Nameはマテリアルに設定されているパラメータ名を入力する必要があるから、自分がKeyに設定しているマテリアルを参照する必要あり。

◆変数の変更で見た目が変わるか確認
ゲーム内に鍵BPを配置して各BPの詳細タブから値とEnum名を変更してみたところばっちり見た目が変わるのは確認できたので、次の作業に移動する。

◆BPインターフェイスの調整
前回作成したブループリントインターフェイスの状況だと、通知自体はキャラクターBPに流すことができているが、Enum名と色の値を渡すことができないため、この2つを流せるようにしていく必要がある。

ということで、仕様しているBPインターフェイスのインプットにEnumのピンとVector型のピンを作成する。

これでGetKeyのインプットにEnumとVectorを入れることができるからキャラクターBPに通知と共にゲーム内に配置している鍵の値も渡せるようになった。

◆キャラクターBPに変数を追加作成
Boolean型の変数を3個作成
・Red Key
・Green Key
・Blue Key

◆キャラクターBPでの通知の切り分け
さきほど作成したBoolean型の変数を配置。Switch on Enumを使い通知を切り分けて処理を実行するようノードを組む。

◆Keyの色変更処理
キャラクターには前回から右手のSocketにStaticMesh(鍵の見た目用)を持たせたままなので、これを使用する。
今回は3種類の鍵を集める!ということが大前提としてあり、それぞれの鍵色を「赤」「緑」「青」と設定することから色をそのまま反映できるよう調整。

Switch on Eumuの前に色の処理を記述!
・鍵の色を設定したときとほぼ同じ処理

◆ドアが開く処理(条件分岐)
全部のBoolean型変数がTrueの場合のみ、Branchの処理がTrueになるように指定する。

◆変数をFalseにする
最後にドアが開いた後の処理!変数をFalseになるよう処理を組んで終わり

◆ゲームをプレイしてみよう!
鍵を3つ配置。それぞれの値を設定してゲームをプレイ!

少し見えずらいけど、しっかり手元にある鍵(球)が白く発光しているのを確認できた!

ドアもしっかり開いたので完璧!

他にはこんな記事もあるよ!
YouTube
YouTubeなどでも、時おり活動をしていますのでよかったらチャンネル登録しておいて貰えると嬉しいです!