Interhaptics Mobile SDK
Interhaptics Core SDK のセットアップ
このドキュメントは、メイン SDK との整合性を取るために大幅に刷新されたバージョン 1.1.0 (03.2023) 以降のモバイル開発 (Android/iOS) 向け Interhaptics SDK のセットアップに関するものです。レガシーとして名称変更された旧バージョンについては、Interhaptics Mobile SDK (legacy) ページを参照してください。
Interhaptics Core SDK は、Unity SDK のはじめにの章に記載のとおり、Unity Package Manager 経由でインストールできます。
Android: プロジェクトを正しくセットアップするには、Project Settings -> Player -> Other Settings -> Scripting Backend が IL2CPP に設定されていることを確認し、Target Architecture が ARM64 に設定されていない場合は ARM64 に設定してください。ARMv7 が有効になっている場合はチェックを外してください (強く推奨)。Android では、Minimum API Level を 23 (Android 6.0 Marshmallow) に設定してください。
iOS: ハプティック機能を利用するには iPhone 8 以降が必要です。XCode ビルドを行うには Unity for MacOS の使用を強く推奨します。Target Device は iPhone に設定し、Target minimum iOS version は少なくとも 13.0 にしてください。


注意: ネイティブの振幅制御をサポートしていない Android スマートフォンの場合、開発者は GenericAndroidHapticAbstraction.AmplitudeThreshold パラメータを使用してハプティックフィードバックの強度を調整できます。このパラメータは整数値で、ハプティックフィードバックの強さを決定します。範囲は 0 から 255 (両端を含む) で、0 は最小振幅、255 は最大振幅を表します。指定したしきい値を超える値があれば、スマートフォンで振動がトリガーされます。実行時に変更された場合、新しいしきい値は新しいハプティック効果をスマートフォンで再生するときにのみ有効になります。ハプティック効果が現在再生中の場合、振幅しきい値を変更しても即時の影響はありません。新しいクリップが送信されたときにのみ、更新されたしきい値が利用されます。
// 体験を調整するために変更可能
// 実行時に変更可能
public static int AmplitudeThreshold = 100;
注意: iPhone を使用する場合、Unity プロジェクトは XCode プロジェクトの生成を担当しており、最終的にアプリをビルドする責任があることに注意してください。XCode プロジェクトをビルドするには、Unity の macOS 版 (Windows 版ではなく) を使用することを強く推奨します。
Unity Editor のコンソールに DllNotFoundException: HAR assembly エラーが表示されることがあります。これらは XCode プロジェクトのビルドに影響を与えないため、無視してかまいません。
弊社のテストでは、Interhaptics は XCode バージョン 14.3 および 15.0+ と互換性があることが確認されています。開発者チームでサインインした後、最適なパフォーマンスのために以下の設定を無効にすることを推奨します。
- Target UnityFramework -- Enable Module Verifier
- Enable User Script Sandboxing
これらの設定は Interhaptics の機能には必要なく、互換性の問題を引き起こす可能性があります。これらのチェックを外すことで、iOS デバイスでアプリをビルドおよび実行する際によりスムーズな体験が保証されます。
iOS でのハプティック効果の最大長は 30 秒です。それ以上の長さが必要な場合は、2 つ以上のハプティック効果を連結する必要があります。



以下の手順は、非常に簡易な実装の例です。詳細は本セクションの Unity SDK のはじめに章で説明されています。
モバイル統合の簡易例
Interhaptics Unity SDK 1.1.0 -- 1.2.3
HapticManager コンポーネントを持つ空の GameObject を作成します。必要に応じて永続化することもできます。

Interhaptics Unity SDK 1.3.0 +
このバージョン以降、HapticManager.cs は MonoBehaviour クラスではないため、HapticManager コンポーネントを追加しないでください。
HapticBodyPart コンポーネントを持つ別の GameObject を作成します。HapticBodyPart を Hand に、Side を Global に設定します。

EventHapticSource コンポーネントを持つ空の GameObject を作成し、Haptic Effects フォルダからハプティック効果を選択します。

ハプティックフィードバックのトリガーとして機能する UI 要素を作成します。EventHapticSource GameObject の PlayEventVibration メソッドを OnClick に追加します。
