UE4で格闘ゲームが作れるプログラムをアップデートしたので、そのプログラムや設定の解説をしていきます。
今回はその1ということで、パンチやキックの種類を追加した部分の説明をします。
まずは、コントローラーで使用するボタンの種類が増えますので、プロジェクト設定のインプットについて、以下のように設定しています。
ボタンが押された場合の処理は、PlayerControllerで行っており、ボタンの種類が増えたので、イベントの追加となりますが、 処理内容については前のバーションと変更がないので、以下の記事を参考にしてください。
ただし、攻撃の種類を特定している変数”P01 Kind of attack”の値については一新しているので、以下に一覧を掲載しておきます。
攻撃の種類が増えたことにより、バトル前にキャラクターをスポーンしている関数「Spawn Char For P01」の処理に、追加した攻撃のダメージ量とスタン値の設定を追加しています。
さらに変数”P01 Kind of attack”を参照している箇所がありますので、処理を追加しています。
まずは、攻撃するときに手足のコリジョンボックスの衝突判定をON/OFFしている箇所になります。(PlayerController内のイベントSetting_Attack-Box-ON/OFF)
この部分の詳細説明は以下の記事を参考にしてください。
次にダメージを受けたときのHPとスタン値を計算している箇所になります。 (PlayerController内のイベントHit&Damage)
この部分の詳細説明は以下の記事を参考にしてください。
次にダメージを受けたときに後ろへ下がるヒットバックの処理をしている箇所で、各種攻撃に応じて後ろへ下がる処理を何フレーム行うか決めています。
1フレームあたり何センチ後ろへ下げるのかは、別の箇所で処理しています。
この部分の詳細説明は以下の記事を参考にしてください。
ただし、ヒットバックの処理時間は関数”Delay”から経過フレーム数をカウントする方法に変更しています。
これは、ゲーム中にポーズボタンを押された場合に、Delayのカウントまでは止められない影響を避けるために仕様変更しました。
最後にアニメーションブループリントの「Char01_AnimBP」でどの攻撃アニメーションを再生するか決定している部分の処理が追加となります。
追加された攻撃アニメーションは、アニメーションモンタージュの「AM_ST_Attack」と「AM_CR_Attack」と「AM_Attack_in_Air」に追加されています。
アニメーション中のフラグの設定については以下の記事を参考にしてください。
次に攻撃に弱と強の種類が追加されたので、FireBallの弾速を変更している処理を説明します。
まず、FireBallのコマンドが成立する最後のパンチボタンを押したときに、弱と強のどちらのボタンが押されたのか判断し、変数”Bullet L”に強であればTrueを代入しています。
次にコマンドが成立すると、FireBallがスポーンされ、BP_Char01_Bulletのイベントグラフでの処理が開始されます。
BP_Char01_BulletのイベントTickにて、最初に関数”Do Once”を使用して、一度だけ処理する箇所があり、ここで先程の変数”Bullet_L”を参照して、弾速を決定しています。
弾速は加速せず、一定の速度で進むので、Projectile_Movementのパラメータにある、”Initial speed”と”Max speed”に弱であれば350、強であれば500を代入しています。
変数”Bullet_L”の参照箇所が2つあるのは、Player01と02用となります。
今回の説明は以上になります。
次回はコンボカウントについて説明します。
コメントを残す