メインコンテンツまでスキップ

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 ボタンの設定が適用されます。

InputManager XInput Presets
InputManager XInput Presets

ステップ 2: カスタムハプティクス用 GameObject の追加

Interhaptics Unity SDK 1.1.0 -- 1.2.3

HapticManager コンポーネントを持つ空の GameObject を作成します。必要に応じて永続化することもできます。

Haptic Manager GameObject
Haptic Manager GameObject

Interhaptics Unity SDK 1.3.0 +

このバージョン以降、HapticManager.cs は MonoBehaviour クラスではないため、HapticManager コンポーネントを追加しないでください。

コントローラー用に HapticBodyPart コンポーネントを追加します。Body PartHand に設定します。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、コンソール) では実行時にも更新されます。

HapticBodyPart - GameInput コントローラーの Palm Lower 部分
HapticBodyPart - GameInput コントローラーの Palm Lower 部分
HapticBodyPart - GameInput コントローラーの Index Upper Trigger 部分
HapticBodyPart - GameInput コントローラーの Index Upper Trigger 部分

ステップ 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 のハプティックボディパーツでのみ機能します。
Haptic Sources
Haptic Sources
EventHapticSource example
EventHapticSource example
  • 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();
}
}