今回はその8として、3on3のアシスト時の衝突判定やWidget_Blueprintについて説明します。
アシスト時のキャラクター同士の衝突については、Capsule_componentのタグの設定が必要で、キャラクターブループリントのTickに繋がったノード「Set Capsule Tag」で処理しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image01-4-1024x301.png)
ノード「Set Capsule Tag」では、変数”Player01″の値を確認後、R1かR2ボタンのキャラクターチェンジが実施されたときに、ノード「Do Once」で処理を開始します。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image02-4-1024x409.png)
その後は、関数「Delay」の処理後に変数”Order Of Char”で何番目に選択されたキャラクターなのか確認後、変数”P01 Order Of Char”でキャラクターの順番を特定したら、Capsule_componentにPrimaryかSubの値を設定しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image03-4-1024x468.png)
それでは次に、Capsule_componentがオーバラップしたときの処理について説明します。
Capsule_componentがオーバラップしたときはイベント「On Component Begin Overlap」で処理しており、変数”Begin Judge For OL”で衝突判定が許可されているかや、オーバーラップしたアクターのタグがPlayerであるかを確認しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image04-4-1024x332.png)
その後、変数”Player01″の確認やCapsule_componentタグの値を確認した結果に応じて、オーバーラップしたのがPrimaryキャラクターであれば、BP_Common_controllerのイベント「 On Overlap of Capsule」を処理し、サブキャラクターであれば、変数”Overlap Of Capsule”をTrueに設定しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image05-4-1024x354.png)
また、オーバラップが解除されたときは、イベント「On Component End Overlap」で同様の処理を行い、BP_Common_controllerのイベント「 OFF Overlap of Capsule」や変数”Overlap Of Capsule”をOFFにする処理をしています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image06-5.png)
それでは、サブキャラクターと衝突したときの処理について説明します。
サブキャラクターと衝突したときの処理は、キャラクターブループリントのTickに繋がった、ノード「Overlap_for_Sub」で処理しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image08-4-1024x296.png)
ノード「Overlap_for_Sub」では、自分自身のY座標の値を変数”Y Position”に設定後、変数”Overlap of Capsule”や”Player01″の値を確認後、衝突したキャラクターがステップしているか、空中にいるか、止まっているかの状態を確認後に、プライマリーキャラクターの速度を優先した移動処理をしています。
つまり、プライマリーキャラクター同士の衝突は、減速や相殺処理を含めていますが、サブキャラクターとの衝突は、プライマリーキャラクターの速度が優先されて、その速度に従った処理をすることになります。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image09-4-1024x254.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image10-4-1024x358.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image11-5-1024x451.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image12-4-1024x393.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image13-4-1024x473.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image14-4-1024x396.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image15-4-1024x584.png)
それでは、次にアシストキャラクターがダメージを受けたときの処理について説明します。
アシストキャラクターがダメージを受けたときは、キャラクターブループリントのイベント「On Component Begin Overlap」に繋がったマクロ「Judge of Damage」で処理しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image16-4-1024x365.png)
マクロ「Judge of Damage」では、変数”Begin Judge For OL”で衝突判定が許可されているかや、オーバーラップしたコンポーネントのタグがDamgeでないことを確認しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image17-5-1024x453.png)
その後、変数”Player01″の確認やオーバーラップしたアクターが味方ではないことが確認できたら、変数”Player Side”の値を確認しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image18-6-1024x282.png)
その後、変数”Player Side”の値に応じたヒットエフェクトの位置を変数”Hit Point for Effect”に設定したら、変数”P01 Char01 Anim BP”と”P01 Order of Char”を使用して、PrimaryかSubキャラクターなのかを確認しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image19-5-1024x535.png)
その後、HPバーの減算処理や、ダメージアニメーションとヒットサウンドの再生、アシストの終了処理を行い、ダメージアニメーションの再生が終了すると、フレームアウトのエフェクトやアシストを管理している変数の初期化、サウンドの再生、投げのダメージ判定を有効にする処理をしています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image20-6-1024x374.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image21-5-1024x351.png)
最後にアシストを使用した場合は、UIで使用禁止マークを表示するので、Widget_Blueprintの処理を説明します。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image26-4-830x1024.png)
例えばR1ボタンのアシストの場合は、Widget_BlueprintのTickに繋がったノード「P01 Change1」で処理しており、変数”Fighting-mode”と変数”P01 R1 Assist”の値を確認して処理を開始します。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image22-5.png)
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image23-2-1024x399.png)
ゲームがポーズされていないことを確認したら、変数”P01 Count of as-1″に毎フレーム、1を加算した後、ノード「Sequence」を使用して、変数”P01 Count of as-1″が5以上で使用禁止マークの表示をするアニメーションを再生し、120以上で、使用禁止マークを非表示にするアニメーションを再生しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image24-2-1024x404.png)
使用禁止マークを非表示にしたあとは、変数”P01 Count of as-1″や”P01 R1 Assist”の初期化をした後、OKを表示するアニメーションとサウンドを再生しています。
![](https://fighting-games-build-and-play.com/wp-content/uploads/2020/08/image25-4-1024x353.png)
今回の説明は以上です。
次回は、チェーンコンボについて説明します。
それではまた。
コメントを残す