アンリアる! C++入門編 ~対話形式で学ぶUnreal Engine~
BOOTHでUnreal Engine C++入門書を販売していますUnreal Engine上でC++を使って開発するために必要となる基礎知識を一冊の本にまとめた本です。 対話形式によるわかりやすい説明を目指しました。無料の試し読みも可能ですので、ぜひ読んでみてください!
Unreal Engineプラグイン「Access Variable by Name」リリース

こんにちは、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
  • カスタム構文 を利用できません