リアルタイムでスローモーションにする方法!
今回は、
リアルタイムスローモーション演出!
の紹介をします!
スローモーションの実装は実はすっごく簡単!
このノードを使えばすぐにできる!
「SetglobalTimeDilation」ノードです!
それでは実際に使ってみましょう!
今回はFPSテンプレートでの説明です!
レベルBPを開きましょう!
以下のように処理を組みましょう!
SetglobalTimeDilationの「TimeDilation」には「0.05」と入れましょう。
TimeDilationの数値は「1」で通常速度となります。
つまり、「1」より小さい数値を入れると数値分スローになります。
「0.05」ですからかなり遅くなるはずですよね。
それではプレイしてみましょう!
なかなかスローですね!
しかし、肝心の自分が動けなくなっていますね。
これでは不便です。
なので、スローモーション中でも好きに動けるようにしましょう!
以下のようにしてください。
セット変数のCustomTimeDilationのターゲットには、GetplayerCharacterをつなげましょう。じゃないとエラーが出て怒られますよ。
とりあえず、CustomTimeDilationの数値は「1」にしましょう!
それではもう一度プレイしましょう!
自分も動けるようになりましたね!
しかし、かなーり遅いのでかなりイライラしますよね。
スローの世界で自分だけ普通に動けるってかっこいいですよね!(デビルメイクライ3のクイックシルバーみたいなね!)
なので、「SetglobalTimeDilationの数値を考慮して、CustomTimeDilationに値を入れましょう」
どういうことかというと、
例えば、TimeDilationに「0.05」と入れた場合、CustomTimeDilationには「20」を入れましょう!こうすると自分は通常の速度で動けます!
どういう計算をしたかというと、
「自分の通常速度(1)」÷「TimeDilationの数値(0.05)」=20(スロー時の通常速度)
としたわけです!
なので、TimeDilationに「0,001」と入れた場合は、CustomTimeDilationには「1000」を入れれば通常速度で動けるようになるのです!
自分の通常速度(1)÷TimeDilation(0.001)=1000
ということです!
動画のように自分は通常速度で動けるようになりましたね!
しかし!動画をみて、あるいは実際にやってみて分かったかもしれませんが、
Qキーを押したとき、スローモーションになった瞬間キャラが瞬間移動したかの如くどこかに移動しているかと思います。(動画では約2秒ぐらいのとこで後ろに高速移動してるのが分かると思います)
そうならないようにするためには、Delayノードを使いましょう!
SetglobalTimeDilationとCustomTimeDilationの間に挟みましょう!
そして、Delayに入れる数値は「0.005」か「0.001」にしましょう!そうするとスローになった瞬間高速移動しなくなって自然に動けます!(実際「0.005」「0.001」以外の数値を入れると、スローにした瞬間キャラが一定時間スローになってしまいます。下手したら動けなくなります。なぜ「0.005」「0.001」だと安定するのか規則性は分かりません。わかったら教えていただけると嬉しいです。)
こうすることで、スローにした瞬間の不自然な瞬間移動がなくなります!
実際にやってみると・・・
自然にスローモーションにすることができましたね!
瞬間移動がなくなっていますね!
この機能は今日知ったばかりなので、間違っているところがある可能性があります!あったら教えてください!
それではまた!^^ノシ