【Unity】アニメーションでコライダーのイネーブルをコントロールする

2023年4月1日

UnityのアニメーションでコライダーのEnable/Disableを制御するには、以下の手順に従ってください。

  1. コライダーをアタッチするオブジェクトの作成 最初に、Enable/Disableを制御するコライダーをアタッチするオブジェクトを作成します。このオブジェクトには、必要なコライダーと必要に応じてRigidbodyやColliderの他のコンポーネントが含まれます。
  2. アニメーションクリップの作成 次に、アニメーションクリップを作成します。アニメーションクリップは、制御するコライダーが含まれるオブジェクトにアタッチされます。
  3. アニメーションクリップにアニメーションカーブを追加する アニメーションカーブを使用して、コライダーのEnable/Disableを制御するためのスクリプトを追加します。

まず、アニメーションクリップを選択し、[Add Property]ボタンをクリックします。次に、"Collider"の項目を展開し、"Enabled"を選択します。これにより、"Collider/Enabled"のアニメーションカーブがアニメーションクリップに追加されます。

  1. アニメーションカーブの編集 アニメーションカーブを編集して、コライダーのEnable/Disableを制御するスクリプトを作成します。以下は例です。
using UnityEngine;

public class AnimationCurveExample : MonoBehaviour
{
    public Collider colliderToControl;
    public AnimationCurve enableCurve;

    private void Update()
    {
        float evaluationTime = GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime;
        bool isEnabled = enableCurve.Evaluate(evaluationTime) > 0.5f;
        colliderToControl.enabled = isEnabled;
    }
}
  1. アニメーションカーブの設定 アニメーションカーブを設定するには、先ほど追加した"Collider/Enabled"のアニメーションカーブを選択し、[Edit Curve]ボタンをクリックします。アニメーションカーブエディターが開きますので、コライダーのEnable/Disableを制御するためのカーブを設定します。
  2. アニメーションクリップの再生 最後に、アニメーションクリップを再生し、アニメーションカーブをトリガーして、コライダーを制御します。

以上の手順を踏むことで、Unityでアニメーションを使用してコライダーのEnable/Disableを制御することができます。アニメーションクリップを再生するたびに、アニメーションカーブがトリガーされ、コライダーのEnable/Disableが切り替わります。

注意点として、上記の例ではアニメーションカーブをコードで評価していますが、実際にはAnimatorコンポーネントを使用してアニメーションの状態を取得することが一般的です。また、この方法はコライダーを一つだけ制御する場合に最適ですが、複数のコライダーを制御する場合には、別のアプローチが必要になる場合があります。

以上が、UnityのアニメーションでコライダーのEnable/Disableを制御する方法です。