Unreal Engine 5(UE5)では、プレイヤーがアイテムに近づいたときにボタンを押すことでイベントを発火させる処理を簡単に実装できます。本記事では、ブループリントを使ってこの仕組みを作る方法を詳しく解説します。
1. 必要な準備
この処理を実装するには、以下の要素が必要になります。
- プレイヤーキャラクター
- アイテム(アクター)
- コリジョン(オーバーラップ判定)
- 入力イベント(キー操作)
2. アイテムの作成とオーバーラップ判定の設定
まずは、プレイヤーが近づいたことを判定するためにコリジョンを設定します。
- UE5のエディタで「新規ブループリントクラス」を作成し、親クラスを「Actor」に設定
- ブループリントエディタを開き、「コンポーネントを追加」から「Box Collision」を追加
- Box Collisionを選択し、「詳細」タブでオーバーラップイベントを有効にする
次に、「イベントグラフ」で以下のようにノードを接続します。
OnComponentBeginOverlap(Box Collision) → Cast To PlayerCharacter → 変数「CanInteract」= true
OnComponentEndOverlap(Box Collision) → Cast To PlayerCharacter → 変数「CanInteract」= false
この処理により、プレイヤーがアイテムに近づいたときに「CanInteract」変数がtrueになり、離れるとfalseになります。
3. プレイヤーの入力処理を設定
次に、プレイヤーがボタンを押したときにイベントを発火させる処理を追加します。
- プレイヤーキャラクターのブループリントを開く
- 「イベントグラフ」で「入力アクション(Eキーなど)」を追加
- 以下のようにノードを接続
InputAction Interact(Eキー) → Branch(条件:CanInteract)
True → 「アイテムのイベントを呼び出す」
この処理により、プレイヤーがアイテムの近くにいるときに「Eキー」を押すとイベントが発火します。
4. アイテムのイベントを発火させる
最後に、アイテム側でイベントを発火させるように設定します。
- アイテムのブループリントにカスタムイベント「OnInteracted」を作成
- 「OnInteracted」内で任意の処理(消滅・エフェクト・アイテム取得など)を実装
- プレイヤーキャラクターの「Eキー」処理内で「OnInteracted」イベントを呼び出す
これにより、プレイヤーがアイテムの近くでEキーを押すと、アイテムのイベントが実行されます。
5. まとめ
今回の手順で、UE5のブループリントを使って「プレイヤーがアイテムに近づいたらボタンを押してイベントを発火させる」処理を実装できました。
- アイテムにBox Collisionを設定し、プレイヤーとのオーバーラップを検知
- 変数「CanInteract」でプレイヤーがアイテムの近くにいるかを判定
- プレイヤーがEキーを押すと、アイテムのカスタムイベントを発火
この方法を応用すれば、ドアの開閉やスイッチの操作など、さまざまなインタラクションを簡単に作成できます。ぜひ試してみてください!