【UE】自作のノードの入力ピンに配列を設定する方法

Unreal Engine

はじめに

以下のように引数に配列がある関数をブループリントから呼び出してそのピンに何も接続していないと「The current value of the ‘ ○○ ‘ pin is invalid: Array inputs (like ‘○○’) must have an input wired into them (try connecting a MakeArray node).」というコンパイルエラーが発生することがあります。

UFUNCTION(BlueprintCallable)
static void Hoge(TArray<FName> Names);

このコンパイルエラーを日本語訳すると「ピンの現在の値が無効です: 配列入力(’○○’など)には入力が配線されている必要があります(MakeArrayノードを接続してみてください)。」となります。

対処法

コンパイルエラーに書かれているように MakeArray ノードを接続するとエラーが発生しなくなりますが、配列に何も値を渡したくないとき(引数の配列が空のままでいいとき)はどうすればいいのでしょうか。

そのようなときは以下のコードのように UFUNCTION() の meta で AutoCreateRefTerm というものを指定するとブループリントでコンパイルエラーが発生しなくなります。
「AutoCreateRefTerm = “Names”」の「Names」の部分は引数の名前です。

UFUNCTION(BlueprintCallable, meta = (AutoCreateRefTerm = "Names"))
static void Hoge(TArray<FName> Names);

AutoCreateRefTerm については公式ドキュメントで以下のように説明されています。
説明通り、配列のデフォルトを自動的に作成してくれるやつです。

リストされているパラメータは参照によって渡されますが、ピンが未接続のままになっている場合は、デフォルトが自動的に作成されます。これはブループリントの便利な機能であり、配列ピンでよく使用されます。

メタデータ指定子

最後に

参考記事

お問い合わせ

    タイトルとURLをコピーしました