こんにちは、きくはなです。
今回はMeta XR SDKのv60から追加された新機能である、Meta XR Haptics SDKの詳細と、関連アプリのHaptics Studioの使い方を紹介していきます。
コントローラーの振動と音声を連動させることができ、XRコンテンツの没入感・臨場性を向上させることにも繋がる重要な機能だと思いますので、ぜひ試してみて下さい。
【追記】
コントローラーの振動と音声を連動させる部分を記述しておらず、若干詐欺っぽくなってしまっていたので、2,3部構成に分けて解説しようと思います。
Haptics SDK
Haptics SDKは、v60以降のMeta XR All-in-One SDKに含まれています。
Haptics SDKで何ができるか
Haptics SDKをインポートすることで、.hapticファイルに設定されたコントローラーの振動を再生できるようになります。
サンプルシーンが下記画像の場所にあります。
注意点として、サンプルを使用する場合、All-in-one SDKとは別に、Asset Storeから個別のHaptics SDKをマイアセットに登録しておく必要があります。
https://assetstore.unity.com/packages/tools/integration/meta-xr-haptics-sdk-272446
スクリプトでの制御方法
.hapticファイルはHapticClipクラスとして扱われ、HapticClipPlayerクラスを使用して再生できます。
ここでは簡単に、Meta公式のドキュメントに記載されているスクリプトを取り上げて基本機能を解説します。
using Oculus.Haptics;
public class MyClass : MonoBehaviour
{
// Assign both clips in the Unity editor
public HapticClip clip1;
public HapticClip clip2;
private HapticClipPlayer player;
void Awake()
{
player = new HapticClipPlayer(clip1);
}
public void PlayHapticClip1()
{
player.Play(Controller.Left);
}
public void PlayHapticClip2()
{
// Setting a new clip will stop the current playback
player.clip = clip2;
// Let's start the player again with the new clip loaded
player.Play(Controller.Left);
}
public void StopHaptics()
{
player.Stop();
}
void OnDestroy()
{
// Free the HapticClipPlayer
player.Dispose();
}
}
-
using Oculus.Haptics;
を追加しましょう。 - HapticClipPlayerを
new HapticClipPlayer(clip1)
で生成。引数のclip1
は省略できないようです。 -
Play()
で振動を再生できます。振動させたいコントローラーを右手・左手・両手のうちから選べます。 -
Stop()
で振動を停止できます。 - 処理をやめる場合、HapticClipPlayerを
Dispose()
することが推奨されています。 - 他にも、再生の優先順位を扱う
priority
プロパティや、振動をループさせるisLooping
プロパティが存在します。振動の強度や周波数の調整など、より詳しい設計方法を知りたい場合、公式のドキュメントを参照してください。
Haptics Studio
Haptics Studioは、前述の.hapticファイルを作成できるアプリケーションです。
詳細・ダウンロード先はこちら
PC版(Win, Mac)と、VRアプリ版の二種類存在しますが、それぞれ用途が異なり、Wifi経由で連動させることもできます。
PC(Win, Mac)
音声ファイル(.wav, .ogg, .mp3)をもとに、.hapticファイルを生成できます。
また、振動の強度や周波数を編集することも可能です。
VRアプリと接続させると、生成した.hapticファイルの振動をすぐに確認できます。
VRアプリ
通常のVRアプリケーションと同様に、Quest Storeからダウンロードできます。
こちらは主に.hapticファイルの振動を確認する用途で使われます。
PCと接続しないと生成した振動の確認はできませんが、単体でも動作するサンプルが用意されています。
コントローラー振動がどのようなものか理解したい場合は、こちらのサンプルだけでも十分可能です。
参考URL (Meta公式ドキュメント)
Haptics SDK (Unity)
Haptics Studio
Haptics設計に関するガイドライン
特に、"Haptics設計に関するガイドライン"については、Hapticsを使用する際の知見などがまとめられているので、ぜひご一読ください。