Blueprint で n 次元配列を扱う方法についてです
1 次元配列の場合 #
1 次元配列は簡単
変数の詳細パネルで 配列(Array)
を選択するだけ
2 次元配列の場合 #
UnrealEngine の TArray は、n 次元配列を使う想定にはなっていません
というのも、n 次元配列を for で回す場合、次元の数だけ for ループが必要になるし
メモリ上での扱いが効率的ではない、という理由があります
2 次元配列を扱う方法としては、構造体に配列を持たせ、その構造体の配列を持つことで
擬似的に 2 次元配列っぽく扱う方法が考えられますが、あまりスマートではありません
なので、1 次元配列を 2 次元配列のように扱うことにします
要素数は (DimX * DimY)
個とします
取得するときの添字は (X * DimX + Y)
で計算できます
MathExpression
ノードを使用していますが、普通の計算ノードでも可です
現在の添字から X と Y が知りたい場合は、下記の計算になります
X = n / DimX
Y = n % DimX
3 次元配列の場合 #
2 次元ができれば、その応用で 3 次元配列も表せます
要素数は (DimX * DimY * DimZ)
個です
取得するときの添字の計算は (X * DimX * DimZ) + (Y * DimZ) + Z
です
添字から XYZ を知りたい場合は以下の計算です
X = N / (DimX * DimZ)
Y = N % (DimX * DimZ) / DimZ
Z = N % (DimX * DimZ) % DimZ
これ以上は 計算が面倒なので あまり実用的では無いので今回はここまで