Interhaptics GameInput/XInput SDK
このセクションでは、GameInput / XInput コントローラーを使用して Unity ゲームで再生するハプティック効果を追加する手順を、ステップバイステップで示します。サンプルシーンとスクリプトはすでに Core SDK に提供されており、Interhaptics Core SDK/Assets/Scenes/SampleScene_GameInput_XInput.unity のパスにあります。
ステップ 1: Interhaptics Core SDK のセットアップ
Interhaptics Core SDK は、ドキュメントに記載のとおり、Unity Package Manager 経由でインストールできます。
GameInput/XInput コントローラーは、Unity Input Manager または新しい Input System パッケージのいずれかを介してセットアップできます。Input Manager を使用する場合、Interhaptics Core SDK\Assets\InputManager フォルダに InputManager-GameInput_XInput.preset というプリセットファイルがあります。これをクリックするだけで、A、B、X、Y および DPad ボタンの設定が適用されます。

ステップ 2: カスタムハプティクス用 GameObject の追加
Interhaptics Unity SDK 1.1.0 -- 1.2.3
HapticManager コンポーネントを持つ空の GameObject を作成します。必要に応じて永続化することもできます。

Interhaptics Unity SDK 1.3.0 +
このバージョン以降、HapticManager.cs は MonoBehaviour クラスではないため、HapticManager コンポーネントを追加しないでください。
コントローラー用に HapticBodyPart コンポーネントを追加します。Body Part を Hand に設定します。Side の向きは、ハプティックモーターを分離する場合に Left または Right に設定し、ハプティック効果を統一して送信したい場合に Global に設定します。Spatial Haptic Sources を使用する場合は、コントローラーに Box Collider と Rigidbody (Use Gravity を false に設定) を持たせてください。この HapticBodyPart は必要に応じてプレイヤーリグにアタッチでき、ゲーム内で出会うさまざまな Spatial および Event Haptic Sources とインタラクションできます。
各 HapticBodyPart には Debug Mode スイッチと Target Intensity 値があり、これらは実行時にも変更できます。Spatial Haptic Sources で機能し、強度はモバイルでは各再生前に更新され、コントローラー (PC 上の GameInput/XInput、OpenXR や Meta Quest、コンソール) では実行時にも更新されます。


ステップ 3: ハプティック効果の追加
ハプティックフィードバックのソースとして機能する通常の GameObject を作成し、その GameObject に EventHapticSource コンポーネントを追加します。AudioSource と同期したハプティック効果を使用したい場合は、AudioSource も追加するこのコンポーネントの派生形である AudioHapticSource を使用できます。両方のハプティックソースコンポーネントは、Inspector を介して、または Unity トップメニューの Component -> Interhaptics オプションを介して追加できます。任意の HapticSource コンポーネントでは、以下のオプションを設定できます。
- Haptic Effect File: Unity SDK の haps ファイルライブラリからハプティック効果を選択するか、Haptic Composer で独自に設計するか、オーディオファイルをインポートして作成します (Event、Audio、Spatial および通常の Haptic Sources -- 親クラス用、Parametric Haptic Sources を除く)。
- Vibration Offset: 設定された秒数後にハプティック効果を開始します。
- Source Intensity: ハプティック効果の強度 [0 から 2 の値]。実行時に変更できます。GameInput/XInput またはコンソールコントローラー / XR コントローラーでは、ハプティック効果の再生中に強度を変更できます。
- Debug Mode: ハプティックソースが再生を開始および停止したときにコンソールに表示します。
- Is Looping: ハプティック効果をループさせたい場合にチェックします。true に設定すると、最大ループ数または最大ループ時間値を設定できます。
- Play At Start: GameObject がアクティブになると同時に再生を開始します。
- Haptic Body Parts array: ハプティック効果を再生するコントローラー領域。GameInput コントローラーの場合、Body Part を Palm (コントローラーの下部振動モーター)、Index (コントローラーの上部またはトリガー部の振動モーター)、または Hand (両方の部分 -- 下部と上部) に設定し、ハプティック効果をターゲットしたい側 (left、right、または global) に設定します。XInput 専用コントローラーは Hand/Palm のハプティックボディパーツでのみ機能します。


- Interhaptics SDK パッケージには 30 を超えるハプティック効果がオーディオとともに含まれており、選択して使用できます。
- カスタムハプティック効果は Haptic Composer でインポートして作成することもできます。(ダウンロード | ドキュメント)
ステップ 4: テスト
- ハプティック効果は、Play at Start チェックを使用してボタン押下で GameObject をアクティブ/非アクティブ化することによりテストできます。あるいは、EventHapticSource GameObject の public メソッド PlayEventVibration() を呼び出すことによってもテストできます。コードスニペットは以下、または Interhaptics Core SDK パッケージの GameInputXInputHapticController サンプルスクリプトに記載されています。
using Interhaptics.Internal;
using Interhaptics.Utils;
using Interhaptics.Platforms.XInput;
//ここで EventHapticSource を設定
public EventHapticSource eventHapticSource;
void Update()
{
if (Input.GetKeyDown(KeyCode.Joystick1Button0))
{
eventHapticSource.PlayEventVibration();
}
}