0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[UE5] Dynamic Entry Box

Posted at

Epic GamesがLearning用に提供しているMVVMのサンプルで、Dynamic Entry Boxという見慣れないWidgetが使われていて、それについて情報が出てこなかったので調べてみました。

Dynamic Entry Box概要

Unrean Engine C++ API Reference / UDynamicEntryBoxより

デザイン時と実行時の両方でエントリを自動生成する特別なボックスパネルです。
エントリ数が変動する可能性があるものの、リスト/タイルビューを設定する手間や概念的なオーバーヘッドが割に合わない場合に便利です。
ここでのエントリはリストビューのように仮想化されていないため、多数のアイテムをスクロールする場合は通常、この方法は避けるべきです。
デザイナーで子要素を手動で追加することはできません。すべて、指定されたエントリクラスに基づいて自動生成されます。

簡単にまとめると、動的なリスト/タイルビューの管理に便利なWidgetのようです。
bp_umg_deb.png

使用方法

  1. Dynamic Entry BoxをWBP上に配置する
  2. 配置したWidgetのDetailsビューでEntry Widget Classを設定する。Entry Widget ClassはUser Widgetを継承したWBPであれば何でもよさそうimage2.png
  3. WBPのGraphビューで子要素生成のための処理を書くbp_deb.png

Dynamic Entry Boxに対して子要素の制御のために使う関数は主に3つです。

  • Create Entry: 子要素を生成し、追加する
  • Remove Entry: 子要素を削除する
  • Reset: 子要素をクリアする

データの増減に合わせてこれらのノードを呼び、ビューを更新する形になります。
サンプルではデータの更新に合わせてReset後にCreate Entryで子要素を追加していました。

Wrap Boxとの比較

同じような機能のWidgetにWrap Boxがありますが、Wrap Boxの実装と比較するとCreate Widget + Add Child to Wrap Boxの部分が、Dynamic Entry BoxではCreate Entryにまとめられて内部的に追加まで行われています。bp_wrapbox.png

Wrap Boxより使いやすい点として、Dynamic Entry Boxは動的な生成ができるWidgetなため、Designer上で調整すれば、指定個数でのプレビューが簡単にできるのがいいですね。生成するWidget (Entry Widget Class) をDesignerで変更できるのもよいです。Wrap Boxでやろうとすると手動で子要素を追加するか、Graphを書く必要があるため、その点は結構便利そうです。

と思ってたら、Preview用の数のMAXが20に設定されてるのに気づきました。どうにか変更できないかと調べたらClamp(0-20)でハードコードされてたという…不便。
image5.png

Entry Box Type

Wrap Boxとの大きな違いとして、Dynamic Entry BoxはEntry Box TypeとしてRadial(円形)とOverlay(重ねる)がオプションで用意されています。この機能を利用するためにDynamic Entry Boxを使うことがありそうです。
entry_box_type.png

Radial

アイテムを円形に並べて表示する。type_radial.png

Overlay

アイテムを縦横(斜めも可)に重ねて表示する。type_overlay_horizontal.png
type_overlay_vertical.png

今回の記事は以上です。
いつの間にか追加されているWidgetについて随時調べて行きたいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?