【Unity】パーティクルシステムを利用してゴッドレイを表現する

この記事ではUnityのデフォルトの機能であるパーティクルシステムを利用して、太陽の光芒(=ゴッドレイ)を表現する方法を説明します。
神秘的な自然現象を模すことで、シーンにエモーショナルな印象を付与できます。
一見するとボリューメトリックなライト表現に見えますが、すべてパーティクルです。

サンプル

今回はゴッドレイを紹介するために朽ちた遺跡のシーンを制作しました。
さびれた遺跡にゴッドレイがあることで、神秘的な印象になっています。
シーン自体の説明はしませんが、シーン制作にあたって使用したアセットは下記になります。
AllSky以外は無料のアセットです。

ゴッドレイを作成する

ゴッドレイのパーティクル

ゴッドレイのパーティクル

まずはゴッドレイを表現するパーティクルを作成します。
太陽光のようにゆらゆらと揺らめく光芒になることを目標にします。

パーティクルの新規作成

パーティクルを新規作成する

パーティクルを新規作成する

ヒエラルキーウィンドウ上で右クリック > Effects > Particle Systemを選択し、パーティクルを新規作成します。

インスペクターで編集する(名前の変更)

インスペクターで編集する(名前の変更)

パーティクルを作成したら、インスペクターウィンドウでパラメータを編集していきます。
パーティクルの名前はそのままでも問題ありませんが、わかりやすいように変更しておくとよいでしょう。
ここでは「Godray」とします。

Mainモジュールの編集

Mainモジュールを編集する

Mainモジュールを編集する

Mainモジュールは、パーティクルの基本的な設定を編集できます。
パラメータを変更する場所は下記を参照ください。

ParametersValue
PrewarmOn
Start Lifetime5
Start Speed500
Start Size50
Simulation Speed0.1
Max Particles100
  • Prewarm…Loopingが適用されている場合に選択できます。これが適用とされていると初めから描画された状態で繰り返しされます。
  • Start Lifetime…パーティクルが発生してから消滅するまでの寿命です。数値が大きいほど長く表示されます。
  • Start Speed…パーティクルが移動する速さです。数値が大きいほど速くなります。
  • Start Size…パーティクルのサイズです。数値が大きいほど大きくなります。
  • Simulation Speed…パーティクルの再生速度です。数値が大きいほど速くなります。
  • Max Particles…表示されるパーティクルの最大数です。数値が大きいほど多くのパーティクルを表示できます。

Emissionモジュールの編集

Emissionはデフォルトのままで問題ないので、チェックボックスがオンになっているのを確認して次の項目を編集してください。

Shapeモジュールの編集

Shapeモジュールを編集する

Shapeモジュールを編集する

Shapeモジュールは、パーティクルの形状を設定できるモジュールです。
数値を変更する場所は下記を参照ください。

ParametersValue
ShapeCone
Radius50
  • Shape…パーティクルが放出される形を選択します。デフォルトのConeのままで問題ないです。
  • Radius…ShapeがConeが適用されている場合の、円の半径を設定します。数値が大きいほど半径が大きくなります。

Color over Lifetimeモジュールの編集

Color over Lifetimeモジュールは、パーティクルの寿命のサイクル内で色が変化していくように設定できるモジュールです。
太陽光らしさを表現するために、透明から白になりまた透明になっていくような設定にします。

チェックボックスをオンにしてColorの部分をクリックすると、Gradient Editorという色を編集するエディターが表示されます。

Color over Timeモジュールを編集する

Color over Lifetimeモジュールを編集する

スライダー上部の任意の場所をクリックするとキーが追加されます。
このとき、キーを選択したまま右下のRotationの値を入力することで位置を変更できます。
50と入力するとちょうど半分になります。

Color over Timeモジュールを編集する

Color over Lifetimeモジュールを編集する

透明にするにはキーを選択した状態でAlphaの数値を0にしてください。

Color over Timeモジュールを編集する

Color over Lifetimeモジュールを編集する

両端を透明にしたら完了です。
パーティクルの寿命の始まりと終わりが透明に変化するようになりました。

Color over Timeモジュールを編集する

Color over Lifetimeモジュールを編集する

Rendererモジュールの編集

Rendererモジュールを編集する

Rendererモジュールを編集する

Rendererモジュールは、パーティクルの表示を設定できるモジュールです。
数値を変更する場所は下記を参照ください。

ParametersValue
Render ModeStretched Billboard
Length Scale10
  • Render Mode…パーティクルがどのようにレンダリングされるかを設定します。Stretched Billboardを適用するとカメラの方向を向き、同時にパーティクルが伸縮します。
  • Length Scale…Render ModeにStretched Billboardが適用されている場合に設定できます。パーティクルをどのくらい引き延ばすかの数値です。数値が大きいほど、長く引き延ばされます。

ダストのパーティクルを作成する

ダストのパーティクル

ダストのパーティクル(極めて小さいですが、ちらちらと動いている白い点がパーティクルです)

続いて、ダストを表現するパーティクルを作成します。

パーティクルの新規作成

ゴッドレイの時と同様にヒエラルキーウィンドウ上でParticleを新規作成してください。

Mainモジュールの編集

Mainモジュールでパラメータを変更する場所は下記を参照ください。

Mainモジュールを編集する

Mainモジュールを編集する

ParametersValue
PrewarmOn
Start Speed0.5
Max Particles50

Emissionモジュールの編集

Emissionはデフォルトのままで問題ないので、チェックボックスがオンになっているのを確認して次の項目を編集してください。

Color over Lifetimeモジュールの編集

Color over Lifetimeモジュールも、ゴッドレイと同様に、透明と白の色に変化する設定にしてください。

Shapeモジュールの編集

Shapeモジュールを編集する

Shapeモジュールを編集する

Shapeモジュールで数値を変更する場所は下記を参照ください。

ParametersValue
ShapeSphere
Radius2

Rendererモジュールの編集

Rendererモジュールを編集する

Rendererモジュールを編集する

Rendererモジュールの数値を変更する場所は下記を参照ください。

ParametersValue
Render ModeBillboard
Max Particle Size0.003
  • Render Mode…パーティクルがどのようにレンダリングされるかを設定します。Billboardを適用するとカメラの方向を向きます。
  • Max Particle Size…パーティクルの最大サイズを設定できます。数値が大きいほどパーティクル自体のサイズが大きくなります。

パーティクルのサイズの編集

パーティクルの値の編集はこれで完了ですが、設置するシーンによってはサイズが合わないこともあります。
その場合は最後にShapeモジュールでサイズを調整してください。

パーティクルのサイズを編集する

パーティクルのサイズを編集する

今回はシーンに配置した廃墟の上部分からゴッドレイが射す表現をするために隙間に合うようにサイズを調整し、ダストもそれに沿うようにしています。

パーティクルをシーンに合わせる

パーティクルをシーンに合わせる

参考記事の紹介

今回の記事の内容は、下記の記事を参考にしています。

https://rakeshmalikblog.wordpress.com/2015/01/01/volumetric-light-using-particles/

STYLYへアップロード

実際にSTYLYへアップロードして使用しましょう。

今回はUnityのシーンをそのままSTYLYにアップロードするので、こちらをご参照ください。

STYLYアカウントを作成する

アカウント作成方法

未経験から VR/AR コンテンツ制作を学ぼう

VR/ARコンテンツ制作に必要なUnity・PlayMakerを基礎から応用まで学べ、STYLYで配信されている魅力的なコンテンツの制作過程(制作技術も公開します)を学べる オンライン学習サイト NEWVIEW SCHOOL ONLINE 開講中!!

  • プログラミングコードをかかず、VR/ARコンテンツを制作可能
  • 公式監修によるUnity講座を用意
  • フォトグラメトリ制作方法、コンテンツ軽量化などの追加要素あり
  • VR/ARコンテンツを作るための考え方を学習できる