こんにちは~!新入社員のタケです!
皆さん、Unityで星空を表現したいときはどのように作りますか?
スカイボックスもいいけれど…?
今回はスカイボックスをどうしても使いたくなかったのでパーティクルで星空を作っていきます!
どういうこと…?と思うかもしれませんが、まずは完成した星空を見ていただきましょう!
このようにキラキラアニメーションしている星空を作ることができます。
工夫次第では動画のような流れ星も付けることができますよ!
では早速仕組みを見ていきましょう。
まずはShapeでHemisphere(半球状)にパーティクルを放出させます。
これでドームの形にパーティクルが広がってくれるので中から見ると星空っぽくなりますね。
Radiusも広げて周囲の山などにかぶらないようにしておきましょう。
Emissionの中のRate over Timeは一秒間にいくつパーティクルを出すか?という設定です。
この綺麗な星空を作り出すには1秒間に1200個ものパーティクルを出しているのですね~
このままではあっという間にMax Particlesの上限に来てしまうので私は5000くらいにしてみました。
これで大体5000個くらいのパーティクルがずっと出てくるので空いっぱいに星が広がりましたね。
星は基本的に止まっているように見えるのでStart Speedは0にしておきましょう。
LifeTimeやSizeはRandom between two constraints機能を使って二つの値の中からランダムに選ぶようにしておくと、それぞれの星のサイズ等がバラバラになってくれるので自然になります。
StartColorを変えるとたまに赤色の星や青色の星を出したりできるので、より夜空っぽくなります。
他にはSize over Lifetimeを使ってサイズを大きくなったり小さくなったりするアニメーションを作り、星のキラキラを演出します。
これで完成です!
周囲よりも大きな星はこのパーティクルを複製して出てくるパーティクルの数を減らし、Start Sizeを大きくすると作れます!
組み合わせるとぐっと星空感がアップしますよ!
…
パーティクルが常に5000個近くで続ける状態なのですが、意外とVRでも重くなることはありませんでした。
不安ならもう少し減らしてあげてもOKかもしれないですね!見た目を見ながら調整していきましょう。
とっても素敵です!
返信削除ありがとうございます!