ソリューション

ゲーム開発用の物理演算ソリューション

現実感のある物理演算インタラクションを使用して、リッチでインタラクティブ、かつダイナミックな世界を作り上げましょう。

Physics colliders

重要なゲームを制作する

物理演算ソリューションを使用すると、ゲームの要素に重量を持たせることができます。2D、3D、一人称視点のカメラ、横スクロールのどれで構築しても、キャラクターやオブジェクトが周囲のゲーム世界に対して現実感のある反応を示すようになります。

ECS ベースのプロジェクト向け物理演算

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 つあります。

Rust with PhysX

ビルトインの 3D 物理演算:NVIDIA PhysX の統合

Unity のビルトインの 3D 物理演算エンジンは、NVIDIA との密接なパートナーシップによって統合された PhysX エンジンです。PhysX はエディターから直接利用できます。

NVIDIA PhysX SDK は高度なシミュレーションを可能にするオープンソースのスケーラブルなリアルタイム物理演算エンジンであり、現実さながらのシミュレーションとリアルタイムの動的エフェクトにより、さらに没入感の高いゲームプレイを実現できます。PhysX は 3D の世界を表現するためのライブラリであり、これを使用してアクターを作成および破壊し、それらの明示的なインタラクションや距離に基づくインタラクションを追跡できます。 

PhysX SDK の動力学シミュレーション機能には、最大座標または縮小座標を使用した衝突、ジョイント、アクチュエーションのサポートが含まれています。また、単純なレイキャストからスイープやオーバーラップのテストまで、さまざまなツールを使用してワールドに対するクエリを実行できます。

3D 物理演算の詳細を見る
2D Physics

2D ゲーム用のビルトインの物理演算

Unity には、ゲームをパワーアップする数多くの機能と最適化を備えた、専用の最適化された 2D 物理演算が含まれています。

2D コライダーでは、プリミティブ形状からカスタム形状まで、スプライトの形状を正確に検出できます。Rigidbody 2D も含まれている場合、オブジェクトは重力に反応し、固形のオブジェクトとして動作します。

また、別のオブジェクトに固定されたオブジェクトでは 2D 用のジョイントによって物理演算のメリットが得られ、スライドするプラットフォームやチェーン、バネ、車に現実感を加えることができます。浮力やマグネットのシミュレーションを行う際は、2D エフェクターによって非接触型の物理演算エフェクトを追加できます。

2D 物理演算の詳細を見る
「決定論的」とはどういう意味ですか?

「決定論的」とは、物理的シミュレーションに同じ入力セットが与えられたときに同じ成果が得られることです。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 では、溶け込んでいるオブジェクトや積み重なったボディの処理で、より優れた安定性も提供されます。キャッシュを必要とする高度な摩擦モデルによって、挙動も改善されます。

既存のゲームに Havok Physics を事後適用することはできますか?可能である場合、どの程度困難ですか?

Havok Physics と Unity Physics のどちらでも、Unity エディターでは同じデータモデルが使われます。1 つの方法でコンテンツを作成し、ゲームやゲームワールドのサブセットに特有のニーズに応じて、いずれかまたは両方の物理演算バックエンドを選択します。

新しいシステムによって、現在または今後のプロジェクトで何かが中断されることや複雑になることがありますか?

いいえ。Havok Physics と Unity Physics のどちらも DOTS に基づく選択可能パッケージです。既存のコンテンツが中断されることはありませんが、新しいバックエンドのいずれかに移行した場合に、既存のコンテンツの再調整が必要になることがあります。

弊社のウェブサイトは最善のユーザー体験をお届けするためにクッキーを使用しています。詳細については、クッキーポリシーのページをご覧ください。

OK