未来を創る、テックコミュニティー

代表技術通信~Unityで点群表示、Oculus Questで表示⑦ DMM点群をVFXでいじる(2)

草場代表
2020/09/23

こんばんは。代表の草場です。

前回の続きです。やり方は点群芸大の龍さんの「Visual Effect Graphで点群表示 | Point Cacheファイルの作り方」をもとに実施させてもらいました。
やることは以下です。
1.点群データをVFX Graph用のPoint Cacheファイルに変換する
2.VFX GraphでPoint Cacheを読み込み

2の希望が見えたので、龍さんの動画で勉強しながら進めます。VFXのブロックの名前が違ったりしますが、後ほど調整します。

環境

OS:Windows 10
Unity:2019.4.10f1
点群データ:DMM.make AKIBA。約1億1千万点。約2GB。plyファイル。

パッケージ

Visual Effect Graph:7.3.1
High Definition RP:7.3.1

前回のVFXのセットアップは以下の感じ。

それぞれいじっていきます。
Spawnはパーティクルを放出するブロックで、このままのSingle BurstでOK。定まった静的なパーティクルを扱うため、だそうです。毎フレームパーティクルを処理するような処理を今回は起こさないため。Countは点の数だろう、ということで、5000000設定しなおしました。

Initialize Particle部分は、Capacityが含まれるパーティクルの量、ということで5000000に設定。形が出てきました。

Boundが視界の中にある時にだけパーティクルが表示されるそうです。そのため、このBoundsがあまりに小さいと視界に入ったときに表示されません。そこで、大きめに取ります。今回は1000(1km四方)に設定しています。

用意したポイントキャッシュから座標と色をとってきます。前回の記事では色に関しては設定していないので、今回作りました。Initializeのコンテキストを選択し、右クリックで「Create Block」をクリック、検索窓で「Set Color from Map」と検索、選択します。Set Color from MapはMapから色をセットするブロックです。Point CacheのAttributeMap : Colorと、Initialize ParticleのSet Color from MapのAttribute Colorを接続します。Set Color from MapはMapから色をセットするブロックなので、Point Cacheに設定したDMMのpcacheファイルのポイントから色情報を設定します。

Update Particleは毎フレームの処理です。今回はパーティクルをみるだけなので、オフにしました。パーティクルを動かしたいときはオンにします。

DMM出現が出現しました!!!

最後のOutput Particle Quadで描画の仕方を設定します。
Output Particle Quadを選択した状態で右クリック、Create Blockクリック、Orientを検索、Orient face Camera Planeを選択します。これは何のためかわからず。
Output Particle Quadを選択した状態で右クリック、Create Blockクリック、Set Scaleを検索、Set Scale XYZを選択します。

Main Textureをいじるために、Texture 2Dブロックを作ります。VFXの何もない所で右クリック、Create Node、検索窓でTexture 2Dと入力、Texture 2Dを選択します。Texture 2DブロックとOutput Particle QuadのMain Textureを接続。これでパーティクルの形を変えることができます。Texture 2Dブロックの⦿をクリックすると選べます。例えば、以下の形。

パーティクルのサイズをいじるために、floatブロックを作ります。VFXの何もない所で右クリック、Create Node、検索窓でfloatと入力、floatを選択します。floatブロックとOutput Particle QuadのSet Scale.XYZのfloatを接続。パーティクルがあまりに小さいときはfloat大きくします。

できた!!!

DMM マインクラフト風。

 

この記事を書いた人
草場代表
エディター