こんにちは、Colory Games公式です。
先日、Unreal Engineプラグイン「Access Variable by Name」をリリースしました!
「Access Variable by Name」は、文字列指定によって変数の値を取得&設定できるブループリントノードを提供します。
Marketplace: Access Variable by Name
本記事では、プラグインで提供するブループリントノードについて簡単に説明します。
目次
Get Variable by Name: 文字列指定により変数を取得する
「Get Variable by Name」は、指定した文字列に対応する変数の値を取得できるブループリントノードです。
指定した文字列を解析し、出力ピンのデータ型を自動的に変更します。
他クラスの変数にアクセスする場合や、カスタム構文を用いたネスト化された変数へのアクセスで威力を発生します。
Set Variable by Name: 文字列指定により変数を設定する
「Set Variable by Name」は、指定した文字列に対応する変数に値を設定できるブループリントノードです。
指定した文字列を解析し、入力および出力ピンのデータ型を自動的に変更します。
他クラスの変数にアクセスする場合や、カスタム構文を用いたネスト化された変数へのアクセスで威力を発生します。
Get Variable by Name (Dynamic): より柔軟な文字列指定により変数を取得する
「Get Variable by Name (Dynamic)」は、指定した文字列に対応する変数の値を取得できるブループリントノードです。
「Get Variable by Name」と同等の機能を持つノードですが、文字列にリテラル値以外を指定できます。
実行時に生成した文字列を指定できるため、設定する変数を実行時に動的に変えることができます。
ただし、出力ピンのデータ型を指定する必要があります。
Set Variable by Name (Dynamic): より柔軟な文字列指定により変数を設定する
「Set Variable by Name (Dynamic)」は、指定した文字列に対応する変数に値を設定できるブループリントノードです。
「Set Variable by Name」と同等の機能を持つノードですが、文字列にリテラル値以外を指定できます。
実行時に生成した文字列を指定できるため、設定する変数を実行時に動的に変えることができます。
ただし、入力ピンと出力ピンのデータ型を指定する必要があります。
カスタム構文
変数名の文字列指定には、カスタム構文を利用できます。
StructureやObjectのメンバ変数にアクセス
ドット(.
)で文字列を区切ることにより、StructureやObjectのメンバ変数にアクセスできます。
次の例は、Vector型の変数 StructVar
のメンバ変数 X
にアクセスする場合に指定する文字列です。
StructVar.X
ArrayやMapの要素にアクセス
要素番号やキーを大かっこ([]
)で囲うことによって、ArrayやMapの要素に直接アクセスできます。
次の例は、Array型の変数 ArrayVar
の第3要素にアクセスする場合に指定する文字列です。
0-based indexを採用していることに注意してください。
ArrayVar[2]
同様に、Map型の変数 MapVar
のキー Key
に対応する要素にアクセスする場合に指定する文字列を次に示します。
MapVar["Key"]
構文の組み合わせ
これまでの構文を組み合わせることもできます。
まとめ
本記事では「Access Variable by Name」が提供するブループリントノードについて紹介しました。
YouTube にも紹介動画をアップロードしているため、こちらもぜひ確認してみてください。
また、GitHubに無料トライアル版を公開しています。
興味がある方は利用してみて、Marketplaceでの購入をぜひ検討いただけると幸いです。
GitHub: colory-games/UEPlugin-AccessVariableByName
無料トライアル版は通常版と異なり、次のような制限があることに注意してください。
- 特定の型が利用できません
- Struct
- Enum
- Array
- Set
- Map
- カスタム構文 を利用できません