2.

UE5のBlueprintで特定のクラスのWidgetを閉じる方法

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

ページの作成

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

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

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

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

Unreal Engine 5(UE5)では、ゲーム内でUIを管理するためにWidget(ウィジェット)を使用します。しかし、特定のクラスのウィジェットを閉じたい場合、どのように処理すればよいか悩むことがあります。

本記事では、Blueprintを使って特定のクラスのウィジェットを安全に閉じる方法について詳しく解説します。

Widgetを閉じる基本的な方法

Blueprintでウィジェットを閉じるには、主に以下の2つの方法があります。

  1. ウィジェットの「Remove from Parent」ノードを使う。
  2. 現在表示されているウィジェットを検索し、特定のクラスのウィジェットのみを削除する。

どちらの方法を使うかは、ウィジェットをどのように管理しているかによります。まずは基本的な「Remove from Parent」を使う方法を解説し、その後、特定のクラスのウィジェットだけを閉じる方法について詳しく説明します。

方法1:「Remove from Parent」で直接閉じる

最も簡単な方法は、ウィジェットを格納している変数を使って、「Remove from Parent」ノードを実行することです。

手順は以下の通りです。

  1. ウィジェットの作成時に、変数として保存する。
  2. 必要なタイミングで「Remove from Parent」を実行する。

Blueprintのフローとしては、次のようになります。

// ウィジェットを作成して変数に保存 Create Widget (MyWidget) → Set (ウィジェット変数) ↓ // ウィジェットを閉じる Remove from Parent (ウィジェット変数)

この方法は、作成したウィジェットを適切に管理できている場合には非常に簡単で便利ですが、複数の同じ種類のウィジェットが存在する場合には適用できません。

方法2:現在のウィジェットを検索して特定のクラスだけ閉じる

ゲーム中に複数のウィジェットが存在し、特定のクラスのウィジェットだけを閉じたい場合は、以下の手順を実行します。

1. ウィジェットを検索する

Blueprintには、「Get All Widgets of Class」という便利なノードがあります。これを使うことで、現在アクティブなウィジェットの一覧を取得できます。

手順:

  1. 「Get All Widgets of Class」ノードを使い、特定のクラスのウィジェットを取得する。
  2. 取得したウィジェットのリストをループ処理し、必要なウィジェットのみを閉じる。

2. 取得したウィジェットを削除する

Blueprintの処理の流れは次のようになります。

Get All Widgets of Class (MyWidget) ↓ For Each Loop (取得したウィジェットのリスト) ↓ Remove from Parent (各ウィジェット)

これにより、現在存在するすべての「MyWidget」のウィジェットが削除されます。

方法3:特定のウィジェットだけ閉じる条件を追加する

例えば、「MyWidget」の中でも特定のプレイヤーが作成したものだけを削除したい場合、ウィジェットが持つ変数を使って判別できます。

手順:

  1. ウィジェットに「Owner」などの変数を持たせる。
  2. 「Get All Widgets of Class」を使ってウィジェットを取得する。
  3. 取得したウィジェットの「Owner」変数をチェックし、条件に合うものだけ削除する。

Blueprintの処理の流れは以下のようになります。

Get All Widgets of Class (MyWidget) ↓ For Each Loop (取得したウィジェットのリスト) ↓ Branch (ウィジェットのOwnerが特定のプレイヤーと一致) ├ True → Remove from Parent (ウィジェット) └ False → 何もしない

この方法を使うことで、ゲーム内に複数の同じウィジェットが存在する場合でも、特定の条件に一致するウィジェットだけを閉じることができます。

応用:ウィジェットの削除時にアニメーションを入れる

ウィジェットを削除する際に、いきなり消すのではなく、フェードアウトするなどのアニメーションを加えることで、より自然な演出が可能になります。

方法:

  1. ウィジェットのアニメーションを作成し、「FadeOut」と名前を付ける。
  2. ウィジェットを閉じる前に「FadeOut」アニメーションを再生する。
  3. アニメーションが終了したら、「Remove from Parent」を実行する。

Blueprintのフロー:

Play Animation (FadeOut) ↓ Delay (1秒) ↓ Remove from Parent (ウィジェット)

この方法を使うことで、プレイヤーにとってより快適なUIエクスペリエンスを提供できます。

まとめ

UE5のBlueprintで特定のクラスのウィジェットを閉じる方法として、以下のアプローチを紹介しました。

  • 「Remove from Parent」ノードを使って直接削除する(シンプルな方法)
  • 「Get All Widgets of Class」を使って、現在アクティブなウィジェットを取得し、特定のクラスを削除する
  • 特定の条件(例:「Owner」変数)に基づいて、削除するウィジェットを選択する
  • ウィジェットを削除する際にフェードアウトアニメーションを入れることで、よりスムーズなUXを実現する

これらの方法を組み合わせることで、ゲームのUI管理をより柔軟かつ効果的に行うことができます。ぜひ、プロジェクトに応じて最適な方法を選んでください!

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

ページの作成

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

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

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

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
  1. ブループリントでWidgetに引数を追加する方法
  2. Blueprintで特定のクラスのWidgetを閉じる方法
  3. Widgetの前後関係を設定する方法
  4. ウィジェットの画像を選択するとウィジェットを閉じる方法
  5. マウスを動かせるUIを作成する方法
  6. ウィジェットのボタンに文字を書く方法
  7. BPでウィジェットのボタンを選択できなくする方法
  8. ウィジェットの背景ブラーについて
  9. リストビュー (ListView)
  10. EntryWidgetClass
  11. ウィジェットで一部の領域を部品化して再利用する方法