この記事の3行まとめ
- 2Dローグライトサバイバー『Ignitement』における炎の表現を解説した記事がUnity公式ブログで公開
- 煙の密度や速度、炎の温度や挙動を司るテクスチャセットを用意し、流体シミュレーションに則って描画することで効率化
- GPU駆動のパーティクルを使った残り火の表現や、テクスチャをダウンサンプリングして作成したライトマップとその活用なども解説している
Unity Technologiesは2026年4月23日(現地時間)、「炎を生き生きと表現する:Ignitementでのリアルタイム流体シミュレーション(原題:Making fire feel alive: Real-time fluid simulation in Ignitement)」と題した記事を、Unity公式ブログにて公開しました。
同記事では、2Dローグライトサバイバー『Ignitement』の開発者であるSørb氏が、同作における「生きているかのような」炎の表現について解説しています。
(画像はブログ記事より引用)
『Ignitement』は、プレイヤーが炎のシャーマンとなり、迫りくる大量の敵を炎の魔法で倒していくといった内容の、『Vampire Survivors』ライクのローグライトサバイバーゲーム。
記事では「ゲーム内での炎の表現は難しい」と語り、パーティクルシステムではゲームとの「真のインタラクション」が欠け、3Dでのシミュレーションでは負荷が高すぎるといった要因を挙げています。
そこで、同作では2Dによる流体シミュレーションで炎を表現。テクスチャセットを用意し、Unityの「Graphics.Blit」を通じてリアルタイムに更新することで、ポストプロセスエフェクトをいくつか重ね掛けする程度の軽微な負荷で炎を描画可能となりました。
液体シミュレーションを行うコードのイメージ(画像はブログ記事より引用)
テクスチャは、煙の密度や速度・動きを司るもの、炎の温度や実際の挙動を司るものなどを用意してレンダリングします。
また、燃えさしの表現にはGPU駆動のパーティクルを使用。流体シミュレーションの速度フィールドに則って計算することで、炎の流れに従うように描画できます。
さらに、ライトマップは炎の挙動を司るテクスチャをダウンサンプリングしてぼかすことで実装しています。これにより、描画された炎に合わせて周囲の明るさが変わる表現が簡単に実装できたとのこと。
(画像はブログ記事より引用)
そのほか、シェーダーにはコンピュートシェーダーではなくフラグメントシェーダーを利用していることや、ライトマップを活用してUIや環境に炎への反応を実装する手法などについても語られています。
詳細はUnity公式ブログをご確認ください。
「炎を生き生きと表現する:Ignitementでのリアルタイム流体シミュレーション」Unity公式ブログ『Ignitement』Steamストアページ