プロパティのバインディング

UMG 内でプロパティをバインドする方法

UMG で最も便利な特徴は、ウィジェットのプロパティをブループリント内の関数やプロパティにバインドできる機能です。プロパティをブループリントの関数やプロパティ変数にバインドすることで、関数が呼び出されたり、プロパティが更新されたりすると常にウィジェットに反映されます。

関数のバインディング

例えば、Progress Bar(進捗バー) ウィジェットを使ってプレイヤーのヘルス値を常に反映させる方法を考えてみましょう。進捗バーの [Appearance (アピアランス)] には、、パーセント値を関数やプロパティにバインドする[Percent (パーセント)] オプションがあります (以下の画像の黄色いボックス部分)。

Select Bind for the Percent value

[Bind (バインド)] ボタンをクリックし、[Creating Binding (バインドを作成)] オプションを選択すると、新しい関数が作成されて開きます。

New Function for binding

Return Value がパーセント値に結び付けられて、入力した値が進捗バーのデータに転送されます。

Script for binding function

上の画像では、関数は Character ブループリント内から Player Health と呼ばれる変数を取得します。この変数は、Player Health 変数が更新されるたびに、進捗バーのパーセント値に自動的に渡され、値として反映されます。

プロパティのバインディング

プロパティのバインディング では、ウィジェットのプロパティにバインドされるプロパティ変数を指定します。プロパティ変数が更新されると、それにバインドされている設定は自動的に更新され、ウィジェットに反映されます。

以下は、ボタンにプロパティ変数をバインドする方法の例です。

Widget Blueprint layout

上の画像のように、メインメニューには以下の 3 つのボタンがあります。すなわち、[Continue (継続)][Start (開始)]、 および [Quit (終了)] の 3 つです。プレイヤーが Save Game を持っている場合に限り、[Continue] を有効にします。[Continue] ボタンの [Behavior (挙動)] セクションで IsEnabled のチェックを外すことができます (ボタンがデフォルトで有効にならないようにするため)。次に、[Bind] ボタンをクリックします。

Un-check IsEnabled option under Behavior

このウィジェット ブループリントの [Graph (グラフ)] タブで Boolean 変数を作成します。作成したら、それを [Bind] ボタン経由で割り当てることができます (以下では DoesSaveExist? というブールを作成しました)。

Assign variable via the Bind button

この変数を IsEnabled 挙動にバインドした状態で、ゲーム開始時に保存ファイルが存在するかをチェックします。存在すれば、Widget ブループリントをキャストして、DoesSaveExist 変数にアクセスし、この変数を True に設定すると、このボタンが有効になります。

ウィジェットのプロパティをバインドし、そのウィジェット上で Set 関数を直接呼び出すと、バインドが解除されます。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル