もくじ
はじめに
Making Fireworks Effect With Unity VFX Graph | Work Scape #6
本記事ではUnityのVisual Effect Graphを使い花火のエフェクトを作成するプロセスを見ていく。参考にしたYouTubeビデオはBrackeysの「 FIREWORKS in Unity using VFX Graph!」である。花火のパーティクルエフェクトは定番エフェクトなので、他にも参考になるチュートリアルやビデオはあるのだが、このYouTubeビデオはシンプルで分かりやすかった。その分リアルな要素は不足しているかもしれないが入門にはちょうど良いだろう。
Unityの共通的な操作やVFX Graphの基本的な操作は「 「Unity VFX Graph入門」ベーシック・ガイド(1/2)」や「 「Unity VFX Graph入門」Fire and Smoke Effect(1/3)」にも記載しているので参考にしてほしい。
各プログラム・バージョンは以下の通り。
- Unity 2020.3.1 LTS
- Visual Effect Graph 10.3.2
プロジェクトとシーン作成
まずはUnity Hubを使いHDRPテンプレートでプロジェクトを作成する。( 1.1)
2020.3で作成されるSampleSceneが以前とだいぶ変わっていて色々オブジェクトが設定されているので、とりあえず空の新規シーンをVFXSceneという名前で作成する。( 1.2)
HierarchyウィンドウにGlobal Volumeを追加し、VFXSceneのLightingについて少し調整を行う。VFXScene内のDirectional Lightはオフにする。Global VolumeのInspectorを表示させ、Volume > ProfileにHDRPDefaultSettingsを設定する。さらにVolume > HDRI Sky > Exposureを0(もしくは3ぐらいがちょうど良いかも)に変更する。これでSceneウィンドウとGameウィンドウは暗闇になるはずだ。また、花火の発光を再現するためBloom > Intensityを0.5ぐらいにしておくとよい。( 1.2)
HDRPのLightingの設定は個人的に手探り状態なので、きちんと学習しておきたいところ。今回、Unity 2020バージョンのHDRPプロジェクトを初めて使ってみたが、最初からCinemachineがインストールされていたり、2019バージョンとは結構異なっているところがあった。
ちなみに完全に余談だが、HDRPプロジェクトを2020.3でテンプレートから作成すると800MBぐらいになる。ゲーム作成前の状態で800MBというのはちょっと大きい気がするので基本の3Dプロジェクトから作成した方が良いのかもしれないと考えた。試しにテストしてみたところ、基本の3DプロジェクトにURPをインストールした場合はプロジェクトファイルの容量は約300MBだった。一方、HDRPは約550MBぐらいだった。もう少し小さくなるかと思ったのだが、あまり変わらないのでテンプレートから作った方が利便性があるかもしれない。
Visual Effect Graph作成
次にAssetsフォルダにVisual Effect Graphを作成する。名前をFireworksとする。( 1.3)
作成したVisual Effect GraphオブジェクトをHierarchyウィンドウにドラッグ&ドロップするとSceneウィンドウにデフォルトのパーティクルエフェクトが表示されるだろう。( 1.3)
今回、検証段階のノードやグラフを使用するかもしれないので、Preferences → Visual EffectsのExperimental Operators/Blocksをオンにしておく。( 1.4)
FireworksをダブルクリックしてVFX Graphウィンドウを表示させる。特に他にテクスチャ等の画像を用意する必要はなく、VFX Graphの機能のみで花火のパーティクルエフェクトを作成することができるだろう。
花火発生のプロセスとパーティクルシステム
雑なイラストだが、花火発生のプロセスを可視化すると以下の4段階に分けられる。各段階をひとつのパーティクル・システムとしてVFX Graphで定義するというのが今回の主な作業となる。( 1.5)
- ロケットを打ち上げる → Rocket Particle System
- ロケットの軌跡を描く → Rocket Trail Particle System
- 花火を爆発させる → Explosion Particle System
- 爆発の軌跡を描く → Explosion Trail Particle System
上のプロセスとは少し順序が異なるが、次のページから実際に各パーティクルシステムをVFX Graphで組み立てていく。