このブログは、来年以降の製品開発の主要な取り組みについて紹介する Games Focus シリーズの第 9 回です。今回は、皆さんに Unity を使ってより野心的なゲームを作っていただくための機能の現状と今後のリリース予定、そして将来のビジョンについてご説明します。
こんにちは。ECS for Unity(Entity Component System)の製品戦略を推進する、Unity の DOTS チームのプロダクトマネージャー、Isaac Seah です。
チームは、プレイヤーに素晴らしいゲームを提供するためのより良いツールを提供するための取り組みを重ねてきました。Unity に入社する前は、クリエイターとしてドキュメントやビデオに目を通し、素晴らしいゲームや体験を生み出すためにエンジンを使いこなす方法を何時間もかけて学んできました。
Unity 2022.2 TECH ストリームで ECS for Unity のリリースが予定されていることは、クリエイターとして言葉にできないほど嬉しいことです。多くの人にとって、ゲームを変えるような(game-changing な)時代になると思います。
今回の Games Focus シリーズの記事では、ベテランの Unity クリエイターが ECS for Unity を使うことで得られるメリット、アーリーアダプターによる活用例、2023 年以降の計画について紹介します。
ECS for Unity のミッションは、Unity を使ってより野心的なゲームを作ることができるようにすることです。メモリ内のデータレイアウトの処理と制御をより予測可能な形にしたり、ゲームプレイの動作要件が爆発的に上がってそれに対処するときに効率的な並列処理を容易に実現できるよう支援したりことで、これを実現します。
2021 年の時点で Unity は市場に出ているゲームの50% 超に使われており、それからもユーザーは ECS なしで素晴らしいゲームを構築し続けています。ECS for Unity は、Unity で作ったタイトルを世に送り出した経験があり、GameObject や MonoBehavior アーキテクチャの限界を理解し、よりきめ細やかな制御や決定論的な性質を積極的に求めているベテランの Unity クリエイターに価値を提供します。ECS for Unity は、経験豊富な開発者がより正確にメモリを管理し、ゲームプレイのフレームごとのゲームコード処理を完全に制御し、究極的には複雑度の高いゲームプレイを厳しいデバイスの制約のもと動作させることを可能にします。
Unity 2022.2 TECH ストリームから、ECS for Unity は以下のパッケージで提供されます。
ECS for Unity と組み合わせて、ジョブスケジューリングやスクリプトのコンパイルのニーズに対応するため、すでに本制作での利用が可能な段階に至っている Burst コンパイラーと C# Job System も引き続き利用できます。最も重要なことは、Unity 2022.2 TECH ストリームでは ECS for Unity を制作で使う上での完全なサポートが提供されるため、サポートチャンネルや Success Plan へのアクセスも簡単になり、ECS をさらに活用できるようになることです。
ECS for Unity を使った作業体験を向上させるため、使い慣れた Unity のオーサリング体験の機能の多くを ECS for Unity で利用できるようにしました。
ECS for Unity は、GameObject エコシステムと互換性のあるオプショナルなフレームワークです。コンポーネントデータ、アーキタイプ、エンティティビュー、新しくなったジャーナリングウィンドウ、エンティティデバッガー、プロファイリングツール、データモードなど、オーサリング時のデータと実行時のデータの間を簡単に行き来できる機能を提供し、Unity エディターに完全に統合されたオーサリングワークフローを取り入れました。
Electric Square 社の『Detonation Racing』において、開発チームは ECS for Unity を使用して、大規模なストリーミングを活用したテンポの良い iOS 向けレーシングゲームを実現しました。ゲーム開発時、品質保証やゲームプレイの設計プロセスにおいて、ECS の決定論的な性質が積極的に活用されました。Electric Square 社は ECS for Unity の決定論的な性質を活用して、ゲームデザイナーの描いたシナリオを正確に再現し、『Detonation Racing』で使う完璧な爆発エフェクトを実現することができました。ここでは、ECS に基づくゲームコードが制御と決定論的な性質をもたらし、規模に応じた最適化の機会や新しいゲームコードの可能性を生み出しました。
また、ECS for Unity は、データとゲームロジックを明確に分離することで、ゲームプレイの大幅な変更にも対応することを可能にします。Electric Square 社では、ゲームコードのコンポーネント化を強力に推し進め、ゲームプレイの機能とシステムを効率的に分離することができました。これにより、開発者はゲームプレイの課題を解決する際に、ゲームプレイのコードを調べ、コードやデータを変更することが簡単にできるようになりました。
ECS for Unity は、Burst コンパイラーおよび C# Job System と併用することで効率的な並列処理を可能にし、ゲームコードの実行およびメモリの割り当てと解放の両方において予測可能な動作をするようにできます。デバイスメモリを強力に制御することで、Electric Studio 社は複雑なゲームプレイを難しいデバイス要件に適合させ、キャッシング戦略を最適化することができました。
野心的なゲームでは、ローエンドからハイエンドまでのデバイスのメモリと処理能力の制約に適合しつつ、複雑で大規模なゲーム体験のストリーミングとレンダリングを可能にする効率的なデータパイプラインが必要とされることがよくあります。
実際の例としては、Stunlock Studios 社がゴシックファンタジーがテーマのオープンワールド型サバイバルゲーム『V Rising』で、Entities Graphics パッケージとサブシーンを利用したというものがあります。これらのツールを使って、ゲーム世界の 16 万以上のインタラクティブなオブジェクトを 5 平方キロメートルのマップに分散配置してストリーミングし、1 つのサーバーに合計 35 万エンティティを配置しました。
また、Stunlock Studios 社は Entities Graphics パッケージに使い、ECS のパフォーマンスとスケーラビリティのブースト機能を活用し、使い慣れた HDRP で作業しながら、大規模かつ鮮やかなシーンをレンダリングすることができました。その結果、驚異的な広がりと没入感を持つゲームに仕上がりました。
何百、何千もの物理コライダーを使った大規模な決定論的シミュレーションを構築したい場合のために、ECS for Unity には Unity Physics と Havok Physics for Unity のパッケージが含まれています。ECS 互換の決定論的・ステートレス物理エンジンである Unity Physics には、剛体、ジョイント、衝突検出、その他のクエリなど、堅牢な機能を持つ物理ソルバーコンポーネントのセットが同梱されており、パフォーマンスが高く、かつ決定論的な物理世界を構築することが可能です。
また、ECS for Unity は Havok Physics for Unity もサポートしており、世界的なベストセラーゲームで採用されている業界トップレベルの決定論的物理シミュレーションと衝突判定機能を提供しています。Havok Physics for Unity では、最適化されたキャッシングを利用することで、大規模なワールドや複雑な物理シーンでも高いパフォーマンスと安定性を実現することができます。
Unity 2022.2 TECH ストリームでは、クリエイターは「Megacity」の中身を見ることができます。このサンプルには、さまざまな動的オブジェクトが含まれており、数千ものアクティブな物理オブジェクトがスケールに応じて効率的にインタラクションする様子を観察できます。
また、ECS for Unityは、マルチプレイヤーゲームを制作する上で多くのメリットをクリエイターに提供します。
Netcode for Entities パッケージは、ECS for Unity のオプショナルなコンパニオンで、最適化されたシリアライゼーションのパフォーマンス、物理予測、リモートプレイヤー予測、実行時に予測と補間を切り替える機能を備えた ECS ベースのサーバー権威ハイレベルネットワーキングライブラリを提供するものです。Unity 2022.2 TECH ストリームでは、クライアントサイドの予測、補間、遅延補償を備えたクライアント/サーバーアーキテクチャなどの様々な機能を紹介する、対戦型マルチプレイヤーレースゲームのサンプルも公開されます。
ECS for Unity、Burst コンパイラー、C# Job System が正式版になることで、クリエイターは Unity でより野心的なゲームを開発するための強力な基盤を手に入れることができます。しかし、私たちの仕事はこれにとどまらず、今では次のような領域にも力を入れています。
ECS ワークフローの集約:ECS for Unity のリリースにより、様々な新しいユースケースの出現が期待されます。短期的には、顧客が ECS for Unity をどのように活用しているかを観察し、ワークフローをさらに統合し、より良い体験を提供する機会をつかむために行動を起こします。また、良いキャラクターコントローラがあれば、多くの人にとって便利になるだろうということも聞いています。そこで、ネットワークについても考慮され、拡張性とパフォーマンスを追求した ECS ベースの強力なキャラクタコントローラー「Rival」を買収しました。
クロスプレイ型のマルチプレイヤーゲーム制作を可能にする:マルチプレイヤーゲームを作れるようにすることは、チームにとって大きな注力ポイントであり続けます。残っているギャップを埋め、さまざまなジャンルのマルチプレイヤーゲームに効率的に対応できるようにしていきたいと考えています。例えば、クロスプラットフォームの決定論に取り組んでクロスプレイ開発を簡素化したり、単にマルチプレイヤーゲームコードにおける決定論のニーズをサポートしたりすることなどが挙げられます。
オープンワールドのゲーム制作を可能にする:Unity のオープンワールドのサポート、特にコンテンツの拡張性について、これをより強固にするための開発を進めています。これは現在、アニメーションとワールドビルディングの 2 本柱で開発が進められています。
データ指向技術を活用し、高性能でカスタマイズ可能な 3D アニメーションシステムの実現に向けて進んでいます。ECS for Unity は、大規模なゲームを構築するための非常に強力な基盤を提供しますが、今後のアニメーションシステムは、GameObject で作られたゲームプレイへのアクセスも維持しますので、皆さんは引き続き、自分が最も快適に使用できるワークフローで仕事をすることができます。その間、私たちは Mecanim の安定性とパフォーマンスの向上に引き続き注力し、可能な限り修正をバックポートしていきます。
ワールドビルディングでは、Unity 2022.2 TECH ストリームで新しい Splines オーサリングフレームワークを立ち上げ、開発者やテクニカルアーティストがカスタムコンポーネントで川や道路などのジオメトリを描くためのツールを作成できるようにします。Splines オーサリングフレームワークは、分岐、マージ、押し出しなど、スプラインオブジェクトのアーティストワークフローを改善し、進化を続けていきます。地形のオーバーレイ、スキャッタリングの改善、地形のディテール密度の管理など、環境ワークフローのためのアーティストコントロールの改善にも取り組んでいます。
最新の Splines ツールをチェックしましょう。Unity でのワールドビルディングをより使いやすいものにするため、今後もツールを追加していきます。
ECS for Unity は、多くの人にとって初めて触れることになる、Unity を使ったゲーム開発に関する新しいパラダイムを持ち込みます。以下のガイド、ドキュメント、およびサンプルが、素早く始めるための助けとなるでしょう。
ECS for Unity に関する皆さんの体験や、皆さんが作っているゲームをシェアしていただければ幸いです。この記事に対する質問やコメントは、フォーラムや Unity の公式 Discord チャンネルで受け付けていますので、ぜひご意見をお寄せください。また公開のロードマップ をご覧いただき、ロードマップや機能に関するご意見、ご感想をお寄せください。
Games Focus シリーズの最終回では、過去数か月に渡って見てきた各重点分野から、ぜひ覚えておいていただきたいポイントをご紹介します。