takeda_san’s blog

JavaFXと機械学習を頑張る方向。

VRで焚火を眺めたい その1(焚火を作る編)

なぜつくるのか

焚火をぼんやり眺めるのが好きなので。
あと、Unityのパーティクルの勉強もかねて。

初手Standard Asset

火ってStandard Assetにありそうよね。
とおもってインポートしてみたら、本当にあった。

  • FIreMobile
    松明っぽい。
    f:id:takeda_san:20180217142030g:plain

  • FIreComplex
    火の魔法みたい。
    f:id:takeda_san:20180217142155g:plain

んー、素晴らしいクオリティ。
これを使ってもいいけどお勉強のために自分でも作ってみよう。

火の表現

火というか、エフェクトはパーティクルを使って作るらしい。
Unityのパーティクルでエフェクトを演出 - Qiita

ありがとう、先人の方
Unity パーティクル(2) 炎のエフェクト 松明風と某悪魔風 - LemonteaのUnity部屋

  • パーティクルを追加して
    Create -> Effects -> Particle System f:id:takeda_san:20180217163926p:plain

  • 火っぽい色にして
    Inspector -> Start Color f:id:takeda_san:20180217163930p:plain

  • たくさん粒子を出すようにする
    一度に出る粒子数を指定できる。
    Inspector -> Emission -> Rate over Time f:id:takeda_san:20180217163934p:plain

  • 粒子をもやっとした画像にする
    RendererのMaterialに任意のテクスチャが設定できる。
    Inspector -> Renderer -> Material f:id:takeda_san:20180217164627p:plain

ここまでの途中経過。
火事だこれ。
f:id:takeda_san:20180217164905g:plain

  • 粒子の消えるまでの期間を短く、初速を遅くする
    Inspector -> Start Lifetime
    Inspector -> Start Speed

  • 粒子を時間が経つごとに小さくする
    このグラフの縦軸が粒子の大きさ、横軸が時間の経過。
    Inspector -> Size over Lifetime -> Size
    f:id:takeda_san:20180217170000p:plain

  • 粒子がゆらゆら動くようにする
    Noiseを設定することで、今まで放射状に出ていた粒子が不規則に動くようになる。
    Unity5.5 パーティクルシステム | ギャップロ

Inspector -> Noise
f:id:takeda_san:20180217171437p:plain

  • 最後にちょっと調整
    最初の粒子の大きさがちょっと小さくて燃えてる感がないので調整。
    Inspector -> Start size

できた(1回目)

だいぶ火っぽい。
(焚火とはいいがたい燃え方に目をそらしつつ)
f:id:takeda_san:20180217171610g:plain

風にゆらめく感を出したい

風にゆらめく火は良いものだ。
さすがに、これは自分でスクリプト書かないとないでしょ。

WindZone。あるね。うん、何でもあるね。
Wind Zone - Unity マニュアル

  • WindZoneを追加
    WIndZoneで任意の方向に風を吹かせることができる。
    Modeで吸い込むか吐き出すかを指定できる。
    Directional-> 一方向の風/Spherical-> 球の中心から外側への風
    Create -> 3D Object -> Wind Zone
    f:id:takeda_san:20180217174336p:plain

  • particleがWindZoneの影響を受けるようにする
    External Forcesにチェックを受けると外部からの影響を受けるようになるようだ。
    Multiplierの数値を調整することで影響を受ける度合いを変えることができる。
    Inspector -> Multiplier
    f:id:takeda_san:20180217174734p:plain

できた(2回目)

すごいきょうふうだ。
f:id:takeda_san:20180217174830g:plain

よし、焚火をつくろう

パーティクルを""""完全に理解した""""ので、アセットを組み合わせて焚火を作ろう。

使ったもの

  • Camfire Pack(modelBonfire)
  • Standard Asset(FIreComplex)

いろいろ試したんだけど結局、Sandard Asset最高ってやつです。

できた(3回目)

f:id:takeda_san:20180217214820g:plain

変えたのは、FIreComplexの中のSparksFallingの個数を2に変更したぐらい。
火の粉がぱちぱち飛んで危なそうだったので。
f:id:takeda_san:20180217215140p:plain

次回やることと課題

今回パーティクルで作ったんだけれども、この焚火上から見ると平面なのよね。
f:id:takeda_san:20180217215503p:plain

火のテクスチャをアニメーションさせて表示しているので、側面からなら常に正面の絵を表示すればよいけど、 真上から見たときの絵がないのよね。
次回は実際にHMDで見えるようにして、確認してみる。
あと、マシュマロ焼けるようにする。