変数 とは、ワールド内のオブジェクトやアクタの値または参照を保有するプロパティです。これらの プロパティには、それらを含む ブループリント から内部でアクセスすることができます。また、 レベルに配置されたブループリントのインスタンスで作業をしているデザイナーが値を変更を加えられるように、 外部からアクセスすることもできます。
変数は、角丸ボックスに名前が入って表示されます。
変数の型
変数は、Boolean、integer、float などのデータ型や、オブジェクト、アクタ、特定クラスなどを保有するリファレンス型など、様々な型での作成が可能です。 それぞれの変数型の 配列 も作成することができます。それぞれの型は区別しやすいように色分けされています。
変数型 | 色 | 例 | 意味 |
---|---|---|---|
Boolean | マルーン | True 値または false 値 (bool )。 |
|
Byte | シェルパ ブルー | 0 から 255 の間の整数値 (unsigned charSherpa blue )。 |
|
Integer | シーグリーン | 2,147,483,648 と 2,147,483,647 の間の整数値 (int )。 |
|
Integer64 | モスグリーン | 9,223,372,036,854,775,808 と 9,223,372,036,854,775,807 の間の整数値 (long )。 |
|
Float | イエローグリーン | 0.0553, 101.2887, と -78.322 などの小数のある数値 (float )。 |
|
Name | モーブ | ゲームで何かを特定するために使用されるテキストの構成要素。 | |
String | マゼンタ | マジェンタ (赤紫) 色の変数は文字列または Hello World などの英数字を表します。 | |
Text | ピンク | ピンクの変数は表示されたテキストデータを表します。ローカライズ対象のテキストに使用してください。 | |
Vector | ゴールド | 3 軸を設定します (X, Y, Z)。3D 座標と RGB 色データを使う場合に便利です。 | |
Rotator | 紫を帯びた淡い青色 | 3D 空間の回転を定義するローテータ―のデータを表します。 | |
Transform | オレンジ | 平行移動 (3D 位置)、回転、スケーリングを組み合わせた変位データを表します。 | |
Object | 青 | ライト、アクタ、スタティック メッシュ、カメラ、サウンド キューなどのオブジェクトを表します。 |
My Blueprint タブの変数
[My Blueprint] タブには、カスタム変数をブループリントへ追加することができ、 コンポーネント リスト に追加されたコンポーネント インスタンス変数やグラフで値を変数に昇格させて作成した変数など、 存在するすべての変数が一覧表示されます。
Public 変数
変数が存在するブループリントの外部から変数を修正するには、変数を public にします。
デフォルトでは、目のアイコンが閉じているので (private)、選択して目のアイコンを開いて public にします。[Instance Editable (インスタンスを編集可能にする)] ボックスを選択または選択を解除して、変数を private または public にします。
変数を public にした後、メインのエディタ ウィンドウの [Details (詳細)] パネルから値を変更できます。
上の画像では、変数、LightColor が編集可能に設定されているので、レベル エディタの [Details (詳細)] パネルで値を設定できます。
変数のツールチップ
変数上にマウスを当てて、表示された変数の ツールチップ をエディタに追加することもできます。
その変数の [Details (詳細)] パネルからでも ツールチップ の追加が可能です。ツールチップが追加されると、その変数が Public 設定の場合、目のアイコンが黄色から緑に変化します。これは、その変数に対してツールチップが書き込まれたことを示しています。
スポーン時に公開
[Expose on Spawn (スポーン時に公開)] は、変数が存在するブループリントのスポーン時に、その変数をアクセス可能にするかを設定します。
上の画面には LightColor という変数があります。これは [Expose on Spawn (スポーン時に公開)] に設定される Linear Color プロパティです。この変数は Set Light Color ノードと LightColor 変数を使用してライトの色を決める Point Light ブループリントに実装されます。
以下は、Point Light ブループリントをスポーンするためにスクリプトを使用した別のブループリントです。LightColor 変数がスポーン時に公開される設定になっているので、この値を設定するオプションは Spawn Actor from Class ノードで利用でき、ゲームワールドでスポーンするライトの色を設定することができます。
プライベート変数
変数上で [Private] オプションにチェックを入れると、外部ブループリントから変数を修正できなくなります。
例えば、以下のようにプライベートに設定されていない変数があったとします。
別のブループリント内で、この変数を含むブループリントのスポーンを選択して、Return Value から変数にアクセスすることができます。
しかし、Private で設定しておくと、以下のようになります。
ブループリントを再度スポーンしようとし、アクセスできなかった変数へのアクセスを再度試みます。
シネマティクスに公開
変数値を シーケンサー または Matinee で調整したい場合は [Expose to Cinematics (シネマティクスに公開)] を選択します。
シーケンサーの詳細については、「シネマティックスとシーケンサー」を参照してください。
4.23 現在、Matinee は UE4 でサポートされておらず、近い将来エンジンから除外される予定です。除外されると、Matinee の実行や、Matinee エディタを開くことができなくなります。
ファイルをシーケンサーにできるだけ早く変換するには、Matinee からシーケンサーへの変換ツール を使用します。
変数へ昇格させる
[Promote to Variable (変数へ昇格] を使用しても、変数の作成が可能です。
ブループリント ノードの任意の入出力ピン上で右クリック して [Promote to Variable] オプションを選択します。
New Light Color ピンを右クリックして [Promote to Variable] を選択すると、変数に New Light Color を割り当てることができます。
または入出力ピンをドラッグして [Promote to Variable] を選択することができます。
ブループリントで変数にアクセスする
ブループリントで変数を使用するには、Get ノード (ゲッターと呼びます) を使用して変数の値を取得するか、Set ノード (セッターといいます) を使用して変数の値を設定するかの、いずれかの方法で行います。
変数に対して Set ノード (上の 1) または Get ノード (上の 2) を作成するには、グラフ内で 右クリック して、Set (変数名) または Get (変数名) と入力します。あるいは、Ctrl キーを押して MyBlueprint ウィンドウから変数をドラッグして Get ノードを作成するか、または Alt キーを押して MyBlueprint ウィンドウから変数をドラッグして Set ノードを作成する方法もあります。
変数の編集
変数値はブループリント ノード ネットワークの一部として、あるいはデフォルト値として実行前に設定することができます。デフォルト値を設定する方法は以下の通りです。
-
ブループリント エディタの [Class Defaults (クラス デフォルト)] をクリックし、[Details (詳細)] パネルでデフォルトを開きます。
-
[Details (詳細)] パネルで変数名の右側に任意のデフォルト値を入力します。
デフォルトに変数が表示されない場合、[Compile (コンパイル)] ボタンをクリックしているか確認してください。
変数名の変更
変数名は以下の方法で変更します。
-
[My Blueprint] タブで変数名を 右クリック し、表示されたメニューから [Rename (名前変更)] を選択します。
-
テキスト欄に新規変数名を入力し、[Enter] を押します。
変数のプロパティ
[Details (詳細)] パネルで変数に関する全てのプロパティを設定できます。変数によっては、ベクターの Expose to Cinematics や Integers または Floats といった数値変数の Slider Range など、他にもさまざまなプロパティがあります。
プロパティ | 説明 |
---|---|
Variable Type | ドロップダウン メニューから変数の型を設定し、変数が配列かどうかを判断します。 |
Instance Editable | クラスのデフォルト とブループリントの [Details (詳細)] タブで変数の値を編集可能にするかどうかを設定します。 |
Tooltip | 変数のツールチップを設定します。 |
Private | 変数をプライベートにし、派生したブループリントから修正はできないように設定します。 |
Category | 既存カテゴリから選択するか、新規カテゴリ名を入力します。Class Defaults (クラスのデフォルト)、[My Blueprint] タブ、ブループリントの [Details (詳細)] タブで変数を表示させるかどうかを設定します。 |
Replication | 変数の値をクライアント中にレプリケートするかどうかを選択し、値がレプリケートされる場合はコールバック関数による通知が必要かを選択します。 |
詳細な変数プロパティ
プロパティ | 説明 |
---|---|
Config Variable | この変数が存在する場合、そのデフォルト値を設定ファイルから読み取るかどうかを指定します。様々なプロジェクトやコンフィギュレーション間で、デフォルト値とビヘイビアをカスタマイズするために使用するオプションです。 |
Transient | ロード時にシリアル化およびゼロ埋めされません。 |
SaveGame | 保存したゲームに対してシリアル化されます。 |
Advanced Display | デフォルトで [Class Defaults] ウィンドウで非表示になります。 |
Multi line | 複数行の表示を可能にします。変数を編集しながら新しい行を追加するには、[Shift] + [Enter] を押します。 注記:このオプションは String 変数と Text 変数のみに適用します。 |
Deprecated Deprecation Message |
廃止されます。変数を参照しているすべてのノードは、取り除く、または置き換えの推奨を示すコンパイラ警告を生成します。例:「X は使用しなくなりました。X の代わりに Y を使用してください。」 |
変数値の取得と設定
Get ノードおよび Set ノードにより、変数をブループリント ネットワークの一部として編集することも可能です。その一番簡単な方法は、[Variables (変数)] タブから変数をイベント グラフへ直接ドラッグすることです。小さなメニューが表示され、Get ノードあるいは Set ノードを作成するかを聞いてきます。
Get ノード
Get ノードはネットワークの一部に変数値を与えます。作成されたこれらのノードは、適切なタイプのすべてのノードに接可能になります。
Set ノード
Set ノードで変数の値を変更することができます。これらのノードを実行するには、実行ワイヤーから呼び出さなければならないことにご注意ください。
My Blueprint タブのドラッグによるショートカット | |
---|---|
Ctrl - ドラッグ | Get ノードを作成します。 |
Alt - ドラッグ | Set ノードを作成します。 |