UE4で格闘ゲームが作れるプログラムをアップデートしたので、そのプログラムや設定の解説をしていきます。
今回はその2ということで、コンボカウンターの説明をします。
コンボカウントの計算はPlayerControllerのイベントグラフにあるイベント「Hit&Damage」で処理をしています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain201-1024x538.png)
イベント「Hit&Damage」は以下の5つのブロックで構成されており、コンボカウントは3番目のブロックで処理しています。
1.ヒットかガードの判定
2.上段や下段等のヒット場所の判定
3.ヒットエフェクトの処理
4.HPやスタン値の計算
5.スタンやKOの前処理
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain202-1024x337.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain203.png)
それでは、3番目のブロックで、具体的にコンボカウントを計算している部分を説明します。
計算するための変数は”P01 Combo”と”P01 Max Combo”を使用しており、ダメージが確定すると、”P01 Combo”に1が加算されます。
次に、”P01 Combo”が2以上であり、”P01 Combo”の値が”P01 Max Combo”より大きい場合は、”P01 Combo”の値を”P01 Max Combo”へ代入します。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain204-1024x426.png)
それから、計算されたコンボカウントを画面に表示する処理について、説明します。
WidgetブループリントのTickに繋がっているノードでPlayerControllerから変数”P01 Combo”の値を参照し、2以上であれば関数「Do Once」を使用して、コンボカウントの数値部分をVisibleに変更後、テキストと数値を画面に表示するアニメーションを再生しています。
アニメーションは、テキストと数値を画面外から画面内へ移動する処理と透明度を0から1にする処理を行っています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain207-1024x926.png)
コンボカウントの数値部分はWidgetブループリントで、関数「Get P01 Combo」という関数を作成し、PlayerControllerの変数”P01 Max Combo”の値を参照できるようにしており、これを画面に表示する数値にバインドしています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain208-1024x311.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain209.png)
変数”P01 Combo”の値が2以下になった場合は、Delayの処理後に、コンボカウントの数値をHiddenに変更し、テキストと数値を画面外に移動するアニメーションを再生してから、変数”P01 Max Combo”に0を代入しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain206-1024x267.png)
最後にコンボカウントが継続して加算される条件について説明します。
変数”P01 Combo”の値は、ダメージアニメーションが最後まで再生されると、PlayerControllerのイベント「OFF_Damage」にて、0が代入されます。
つまり、ダメージアニメーションが最後まで再生される前に、次のダメージが発生すると、変数”P01 Combo”の値は、0にならずに、加算されることになります。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/04/Explain205-1024x276.png)
今回の説明は以上です。
次回は、追加した必殺技について説明します。
コメントを残す