#21 地形の生成

【ヒエラルキ】Plane,敵モデルをいったん非表示にする

【ヒエラルキ】3Dオブジェクト > terrainを追加

メニューからウインドウ > レンダリング >ライティングを選択

フォグと自動生成のチェックを外す

【ヒエラルキ】terrain >横幅と奥行きを調整

地形を作成

【ヒエラルキ】terrain > ペイントを選択して作成

地形にテクスチャを張り付けていく

参考URL https://polyhaven.com/

Texture保存用のフォルダ作成

ダウンロードしたtextureを挿入

texture > PaintTextureに変更

サイズを調整して表示を確認する(本物っぽくなる)

地形にテクスチャを適用出来たら次は木を植える

アセットストアから木のアセットをインポート

ウインドウ > AI > ナビゲーション

ナビゲーションを開きベイクする(敵モデルの移動範囲設定)

【ヒエラルキ】Player > MainCamera > 環境 > backgroundTypeをSolidColorに変更

Lighting > 環境 >フォグにチェック(霧) 背景と同じ色を指定

DirectionalLight > 背景を暗くする

【ヒエラルキ】Player > MainCamera > サブカメラの背景をMainCameraの背景と同じに設定

#20 敵モデルにSEを追加

【ヒエラルキ】Player > AudioSourceコンポーネントを2つ追加(ゲーム開始時に再生のチェック)を外す

【ヒエラルキ】敵モデル > AudioSourceコンポーネントを追加

【スクリプト】ZombiController.cs編集

【スクリプト】FPSController.cs編集

【ヒエラルキ】Player > FPSControllerコンポーネント > VoiceとImpactにそれぞれAudiosourceを挿入

サウンドフォルダ内にある音声ファイルをHitVoiceSEに挿入

同様にHitImpactSEにもサウンドファイルを挿入

【ヒエラルキ】敵モデル > ZombicControllerコンポーネント > ZomVoiceにAudioSourceを挿入

Howlにサウンドファイルを挿入

同様にAttackにもサウンドファイルを挿入

敵との距離によって音の大きさを変える処理

敵モデル > AudioSource

#19 死亡パターンの追加

【ヒエラルキ】敵モデル追加 プレファブ解除

【ヒエラルキ】3Dオブジェクト > ラグドールを選択

表示されたラグドールに挿入した敵モデルの各部位を挿入してCreateボタンを押す

敵モデルにコライダーが表示されることを確認

作成したラグドール化した敵モデルをPrefabフォルダに挿入

【スクリプト】ZombiContoroller.cs編集

【スクリプト】Weapon.cs編集

【ヒエラルキ】敵モデル > ZombiControllerコンポーネント >RagdoolにPrefabフォルダに保存しているラグドール敵モデルを挿入

#18 敵への攻撃(銃撃)

【ヒエラルキ】敵モデルをいったん非表示にする

【ヒエラルキ】PlayerモデルをAltキーを押しながら選択

展開された中から武器(AKM)を右クリック

3Dオブジェクト > キューブを選択

再生した状態でCtrl + Shift + P でポーズする

作成したCubeを選択

Cubeを銃口手前に配置

TransFormのメニューから位置情報をコピーする

再生を解除後Cubeを選択してTransformに張り付け

【スクリプト】ZombiController.cs編集

【スクリプト】Weapon.cs編集

【ヒエラルキ】Playerモデル > 3Dモデル部分(CH49_nonPBR)を選択してアニメーションを開く

アニメーションタブFireに変更

銃撃開始位置のモーションを確認してイベントタグを設置

設置したイベントにShooting()関数を設定

【ヒエラルキ】Playerモデル > 3Dモデルを選択 > カギマークをロック >ShotDirectionにCubeを挿入

挿入後カギマークは外しておく

【ヒエラルキ】Cube >MeshRendererのチェックを外す

【ヒエラルキ】敵モデルを表示させカプセルコライダーコンポーネント追加

カプセルコライダーの高さを2 Yを1に設定

【ヒエラルキ】Cubeの回転Y軸180°に設定

再生で敵モデルを攻撃できるか確認

#17 敵モデル攻撃実装

【スクリプト】GameState.cs編集

【スクリプト】FPSController.cs編集

【スクリプト】ZombiController.cs編集

【ヒエラルキ】敵モデルを選択 > アニメーションを開く(Attack)

調整したモーションにイベントを設置

追加したイベントにDamagePlayer()関数を設定

【ヒエラルキ】敵モデル >AttackDamage(攻撃力)を設定

#15 敵の動きを実装

【スクリプト】ZombiController.cs作成

【ヒエラルキ】敵モデルにZombiControllerコンポーネント追加

【ヒエラルキ】敵モデルにナビメッシュエージェントコンポーネント追加

敵モデルをPrefab化

Assets > Prefabフォルダ作成 > 敵モデルをPrefabフォルダに挿入

【ヒエラルキ】敵モデルはPrefab化できたのでヒエラルキ内の敵モデルを削除

Window > AI > ナビゲーション追加

地面の設定を行う

インスペクタ > 静的にチェック

ナビゲーション(インスペクタの隣) > ベイク > ベイクを実行

地面が作成されたことを確認(NavMeshAgentを追加している敵モデルが歩ける範囲)

【ヒエラルキ】Prefabから敵モデルを追加して再生で動きを確認

#14 敵モデルの設定

敵モデルを追加

【ヒエラルキ】敵モデルを右クリック > プレファブ >すべて展開を選択

敵モデルアニメーション設定

敵モデルフォルダ内でアニメーションコントローラ追加

【ヒエラルキ】敵モデル > Animatorコンポーネント追加

敵モデルフォルダ内に追加したアニメーターコントローラを敵モデルのAnimatorコンポーネントに追加

敵モデルアニメータコントローラを開く

敵モデルのアニメーションをすべて挿入

idleをデフォルトエステートに設定

各アニメーションに相互遷移させる

パラメータAttack,Death,Walk,Runをbool型で追加

Idle -> Attack 終了時間チェック外す Conditions Attack true

Attack -> Idle 終了時間チェック外す Conditions Attack false

Idle -> Walk 終了時間チェック外す Conditions Walk true

Walk -> Idle 終了時間チェック外す Conditions Walk false

Idle -> Run 終了時間チェック外す Conditions Run true

Run -> Idle 終了時間チェック外す Conditions Run false

Idle -> Dying 終了時間チェック外す Conditions Death true

再生で敵アニメーション確認

#11 体力バーと弾薬UIの実装

【ヒエラルキ】テキスト追加 位置調整(中央寄せ)

テキストを左下に位置調整

Altを押しながら右端に位置指定

【ヒエラルキ】UI > スライダーを追加

スライダーの大きさを調節してAltを押しながら中央下に指定

Slider >Background 色を赤に指定

Slider >FillArea > Fill 色を緑に指定

Sliderのvalueを調整すると体力バーが完成していること確認

ハンドルが邪魔なのでHandleSlideArea > Handle Imageのチェックを外す

ハンドルを非表示にすると体力バーに隙間が空くので FillとFillAreaのRectTransformの左右を0に設定

SliderのMaxValueを100に変更

【ヒエラルキ】Text->AmmoText Slider->HPSliderに変更

【スクリプト】FPSController.cs編集

【ヒエラルキ】Player > HpBarにHPSlider AmmoTextにAmmoTextを挿入

プレビューで弾を打つと右下の弾薬が減っていくことを確認