コンボ攻撃時のコリジョン設定!
今回は・・・
コンボ攻撃時のコリジョンの有効・無効の切り替え!
をやっていきます!
キャラの右手に剣をアタッチして、武器の刀身にダメージ用のコリジョンつけて、
かっこいい攻撃アニメーションをつなげてモンタージュにしてコンボを作ったー!
これで、あらゆる敵を倒せるし、あらゆるものを壊せるぞー!
のはいいけど・・・
このままプレイしてみると、おそらく何にも攻撃していなくても敵に、あるいは破壊可能なものに刀身が当たった瞬間にダメージを与える羽目になってしまいます。
このままではアクションゲーとして成り立ちません。
普通は攻撃をしているとき、つまり剣を振っているとき、あるいは殴りかかっているとき、敵にダメージを与えるものですよね。
なので今回はモンタージュを使い、
AnimNotifyState!
というブループリントを使います!
とりあえず何かかっこいいコンボモンタージュを作ったとしましょう。
しかし、どうやって攻撃しているときのみ武器のコリジョンを有効にしたらいいかわかりません。
そんな時は、AnimNotifyStateを使います。
そして、名前を「CollisionEnabled」にでもしましょうか!
作成した「CollisionEnabled」を開き、関数を作ります。
関数の横にある「オーバーラップ」をクリックし、
「ReceivedNotifyBegin」と「ReceivedNotifyEnd」を作成しましょう!
「ReceivedNotifyBegin」
「ReceivedNotifyEnd」
作ったモンタージュを開きます。
モンタージュの通知に、先ほど作ったAnimNotifyState「CollisionEnabled」を入れましょう!
ちょうど攻撃をしているとき、これの場合だと剣を振っているときにAnimNotifyStateを入れましょう。
「A」が先ほど作成した関数「ReceivedNotifyBegin」にあたり、
「B」が終わりの「ReceivedNotifyEnd」になります。
「A」の地点でコリジョンが有効になり、
「B」に到達した時、コリジョンが無効になります。
コリジョンを有効にしたい「A」の地点から、コリジョンを無効にしたい場所まで「B」をマウスで引っ張ってやる感じです。
そうすると、画像を見ても分かる通りAとBの間が青く塗りつぶされてるかと思います。
この範囲がコリジョン有効範囲です。
編集映像を載せておきました。(画像だとわかりにくいかと思い)
それでは、プレイしてみましょう!
御覧の通り、刀身にアタッチしたコリジョンが柱と被っていても何も起きなかったですが、武器を振って攻撃した時にはしっかりダメージ判定が行われているのが分かったかと思います。
これはアクションゲームを作るうえでは覚えておいて損はないと思います!
それではまた!^^ノシ