このページでは、2D ゲームのスプライトに物理を適用するサンプルを紹介します。
この例では 2D Side Scroller Game を使用していますが、同じコンセプトをすべての 2D ゲームに適用することができます。
2D スタイルのゲームで物理を使用すると、カードがプレイヤーに見えてしまったり、以下の例のようにゲームがフォールアウトするなど、スプライトが移動あるいは回転するのを防ぐために物理を適用する際には通常、スプライトに対していくつかコンストレイントを適用することが望ましいです。
この動画では、コンストレイントを一切適用していない物理をスプライトに適用しているため、オブジェクトが実際に落下するとワールド外の、画面には映らない場所でひっくり返ります。こうならないようにしたいです。物理オブジェクトがワールドとプレイヤーのインタラクションに反応しながら、レベル内に留めておいて、所定の軸で回転しないようにすることで、常時スプライトが完全に見えるようにします。
スプライトは物理を適用する以外に、[Details] パネルからコンストレイントを適用することも出来ます。
-
物理を適用したいスプライトをレベルで選択します。
-
[Details] パネルで_Physics_ から [Simulate Physics] オプションをクリックします。
-
Constraints を展開して Lock Position を選択します (横スクロールゲームの場合は通常は Y 軸)。
この設定により物理を適用して Y 軸のみにロックできますが、この設定にすると他の問題が発生します。
スプライトは Y 軸にロックされていますが、まだ自由に回転してしまっています。
-
Constraints セクションで Lock Rotation を選択します(スクロールゲームの場合は通常は X 軸)。
物理をスプライトに適用すると、位置が Y 軸にロック、回転は X 軸にロックされます。
[Mode] オプションで移動を指定軸と平行にコンストレインすることもできます (この場合、同じエフェクトにするには XZPlane)
作成している 2D ゲームの種類に応じて、様々な設定を使用してオブジェクトに物理を提供する方法を制限することができます。