BlenderからUnityへキャラクターを書き出ししてホラーキットで使用する

Blenderで作成した敵キャラをUnityのホラーゲーム作成のための有料アセットHFPS KITで動かすための、自分なりの備忘録を記載する。
やることが多くて、何度やっても細かい部分を忘れるので。
assetstore.unity.com


Blenderで敵キャラを作る方法については、Udemyのこちらを参考にした。
https://www.udemy.com/course/blendercharacters/www.udemy.com

書き出しと読み込み

Blenderでキャラクターを作成する際の注意点

目を光らせたい場合は、目のメッシュはそれ以外と分けておく
Unityではラフネスの細かい部分の調整ができないので、あきらかにテカテカな部分を作りたい場合は、メッシュを分けて作る必要がある。

ブレンダーで書き出し

ブレンダーで作成して、mixiamoでリグとウェイトを入れたキャラクターを、ブレンダーで読み込み。不要なオブジェクト類を削除した状態からスタート。

書き出ししたいパーツを全て選択した状態で
fbxに書き出し。

書き出しの設定

ただし、Unity内でほかのキャラクターとのサイズ比を考慮してScaleの大きさを調整する。
この場合はScaleが1だと小さすぎた

テクスチャの書き出しで気を付けること
オーバーレイを選択した状態でCtr + Shiftを押して「Viewer」を出した状態でBakeすることを忘れない
※Ctr + Shift を押してもViewerが出ないときは、このViewerはEmissionなので、手作業でEmissionを出してバイパスする。
Shift + A で虫眼鏡にEmissionと入力すると、出てくる。

Unityに読み込み

プロジェクトのどこかに、書き出ししたFBXファイルをドラック&ドロップして読み込ませる。
テクスチャーイメージもわかりやすいように、同じフォルダに読み込みさせる。

リグの設定

プロジェクト内のFBXファイルを選択して、インスペクターのRigタグを選択。

Animation TypeをHumanoidを選択してApplyボタンを押す。


プロジェクタ内のキャラクターのオブジェクトの子オブジェクトにアバターが作られる。

マテリアルの適応

FBXファイル(以降キャラオブジェクトと呼称)をシーンに配置
マテリアルファイルを作成してテクスチャを当てはめて、シーンに配置したキャラオブジェクトにアタッチする。

ラグドールの設定

シーン上のキャラオブジェクトに対して、ホラーキットの数々のスクリプトを適応していくまえに
先にラグドールの設定をしてしまう。
※今回はMiddle SpineをSpineをアタッチした。(Horror FPS KITのShowcaseシーンのZombieAIだとSpine1なのでそちらの方がよかったかも
※Pelvisは骨盤のことなのでHipsをアタッチ

ラグドールをアタッチしたArmatureにコライダーとキャラクタージョイントとリッジボディーが自動でアタッチされる。

各Armatureに自動的に表れたRigidbosyとCharacter Jointの値はとりあえず触れないで試してみる
Colliderについては、驚くほど大きかったり小さかったりするので調整が必要。

タグの変更

キャラオブジェクトに攻撃を数回加えた後に、こちらの行方を見失うのでおかしいと思っていたら、Layerを変更していなかった。
キャラオブジェクトのLayerをを8:Zombieに子オブジェクトも含めて変更。そのあとで、ArmatureのLayerを10:Body Partに子オブジェクトも含めて変更。これでうまくいった。

オーディオソースの追加

オブジェクト直下にオーディオソースファイル「Footsteps」を作成する(キャラクターのインスペクター内にあるNPC Footsteps(Script)にあたっちするためのもの)
※床面にNavigationをベイクするのも忘れない
※シーン内にWaypointを設置するのを忘れない

アニメーターの修正方法


修正する箇所

それぞれの■に変更したいアニメーションをアタッチしていけばよいのだが、
「Blend Tree」の箇所だけは、その■をダブルクリックして、ブレンドトゥリー画面を表示し、その中の束をまとめているところを選択し、インスペクターに表示されるアニメーション各種のところに新しいアニメーションをアタッチする。

Eventの挿入

なお、注意すべきは、攻撃のアニメーションだけに限っては、アニメーション画面の攻撃がヒットするタイミングで、「Add Event」を挿入し、選択肢の中から、「PlaySoundOrDamageEvent()」を選ぶ。これをやらないと、プレイヤーに攻撃が当たらない。

Hit Reaction Layerについても同じく
「Hit Blend Tree」の■をダブルクリックして、上記のBlend Treeと同じように、キャラクターが攻撃を受けたアニメーションで変更したいものがあれば変更する。

変更方法


Assets\Horror FPS KIT\HFPS Assets\Content\Animations\Animators 内の
ZombieAnimator をCtr+Dでコピーして名前を修正する。

キャラクターをヒエラルキーで選択して、インスペクターにアニメーターを追加。
コントローラーに先ほど作ったアニメーターをアタッチ
Avatarに以前に作ったAvatarをアタッチ
Culling ModeをCull Update Transformsにする。

インスペクターに項目を追加する

Audio Source の追加


インスペクターにオーディオソースを追加。
Max Distanceを30にする。

Zombie Behavior AIを追加

インスペクターにZombie Behavior AIを追加する。
自動的に、Capsule Collider , Nav Mesh Agent , NPC Health(Script)も追加される。

Capsule Collider


黄色丸の箇所をクリックして、黄色矢印の枠の大きさを調整する。


画像のとおり数値を設定してから、細かく修正。
Area Mask は ≪Walkable , Not Walkable≫ を選択。
※表示はMixted...になる。

NPC Health (Script)


Hipsに、プロジェクト内のArmature / mixamorig:Hipsをアタッチ

Health = ゲーム開始時のこのキャラのHP
Max Health = このキャラが「Hunger Recovery」可能な場合に、回復する最大値のHP
Ht Audio : このキャラが攻撃を受けた時の音
Headshot : ヘッドショットを受けた場合に通常のダメージよりも多くダメージを受ける設定をすることができる。

HeadにはProject内のHeadのリグをアタッチする。

Allow Headshot : チェックを入れることでヘッドショットダメージが有効になる。
後述するZombie Behavior AIのDamage SettingsのDamage Valueよりも値が大きくなるように設定すると良い。

On Death
Corpse Remove Type : Disableにしておけば、死んだあとに自動で消える
Corpse Time : 自動で消える時間を設定する。

Eye Glow
目が光るように設定ができる。
Enable Eyes Glow : この設定を使用する場合はチェックを入れる
Eye Renderer : ヒエラルキー上のこのキャラクターの目のオブジェクトをアタッチする。
Emission : 最初から_EmissionColorと入っているが、謎。

NPC Footsteps (Script)

Main / Footsteps Mask : Default と PlayerBody を選択
Footsteps Audio : 既に作成した、ヒエラルキー上のこのキャラクターの子オブジェクトのサウンドソース Footsteps をアタッチする。
Ground Ray : 何のためにあるのか謎だが、どりあえず0.4に設定する
Default Footseps : 0→7に変更して、7つの足音をアタッチする。
Allow Default Footstep : チェックを入れる
Event Based Footsteps : チェックを入れる
Footstep Control / Walk Velocity : 1.2を入力
Footsteps Volume : 歩きと走るときの音量をそれぞれ入力
Next Footstep Wait / Idle Time : 0.5
Next Footstep Wait / Walk Next Wait : 2
Run Next Wait / 0.3

Zombie Behaviour AI (Script)

Behaviour Main / Sleep Behavior : Stand Up Back か Stand Up Front だとプレイ開始状態は寝た状態になっている。 IdleだとIdle状態、Noneの場合は、一行したのZombie Behavior で設定している状態になる。

Behaviour Main / Zombie Behavior : いまいちよくわからない。とりあえずW2W Patrol にしておけば動く
Main Setup / Animator : キャラオブジェクトをアタッチする(先に上記のAnimatorの項目を終わらせておく必要あり)
Main Setup / Sight Mask : Default にする
Main Setup / Threat Mask : PlayerBody, Threat にする
Main Setup / Attack Animations : 5のままで良い
AI Preferences / Enable Scream : おそらくこれにチェックを入れることで、ゾンビが叫びをすることで、別のWake By Threat にチェックが入っているゾンビが起きる。
AI Preferences / Enable Agony : チェックを入れると苦悩する
AI Preferences / Enable Hunger : チェックを入れると、後で設定するHunger Timeに応じて、腹減り状態になる。また、Hunger Recover Health にチェックを入れることで、飯を食うことでHPが回復する。
AI Preferences / Sound Reaction : そのまんま
AI Preferences / Run To Threat : 不明
AI Preferences / Attack Other : チェックを入れないと攻撃してくれない
AI Preferences / Hunger Recover Health : 上記のとおり
AI Preferences / Rndom Waypoint : Waypointの設定がランダムになる
AI Preferences / Waypoints Reassigh : 不明
AI Preferences / Low HP Ignore Player : 不明
AI Preferences / Player Invisible : そのままと思われる
AI Preferences / Damage Threat : ダメージを受けると呻く??
AI Preferences / Wake By Threat : 他のゾンビがThreatしたことで起きるということ?
AI Preferences / Patrol Time : Patrol アニメーションにかける時間と思われる。
AI Preferences / Scream Next : Enable Scream にチェックが入っていた場合の、間隔を設定する
AI Preferences / Agnoy Next : Enable Agony にチェックが入っていた場合の、間隔を設定する
AI Preferences / Player Lost Patrol : 不明
AI Preferences / Hunger Time : Enable Hunger にチェックが入っていた場合の、腹が減る時間を設定する
Ai Settings / Walk Speed : 歩くスピード
Ai Settings / Run Speed : 走るスピード
Ai Settings / Eating Stopping Dist : 不明
Ai Settings / Agent Rotation Speed : 不明
Ai Settings / Speed Change Speed : 不明
Ai Settings / Rotate Manually : 不明だがチェックを入れたままにしておく
Ai Settings / Accelerate Manually : 不明だがチェックを入れたままにしておく
Ai Settings / Walk Root Motion : 不明だがチェックを外す
Damage Settings / Damage Value :