トマシープが学ぶ

Unity/VR好きのミーハー初心者 記事内容は自分用のメモ。何も求めないで

VFXGraphを触る+点群読み込みたかった【Unity】

粒子がわ〜となってるやつという知識しかなかった。パーティクルにそんなに興味がなかったので触れてなかったけど、こちらのツイートを見て触りたくなった。

VFX導入

私は未来を生きているので普通にUnity2020を使います。

qiita.com

HDRPでプロジェクト作ります。

2020だと既にPackageが入ってて、Create>Visual Effects>Visual Effect GraphでNew VFXができました

f:id:bibinbaleo:20191217181756p:plain

シーンに置いたら黒いものがモクモクしています。

f:id:bibinbaleo:20191217182354p:plain

インスペクタでEditを押したら画面が開きます

f:id:bibinbaleo:20191217181915p:plain

ノードで作っていくのかな?

f:id:bibinbaleo:20191217182033p:plain

点群データ

一番最初のツイートでもされてた、点群データをVFXGraphで操る

こちらの記事を追っていきます。

lilea.net

以下ほとんどこちらの記事と同じです。

点群データを持ってくる

ただ、まず点群データがない。

いやフォトグラメトリした過程で作られて、多分吐き出せるんだろうけど知らない。

形式も色々あるみたい。下で配布されているデータはptsだって

3dcel.com

昔Tangoでスキャンしたときはply形式だって

bibinbaleo.hatenablog.com

とりあえず上の都市データをダウンロードします。

f:id:bibinbaleo:20191217183617p:plain

CloudCompare

こちらのソフトでデータの変換をします

www.danielgm.net

こんな画面

f:id:bibinbaleo:20191217183621p:plain

さっきのptsファイルをドラックして読み込む

f:id:bibinbaleo:20191217183613p:plain

4番のScalarをIgnoreにする

f:id:bibinbaleo:20191217183610p:plain

Apply!

この画面はNo

f:id:bibinbaleo:20191217183607p:plain

データ見れた!

f:id:bibinbaleo:20191217184542p:plain

ここでデータの状態を見れる

f:id:bibinbaleo:20191217184641p:plain

Box Centerみあたらない

とりあえず記事に書いてある通りに位置ずらした。

f:id:bibinbaleo:20191217184748p:plain

そしてsave

ASCII cloud形式で保存。拡張子をpcacheにする

f:id:bibinbaleo:20191217184539p:plain

一番上を4にする。Save color(0~1)にチェックを入れる

f:id:bibinbaleo:20191217184537p:plain

txtなのにめっちゃ時間かかる。

txtなのにこんなサイズになるの!?

f:id:bibinbaleo:20191217190553p:plain

ファイル分割

サイズが大きすぎるので1GB以下ぐらいにしないといけない。

CloudCompareで間引く

www.youtube.com

赤と青の点のマークを押す

f:id:bibinbaleo:20191217193914p:plain

スライダーを操作したら間引きできる。

f:id:bibinbaleo:20191217193911p:plain

やりすぎて35KBになっちゃった

f:id:bibinbaleo:20191217194410p:plain

テキストの編集

開くのはVSCodeやメモ帳だと開けなかった。

おすすめされているEmEditorというのをダウンロードして開いたら一瞬だった。

jp.emeditor.com

f:id:bibinbaleo:20191217190448p:plain

一番最初に下のヘッダーを付けたらいいらしい

pcache
format ascii 1.0
comment Exported from CloudCompare
elements 599
property float position.x
property float position.z
property float position.y
property float color.x
property float color.y
property float color.z
end_header

Elementは行数ヘッダー分は抜く

(保存するとき形式を選ばされた。)

Unityに読み込む

ちゃんとなっていればUnityに読み込んだ時にアイコンが付く。

f:id:bibinbaleo:20191217194057p:plain

私はヘッダーの行数が間違っていて何度もうまく読み込めなかった。

エラーちゃんと出てた

f:id:bibinbaleo:20191217200232p:plain

VFXGraphにセット

ノードの画面で右クリック>Create Block

f:id:bibinbaleo:20191217194052p:plain

検索でPointCache。そしてさっきのファイルをセット

f:id:bibinbaleo:20191217194055p:plain

あとはノードにつないでいい感じに表示したらいいらしい。

f:id:bibinbaleo:20191217194048p:plain

できません!!!!

 

f:id:bibinbaleo:20191217201040p:plain

f:id:bibinbaleo:20191217201037p:plain

表示されない!変な位置にいるから表示されてないのか、ノード組み方間違ってるのか分からないけど、シーンで表示されない。

まずはVFX学ぶところからやらないといけないのかな・・・

それかいい感じの点群のファイルを用意しないと

 

なんか一つは生成されてた。

f:id:bibinbaleo:20191217200733p:plain

点群のノードをつなげなかったらなんか生成されてた。

f:id:bibinbaleo:20191217200730p:plain

最後に

サンプルのpcacheファイルも読み込めない

pcache

format ascii 1.0

comment Test

elements 8

property float position.x

property float position.z

property float position.y

property float color.x

property float color.y

property float color.z

end_header

-0.5 0.3 -0.2 0.2 1 1

0.3 -0.5 0.2 1 0.2 1

0.5 0.4 -0.1 1 0.4 1

-0.1 0.5 0.5 1 0.2 1

-0.4 -0.5 0.2 1 1 1

-0.3 0.4 0.5 0.2 0.2 0.1

-0.5 0.4 0.2 1 1 1

0.5 -0.3 -0.3 1 1 1