VRChatで敵のHPと当たり判定を設定するチュートリアル
前記事
だんだんとVRChatというかUnityのチュートリアルになってる気がしますが、
VRChatにもっとRPGみたいなワールドが増えて欲しいので、今回は当たり判定とHPのチュートリアルを書きます。
まず、前回はかなり大雑把な当たり判定で、敵が怯んだり動いても同じ場所に当たり判定があったので
今回は当たり判定を頭部に移します。
まずは、頭部のボーンを選択し、そこに当たり判定用のコライダーを入れます。
当たり判定用のコライダーを入れたら、前回作った体全体の当たり判定用コライダーは消してしまい、そのコライダー用に作ったトリガーを新しい頭のコライダーに移し
不要になったトリガーは消しておいて下さい。
これで当たり判定は頭だけになり、青人形が頭の位置を動かすと、それに追従して当たり判定も移動します。
次に、ゲームっぽくするために敵に盾を持たせてみます。
適当な板を敵の右手のボーンの子にして持たせます。
ただ、このままだとアニメーションした時に盾がどうなるか分からないので、
上にある再生ボタンを押してアニメーションを確認します。
確認したら上の一時停止ボタンを押してちょうどいい位置に動かしますが、
再生中は数値の変更が反映されないので、トランスフォームの値をコピーして後で貼り付けます。
これでテストプレイをすると、敵が盾で弾をはじくようになり
後ろに回り込んで頭部を撃たなくてはならないので、(若干)ゲームっぽくなります。
次は敵のHPを設定していきます。
まず、前回作ったアニメーターに、新しく「Int」というものを追加し、
その「Int」の名前を「ダメージ」に変えます。
また、ノックダウン用のモーションも用意しておきます。
ノックダウン用モーションへの遷移条件を、「ダメージが9より大きい(9は含まない)」に設定します。
ただ、これだとひるみモーションとノックダウンモーションがごっちゃになってしまうので、ダメージが溜まったらひるみモーションをとらないようにします。
ひるみモーションへの遷移条件に「ダメージが10より小さい(10は含まない)」に設定します。
これで、ダメージが10を超えればひるみモーションを取ることなく、ノックダウンモーションへと遷移します。
あとは、頭部のコライダーのトリガーに「ダメージの数値を1足す」というのを追加すれば、弾が当たるたびにダメージが1ずつ蓄積されるようになります。
これでテストプレイをすると、9発までは耐えますが
10発目を当てるとダウンするようになります。
以上です。ではでは。