2018 年の Unite LA にて、多人数参加型の一人称視点シューティングゲーム『FPS Sample』プロジェクトの第一弾リリースが発表されました。ソースコードとアセットの両方を含むプロジェクト全体をこちらからダウンロードしていただけます。
このプロジェクトを、アイデアの宝庫として、インスピレーションを得るためにご利用ください。また、Unity のいくつかの最新機能について、実際の適用例を見ながら学んでいただくこともできます。Unity でシューティングゲームの仕組みを開発する様々なアプローチのひとつを、実際に確認していただけます。
このプロジェクトには、ソースコードから、アートワークアセットやサウンドエフェクトまで、すべてが含まれています。ただし、これらはアセットストアのパッケージではありません。このため、必要な部分だけを抽出したり分解したりしてご使用いただくことが可能となっています。
もちろん、プロジェクト全体を皆様のゲーム制作の骨組みあるいは出発点として使っていただいても構いません。すべてのアセットに関して、ご利用は「Unity Companion License」ライセンスの下に許諾されていますので、Unity ベースの商用プロジェクトにもお使いいただけます。皆様が独自にプロジェクトを開発するための足掛かりとして、このゲームをお役立てくだされば嬉しく思います。
今回の第一弾のリリースは PC 向けとなっています。将来的には Mac、そして PS4 と Xbox One の両方にも対応する計画です。
このプロジェクトは最新版の Unity(2018.3) で実行可能です。本プロジェクト開発に際しては、いわゆる「バニラな Unity」で実行可能にすることを基本方針としました。つまり、実行のために追加的機能を含めたカスタムビルドが必要ないということです。また同様に、アセットストアパッケージも一切必要ありません。
本プロジェクトに関しては今後、最新版への更新と最新機能の導入を継続的に行っていく計画です。また、本プロジェクトはその性質上、フィードバックの収集を大変行いやすく、その利点も大いに活用して行きたいと考えております。まず、私たちは R&D 部門の中心にある社内チームであり、最先端の機能を使用しています。次に、完全に機能するプロジェクトを構築することにより、皆様の実際の作業環境をシミュレートしています。
これらの好条件が、私たちが新機能だけでなく Unity 全体の向上に寄与して行く上で有利に働きます。お寄せいただいたバグレポートのすべてを確認すると同時に、リリース前のバージョンの開発も進めることで、より総合的な視点から Unity の改善に取り組むことができます。プロジェクトが大きく複雑になればなるほど、効率的なワークフローを維持するための鍵として、スケーラビリティの維持がますます重要となります。この課題への取り組みとして、チームの生産性をサポートすることも、私たちの注力分野のひとつです。
結果として、コンテンツを扱う上で出会う困難な点を多数解決することができました。私たちは目標のゲームメカニクスを実現するために、パフォーマンスを最適化し、技術的なソリューションの改良を行いました。このゲームの目標のひとつは、新機能の導入を後押しすることです ― 例えば HDRP(2019 年の途中まではプレビュー版)を、より早く製品版への使用に耐え得る状態にすることです。しかしこれだけでなく、将来的な開発についての情報を R&D チームに しっかり把握させることや、詳細な事柄への取り組みもまた、私たちの重要な役割です。
現実的な状況をシミュレートした制作を行うことで、サンプル開発チームは、品質と安定性を押し上げる QA の延長のような機能を果たすことができます。実際に、このチームが関わることで最適化・改良の進んだ機能が多数存在します。
新しく公開された HDRP は、物理ベースのモダンなレンダリングパイプラインで、今までに『Adam』『Book of the Dead』などの素晴らしいデモの制作に貢献して来たものです。しかし物理ベースのレンダラーは、特徴的な(様式化された)スタイルを持つビジュアルの制作にも使用することが可能です。『FPS Sample』ではその実例をご確認いただけます。
例えば、サブサーフェススキャタリングの実装例を実際にご確認いただけます。メインステージの植物には、葉のような半透明なサーフェスを透過する光のシミュレーションが使用されています。
他にも、デカールや、HDRP の新しいライティング機能の一部(光を発する長方形のジオメトリを定義できる Rectangular ライトや、線形から光を照射できるラインライトなど)も使用されています。
『FPS Sample』のライトマッピングは Unity のプログレッシブライトマッパーで行われています。これはパストレースに基づいたライトマッパーシステムで、ベイクされたライトマップとライトプローブに、エディター内で進行する更新を漸次的に反映できるものです。
快適でバランスの良いシューティングゲームのための高性能な Netcode を作成するのは往々にして骨の折れる作業です。例えば、ワールドの状態(つまりゲーム世界における各キャラクターの位置)を適切に管理するのは必ずしも簡単ではありません。これに対する解決策は、サーバーから取得される位置をそのまま使用する代わりに、それらの間で補間を行うことです。またこれと似た、動きが重くなる問題は、プレイヤー(キャラクター)をサーバーの承認なしで動かせるようにする「クライアント側予測」と呼ばれる技術で解決可能です。
また、効果的な圧縮を用いてメモリフットプリントの小さなサーバーでゲームをホスティングすることで費用効率を高くすると同時に、ラグ補償と承認のためのソリューションも導入する必要があります。
これらの諸問題に対して『FPS Sample』が採ったアプローチを確認することで、解決に向けてのアイデアを得ていただくことができるでしょう。『FPS Sample』内の Netcode は、これらの問題に取り組むに際して良い足掛かりとなります。この Netcode は、最近プレビュー版としてリリースされたばかりの Unity の新しいトランスポートレイヤーを使用しています。
『FPS Sample』は、今後の Unity のバージョンで継続的に改良され、維持されていく予定です。
したがって、今後の更新では本プロジェクトにも VFX Graph などの新機能の導入が期待されます。またチュートリアルや、制作プロセスを紹介するブログ記事も 2019 年に公開の予定です。
本プロジェクトを入手するには、最新版の Unity(2018.3) の実行が必要です。こちらは Unity Hub からダウンロードが可能です。次に Github のレポジトリから本プロジェクトをダウンロードしてください。ご使用を開始するに当たってのガイドは Unity フォーラム、およびプロジェクトの README ファイル内にございます。プロジェクト改善に向けてのご提案や問題のご報告はフォーラムにお寄せください。
Is this article helpful for you?
Thank you for your feedback!