今回はその9として、チェーンコンボについて説明します。
チェーンコンボは、×、□、△ボタンを押すとコンボになり、×ボタンを押して攻撃アニメーションが処理されている時に、AnimNotifyの「Begin to chain」と「End to chain」で、次のボタンの入力を許可するフレーム数を設定しています。
AnimNotifyの「Begin to chain」と「End to chain」は、BP_Common_Controllerのカスタムイベント「Begin to chain」と「End to chain」を処理して、変数”Enable to Chain”にTrueとFalseを設定しています。
次に□ボタンを押した時は、BP_Common_Controllerのイベント「InputAction Punch_S」が処理され、マクロ「P01 Kind of P-action」と「P01 Action Flag for P_S」を使用して、攻撃中であるかを確認します。
変数”P01 is Attacking”がTrueであれば、変数”Enable to Chain”の値を確認し、これもTrueであれば、相手が、ガードしたかヒットしているかを確認しています。
つまり、×ボタンの攻撃がガードやヒットしていないと、コンボは成立しないことになります。
次に、変数”P01 Kind of Attack”の値を確認して、地上か空中の×ボタンの攻撃中であることが確認できれば、関数「Delay」で1フレーム待った後に、空中か地上にいるのかを判断して、攻撃フラグを設定しています。
攻撃のアニメーションについては、AnimBPのTickに繋がったノード「P01 Chain-combo」で処理しており、先程□ボタンを押した時の攻撃フラグの設定で、変数”P01 Chain-combo01″をTrueにしているため、それまでのアニメーションがキャンセルされ、このノードで処理しているアニメーションの再生が開始されます。
この時のアニメーションについても、AnimNotifyの「Begin to chain」と「End to chain」で、次のボタンの入力を許可するフレーム数を設定しています。
△ボタンを押した時の処理も同様に、攻撃中に変数”Enable to Chain”がTrueであり、相手がガードかヒットしているのかを確認しています。
その後は、関数「Delay」で1フレーム待った後に、空中か地上にいるのかを判断して、攻撃フラグを設定するのと、△ボタンのアッパーは移動しながら攻撃するので、変数”FS Step Side”に変数”Playside”に応じた値を設定しています。
この時のアニメーションについては、AnimNotifyに「FS Step-in」と「FS Step-out」を設定することで、アッパーを出しながら移動します。
AnimNotifyの「FS Step-in」と「FS Step-out」では、必殺技を使用した時も使用しており、BP_Common_Controllerのカスタムイベント「SM Step-in」と「SM Step-out」の処理と、さらにAnimBPのカスタムイベント「P01 Open Gate for FS」と「P01 Close Gate for FS」でエフェクトの表示を処理しています。
BP_Common_Controllerのカスタムイベント「SM Step-in」と「SM Step-out」では、変数”FS Step”にTrueとFalseを設定しています。
変数”FS Step”は、Capsule_Componentがオーバーラップしていないときに処理されるノード「P01 Moving Speed non-Overlap」で参照しています。
ノード「P01 Moving Speed non-Overlap」では、変数”FS Step”と変数”FS Step Side”の値に応じて、前ステップと同様の移動処理をしています。
ただし、このノードはCapsule_Componentがオーバーラップしていないときに処理するため、相手との距離が離れていれば、アッパーを出しながら移動し、相手と距離が近くて、Capsule_Componentがオーバーラップしている場合は、その場でアッパーを出すことになります。
今回の説明は以上です。
次回は、エアリアルコンボについて説明します。
それではまた。
コメントを残す