0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

点群データをUE4でボクセル表示 その1:色を変更できるキューブを作る

はじめに

旧都城市民会館の点群データが研究や教材としての活用や、クリエーターによる自由な創作活動に繋がるようオープンソースとして公開されています。
そのデータを使って「点群データをHoudiniでボクセル表示する」で紹介した方法でボクセル市民会館を作ったのがこちら

その後、「HoudiniのアトリビュートをCSV Exporterで書き出す」ことができたので、今回はそのCSVをUE4で読み込んでボクセル化して、その中を自由に歩き回りたいと思います。
image.png

環境

UnrealEngine 4.22.3

ボクセルの色を変える方法を考える

ブループリントでマテリアルを変更する方法はUE4のチュートリアルにも情報がありました。でも変えたい色がたくさんあるときはどうするんだろう?色の種類の数だけマテリアルを作るの?と調べていたら、MozPacaさんのブログ「UE4初心者が頑張ってるブログ UE4 マテリアルの色をランダムに変更する」にたどりつきました。
この内容を参考にさせていただき、ランダムではなく指定色に変更できるブループリントを作成しました。

Materialを作る

VoxelColor_MTという名前でMaterialを作成。Vector Parameter をBaseColorという名前で作成しベースカラーに繋げます。
image.png

ボクセルのブループリントを作る

Actorを親クラスとして Voxel_BP という名前でブループリントを作成。コンポーネントを追加からキューブを追加し、このキューブのマテリアルを先ほど作成したVoxelColor_MTに変更します。可動性をスタティックにしておきます
image.png

Construction Script

Voxel_BPのConstruction Scriptに下記のノードを作成。Set Vector Parameter Value の Parameter Name にはマテリアルを作成したときにつけた Vector Parameter の名前 BaseColor を入力します。Value ピンを引き出して変数へ昇格し、変数名を VoxelColorにし、インスタンス編集にチェックを入れます
image.png

Voxel_BPの動作確認

レベルにVoxel_BP をいくつか配置して VoxelColor を変更できるか動作確認
image.png
自由に色を変更できるキューブができました。次はCSVデータをUE4に読み込んでいきます

UE4にCSVデータを読み込む

読み込むCSVデータ

今回読み込むCSVデータはHoudiniで点群データを整理しHoudiniのアトリビュートをCSV Exporterで書き出したものです。
ID:0からの連番、Px,Py,Pz:座標値、Cdx,Cdy,Cdz:RGBカラー を表しています。
image.png

構造体を作成する

コンテンツブラウザの新規作成 > ブループリントから構造体を作成し、名前をVoxelTable_STRとしました。VoxelTable_STRを開き次のように設定します。すべてFloat型です
image.png

CSVファイルを読み込む

CSVファイルをコンテンツブラウザにドロップすると下記のダイアログが表示されるので、先ほど作成したVoxelTable_STRを選んでOKを押します。
image.png
コンテンツブラウザ内にデータテーブルが作成されるので開いて確認すると
image.png
無事に読み込まれていました。

つづく!

次はテーブルの座標値と色情報を使ってVoxel_BPをレベルに並べていきます。
点群データをUE4でボクセル表示 その2:Blutilityでボクセルを配置する

参考

UE4初心者が頑張ってるブログ UE4 マテリアルの色をランダムに変更する
ヒストリアさんのブログ [UE4] CSVデータを扱う方法 DataTable編
旧都城市民会館の点群データが完成!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?