PaperSloth’s diary

主にゲーム開発関連についての記事を書きます。

UE4 Blueprintで2次元配列を作成する方法

環境

UE4.22.2

Blueprintでの2次元配列の作成方法

先に結論だけを書くと

  • 配列を持った構造体を用意
  • その構造体を配列で定義

上記の2ステップでできます。


コードで示すと下記になります。

USTRUCT(BlueprintType)
struct FIntArrayElement
{
	GENERATED_USTRUCT_BODY()

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Game")
	TArray<int32> IntArray;
};

UCLASS()
class PROJECT_API AExampleActor : public AActor
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Game")
	TArray<FIntArrayElement> TwoDimensionIntArray;
};

f:id:PaperSloth:20190531013637p:plain



これぐらいであれば、Blueprintでも表現可能です。

下図のようにArray(配列のメンバー)をもった構造体を定義します。
構造体の作成方法はContent Browserから
Blueprints -> Structure を選択です

次の手順でおそらく警告が出ると思うので、1つ以上の要素を追加しておきます。
f:id:PaperSloth:20190531014219p:plain


次に2次元配列をもたせたいBlueprintに変数を追加します。
その際にVariable Typeを先程作成した構造体に変更し
Arrayに変更します。

すると下図のように配列の中に配列を持った2次元配列を作ることができます。
f:id:PaperSloth:20190531014328p:plain


通常のままでは構造体になっており、使用できないため
構造体の出力ピンから構造体を分割するか
Break (構造体名)で構造体を分割して使用します。
f:id:PaperSloth:20190531014803p:plain


個人的には極力多次元配列を避けて開発したいのですが
どうしても必要という方もいると思ったので書きました。

以上です。