【Unity】障害物の下から突き抜けて上がる

2024年9月13日

Unityでの「プラットフォームエフェクター(Platform Effector 2D)」の使い方を説明します。このエフェクターは、2Dゲームでよく使用される機能で、キャラクターがプラットフォームを一方向からしか通過できないように設定できます。例えば、キャラクターが上からは通過できるが下からは通過できないといった、一方通行のプラットフォームを作ることができます。これにより、階段や傾斜のリアルな物理挙動を再現できます。

基本的な設定方法

具体的なサンプルについては、後半に記載しています

プラットフォームの作成

まず、プラットフォームとなるオブジェクトにSpriteRendererCollider2D(通常はBoxCollider2DEdgeCollider2D)を追加します。このコライダーがキャラクターとプラットフォームの物理的な接触を担当します。

プラットフォームエフェクターの追加

プラットフォームオブジェクトにPlatform Effector 2Dコンポーネントを追加します。これはCollider2Dと連動して、プラットフォームの物理的な挙動をコントロールします。

Rigidbody2Dの設定

エフェクターが正しく機能するには、プラットフォームにRigidbody2Dコンポーネントを追加し、そのBody TypeStaticに設定します。これにより、プラットフォームは動かない静的オブジェクトとして扱われます。

Rigidbody2DBody TypeKinematicに設定すると、プラットフォームが動く場合に適した設定となります。Staticは動かないオブジェクト向けですが、Kinematicはスクリプトで制御するオブジェクトや物理シミュレーションに影響を受けないオブジェクトに使います。

つまり、Kinematicを使用すると、プラットフォームを動かしながらも一方向にだけキャラクターを通過させるような挙動を実現できます。これにより、例えば移動する一方通行のプラットフォームなどを作成できます。

用途に応じてStaticまたはKinematicを選ぶと良いでしょう。

プラットフォームエフェクターの設定

Platform Effector 2Dコンポーネントには、いくつかの設定があります。

  • Surface Arc: プラットフォームの上面の範囲を角度で指定します。キャラクターがどの角度からプラットフォームに乗れるかを制御します。
  • Use One Way: これを有効にすると、キャラクターがプラットフォームの下から上に通過することができなくなり、一方通行のプラットフォームが作れます。

具体的なサンプル

Boxコライダーをアタッチしただけの場合

プラットフォームエフェクターをアタッチし適切に設定した場合

手順

プラットフォームエフェクターをアタッチし、既存のBoxコライダーのUsed By Effectorを設定します

応用設定

一方通行のプラットフォーム (One Way Platform)

Use One Wayオプションを有効にすると、プラットフォームが一方通行になります。これにより、キャラクターは下から通過できなくなります。

側面摩擦 (Side Friction)

Use Side Frictionオプションを有効にすると、プラットフォームの側面に摩擦が適用され、キャラクターが側面に触れたときの滑りを制御できます。

側面のバウンス (Side Bounce)

Use Side Bounceオプションを有効にすると、プラットフォームの側面がバウンド効果を持つようになります。これにより、キャラクターが側面に衝突したときに跳ね返る動作が追加されます。


Platform Effector 2Dを使うことで、自然で直感的なプラットフォームの挙動を実現できます。特にプラットフォームアクションやパズルゲームの開発に役立つ機能です。

Unityでのプラットフォームエフェクター(Platform Effector 2D)の使い方について説明します。プラットフォームエフェクターは、主に2Dゲームで、キャラクターが上からは通過できるが下からは通過できない、一方通行のプラットフォームを作成するために使用されます。これにより、階段や傾斜路を上がるといった、リアルな物理挙動をシミュレートすることができます。

Unity

Posted by hidepon