ゲーム開発を試してみようと思い立ち、Unreal Engine 5をインストールして開発する過程で調べてみた部分を備忘録的に投稿します。今回は[構造体]と[データテーブル]の考え方と使い方です。
最初に躓く[行構造の選択]画面
私も最初に[データテーブル]を作成しようとした時に表示されて頭に「?」が並んだ、この画面。
[行構造の選択]画面で一覧を開いてみると、更に謎が深まります。
Excelに置き換えてみる
見慣れているスプレッドシート(Excelなど)に置き換えてみると、少し理解しやすくなります。
データテーブルはExcelで表現すると「行」の部分に該当していて、実は「列」に該当する部分は「構造体」で定義する必要があります。
つまり[行構造の選択]画面では「列」で利用する構造体を指定します。
構造体を作成
スプレッドシート(Excelなど)の「列」部分になる[構造体]を作成していきます。
1.[コンテンツドロワー]を開いて空いている場所で右クリックして表示されたポップアップメニューで[ブループリント|構造体]を選択します。
2. 追加された[構造体]の名前を “ST_Item” に変更します。
3.[ST_Item]を開いて[変数を追加]して[名前]と[型]を設定していきます。
ここまでの作業を保存します。
構造体の[名前]部分はスプレッドシートで考えると「列名」のような感じになります。
データテーブルを作成
スプレッドシート(Excelなど)の「行」部分になる[データテーブル]を作成していきます。
1.[コンテンツドロワー]を開いて空いている場所で右クリックして表示されたポップアップメニューで[その他|データテーブル]を選択します。
2. 表示された[行構造を選択]の一覧で “ST_Item” を検索して選択します。
3. 追加された[データテーブル]の名前を “DT_Item” に変更します。
4.[DT_Item]を開いて[追加]をクリックして[構造体]で作成した[型]に沿ってデータの入力ができます。
4.[マテリアル]や[テクスチャ]を設定しているとウィジェットブループリントの[詳細]画面のようにファイルを選択する一覧から選択できます。
ここまでの作業を保存します。
重要な[行の名前]列
[データテーブル]で重要になるのが[行の名前]部分です。
[構造体]の定義に関係なく「列」の左端に追加され「行」を特定するための値として利用できます。(下のイメージでは[0]や[1]が設定されている部分)
データテーブルを操作するノード
イベントなどでデータテーブルを取り扱うノードは、そんなに多くありません。
[Get Data Table Row]ノード
データテーブルから[行の名前]を指定して1行を出力します。
スプレッドシートで表現すると、こんな感じ。データベースのテーブルから1行を取得する基本的な処理です。
[Out Row]ピンは[構造体]ピンになっていて、分割することができます。
こんな感じで[構造体]で定義した[型]に分割して[列]の値を取り出すことが可能です。
[Get Data Table Row Names]ノード
データテーブルから[行の名前]をすべて取得します。
スプレッドシートで表現すると、こんな感じ。[列の名前]が分からない場合でも配列構造で取り出して、ループ処理で全行を取得できるようになります。
[Get Data Table Column as String]ノード
データテーブルから[列の名前](構造体で定義した[名前]部分)を指定して1列を出力します。特定の[列]だけで処理したい場合に使えます。
スプレッドシートで表現すると、こんな感じ。特定の列をすべて取得する処理です。
まとめ
今回は、Unreal Engineの[データテーブル]と[構造体]について作成方法と使い方について書きました。
[データテーブル]を作成する際に表示される[行構造の選択]画面や、[行の名前]などデータベースの[テーブル]とは少し違う部分があります。
Unreal Engineの関数で[データテーブル]について使い方が知りたい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。