#はじめに
旧都城市民会館の点群データが研究や教材としての活用や、クリエーターによる自由な創作活動に繋がるようオープンソースとして公開されています。
そのデータを使って「点群データをHoudiniでボクセル表示する」で紹介した方法でボクセル市民会館を作ったのがこちら
ボクセル市民会館からの点群市民会館からのボクセル市民会館
— reisyu (@reisyu1) September 11, 2019
旧都城市民会館の汎用版点群データがオープンソースとして公開されました!#3DDA #旧都城市民会館 #Houdini pic.twitter.com/mp7q5jCeBm
その後、「HoudiniのアトリビュートをCSV Exporterで書き出す」ことができたので、今回はそのCSVをUE4で読み込んでボクセル化して、その中を自由に歩き回りたいと思います。
#環境
UnrealEngine 4.22.3
#ボクセルの色を変える方法を考える
ブループリントでマテリアルを変更する方法はUE4のチュートリアルにも情報がありました。でも変えたい色がたくさんあるときはどうするんだろう?色の種類の数だけマテリアルを作るの?と調べていたら、MozPacaさんのブログ「UE4初心者が頑張ってるブログ UE4 マテリアルの色をランダムに変更する」にたどりつきました。
この内容を参考にさせていただき、ランダムではなく指定色に変更できるブループリントを作成しました。
Materialを作る
VoxelColor_MT
という名前でMaterialを作成。Vector Parameter をBaseColor
という名前で作成しベースカラーに繋げます。
##ボクセルのブループリントを作る
Actorを親クラスとして Voxel_BP
という名前でブループリントを作成。コンポーネントを追加からキューブを追加し、このキューブのマテリアルを先ほど作成したVoxelColor_MT
に変更します。可動性をスタティックにしておきます
##Construction Script
Voxel_BP
のConstruction Scriptに下記のノードを作成。Set Vector Parameter Value の Parameter Name にはマテリアルを作成したときにつけた Vector Parameter の名前 BaseColor
を入力します。Value ピンを引き出して変数へ昇格し、変数名を VoxelColor
にし、インスタンス編集にチェックを入れます
##Voxel_BPの動作確認
レベルにVoxel_BP をいくつか配置して VoxelColor を変更できるか動作確認
自由に色を変更できるキューブができました。次はCSVデータをUE4に読み込んでいきます
#UE4にCSVデータを読み込む
##読み込むCSVデータ
今回読み込むCSVデータはHoudiniで点群データを整理し、HoudiniのアトリビュートをCSV Exporterで書き出したものです。
ID:0からの連番、Px,Py,Pz:座標値、Cdx,Cdy,Cdz:RGBカラー を表しています。
##構造体を作成する
コンテンツブラウザの新規作成 > ブループリントから構造体を作成し、名前をVoxelTable_STR
としました。VoxelTable_STR
を開き次のように設定します。すべてFloat型です
##CSVファイルを読み込む
CSVファイルをコンテンツブラウザにドロップすると下記のダイアログが表示されるので、先ほど作成したVoxelTable_STR
を選んでOKを押します。
コンテンツブラウザ内にデータテーブルが作成されるので開いて確認すると
無事に読み込まれていました。
#つづく!
次はテーブルの座標値と色情報を使ってVoxel_BPをレベルに並べていきます。
点群データをUE4でボクセル表示 その2:Blutilityでボクセルを配置する
#参考
UE4初心者が頑張ってるブログ UE4 マテリアルの色をランダムに変更する
ヒストリアさんのブログ [UE4] CSVデータを扱う方法 DataTable編
旧都城市民会館の点群データが完成!