このページは、「UE5 ver5.3.2」の環境で制作されています
こんにちは! ウンパッパです!
今回は、前回制作したスタミナシステムに「スタミナ回復システム」 を実装していくよ
良かったら参考にしていってね
ではまず、作る前に結果からみていこう こんな感じになるよ!
で、組み立てるBluePrintはこんな感じ
今回はシステムの実装に加えて
ノード群を整理整頓する技の一つ、「マクロ」を使っていくから
よかったら参考にしてみてね!
できる限りわかりやすく説明するから、早速作ってみよう!
仕様をまとめよう!
まず、今回実装したい物を分析して並べてみよう こんな感じになるよ
1. | 変数に「boost_fuel_restore」を追加する |
2. | 「boost_fuel_restore」を使って「スタミナを回復」する数式を実装する |
3. | ダッシュ状態でないのなら「スタミナ回復」が実行される |
4. | スタミナ=0、もしくは「ダッシュ状態」の場合は「スタミナ回復」しない |
5. | スタミナの回復が実行されるまで1秒のディレイを入れる |
6. | スタミナ=0の場合、スタミナの回復が実行されるまで5秒のディレイを入れる |
これらの実装目指して作っていこう!
仕様1.変数を用意しよう!
今回作る変数はこれ
No. | 変数の型 | 変数の名前 | 入れる値 | 変数の説明 |
1. | Float | boost_fuel_restore | 4 | 回復するスタミナ 毎秒これの値分回復していくよ |
変数の欄がこうなってたらOKだ
仕様2.「boost_fuel_restore」を使って「スタミナを回復」する数式を実装する
ノードの形自体は前回とほぼ同じだよ
足し算と引き算を差し替えるだけ
これで計算式はOKだ!
仕様3.ダッシュ状態でないのなら「スタミナ回復」が実行される
完成したBluePrintがこれ
今回も「ダッシュシステム」を起動しなかったら「回復システム」が起動する
という形にしたいから「Custom Event」を使っていくよ
「Custom Event」の名前は「Fuel_Restore」にしよう
そしたらこの形にノードを組んでね
これで、「Shiftを離したらスタミナを回復し続ける」ノードの完成だ
仕様4.スタミナ=Max、もしくは「ダッシュ状態」の場合は「スタミナ回復」しない
このままだとスタミナがMaxになっても
ダッシュ状態の時でもスタミナが回復し続けてしまうよ
結果スタミナが回復し続けてめったに減らなくなる状態になるから
それを止めるべく「Branch」を使って条件指定で回復を止めるノードを組むよ
こんな感じに組んだらコンパイルしてプレイしてみよう
必要な時のみスタミナが回復しているはずだよ!
仕様5.仕様6.スタミナの回復が実行されるまでディレイを入れる
今の状態だとスタミナ消費が終わった直後にスタミナ回復が起こるよね?
この挙動は少し好ましくないので、
仕様5.スタミナ消費後「1秒待機後スタミナが回復する」
仕様6.スタミナが0なら「5秒待機後スタミナが回復する」
のノードを組むよ
こんな感じに組めたらOK!
コンパイルしてプレイしてみよう!
うん!実装したい挙動通りだ!
これで今回実装したかったシステムはすべて実装できたよ
やったね!
マクロを使ってBluePrintを整理しよう!
今後様々なシステム、ノードを組むにあたってどんどんと複雑になるだ
結果BluePrintをぱっと見ても、どのシステムがどこに配置しているのかわからなくて
混乱する可能性が非常に高いよね
なので、そんな複雑になりそうなノード群を一発で整理する方法教えます
例えば、
今現在組んでるこの「ダッシュシステム」と「スタミナシステム」が繋がってるノード群
これが少しごちゃごちゃしてるからこれを、
こうできる
形は変わったけど機能は全く一緒だよ
この整理整頓の方法は、下の記事から読めるから
よかったら参考にしていってね!
次回!「スタミナゲージのUIを実装しよう!」
次回は、「スタミナのゲージ型UI」を実装してみたいと思うよ!
下のボタンから次のページに進めから
よかったら見ていってね!
コメント