開発
Unityでパーティクルシステム
Masanori Akiyama
こんにちは、アルバイトの秋山です。会津はもう寒くなってきました。こんなとき暖かい炎でもあったらあったまれますよね…。 でもそんな簡単に炎なんてないですよね。でも、ないなら作ろう!これぞエンジニア思考!
「Unityでパーティクルシステムをつくってみる!」
まず、パーティクルシステムとはなんなのかという話です。パーティクルシステムとは、コンピュータグラフィック技術の一つで、本来再現しにくいものをシュミレートするために使われる技術です。例をあげると、炎や爆発、花火、雨などがあげられます。
Unityではパーティクルシステムを簡単につくることができる機能があります。その名も、Shurikenです!
このような感じで、左がパーティクルシステムのプレビューで、右がパーティクルシステムのプロパティです。プロパティは様々な種類があり、ここでパーティクルの寿命や色、形などを決めることができます。
まず、RendererにあるMaterialを変えます。今回は自分が適当に描いたこの画像を使ってみます。
この画像をマテリアルにセットし、RendererのMaterialにします。そうするとパーティクルがこの画像の白い部分の形となります。これに色をつけて炎のようにみせてみます。
Color over Lifetime プロパティのチェック欄にチェックをつけ、長方形をクリックします。すると下のようなウィンドウがでてきます。
このウィンドウはペイントソフトを使っている人だったらなんとなくわかるかもしれませんが、グラデーションのためのウインドウです。時間が経つにつれて左から右の色に変わっていきます。はじめは黄色で、時間が経つにつれて赤くなっていくようにして炎のようにしています。
どんどんプロパティをいじっていきます↓
・EmissionのRateの値を1000くらいにします。この値が大きいほど発生するパーティクルの数が多くなります。
・ShapeのAngleを6.8くらいにし、Radiusを0.7くらいにします。ShapeはEmitterの形を設定します。CircleやBoxなど様々な形があり、その形により異なる項目があります。
・Main のStart Lifetimeの設定をRandom Between Two Constants にし、左の値を0.5、右の値を1に設定します。これでこの値の間の値をランダムで取得し、その値がパーティクル自体の存在時間となります。
・同じくMain のStart Speed の設定をRandom Between Two Constants にし、左の値を0、右の値を5にします。これで初速度がランダムできまります。
・Rotation over Lifetime の設定をRandom Between Two Constantsにし、左の値を−45、右の値を45にします。これで時間が経つにつれてパーティクルが回転するようになります。
これで設定は終わりました。シーンをみてみると、
といった感じで、炎っぽくなりました!
UnityのShurikenについてかいてある本はあまりないので、やって覚えていく感じだと思います。
一冊だけShurikenについての本を読んだことがありますが、結局センスなのかなと感じました。。。デザインセンスほしい。
最近ゲームエフェクトをつくるソフトウェアをもらったので、そちらの研究もしていきたいと思います。また進捗あったらのせます!それではっ