昨年11月に発表された『Fusionist(フュージョニスト)』がその高品質なゲーム体験で大きな注目を集めている。公式Discordコミュニティのユーザー数は94万人に達し、ツイッターのフォロワー数も84万人になっている。2023年末にはSteamプラットフォームでのリリースが予定されており注目のゲームだ。
『Fusionist』は巨大ロボットをテーマにした宇宙探査ゲームだ。プレイヤーは指揮官となって自分の惑星を管理し、希少資源を収集したり、技術をアップグレードしていく。そしてロボットを製造するための設計図をスキャンして生産ラインを築いていく。
『Fusionist』開発チームは47人のゲーム業界のベテランで構成されているが、注目すべきはUnityの最新技術であるDOTSや六面光照明マッピングなどを積極的に使用し、リアルな水面、雲、爆発などの美しいグラフィックを作り上げていることだ。
本記事ではUnityエンジンがグラフィック表現に無限の可能性をもたらす理由を技術面から解説する。
HDRP - 物理現実的なゲーム世界を創造
Unityの高精細レンダリングパイプライン(High Definition Render Pipeline、HDRP)は、物理ベースのレンダリング(Physically Based Rendering、PBR)フレームワークを採用。オブジェクトの表面素材、テクスチャ、反射パラメータを正確に計算することでよりリアルな画面効果を実現している。
HDRPは豊富な視覚効果やポストプロセス効果に対応しており、それによって画面効果が一層鮮やかになる。例えば、スクリーンスペースリフレクション(SSR)やボリューメトリックフォグなどの効果によって、画面に立体感や奥行き感が与えられる。
さらにHDRPにはカラーグレーディングやブルームなどのポストプロセス効果が内蔵されており、最終的な視覚効果がより豊かでカラフルになる。
『Fusionist』ではHDRPパイプラインの多くの技術が使用されている。これには、Layered Lit Material、PBR物理レンダリング、SSR、SSAO、ボリュームフォグ、ポストプロセス、HDRなどが含まれる。
スクリーンスペースリフレクション(SSR)、スクリーンスペースアンビエントオクルージョン(SSAO)、HDRISkyについて
当ゲーム開発者たちは、ScreenSpaceReflection(SSR)、ScreenSpaceAmbientOcclusion(SSAO)およびHDRISkyの技術を活用して、ゲーム内のグラフィックス品質を大幅に向上させている。この技術は、環境光の量が少なくても、オブジェクトの陰影を強調し、物体の立体感と光影のリアリティを向上させる。
- Path Tracingは、カメラから射線を発射し物体表面に到達すると反射または屈折させる。開発者はVolume内にPath Tracingのオーバーライドを追加するだけでよい。Maximum Samplesは最大サンプル値であり、最終画像を構成するフレーム数を制御する。数値が大きいほど、最終画像のために必要なフレーム数が増え、画面効果が向上するが、必要な時間も長くなる。
- HDRP Layered LitはUnityの高精細レンダリングパイプライン(High Definition Render Pipeline、HDRP)の一部であり、高品質のPBR素材を作成するために使用できる。『Fusionist』というプロジェクトのメカモデルは、異なる材料と色の変化を持つAvatarシステムが必要なため、開発チームはHDRP独自の分層Lit素材を採用することにした。
- Layered Lit Materialでは、1つのオブジェクトに最大4種類の材料をスタックでき、HDRPでリアルで多様な素材を簡単に作成できる。Main Layerは最下層で、反射率、法線、および高さを持つ上層に影響を与える。HDRPは、Main Layerの上にLayer 1、Layer 2、Layer 3を描画する。
《Fusionist》プロジェクトでは、各layerが1つの材質効果と色変化を制御している。さらに、素材の数を増やすことで、メカの外観の豊かさを無限に拡大することができる。
HDRP/LitのTypeにはさらに多くの材質タイプが選択できるが、Layered Litではそうではないため、開発チームは改善と統合を行っている。これにより、非常に特殊な材質効果が実現されている。基本的な材質パラメータに基づいて、一連の魅力的な材質サンプルが調整され、メカの多様性が実現されている。
《Fusionist》の各モデルは、RGBAチャンネルのマスクテクスチャを材質領域の区切りとして使用し、各区切り領域の材質には通常のLit材質のPBR属性を割り当てることができる。また、PBRマスクテクスチャを使用して、材質の表面物理特性や摩耗などの細部を決定している。
これらの材質強化により、キャラクターのイメージが多様化される助けとなっている。『Fusionist』はこれらの技術を使ってグラフィックス品質の向上とキャラクターの表現力を追求している。
Unityの豊富なプラグインサポート
KWS Water System
KWS Water Systemはモジュールベースのコンポーネントであり、海洋・海・川・湖・プールなどの水面をシミュレートする。PC/コンソールプラットフォームとHDRPレンダリング用の水システムで、『Fusionist』でリアルな水面効果を実現している。
Caustic効果は、部分的に水没した水中効果を実現する方法だ。水中で光線の屈折と反射をシミュレートすることで、非常にリアルな水中光影効果を作り出すことができる。
波の作成:
- 波の形状を持つ粒子効果を作成する
- 作成した粒子効果を海岸線に適用する
- 粒子効果に泡の粒子レンダリング効果を追加する
KWS Water SystemのFlowing機能は、自然に流れる川や滝などの水体をシミュレートし、ゲーム内の水体がよりリアルに見えるようにする。さらに、Flowing機能は、波立ちやリップルなどの効果を自動生成し、水体の表現がよりリアルでダイナミックなものになる。流速、流れの方向、水紋などのパラメータをカスタマイズすることで、水体表現の多様性とリアリティをさらに向上させることができる。
MicroSplat
MicroSplatは、Unityのシェーダープラグインであり、詳細な地形マテリアルを作成するために使用できる。非常に優れたパフォーマンスを持ち、FusionistをUnityでよりリアルな地形効果を作成するのに役立つ。
MicroSplatの地形ブレンディングモジュールは、オブジェクトをスムーズに地形にブレンドすることができる。
MicroSplatは、高度ブレンド、テクスチャブレンド、ディテールテクスチャなど、さまざまなテクスチャコントロールに対応している。これらのコントロールにより、地形がより細かくリアルに見えるようになる。
Expanse
Expanseは、Unity HDRPの実験的な機能プラグインであり、リアルな空、雲、大気効果の作成に使用される。これにより、制作者は迅速に任意の時間帯を調整できる気候天候を選択できる。
Expanseは、リアルな空、雲、大気効果を作成するための高品質なマテリアルとシェーダーを提供する。開発者は、これらのマテリアルとシェーダーのパラメータを自分のニーズに合わせて調整し、さまざまな効果を作成できる。
Unityの強力な特殊効果ツール
6面照明マップを使用して爆発や煙効果を作成する
ゲーム内でリアルタイムに煙や爆発効果をレンダリングすることは、煙の中での複雑な光の反射と散乱を計算するために非常に高い計算コストがかかるため、難しい課題だ。そのため、ゲーム内で実現するために、開発チームはテクスチャスプライトを使用して煙をシミュレートすることが一般的だ。しかし、テクスチャスプライトでは、煙と環境光の相互作用がうまく実現できず、リアルさに欠けることがある。
6面照明技術は、テクスチャスプライトよりも優れた方法だ。これは、6つの方向の照明マップを使用して、6つの方向から煙に光が当たるときの反射と散乱効果を記録する。ゲームの実行時に、開発チームは現在のシーンの照明環境に応じて、6つの照明マップのうち1つまたは複数を組み合わせて煙スプライトをレンダリングする。これにより、煙が実際の照明環境に応じて外観を変えることができ、よりリアルに見える。
Unity 2022.2バージョンでは、焼成シミュレーションから得られた煙をリアルにレンダリングするためのエンドツーエンドのワークフロー(DCCからUnityまで)が導入されている。このソリューションには、煙効果を新たな視覚的忠実度レベルに簡単に引き上げることができるようにするための既製のテクスチャライブラリも含まれている。
VFX Graph
VFX Graphアセットは通常、サブグラフとして提供され、開発者はそれを直接VFX Graphシーンにドラッグして使用できる。色、サイズ、アニメーション速度などの単純な属性を調整するだけで、効果の変化が顕著になる。
VFX Graphアセットは高度にカスタマイズ可能であり、同じアセットでもパラメータの調整によって異なる効果を生成できる。1つのアセットで多様な効果ニーズを満たすことができ、効率が大幅に向上する。
さらに、開発者は簡単に他のVFX(火、破片など)と組み合わせて、より複雑で完成度の高い視覚効果を作成できる。異なるVFX間でパラメータをリンクすることで、相互作用効果が豊かになる。
ShaderGraph
Shader Graphは、Unity公式がリリースしたHDRP向けに特別にカスタマイズされたShader編集ツールだ。HDRPの各機能とより深く統合でき、HDRP MaterialsやVFX Graphとシームレスにリンクできるだけでなく、非常に効率的なワークフローも提供している。これにより、HDRPでShader Graphを使用してShaderを作成するのがより簡単で効率的になる。
Cinemachine & Timeline
Cinemachineではさまざまなカメラシェイクモードや、ターゲットカメラ、トラックカメラ、回転カメラなどの仮想カメラが提供されており、開発者はクールなスキル特写を簡単に実現できる。Timelineを使用して駆動することで、スキル特写の実装プロセスが大幅に簡素化され、開発者はタイムライン上でキーフレームを設定し、適切な仮想カメラを選択するだけだ。
Post-Processing VolumeのDepth of Field、Motion Blur、Chromatic Aberrationなどの効果を組み合わせることで、映画のようなドラマティックなスキル特写を実現し、スキル特写の創造性と表現力を拡大できる。
Unity DOTSによる動的性能向上
Unity DOTSはゲームのパフォーマンスと拡張性に優れている。『Fusionist』は最終的に世界共通サーバーの宇宙MMO-SLGとなり、ピーク時には数十万のEntityがリアルタイムで動的に管理される必要がある。Netcode for Entitiesを用いて、フロントエンドとバックエンドのリアルタイム同期を実現し、クライアントは「Windows Target」に、サーバーは「Dedicated Server Target」にコンパイルされる。これにより、Entityの状態管理の面でフロントエンドとバックエンドの技術スタックが統一され、同じプログラマーが同じコードリポジトリを使用することができる。
内部性能評価では、AWS c6a.xlargeサーバー1台で、約100のSystemと数十万のEntity規模の宇宙シミュレーションをサポートできる。サーバーのLogic Ticketは、常に10 FPS以上を維持している。
Unityエンジンは、同じワークフローと技術スタックで複数のプラットフォームをサポートしている。公式ウェブサイトの制作ではカードの表示が必要である。カードはUnity Editorで編集し、レンダリング効果を実現した後、Webページ形式でエクスポートしてWeb端に統合することができる。
Unity 第三者ツール
UnityのWorld Creator 2022は、開発者が高品質な地形を迅速に作成するのに役立ち、山脈、川、湖、森林などを含む。さまざまな地形生成アルゴリズムと地形マテリアルに対応し、非常に豊かな地形効果を作成することができる。
World Creator 2022は、多様な地形編集ツールと地形変形機能をサポートし、開発者が地形の形状や質感をより柔軟に制御できるようになる。
『Fusionist』はUnityエンジンの最新機能を応用するとどのように機能するかがわかる素晴らしい例だ。印象的なビジュアルエフェクトとゲーム性を備えた『Fusionist』は、Unityが3Aゲーム制作で無限の可能性を秘めていることを示している。今後もUnityの技術進歩に目が離せない。
Fusionistについて
FusionistはSci-FiジャンルのWeb3ゲームエコシステムで、暗号ゲームスペースで最も認知度の高いIPを作成し、Web2ユーザーがWeb3から自由に利益を得られるようにするための架け橋となることを目的としています。
チームのビジョンは、さまざまな視聴者を満足させ、以下の利点を活かして既存のgamefi製品との差別化を図ることです:
- プロフェッショナルなコンテンツ配信による一流のビジュアルクオリティ。
- デフレモデルによる持続可能なゲーム内経済と、リアルタイムデータ監視によるゲーム内資源需給バランスの正確な制御。
- フュージョニストゲームのEsports互換性。
- ロイヤルユーザーの継続的なエンゲージメントと、異なるニーズを持つ様々なタイプのユーザー(コミュニティサポーター、ギャンブラー、ゲーマー)に対する関心。
公式リンク
Official website: https://www.fusionist.io/
Discord: discord.gg/fusionist
Twitter: https://twitter.com/fusionistio
Medium: https://medium.com/@fusionistio
Mainnet Endurance: https://ace.fusionist.io/