とぐちブログ

VRの研究,作品制作をしています.

UnityのSteamVR Pluginで波のような複雑な振動を実現するツール

HTC ViveのHD振動について,SteamVR Pluginでは毎フレーム振動の強さを指定する関数しか用意されていません.

参考
Unity+HTC Vive開発メモ - フレームシンセシス

そこで,AnimationCurveで複雑な振動を作成し,それを再生するツールを実装しました.

github.com

使い方

ツールの使用方法を説明します.

HapticClipを作成

Projectビューで右クリック→Haptic/HapticClipでNewHapticClipを作成

https://github.com/togucchi/VR_HapticEngine/blob/master/%E7%84%A1%E9%A1%8C.png?raw=true

length : Clipの長さ
min : 振動の強さの最小値
max : 振動の強さの最大値
loop : trueにすると振動がループする
curve : 再生する振動のカーブ(x,y共に0〜1の値で作成してください)

HapticClipを再生

https://github.com/togucchi/VR_HapticEngine/blob/master/a.PNG?raw=true

SteamVR_TrackedObjectがアタッチされたGameObjectにHapticListenerをアタッチ
適当なオブジェクトにHapticSourceをアタッチ
HapticSourceに再生したいClipと振動させたいデバイスのHapticListenerをアタッチ
HapticSource.Play(); で再生

今後

今後は,短い音源ファイルからHapticClipを自動生成する機能の追加を考えています.