VRChatで敵のHPと当たり判定を設定するチュートリアル

前記事

toumoro2.hatenablog.com

だんだんとVRChatというかUnityのチュートリアルになってる気がしますが、

VRChatにもっとRPGみたいなワールドが増えて欲しいので、今回は当たり判定とHPのチュートリアルを書きます。

f:id:toumoro2:20180814135255p:plain

まず、前回はかなり大雑把な当たり判定で、敵が怯んだり動いても同じ場所に当たり判定があったので

今回は当たり判定を頭部に移します。

まずは、頭部のボーンを選択し、そこに当たり判定用のコライダーを入れます。

 

当たり判定用のコライダーを入れたら、前回作った体全体の当たり判定用コライダーは消してしまい、そのコライダー用に作ったトリガーを新しい頭のコライダーに移し

不要になったトリガーは消しておいて下さい。

これで当たり判定は頭だけになり、青人形が頭の位置を動かすと、それに追従して当たり判定も移動します。

f:id:toumoro2:20180814135744p:plain

次に、ゲームっぽくするために敵に盾を持たせてみます。

適当な板を敵の右手のボーンの子にして持たせます。

ただ、このままだとアニメーションした時に盾がどうなるか分からないので、

上にある再生ボタンを押してアニメーションを確認します。

f:id:toumoro2:20180814135851p:plain

f:id:toumoro2:20180814140004p:plain

確認したら上の一時停止ボタンを押してちょうどいい位置に動かしますが、

再生中は数値の変更が反映されないので、トランスフォームの値をコピーして後で貼り付けます。

これでテストプレイをすると、敵が盾で弾をはじくようになり

f:id:toumoro2:20180814140203p:plain

後ろに回り込んで頭部を撃たなくてはならないので、(若干)ゲームっぽくなります。

f:id:toumoro2:20180814140254p:plain

 

次は敵のHPを設定していきます。

f:id:toumoro2:20180814140411p:plain

まず、前回作ったアニメーターに、新しく「Int」というものを追加し、

その「Int」の名前を「ダメージ」に変えます。

また、ノックダウン用のモーションも用意しておきます。

f:id:toumoro2:20180814140556p:plain

ノックダウン用モーションへの遷移条件を、「ダメージが9より大きい(9は含まない)」に設定します。

ただ、これだとひるみモーションとノックダウンモーションがごっちゃになってしまうので、ダメージが溜まったらひるみモーションをとらないようにします。

f:id:toumoro2:20180814140840p:plain

ひるみモーションへの遷移条件に「ダメージが10より小さい(10は含まない)」に設定します。

これで、ダメージが10を超えればひるみモーションを取ることなく、ノックダウンモーションへと遷移します。

 

あとは、頭部のコライダーのトリガーに「ダメージの数値を1足す」というのを追加すれば、弾が当たるたびにダメージが1ずつ蓄積されるようになります。

f:id:toumoro2:20180814141039p:plain

これでテストプレイをすると、9発までは耐えますが

f:id:toumoro2:20180814141210p:plain

10発目を当てるとダウンするようになります。

f:id:toumoro2:20180814141243p:plain

以上です。ではでは。