様々なスローモーションを考える(*'▽')
今回は小ネタになりますが、
様々なスローモーションの実装についていろいろ紹介したいと思います。
UE4.27.2を使用しています。
間違いや誤字脱字等ありましたらコメント等いただけますと幸いです。
コマンドで行う方法
まずはコマンドで全体にスローモーションをかける方法になります。
コマンドの「Slomo 〇〇(数値)」というコマンドを入力すると、
1以上で早送りで0.5などを設定するとスローモーションが実行されます。
実行中に@キーを押すとコンソールコマンドを入力できます(デフォルトの場合)
コンソールコマンド入力のショートカットはエディタの環境設定で変更可能です。
エディタのコンソールで検索するとショートカット設定が表示されます。
BP上でコマンドを行う処理を動作させることで実行できたりします。
※コンストクタスクリプトでは動作しないので注意してください!
用意されているBPで行う方法
BPの方で用意されているのは2つありまして、
ゲーム全体の流れるスピードを決めてるGlobalTimeDilationの数値を変更する方法と、
Actorごとの個別に設定するCustomTimDilationの数値を変更する方法があります。
※全体にスローモーションを設定する方法
コンストクタスクリプトでは動作しないので注意してください!
全体のスローモーションを行う場合はSetGlobalTimeDilation関数を使います。
こちらはUGamePlayStaticsクラスで用意されています。
クラスを理解していると開発の幅が広がるかなと思うのでリンク張っておきます。
※Actor個別にスローモーションを設定する方法
Actor個別のスローモーションを行う場合はActor側で用意されている、
CustomTimeDilation変数に数値をセットする形になります。
AActorClassの方に用意されている変数ですが各キャラクターのClassで、
AActorを継承しているため使用できています。
CharacterClassの各関数もこちらに記載があるのでよかったらどうぞ。
以上が用意されたBPを使用したスローモーションの実装になります。
キャラクターの動きを編集して行う方法
最後に紹介する方法はキャラクターのアニメーションや動作スピードなどを、
変更することでスローモーションにさせるというものです。
※端的に言えばただの力業です・・・
ただパラメーターを変更ことなので、
例えばキャラの一部分だけスローにしたいとか細かい部分の、
スローモーションを実装する時には少しは役に立つのかな???と思い書きました。
実際に設定したパラメータはこんな感じです。
CharacterMovement内で解決するパラメータでできるので案外簡単です。
実際に動作させたものはこんな感じです。
UE4でTimeDilationを使わずCharacterMovementのパラメーターとアニメーション速度の編集のみでスローモーションを作ってみた。
— よしかた@何もしてない (@yoshikata_game) 2022年2月5日
部分部分のスローモーションぽいのは作れるかも?#UE4Study pic.twitter.com/dJKHeOFVYv
以上がキャラクターの動きを編集して行う方法でした。
最後に
今回はスローモーションに特化した小ネタを書いてみました。
個人的な意見ですが各アクター個別に設定できる、CustomTimeDilationで設定して
力技がいるぐらい細かい設定をするときは自身で調整するのがいいのかなと思います。