Common UI Plugin を有効にすると追加される Widget の使い方を紹介します。
こちらの記事では CommonLazyImage について紹介しています。
ほかの Widget については下記の記事をご覧ください。
確認環境
- UE5.4
- Common UI Plugin Beta Version 1.0
機能

UE 標準で用意されている Image を拡張した Widget です。
メインで表示したい画像を非同期ロードで読み込んでいる間だけ何か別の画像を表示しておくことができます。
設定項目

ShowLoading
オンにすると Widget 編集中に後述の LoadingBackgroundBrush を表示します。
LoadingBackgroundBrush
メインで表示したい画像を非同期ロードで読み込んでいる間、代わりに表示する画像を設定します。
Brush
メインで表示したい画像を設定します。
後述の関数で読み込んだ画像はこちらに設定されます。
MaterialTextureParamName
Brush > Image がマテリアルの場合に設定が有効になります。
マテリアルのテクスチャパラメータ名を設定します。
この設定により、テクスチャを読み込んで設定する関数( SetBrushFromTexture 関数や SetBrushFromLazyTexture 関数など)を実行した後、読み込まれたテクスチャが Brush > Image に設定されているマテリアルのテクスチャパラメータに割り当てられます。
ただし、 MaterialTextureParamName が None のままだった場合は読み込まれたテクスチャで Brush が上書きされます。
イベント

OnLoadingStateChanged

イベントが呼ばれるタイミングは不明です...
イベントの名前から推測すると、画像のロード状態が変化したときに呼び出されるイベントだと思います。
が、実際にロードを試してみてもイベントが呼び出されずどのタイミングで呼び出されるのかわからないままでした。
| 入力ピン | 内容 |
|---|---|
| IsLoading | 画像をロード中かどうか...多分... |
関数
SetBrushFromLazyTexture

指定のテクスチャを非同期ロードして Brush に設定します。
| 入力ピン | 内容 |
|---|---|
| LazyTexture |
非同期ロードするテクスチャ テクスチャが None の場合は
|
| MatchSize |
画像のサイズ (Brush > ImageSize) を |
SetBrushFromLazyMaterial

指定のマテリアルを非同期ロードして Brush に設定します。
| 入力ピン | 内容 |
|---|---|
| LazyMaterial |
非同期ロードするマテリアル マテリアルが None の場合は |
SetBrushFromLazyDisplayAsset

指定のテクスチャ or マテリアルを非同期ロードして Brush に設定します。
| 入力ピン | 内容 |
|---|---|
| LazyObject |
非同期ロードするオブジェクト(テクスチャ or マテリアル) オブジェクトが None の場合は |
| MatchTextureSize |
画像のサイズ (Brush > ImageSize) を |
IsLoading

非同期ロード中かどうかを判定します。
| 出力ピン | 内容 |
|---|---|
| ReturnValue | 非同期ロード中かどうか |
SetMaterialTextureParamName

MaterialTextureParamName を設定します。
Brush > Image にマテリアルが設定されていない場合はこの設定が無視されます。
また、 SetBrush 関数などで新しい Brush が設定された場合は MaterialTextureParamName が None に戻りますのでご注意ください。
| 入力ピン | 内容 |
|---|---|
| TextureParamName | 設定するテクスチャパラメータ名 |
使用感
Image に機能を追加した形になっているので、 Image の代わりに CommonLazyImage を使っておこうかなという感じです。
そうしておくと、 LoadingBackgroundBrush を必要に応じて使えるので。
記事の内容について、誤字脱字、内容の誤り、感想などありましたら気軽にコメントしていただけると嬉しいです。(このブログでも SNS でも歓迎です。)
