【Unity】パーティクルシステムを使用してARの花火を作成してみた


夏になり、各地で花火大会が開催される季節になりました。

そこで今回はUnityでARの花火を作成する方法をご紹介していこうと思います。

Unityで花火を作成するときに使える機能が「パーティクルシステム(以下、パーティクル)」です。

ここではパーティクルの説明から、実際にパーティクルを利用して花火を作成し、AR化するところまでを解説していきます。

パーティクルとは

パーティクルとはシーン内で大量の小さな2Dの画像を生成し、アニメーションさせることによって、液体、雲、炎などの流体をシミュレーションする機能です。

パーティクル例

この機能を応用して、実際に花火を作成していきます。

具体的な使用方法はのちほどご紹介します。

ARの設定

まずはARの設定方法を解説します。

今回は「Vuforia」を用いてARを作成します。

今回ARマーカーとして、以下の画像を用います。

かき氷

Vuforiaの開発者ページで画像を登録して、データベースをダウンロードしてUnityで使える状態にしてください。ここまでの進め方はVuforiaの設定方法ページに詳細がありますのでこちらをご参考ください。

ヒエラルキーの関係が以下のように設定されていれば問題ありません。

ヒエラルキービュー確認

花火の作成

いよいよパーティクルを使用して花火を作成していきます。

パーティクルの準備

パーティクルシステム選択

まずはじめにヒエラルキービューの作成を選択して、エフェクト、パーティクルシステムを選択します。

パーティクル移動

次に、以上のようにヒエラルキービューのParticleSystemをImageTargetにドラッグ&ペーストしてください。

これでパーティクルの準備は完了です。

パーティクルの詳細設定

パーティクルの詳細を設定していきます。

ヒエラルキービューのParticleSystemを選択してください。

パーティクル設定

以上のようにパーティクルのトランスフォームを設定してください。これによりサイズを変更できます。

次に、インスペクタービューの放出を選択してください。

放出設定

時間ごとの率を0にしてください。

また、バースト右下のプラスを選択して、カウントを1にしてください。

これによって出現頻度を変更できます。

次に、インスペクタービューの形状を選択してください。

形状設定

角度を0、半径を0.25にしてください。

これによって打ち上げ方向の変更ができます。

次に、インスペクタービューのParticle Systemを設定します。

ParticleSystem設定

継続時間を4.70、開始時のスピードを11、重力を1にしてください。

これによって打ち上げの高さを変更できます。

※筆者の好みで打ち上げの高さおよびスピードを設定しているので、この値はお好みで変更していただいてかまいません。

次に、インスペクタービューの生存期間の速度リミットを設定します。

速度リミット設定

まず、左の空欄にチェックを入れてください。

次にスピード右の三角から、カーブを選択してください。

さらに減退率を0.07、動作による空気抵抗を0.01にしてください。

これによって、より自然な打ちあがり方に変更することができます。

次に色の設定をします。

インスペクタービューの生存期間の色にチェックを入れてください。

色設定

色はお好きな色を設定してください。グラデーションにすると、より花火らしく設定できます。

これで打ち上げ部分の設定は完了です。いよいよ花の部分を作成していきます。

はじめにインスペクタービューのサブエミッターにチェックを入れてください。

サブエミッター設定

以上のように、右の+を選択、一番左のタブを死亡にして、真ん中の+を選択します。

これで花部分が自動生成されました。

次にヒエラルキービューのParticle System、Sub Emitter 1を選択してください。

インスペクタービューで基本設定をします。

花部分基本設定

値を以下のように変更してください。

  • 拡大/縮小:x=1,y=1,z=1
  • 継続時間:2.00
  • 生存期間:右三角で二つの間値をランダムを選択してそれぞれ1.8、2.3
  • 開始時のスピード:右▽で二つの値をランダムを選択してそれぞれ20、25
  • 開始時の3Dサイズ:チェックを入れて、x=5,y=5,z=5
  • 重力の大きさ:0.3

これで基本設定は完了です。

次にインスペクタービューの放出と形状の設定します。

花部分放出形状設定

値を以下のように設定してください。

  • 時間ごとの率:0
  • バーストのカウント:800
  • 拡大/縮小:x=50,y=50,z=50

これで放出と形状の設定は完了です。

次にインスペクタービューの生存期間の速度リミットを設定します。

花部分速度設定

左空欄にチェックを入れて、値を以下のように設定してください。

  • スピード:右三角でカーブを選択して右下がりの直線を選択
  • 減退率:0.07

これで生存期間の速度リミットの設定は完了です。

次にインスペクタービューの生存期間の色を設定します。

花部分色設定

色はお好きな色を設定してください。

上記画像のようなグラデーションを作成する方法は以下のGIFをご参考ください。

色変更方法

最後にトレイルを設定します。

トレイル設定

値を以下のように設定してください。

  • 生存期間:0.8
  • サイズは生存期間に影響:チェックを入れる
  • 生存期間の色:任意(先ほどのグラデーションを設定するときれいに見える)
  • トレイル幅:0.3
  • トレイルの色:任意(先ほどのグラデーションを設定するときれいに見える)

このままだと色が反映されません。以下の操作をして完了となります。

レンダラー設定

インスペクタービューのレンダラー、トレイルマテリアルをDefault-Particleに変更します。

以上で全設定が完了しました。では、実際に試してみましょう。

花火

花火が上がりましたね!これでパーティクルを使用したARの花火が完成しました。

 

※おまけ

花火応用

応用するといろいろな形の花火を作成することができます。暗くしてスマートフォンにターゲットを映して見てみると、花火がよりきれいに見えます。

まとめ

いかがでしたでしょうか。

今回はUnityのパーティクルシステムを用いてARの花火を作成しました。

このパーティクルの技術は花火を作成するための機能ではありませんが、応用すると花火など、様々なものを作成することができます。

ぜひみなさんもパーティクルを応用して、いろいろな形の花火を作成して楽しんでみてください!


Furui