ICS MEDIAではUnity 5.5 (2016年11月30日リリース)の目玉の1つであるパーティクルシステムの新機能に注目し、新機能をふんだんに使ったエフェクトの作り方を解説します。普段Unityに触れない方でも、エフェクトの作り方を通して3DCG制作やWebGL開発のヒントにしていただければ嬉しいです。
今回のお題:滝の表現
サンプルファイルをダウンロードして、記事と照らし合わせながら進められます。各エフェクトのパラメーター設定値などはサンプルファイルを直接ご覧ください。
今回紹介するテクニック
- [Trails(軌跡)]モジュールを使ったリボンの表現
- [Shape(シェイプ)]モジュールを使った滝の表現
- [Sub Emitters(子要素)]モジュールを使った水しぶきの表現
- [Noise(ノイズ)]モジュールを使った揺らぎの表現
サンプルファイルのダウンロード
Trails(軌跡)モジュールを使ったリボンの表現
Unity 5.5で追加された新機能[Trails(軌跡)]モジュールを使うとパーティクルの粒子に軌跡(リボン)を付けられます。
リボンの作り方
たとえば噴水の粒子の動きをパーティクルで作った後、[Trails(軌跡)]モジュールを追加すると、粒子の移動曲線に沿ったリボンを簡単に作成できます。
- まずはヒエラルキーウィンドウでParticle System(パーティクルシステム)を作成します。
- 次にインスペクターの[Trails(軌跡)]モジュールをONにします。 ※この時点でパーティクルに軌跡が追加されます。
- 最後に[Renderer(レンダラー)]モジュールの[Trail Material(軌跡のマテリアル)]に、お好みのリボンのマテリアルを設定すれば完成です。
リボン作りのヒント
- リボンの長さは[Trails(軌跡)]モジュールの[Lifetime(生存時間)]の値で設定しよう。
- リボンの太さは[Trails(軌跡)]モジュールの[Width over Trail(軌跡の幅)]の値で設定しよう。
- リボンの太さを先細りさせたいときは、[Width over Trail(軌跡の幅)]からパラメーター曲線を調整しよう。ディテールアップにオススメ。
- リボンの曲線を滑らかにしたいときは、[Trails(軌跡)]モジュールの[Minimun Vertex Distance(最小頂点距離)]の値を小さくしよう。
※リボンを構成する頂点の距離が短くなるため - マテリアルの[Tiling(タイリング)]プロパティを調整して、リボンの模様に変化を付けよう。
Shape(シェイプ)モジュールによる滝の表現
滝の作り方
[Shape(シェイプ)]モジュールを使い、滝に見えるようにパーティクルの放出位置を調整します。 このモジュールを利用すると、球体や立方体、さらには特定のメッシュ形状(3Dモデル)からパーティクルを放出できます。
- リボンのParticle Systemを選択し、[Shape(シェイプ)]モジュールの[Shape]プロパティを[Edge(エッジ)]に切り替えます。
- パーティクルが一方向に噴出されるので、角度を調整します。
- [Renderer(レンダラー)]モジュールで水のマテリアルを設定します。
- 水マテリアルのShaderを[Particle/Additive(Soft) 加算効果]に設定します。
Sub Emitters(子要素)モジュールを使った水しぶきの表現
リボンを使った滝の動きができたところで、次に水しぶきの表現を追加します。今回は[Sub Emitters(子要素)]モジュールを使ってみましょう。
水しぶきの作り方
リボンの子要素として水しぶきを設定し、滝のところどころで水しぶきが吹き上がる表現を作成します。
- ヒエラルキーウィンドウでParticle System(パーティクルシステム)を作成します。このパーティクルが水しぶきの一塊(20粒程度のパーティクル)となります。
- 水しぶきの一塊をイメージしながら動きを調整します。
- 先ほど作成したリボンのパーティクルを選択し、[Sub Emitters(子要素)]モジュールに水しぶきのパーティクルを設定します。これにより親子関係が設定され、滝の各所から水しぶきが吹き上がる表現となります。
水しぶき作りのヒント
- 粒子の大きさにばらつきを持たせてリアリティを出そう。
- 粒子が移動する動きを早めたいときは、パーティクルシステムの[Simulation Speed(シミュレーションスピード)]の値を上げて調整しよう。
- 粒子が消失する動きは、パーティクルシステムの[Size over Lifetime(生存時のサイズ変化)]モジュールで設定しよう。※透明度を操作するより、大きさを変える方がパフォーマンスにも優しい。
Noise(ノイズ)モジュールを使った揺らぎの表現
[Noise(ノイズ)]モジュールを使うとパーティクルの動きに揺らぎを加えられます。今回はリボンの曲線に揺らぎをつけてみましょう。水独特のなめらかな質感を加えられます。
揺らぎの作り方
揺らぎのつけ方は、[Noise(ノイズ)]モジュールをONにするだけ。いたって簡単です。
- 作成した滝のParticle Systemを選択し、インスペクターから[Noise(ノイズ)]モジュールをONにします。
- ノイズの各パラメーターを調整してお好みのノイズを作成します。
揺らぎ作りのヒント
ノイズを加える際、まずは[Strength(強度)]と[Frequency(振動数)]のパラメーターを調整すると良いでしょう。
- 揺らぎの大まかな形状は、[Strength(強度)]パラメーターで調整しよう。
- 揺らぎを細かくしたいときは、[Frequency(振動数)]パラメーターを大きくしよう。
- 揺らぎを特定の方向に絞りたいときは、[Separate Axes(XYZ軸別に調整)]のチェックをONにした後、各軸の値を0にするとその方向へのノイズは適用されません。値を強くするとノイズが強まります。
[Strength(強度)]と[Frequency(振動数)]を変えるとさまざまなノイズを作成できます。
終わりに
「Unity公式サイトのロードマップ」によると、次回アップデート(2017年3月 Unity 5.6)でもパーティクルシステムの改善が予定され、今後の発展が期待できます。
ICS MEDIAではUnityを使ったエフェクト作成の記事を連載していく予定です。ぜひお楽しみに。