19.

UE5でどこからでも呼び出せるカスタムイベントを作成する方法

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

Unreal Engine 5(UE5)では、ブループリントを使用してどこからでも呼び出せるカスタムイベントを作成することができます。本記事では、グローバルにアクセス可能なカスタムイベントの作成方法を詳しく解説します。

1. カスタムイベントを作成する場所

どこからでもカスタムイベントを呼び出すには、適切な場所にイベントを作成する必要があります。主に以下の3つの場所に記述することが考えられます。

  • GameInstance(ゲーム全体で使用するイベント向け)
  • PlayerController(プレイヤーごとに使用するイベント向け)
  • ActorやComponent(特定のオブジェクトに関連するイベント向け)
  • 関数ライブラリ(どこからでも関数を呼び出せる汎用的な方法)※推奨

最も汎用的なのはGameInstanceまたは関数ライブラリを使用する方法です。これらを使えば、どのブループリントからでもカスタムイベントを呼び出すことができます。

2. GameInstanceでカスタムイベントを作成する

GameInstanceを使用してカスタムイベントを作成する手順を紹介します。

  • 「コンテンツブラウザ」で「新規作成」→「ブループリントクラス」を選択
  • 「GameInstance」を親クラスとして選択し、名前を「MyGameInstance」に変更
  • 作成した「MyGameInstance」を開く

次に、カスタムイベントを作成します。

  • 「イベントグラフ」に移動
  • 「カスタムイベント」を追加し、名前を「GlobalEvent」にする
  • 「GlobalEvent」の入力ピンとして文字列型の引数「Message」を追加

続いて、メッセージを画面に表示する処理を追加します。

GlobalEvent → Print String(ターゲット: Message)

これで、どこからでも呼び出せるカスタムイベント「GlobalEvent」が作成されました。

3. GameInstanceを適用する

作成した「MyGameInstance」をプロジェクトで使用するために、以下の設定を行います。

  • 「プロジェクト設定」を開く
  • 「マップ & モード」セクションを探す
  • 「GameInstance」の設定を「MyGameInstance」に変更

これで、「MyGameInstance」がゲームのメインGameInstanceとして機能します。

4. 他のブループリントからカスタムイベントを呼び出す

作成したカスタムイベントを他のブループリントから呼び出す方法を説明します。

  • 「Get Game Instance」ノードを追加
  • 「Cast To MyGameInstance」ノードを接続
  • 「GlobalEvent」ノードを呼び出し、「Message」を設定

Get Game Instance → Cast To MyGameInstance → GlobalEvent("メッセージを表示")

これにより、どのブループリントからでも「GlobalEvent」を呼び出し、メッセージを表示できます。

5. 関数ライブラリを使った方法

関数ライブラリを使用すると、どのブループリントからでも簡単に関数を呼び出すことができます。以下の手順で実装できます。

  • 「コンテンツブラウザ」で「新規作成」→「ブループリント関数ライブラリ」を選択
  • 名前を「MyFunctionLibrary」に変更
  • 作成した「MyFunctionLibrary」を開く

次に、関数を作成します。

  • 「関数を追加」をクリックし、「GlobalFunction」と命名
  • 「入力」に文字列型の引数「Message」を追加
  • 「出力」をなしに設定
  • 「Print String」ノードを追加し、「Message」を接続
  • 「Static」を有効化(どこからでも呼び出せるようにするため)

GlobalFunction → Print String(ターゲット: Message)

これで、「MyFunctionLibrary」に作成した関数をどこからでも呼び出せるようになりました。

6. 他のブループリントから関数を呼び出す

関数ライブラリを使用した場合、直接「GlobalFunction」を呼び出せます。

この方法は、GameInstanceを使うよりもシンプルで、ブループリントの整理にも役立ちます。

7. まとめ

今回の手順で、UE5のブループリントを使用してどこからでも呼び出せるカスタムイベントを作成しました。

  • GameInstanceを作成し、カスタムイベントを追加
  • GameInstanceをプロジェクト設定で適用
  • 他のブループリントから「GlobalEvent」を呼び出す方法を実装
  • 関数ライブラリを使った方法も紹介

この方法を応用すれば、ゲーム全体で使用する通知システムイベント管理に活用できます。ぜひ試してみてください!

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
  1. 床の上に乗ったらイベントを発生させる方法
  2. OverlapAllDynamicとOverlapAllの違い
  3. タイトル画面を作る方法
  4. サードパーソンテンプレートでのキャラクター表示の仕組みと非表示にする方法
  5. ボタンに文字を記載する方法
  6. Event ActorBeginOverlapとOn Component Begin Overlapの違い
  7. キャラクターに特定のオブジェクトとの当たり判定を付ける
  8. 特定のオブジェクトに触れたとき、キャラクターが倒れるようにする
  9. 動いているオブジェクトに静止しているキャラクターが当たり判定を持たない原因と解決方法
  10. 「On Component Hit」に「Cast To ~」で複数のクラスを指定する方法
  11. ブループリントで途中から親クラスを指定する方法
  12. Blenderファイルをインポートする方法
  13. 鏡を作成する方法
  14. レベルブループリントでキャラクターの出現を設定する方法
  15. サードパーソンテンプレートにおけるキャラクター出現の定義
  16. アイテムに近づいたらボタンを押してイベントを発火させる方法
  17. C++で編集となっているコンポーネントをブループリントで編集する方法
  18. 画面の中央にメッセージを表示する方法
  19. どこからでも呼び出せるカスタムイベントを作成する方法
  20. カスタムイベントに引数を追加する方法
  21. ブループリントでWidgetに引数を追加する方法
  22. ブループリントでBoolean変数の初期値を変更する方法
  23. ブループリントで特定のキーが押された時にイベントを発火させる方法
  24. 「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法
  25. オブジェクトに近づいている間だけメッセージを表示する方法
  26. PCの画面を操作するUIを作る方法
  27. レベルを移動する方法
  28. コンテンツブラウザに画像を追加する方法
  29. マウスを動かせるUIを作成する方法
  30. SetInputMode_UIOnlyを取り消す方法
  31. ウィジェットの画像を選択するとウィジェットを閉じる方法
  32. 特定の画像の上にマウスカーソルを置いたら手マークにする方法
  33. レベルの「基本」テンプレートと「オープンワールド」テンプレートの違い
  34. オブジェクトがアウトライナーで選択できない原因と解決策
  35. PlayerStartを作成する方法