fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 CSVファイルを使う(Data Table、Get Data Table Row 構造体、Break 構造体)

UE4でCSVファイルを扱う方法です。

詳しい説明は historia さんのサイトが参考になります!

・[UE4] CSVデータを扱う方法 DataTable編
http://historia.co.jp/archives/779

さて、UE4でCSVファイルを扱う方法は
「Data Table」と「Curve Table」の二種類があるようです。

DataTableはデータの構造をfloat, int, bool, stringなどの組み合わせで自由にカスタマイズすることができ、
CurveTableはfloat型のみの対応ですが、データ間を自動で補間してくれるため、難易度の調整などに役立ちます。

とのことなので、今回は純粋なデータである「Data Table」を使おうと思います。

まずは、CSVで扱う用の構造体を定義します。
CSV002.jpg
こんな感じですね。

あとは、この構造体にあったCSVファイルを用意します。
CSV001.jpg

こちらもこんな感じのファイルになります。
一番上の行はメンバ変数名を記述するようです。
2行目以降の各行の最初は行の名前をつけるようにします。
なので、1列目の1行目は空白、2行目以降は行データの名前になります。

あとはこのCSVファイルをインポートします。
コンテンツにCSVファイルをドロップすると以下のようなウィンドウがでます。
CSV005.jpg
このCSVファイルをどの構造体に割り当てるかの選択がでるので
「データテーブルの列の種類を選択」のところを、先ほど作った構造体を指定しましょう。

そうすると無事インポートが完了し、
データテーブルをダブルクリックすると中身にデータがインポートされていることがわかります。
CSV003.jpg

余談ですが、構造体の中に構造体がある場合のCSVの定義方法は
(メンバ変数名=値)
といった風に記述するようですね。
ベクトルであれば「"(X=1.0,Y=2.0,Z=3.0)"」こんな感じになります。

ベクトルメンバのCSVの書き方はここを参考にしました。

・Importing Vectors into Data Tables
https://answers.unrealengine.com/questions/177653/importing-vectors-into-data-tables.html

あとは、ブループリントでこのデータテーブルを扱います。
「Get Data Table Row」ノードの値に作成したデータテーブルを指定します。
CSV000.jpg
Row Name には各行につけた行の名前を指定します。
そして、各メンバ変数にアクセスするには「Break 構造体名」ノードを使います。
これで色々そのメンバにアクセスすることができました。

ゲームを作るには外部で作成したテーブルを使うことが多いので、
静的なデータとしてはこの機能があれば十分そうですね。

| UE4 | 20:24 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/203-8cc0f9a5

TRACKBACK

PREV | PAGE-SELECT | NEXT