大福未来研究所

大福フューチャーラボのなんか色々なアレ。プログラミング(C++/DirectX/Unity/UE4あたりやりたい)とか音楽とかの。

【UE4】コントローラを振動させる

振動が生む感動

ダメージを受けた時、必殺技を出した時、ボスが倒れた時。
色んなタイミングでコントローラが振動するゲームがコンシューマゲームには多いと思います。

適切なタイミングに用意された振動は、ゲームのもたらす情報を増幅し、
場合によっては感動や陶酔感を生むこともあります。

UE4ではコントローラを振動させる事ができ、しかもそれが案外簡単な方法で出来たので、
このブログ記事で共有させて頂けたらと思います。

フォースフィードバックエフェクトを用意する

実際のところ、コントローラを振動させるには、
f:id:dfk_ohnuma:20170107214936p:plain

このようなノードを用意するだけでOKでした。
各パラメータは以下の通りです。

・ForceFeedbackEffect……振動のパターンプリセット
・Looping……振動パターンがループするか否か
・Tag……タグを持たせたい時に使う

ちなみに、Client Play Force Feedbackで振動を開始した場合、
任意のタイミングでClient Stop Force Feedbackノードを使って振動を停止させることが出来ます。


さて、ノードを用意したばかりではForceFeedbackEffectには何も割り当てられていない場合がほとんどだと思います。
このノードは指定したパターンを再生するわけで、振動パターンが書き込まれたフォースフィードバックエフェクトを指定しなければなにも起きません。

f:id:dfk_ohnuma:20170107220803p:plain

これがフォースフィードバックエフェクトです。
「その他」→「フォースフィードバックエフェクト」で新規作成できます。

f:id:dfk_ohnuma:20170107221830p:plain

f:id:dfk_ohnuma:20170107222232p:plain

コントローラのどの部分を振動操作の対象とするかをチェックボックスで選び、
グラフで横・時間にたいする縦・振動の強さを描きます。

そして出来上がったフォースフィードバックエフェクトを先ほどのノードから指定して、完了です。
これで、実行パルスが通過するタイミングでコントローラが振動します。

フォースフィードバックエフェクトについては、
imoue.hatenablog.com
こちらの記事も参考にするとよいかと思います。
お疲れ様でした。