UE4でOculusTouch振動制御 Hapticノードまとめ

こんにちは、なっつーです。
(この記事はUE4.15.1時点の内容です。)

 

UE4でOculusTouchに振動フィードバックを与えるために、
Haptic(触覚)ノードを使用します。

 

イベントグラフ上で右クリックして、
Game→Feedbackの欄に3つのHapticノードがあります。
※Context Sensitiveのチェックを外さないと表示されません。
Play Haptic Effect
 作成したHapticEffectアセットを再生して振動させます。
Set Haptics by Value
 Frequency(周波数)とAmplitude(振幅)を指定して振動させます。
Stop Haptic Effect
 振動を止めます。

 

Play Haptic Effect
Target : 対象のPlayer Controller
Haptic Effect : 再生するHaptic Effectアセット
Hand : 振動させるOculusTouchの左右
Scale : Haptic EffectのAmplitude(振幅)の
減衰係数(0~1で指定)
Loop : 再生終了後にループさせるかどうか

 

Haptic Effectアセットについて
コンテンツブラウザ上で右クリックし、
Miscellaneousから選んで作成できる
HapticEffectアセットは3種類あります。
・Haptic Feedback Effect Buffer
・Haptic Feedback Effect Curve
・Haptic Feedback Effect Sound Wave

 

Haptic Feedback Effect Buffer
Amplitudesで0~255の整数で振幅の配列を作成します。
SampleRateは1秒間に読み込む要素の数です。
(Frequency(周波数)は30Hz固定)

 

上記画像の場合は
0.0~0.1 秒は 振幅0
0.1~0.2 秒は 振幅127
0.2~0.3 秒は 振幅255
0.3~0.4 秒は 振幅127
0.4~0.5 秒は 振幅0
0.5~0.6 秒は 振幅 255
で再生されます。

 

Haptic Feedback Effect Curve
Frequency(周波数)とAmplitude(振幅)
をfloatカーブエディタにて指定します。 数値範囲はそれぞれ0~1。
Curveの振幅1と
Bufferの振幅255は同じです。
周波数は0でも振動するので、
10~30Hzくらいの範囲で
制御されていると思われます。カーブ上の最終キーまで再生されます。
上記画像の場合は0.5秒までの再生です。

 

Haptic Feedback Effect Sound Wave
モノラルのサウンドファイルを設定し、
HapticEffectを自動生成します。
詳細は不明です。

 

Set Haptics by Value
Target : 対象のPlayer Controller
Frequency : 0~1の範囲で周波数を指定
Amplitude : 0~1の範囲で振幅を指定
Hand : 振動させるOculusTouchの左右 3秒くらい振動させ続けます。

 

Stop Haptic Effect
Target : 対象のPlayer Controller
Hand : 振動を止めるOculusTouchの左右 対象のOculusTouchの振動を止めます。

 

おまけで気になった点をいくつかピックアップします。

 

Set Haptics by Value で振動しない時がある
→Set Haptics by Valueを連続で実行すると振動しない模様です。
間にStop Haptic Effectを挟むと解消できました。

 

HTC Viveを振動させるのも同じ?
→HTC Viveの場合は、Play Dynamic Force Feedbackか
Client Play Force Feedbackを使用して振動制御を行うらしいです。
実機がないので確認できていません。

 

Oculus Touchを両手に握ってないと振動しないと聞いた。
→以前はそうであったが、
現在(UE4.15.1)はtouchを持たなくても振動するようになってます。

コメントを残す

メールアドレスが公開されることはありません。