InvectorTPSで、今度はNPCをつくり、近接攻撃をつけるテストをしました。
さすがにこれは面倒かなーと思ったらこれまた超かんたんでした。すごい!
前回はサンプルNPCを動かしたので、今度はMMDインポートの自作キャラで解説します。
1.上メニューInvector>Melee combat>からCreate NPCで、キャラ作成のウィザードを立ち上げます。
2.fbxとコントローラ(Invector_melee_combatv2とか)を選択してcreateを押します。
そのまえに、fbxのリグはHumanoidになってるか確認を。あと材質は付け直し
コライダーにナビメッシュエージェント に全自動でつけてシーンに配置してくれます。
レイヤーはEnemyに設定されます。
3.次に上メニューInvector>Melee combat>componentからMelee Managerをアタッチします。
腕と足に黄色いコライダーができます。これは見ての通り、蹴る殴るのための当たり判定です。
Tポーズだと前腕+手にサイズを合わせてくれるけど、Aポーズだとうまくきかないので、手動で合わせます。
(Humanoidのリグにできないキャラだとどうなるのか未確認)
小柄なキャラはコライダーを大きめにするといいです。
4.AI_controllerrとMelee Manegerに細かい設定を入力します。
体力、ダメージ、スピード、回避、索敵…色々いじれますが、絶対必要なのは攻撃対象。
Melee ManagerのTag to Detectから攻撃対象をPlayerにセットすると、攻撃がプレイヤー(のレイヤーに設定したオブジェクト)に攻撃が当たるようになります。
※これはレイヤー名ですが、セレクトではなく手入力なので打ち間違いに注意。
size(=数)を2以上にして、複数のレイヤーを設定できます。
Enemyと入れれば敵にも攻撃が当たるようになり、同士討ちを始めます。
(ヘイトの隠しパラメータがあるのか?)
ここまでつくれば、一通り動ける素手攻撃のNPCができます。
5.お好みでラグドールを入れます。
上メニュー>Invector>Basic Locomotion>Componentにあります。
実装した瞬間に頭や胴に色違いのコライダーがつきます。
ラグドールを入れると手足のコライダーがリセットされるので、ラグドール先に入れてから設定でもいいかも。
ただ、ラグドール入れても強制ダウン攻撃などでハデに吹っ飛ばせるわけではなく、変な転び方したキャラが崩れたままになるリスクができます。でも何か設定をうまくやればふっ飛ばし攻撃が実装できると思われます。
追記: Humanoidリグの最低基準を満たしてないとラグドールが入れられません。
たまたま揃ってたキャラばかりだからうまくいってたのに気づかなかった
ヒャッハーv1は上半身ボーンが一つしかないのが引っかかって、ラグドールが入れられませんでした。
ラグドールの割当ては自動ですが、間違う可能性もあるので、リストは確認しないとでした。
6.次は武器攻撃を作るために、武器を作ります。
まず武器のプレハブを作ります。キャラ同様にcreate Melee Weaponのウィサードを起動、武器モデルのfbxを選択します。
Createを押すとコンポーネントとコライダーつきでシーンに置かれるので、コライダーを動かして適切な当たり判定の場所に。ダメージなどの設定も入れます。
形状が複雑だったらコライダーを増やしてElementに追加で登録もできます。
当たり判定コライダーは全部HitBoxという名前になってますが選択しづらいので名をつけたほうがいいでしょう。
Attack ID・Move ID・Defence ID・Recoil IDは、剣とか盾とかのモーションの割当てです。
Invector_MeleeCombatv2.controllerの中に設定されてるようです。
アセットのデフォルトモーションを調べた感じ
Attack ID
0 素手
1 片手剣
2 銃?(アサルトライフル)
3 素手?
4 大剣やハンマー
Moveset ID
0 素手
1 片手武器
2 両手武器?
3 両手武器?
4 両手武器?
これだけあるようでした。(右手のみ確認。二刀流モーションもあるかもしれない)
7.武器プレハブをキャラの右手首に配置すると、攻撃モーションが変わります。
素手攻撃から近接武器攻撃のモーションに勝手に切り替わります。
すげー!
※5.のラグドールを入れる前に武器をもたせるとコライダーがちょっとバグりました
qappa-el氏の配布されたモデルも使わせてもらって、ためしにセットアップテストしました。
Tポーズで作られてたので、手のコライダーは自動で普通にセットされました。
8.Waypointを設定すると、巡回したりウロウロしたりできます。
waypointを別に作ってここに割当てると、パトロールをします。
waypointは上メニューInvector>Melee combat>componentにあるやつをポンするだけでエディタ入りオブジェクトがつくられます。あとはポイントをふやして動かすだけ。これも設定の簡単さというかエディタの操作の素直さが類似アセットと一線を画してますね。
AI_controllerrのSensorから、視界を変えて発見したら追っかけてきたり見失ったりします。これも視認できて便利。
※AIキャラはナビメッシュと遮蔽物を頼りに移動・追跡します。実行前にステージのオブジェクトをStaticにしてNavimeshを焼き込みます。(設定いじってなければ、認識するレイヤーはDefaultです)
9.サンプルのNPCについてる体力メーターや血しぶきなどは、メニューに実装の項目が見当たらず、
オマケ的なもののようです。サンプルからコンポーネントをコピーして移植したらすぐ使えました。
血しぶきはプレイヤーにもつけれます。
10.この調子で全キャラをセットアップして、プレイヤーヒャッハーにも武器を持たせて動作確認。
だいぶゲームぽくなりましたね!
まあここから上げるのが大変なんでしょうが…
こういうことしたいですが↓
・攻撃モーションの改造
・ふっ飛ばし攻撃(敵を巻き込む)
・死んだとき吹っ飛ぶ
・敵が全滅したりのイベントでスポーンする
・飛び道具
すでに色々いたれりつくせりに用意されてるだけに、その内部をいじるような作り込みはどれも大変そうです。
Blender導入したところ、Unityのアレとは違う経路でPMXをfbxにできるぽいので、そのうち試したいと思います。面倒な利用規約的なあれこれをパスしてモデルを配布して即使えるメリットは大きい。