2 つの物理演算システム、1 つのデータプロトコル
この物理演算ソリューションは、Unity Physics と Havok Physics の 2 つで構成されています。どちらも DOTS フレームワークに基づいているので、同じデータプロトコルが使われています。
そのため、コンテンツやゲームコードを再構築することなく、2 つの物理演算システム間でプロジェクトをシームレスに移行できます。
Unity Physics と Havok Physics のいずれか、または両方を一緒に使っていても、データプロトコルが統一されているため、一度作成すれば、どの DOTS 対応システムを使ってもシミュレーションできます。
Unity Physics と Havok Physics は Data-Oriented Technology Stack(DOTS)フレームワークの上に構築されています。2 つのソリューション間でプロジェクトを移行でき、両方のソリューションで同時に実行することもできます。2 つのソリューションにはデータ互換性があるため、Unity の強力なツールやワークフローを使うことができます。

Unity Physics
高速、軽量、ステートレス、カスタマイズ可能。それが新しい Unity Physics ソリューションのモットーです。
Unity C# DOTS フレームワークの上に構築されていて、ネットワーク対応、完全にカスタマイズ可能、そしてそのまま使えるパフォーマンスが提供されます。モバイルでの次のヒットや新しいネットワーク化したマルチプレイヤーコンソール体験を構築している場合、Unity Physics は Burst コンパイラーと Job System を活用して広範なハードウェアにわたってスケーリングします。
Unity Physics は現時点ではプレビューリリースであり、パッケージマネージャーから入手でき、Unity 2019.1 以降のバージョンに対応しています。

Havok Physics
Havok Physics
Havok Physics は、複雑な物理演算シミュレーションを生成する必要がある顧客向けの、代表的なハイエンドソリューションです。このソリューションは、現世代コンソール向けの最有力作品の半数以上に使用されている業界トップの Havok Physics エンジンを基盤としています。Unity Physics と同じ C# DOTS フレームワークを使用して記述されていますが、ネイティブ C++ で記述されたクローズドソースの独自開発エンジン Havok Physics を使用できるほか、高いパフォーマンスと安定性が得られます。
Havok Physics にアクセスする方法について紹介するドキュメントをご覧ください。
パフォーマンス
Havok Physics は一般的なゲームのユースケースに合わせて大幅に最適化されています。コアとなるアルゴリズムは数年かけて改良されており、各種自動化キャッシング戦略により、必要な場面(非アクティブなオブジェクトのスリープを有効にするなど)でのみ CPU リソースが消費されます。
Havok Physics と Unity の統合:パフォーマンス(YouTube) を参照
動作
Havok Physics は、物理的なインタラクションが多数組み込まれた緻密なシーンが含まれている、グラフィック要件が最も厳しいゲームのパフォーマンス需要に対応するよう設計された、堅牢な物理演算エンジンです。その業界において 20 年以上にわたるパートナーとの連携により、Havok は物理演算シミュレーションに関わる最も困難な問題の多くを目撃し、その解決に向けて繰り返し取り組んできた実績があります。これはつまり、特に最適化されていない衝突ジオメトリを操作しているときに、物理ボディのスタッキングが安定し、動きの速いボディがあるときのアーティファクトが最小限に抑えられ、一般的に動作をより細かく制御できます。
リソース
DOTS 向け Unity Physics/Havok Physics の発表
Unity は Havok と連携して、Unity 用の次世代物理演算システムを構築しました。私たちが何に取り組んできたかについて詳細をご覧ください
DOTS 向け Unity Physics/Havok Physics の発表 | GDC 2019 での Unity の基調講演
GDC 2019 において、Unity で DOTS ベースのプロジェクト向けの完全な物理演算ソリューションを構築するために Unity と Havok が連携していることを発表しました。Joachim Ante(Unity の共同創業者および CTO)と Oliver Strunk(Havok)によるソリューションのプレゼンテーションをご覧ください。
Havok の Rory Mullane による、Physics に関する GDC での講演
AAA品質の物理演算エンジンが C++ から C# と Data-Oriented Technology Stack(DOTS)への進んだジャーニーを辿ってください。Unity Physics で利用可能になったアーキテクチャと機能について学び、それを実際に確認し、Unity Physics と Havok Physics をどのように連携させてゲームのダイナミズムを最大化できるかを確かめてください。
ディスカッションに参加する
要件を詳細に記述し、フィードバックを提供し、物理演算にニーズについて率直に話し合ってください。DOTS ベースの新しい物理演算システムに関する問題についてフォーラムに投稿することもできます。
「決定論的」とは、物理的シミュレーションに同じ入力セットが与えられたときに同じ成果が得られることです。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 に基づく選択可能パッケージです。既存のコンテンツが中断されることはありませんが、新しいバックエンドのいずれかに移行した場合に、既存のコンテンツの再調整が必要になることがあります。