
重要なゲームを制作する
物理演算ソリューションを使用すると、ゲームの要素に重量を持たせることができます。2D、3D、一人称視点のカメラ、横スクロールのどれで構築しても、キャラクターやオブジェクトが周囲のゲーム世界に対して現実感のある反応を示すようになります。
Unity の Entity-Component-System(ECS)ベースのプロジェクト向け物理演算ソリューションは、Unity Physics と Havok Physics for Unity の 2 つで構成されています。どちらも Unity の ECS フレームワークに基づいており、同じデータプロトコルを使用しています。
プロトコルが同じであるため、コンテンツやゲームコードを再構築することなく、これらの 2 つの物理演算システム間でプロジェクトを移行できます。Unity Physics と Havok Physics のどちらを使用していても、データプロトコルが統一されているため、一度オーサリングすれば任意の ECS ベースの物理演算エンジンを使用してシミュレーションを実行できます。

Unity Physics
高速、軽量、ステートレス、カスタマイズ可能。これらが新しい Unity Physics ソリューションの原動力です。
Unity の ECS フレームワークの上に構築されていて、ネットワーク対応、完全にカスタマイズ可能、そしてそのまま使えるパフォーマンスが提供されます。モバイルゲームを構築する場合でも、新しいネットワーク化したマルチプレイヤーコンソール体験を構築する場合でも、Unity Physics は Burst コンパイラーと Job System を活用して広範なハードウェアにわたってスケールできます。
Unity Physics は Unity 2022.2 TECH ストリームで提供開始され、パッケージマネージャーからアクセス可能です。

Havok Physics for Unity
Havok Physics for Unity は、ECS ベースのプロジェクト向けのシームレスな統合によって、物理演算実装のレベルを引き上げます。Unity Physics はほとんどのリアルタイム 3D のユースケースに対応するよう最適化されており、Havok Physics for Unity は、広大なオープンワールドや大量のリジッドボディを含むシーンでの物理演算の安定性とパフォーマンスを高めます。Havok Physics for Unity のシミュレーションバックエンドは、既存の物理演算アセットやコードを変更することなく、いつでも簡単に Unity Physics のバックエンドに切り替えることができます。
Havok Physics for Unity は Unity 2022.2 TECH ストリームで提供開始されます。
オブジェクト指向のプロジェクトに取り組んでいる場合に検討対象となる、3D と 2D の両方のゲーム開発に対応したビルトインの物理演算エンジンは 2 つあります。

ビルトインの 3D 物理演算:NVIDIA PhysX の統合
Unity のビルトインの 3D 物理演算エンジンは、NVIDIA との密接なパートナーシップによって統合された PhysX エンジンです。PhysX はエディターから直接利用できます。
NVIDIA PhysX SDK は高度なシミュレーションを可能にするオープンソースのスケーラブルなリアルタイム物理演算エンジンであり、現実さながらのシミュレーションとリアルタイムの動的エフェクトにより、さらに没入感の高いゲームプレイを実現できます。PhysX は 3D の世界を表現するためのライブラリであり、これを使用してアクターを作成および破壊し、それらの明示的なインタラクションや距離に基づくインタラクションを追跡できます。
PhysX SDK の動力学シミュレーション機能には、最大座標または縮小座標を使用した衝突、ジョイント、アクチュエーションのサポートが含まれています。また、単純なレイキャストからスイープやオーバーラップのテストまで、さまざまなツールを使用してワールドに対するクエリを実行できます。

2D ゲーム用のビルトインの物理演算
Unity には、ゲームをパワーアップする数多くの機能と最適化を備えた、専用の最適化された 2D 物理演算が含まれています。
2D コライダーでは、プリミティブ形状からカスタム形状まで、スプライトの形状を正確に検出できます。Rigidbody 2D も含まれている場合、オブジェクトは重力に反応し、固形のオブジェクトとして動作します。
また、別のオブジェクトに固定されたオブジェクトでは 2D 用のジョイントによって物理演算のメリットが得られ、スライドするプラットフォームやチェーン、バネ、車に現実感を加えることができます。浮力やマグネットのシミュレーションを行う際は、2D エフェクターによって非接触型の物理演算エフェクトを追加できます。
リソース
DOTS 物理演算のサンプル
使い始めるときに役立つように、このサンプルのリポジトリでは DOTS で Physics を活用する方法を示しています。Unity Physics のサンプルは、GitHub にある ECS のサンプルに含まれています。
GDC での Havok
Unity Physics のアーキテクチャと機能について知り、それを実際に確認し、Unity Physics と Havok Physics をどのように連携させてゲームのダイナミズムを最大化できるかを学びましょう。
ディスカッションに参加する
物理演算に関して、要件を詳細に記述し、フィードバックを提供し、率直なディスカッションを行いましょう。ECS ベースの新しい物理演算システムであなたが直面した問題を、フォーラムで共有してください。
Unity と Havok のパートナーシップ
Havok と Unity がどのように連携して、Unity の ECS フレームワークの上に Havok Physics for Unity を作り上げたかについて語ったインタビューをご覧ください。
「決定論的」とは、物理的シミュレーションに同じ入力セットが与えられたときに同じ成果が得られることです。Unity Physics と Havok Physics のどちらでも決定論的な結果が提供されます。ただし、CPU アーキテクチャ(x86、ARM など)の違いによって数学的演算でわずかな相違が生じるため、異なるハードウェアではシミュレーションの決定論的な結果が異なる可能性があります。
Burst ではクロスアーキテクチャでの決定論の問題が今年中に解決される予定であるため、Unity Physics も自動的にこの機能の恩恵を受けることになり、あらゆる装置でシミュレーション結果が同じになります。
注:単一アーキテクチャでの決定論については、Unity Physics では近日公開予定の Burst の更新が必要です。
Havok も含めてほとんどの物理演算エンジンでは、インテリジェントな最適化(各種の演算を回避または一定に保つためにワールドの状態の一部をキャッシュするなど)によって、パフォーマンスと安定性が実現されています。ステートレス物理演算では、代わりに総当たりの最適化によってパフォーマンスが実現されています。そのため、また将来のバージョンの Burst で複数のアーキテクチャ間での実行が可能になるため、さまざまなネットワーク化のシナリオでステートレス物理演算の恩恵を受けることができます。その一方で、Havok の方が優れたパフォーマンスと安定性を実現できるシナリオもあります。
将来のバージョンの Burst では、ステートレス物理演算を複数の CPU アーキテクチャ間で決定論的に実行できるため、ネットワーキングのさまざまなセットアップをすぐに簡単に使うことができます。そのような例として、クライアント側予測(FPS など)、ロックステップ式クライアントシミュレーション(RTS など)、GGPO/ロールバック(格闘ゲームなど)があります。
Havok Physics では、インテリジェントな最適化を行うためにさまざまな状態情報がキャッシュされるので、大規模なゲームや複雑な物理演算システムを使うゲームで優れたパフォーマンスを実現できます。Havok Physics では、溶け込んでいるオブジェクトや積み重なったボディの処理で、より優れた安定性も提供されます。キャッシュを必要とする高度な摩擦モデルによって、挙動も改善されます。
Havok Physics と Unity Physics のどちらでも、Unity エディターでは同じデータモデルが使われます。1 つの方法でコンテンツを作成し、ゲームやゲームワールドのサブセットに特有のニーズに応じて、いずれかまたは両方の物理演算バックエンドを選択します。
いいえ。Havok Physics と Unity Physics のどちらも DOTS に基づく選択可能パッケージです。既存のコンテンツが中断されることはありませんが、新しいバックエンドのいずれかに移行した場合に、既存のコンテンツの再調整が必要になることがあります。