Language:
Page Info
Engine Version:

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

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

関数のバインディング

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

Apperance.png

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

NewFunction.png

Return Value がパーセント値に結び付けられ、進捗バーのデータに送り出す値を接続することができます。

PlayerHealth.png

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

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

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

以下は、ボタンにプロパティ変数をバインドする例を図示したものです。

Property1.png

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

Property2.png

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

Property3.png

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

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