こんにちは、なっつーです。
(この記事は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 : 再生するHaptic Effectアセット
Hand : 振動させるOculusTouchの左右
Scale : Haptic EffectのAmplitude(振幅)の
減衰係数(0~1で指定)
Loop : 再生終了後にループさせるかどうか
Haptic Effectアセットについて
コンテンツブラウザ上で右クリックし、
Miscellaneousから選んで作成できる
HapticEffectアセットは3種類あります。
Miscellaneousから選んで作成できる
HapticEffectアセットは3種類あります。
・Haptic Feedback Effect Buffer
・Haptic Feedback Effect Curve
・Haptic Feedback Effect Sound Wave
・Haptic Feedback Effect Curve
・Haptic Feedback Effect Sound Wave
Haptic Feedback Effect Buffer
Amplitudesで0~255の整数で振幅の配列を作成します。
SampleRateは1秒間に読み込む要素の数です。
(Frequency(周波数)は30Hz固定)
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
で再生されます。
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秒までの再生です。
をfloatカーブエディタにて指定します。 数値範囲はそれぞれ0~1。
Curveの振幅1と
Bufferの振幅255は同じです。
周波数は0でも振動するので、
10~30Hzくらいの範囲で
制御されていると思われます。カーブ上の最終キーまで再生されます。
上記画像の場合は0.5秒までの再生です。
Haptic Feedback Effect Sound Wave
モノラルのサウンドファイルを設定し、
HapticEffectを自動生成します。
詳細は不明です。
HapticEffectを自動生成します。
詳細は不明です。
Set Haptics by Value
Target : 対象のPlayer Controller
Frequency : 0~1の範囲で周波数を指定
Amplitude : 0~1の範囲で振幅を指定
Hand : 振動させるOculusTouchの左右 3秒くらい振動させ続けます。
Frequency : 0~1の範囲で周波数を指定
Amplitude : 0~1の範囲で振幅を指定
Hand : 振動させるOculusTouchの左右 3秒くらい振動させ続けます。
Stop Haptic Effect
Target : 対象のPlayer Controller
Hand : 振動を止めるOculusTouchの左右 対象のOculusTouchの振動を止めます。
Hand : 振動を止めるOculusTouchの左右 対象のOculusTouchの振動を止めます。
おまけで気になった点をいくつかピックアップします。
Set Haptics by Value で振動しない時がある
→Set Haptics by Valueを連続で実行すると振動しない模様です。
間にStop Haptic Effectを挟むと解消できました。
→Set Haptics by Valueを連続で実行すると振動しない模様です。
間にStop Haptic Effectを挟むと解消できました。
HTC Viveを振動させるのも同じ?
→HTC Viveの場合は、Play Dynamic Force Feedbackか
Client Play Force Feedbackを使用して振動制御を行うらしいです。
実機がないので確認できていません。
→HTC Viveの場合は、Play Dynamic Force Feedbackか
Client Play Force Feedbackを使用して振動制御を行うらしいです。
実機がないので確認できていません。
Oculus Touchを両手に握ってないと振動しないと聞いた。
→以前はそうであったが、
現在(UE4.15.1)はtouchを持たなくても振動するようになってます。
→以前はそうであったが、
現在(UE4.15.1)はtouchを持たなくても振動するようになってます。
コメントを残す