ニュース

Top  >   27. 移動・テレポート・掴む  >   Q, オブジェクトを掴んだときに振動(触覚)を与えたい

Q, オブジェクトを掴んだときに振動(触覚)を与えたい

2026/03/18

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

VR で掴んだ瞬間に振動を返したい場合は、選択イベントに合わせてハプティクスを再生します。

原因 / 背景

  • 触覚は自動では発生しないため、Select Enter や Hover Enter などのイベントに対して明示的に振動命令を送る必要があります。
  • 強さと時間が過剰だと不快になりやすいため、短く軽い振動から始めるのが基本です。

実装 / 手順

  1. XR Grab Interactable の Select Enter イベントや XRI の haptic コンポーネントを利用して、掴んだ瞬間だけ振動を送ります。
  2. コントローラーごとに反応が異なる場合があるため、実機で振幅と再生時間を調整してください。
  3. 連続振動ではなくイベント単位で設計すると快適性を保ちやすくなります。

サンプルコード

using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;

public class GrabHapticFeedback : MonoBehaviour
{
    [SerializeField] private SimpleHapticFeedback hapticFeedback;
    [SerializeField] private float amplitude = 0.5f;
    [SerializeField] private float duration = 0.08f;

    public void PlayOnSelectEnter(SelectEnterEventArgs args)
    {
        if (hapticFeedback != null)
        {
            hapticFeedback.amplitude = amplitude;
            hapticFeedback.duration = duration;
            hapticFeedback.Play(args.interactorObject);
        }
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず対象デバイスでも必ず動作確認してください。

難易度:Level 3(中級)
対象プラットフォーム:VR,Unity
関連キーワード:コントローラー,リアクション,振動,触覚

Level 3-5 向けバナー 1Level 3-5 向けバナー 2