【UE5】Remove from Parentの使い方:ウィジェットを消去する方法!【ゲーム開発】

今回の記事については、YouTubeにも投稿予定になりますので、投稿できたらリンクを貼る予定になります。
動画の方がよろしい方は、2025/3/12 17:00投稿予定
役割&目的
Remove from Parentノードは、指定したウィジェット(Widget)を親(Parent)から消去するためのノード。
つまり画面上から特定のUIを消すときに使う。
UIを閉じる際に良く使用されます。
ノードの詳細解説
このノードを実行すると、 ターゲットとなるウィジェットが親コンテナ(例:Canvas Panelなど)から消去される。
結果として、ウィジェットが画面から消える。
ただし、ウィジェットのインスタンスはメモリ上に残るため、完全に破棄されるわけではない。
📌注意点
・ウィジェットを破棄したい場合は、変数をNoneにする or Garbage Collectionに任せる必要がある。
・一時的に非表示にしたい場合は、「Set Visibility」を使う方が適している。
ブループリントでの繋ぎ方
✅基本的な使い方
1.閉じたいウィジェットのリファレンスを取得する。
2.Remove from Parentに接続する。
実装例

変数を作成して上記のようにノードを作成します。
画像を説明すると、Shiftを押すごとに、変数のTrueとFalseが入れ替わります。
Print Stringを最後に入れることによって、ゲーム画面をプレイしたときに、Shiftを押すと左上に現在の状況(Trueなのか?Falseなのか?)を確認することができます。

そしたら、変数を少し右側に寄せて、Brunchと変数の間にノードを追加していきます。
ノード名称 | 役割 |
---|---|
Create Widget | 表示するWBPを設定 |
Add to Viewport | 画面に表示させる |
Remove from Parent | ターゲットのUIを親コンテナから消去 |


これで実装例は完了になります。
💡UIをイベントで動かしたい場合は、Onclicked(ボタンをクリック)などを勉強してみると良いかと思います。
関連ノード
ノード名 | 役割 |
---|---|
Set Visibility | ウィジェットの表示・非表示を切り替える(消去しない) |
Is in Viewport | 指定したウィジェットが表示中か判定する |
Remove All Widgets | 画面上の全てのウィジェットを消去する |
テクニカル
✅パフォーマンスを考慮する場合
・UIの開閉を頻繁に行う場合、ウィジェットを毎回作成するのではなく、非表示にして再利用するのが効率的。
・Remove from Parentを多用すると、ウィジェットを作り直すコストが発生し、メモリ負荷が増加することがある。
✅シンプルなUI管理フローを設計
・ウィジェットの開閉を「UI Manager」などのクラスで統一して管理するのが望ましい。
例えば、UIが閉じるときにアニメーションを再生すると、より洗練されたUIになる。
まとめ
ノード名 | Remove from Parent |
役割 | 親コンテナからウィジェットを削除し、画面上からUIを消す |
主な用途 | メニューを閉じる、ダイアログを消すなど |
注意点 | Set Visibilityの方が適している場合もある |
最適化 | 頻繁に開閉するUIはSet Visibilityを活用して、メモリ負荷を減らす |