ForceFeedbackEffect (以降、"FFE"と記載)とはいったい。
「コントローラの振動機能」でした。
なかなか「こだわり」な機能なんだけど、使いたい時に無いと困りそうな感じ。
ちなみにBlueprintからassetを作成できる。制御もできる。実のところドキュメントに無かったのでソースから逆引きして調べてみた。
1.FFE Assetの作成
以下、図の赤枠を選択する。Assetの色は赤色のようだ。
中身はこんな感じ。
振動させる情報を登録するテーブル。
「Affects Left XXX」は
コントローラの左側、「Affects Right XXX」はコントローラの右側。
「Curve」は"振動の強さ"と"振動時間"を設定。Valueは0.0~1.0内で強さを調整できる。
Curveを使う場合は、最後のPinの時間まで振動を継続する
2.いざ振動させる
(1) FFEAssetを使わない場合
以下の関数を使う。
・PlayDynamicForceFeedback
「Intensity」は強さ、「Duration」は時間。以下フラグは上述の通り。
で、NodePinに"Start"、
"Update"、"Stop"があるけど、Ver4.6では"Start"しか使用できない。
"Update"、"Stop"は効果なし、おそらく将来機能だろう。"Target"にはPlayerControllerを設定する。
(2) FFEAssetを使う場合以下の関数を使う。
・ClientPlayForceFeedback
・ClientStopForceFeedback
上述同様、"Target"にはPlayerControllerを設定。
"ForceFeedbackEffect"に作成したFFEAssetを設定。
"Looping"はループ設定。True時はFFEAsset内の設定を繰り返し実行する。
"Tag"は止めるために使用、Tagを指定して停止チェックを行う。
ちなみに、マルチプレイなどの際は対象プレイヤのPlayerControllerを設定する。
というわけで、XBox360のコントローラで動作確認まで実施。
パッドの振動ってゲームに必ずしも必要な機能ではないけれど、こういった細かい機能へのこだわりは素晴らしいなと思った。
FFEAssetを使えば細かい振動調整ができるので、こだわりたい場合はAssetを使う方法が良いだろう。