yikegaya’s blog

仕事関連(Webエンジニア)と資産運用について書いてます

ゾンビ系FPSを作成するオンライン講座を受講してみた

UdemyでUnityを使ってバイオハザードみたいなゾンビ系FPSを作成する講座を受講してみた。

www.udemy.com

ノンフィールドRPGに続けてUnityの講座を受講するのは2つ目。

https://ikeyu0806.hatenablog.com/entry/2021/10/24/123335

できたもの

こんなの

vimeo.com

今回もセールで買ったんで1400円くらいで7時間の講座の割には結構それっぽいものできたし学びにもなって満足。

学んだこと

  • 3Dモデルの動かし方、アニメーション実装
  • アニメーションエディタの使い方
  • FPSゲームの視点の実装
  • ゾンビの行動の実装方法(歩く、プレイヤーを追いかけて走る、攻撃、倒れる)
  • フィールド上のゾンビの自動生成(スポーン)
  • 人型の3Dモデルに銃を持たせて発砲⇨弾のゾンビへの衝突判定実装
  • ダメージ、弾薬の管理と画面表示
  • HP、弾薬回復アイテムの実装
  • ゲームオーバ実装
  • ゲームクリア実装
  • 地形の作り方
  • SE(Sound Effect)とBGMの導入
  • 自分のHPによって視界を暗くしていく方法(ポストプロセス)
  • タイトル画面からの遷移

使った素材

3Dモデルは「Mixamo」、地形のテクスチャは「TextureHaven」、サウンドは「SONNISS」というサイトで無料配布されている素材を使った。

Mixamo

Textures • Poly Haven

GDC Game Audio Bundles - SONNISS - Royalty Free Sound Effects

3Dゲーム開発の知見

今回初めて3Dゲームの開発体験してみたけど

  • 3Dモデルのアニメーション
  • 地形の生成

に関しては自分で書いたプログラムでどうこうするUnityエディタ上の操作でほとんと作れるっぽい

地形

地形はUnityエディタ上で「Terrain」という3Dオブジェクトを作ってそこから山や木を生やしたり地形の表面にテクスチャ貼ったりをフォトショでブラシを塗るような感覚で作っていける。ちょっとビビるくらい簡単で便利。

3Dオブジェクトの操作

3Dオブジェクトに関しては「Mixamo」からダウンロードした時点で大分ゲームに組み込むための仕組みができていてそこがどう作られたのかは謎。「Blender」みたいな3DCG制作のソフトを使って自分で何かしら作ってみないと理解できないかも

MixamoからダウンロードしてUnityにインポートした時点でアニメーションが既に入ってる。例えばプレイヤーの3Dオブジェクトなら弾の装填とか銃を構えるアニメーション、ゾンビなら攻撃したり走ったり倒れたりする時のアニメーションが既に用意されていて、例えばフィールド上でゾンビを動かそうと思ったらUnity開発者は以下の挙動をプログラムすればいい

  • ゾンビのX、Z座標を一定の速度で動かし続ける。この座標が動いている間はゾンビが歩くアニメーションを繰り返すようにする
  • プレイヤーとの距離が一定に縮まったら歩くアニメーションから走るアニメーションに切り替えて移動速度を速くする
  • さらにプレイヤーとの縮まったら攻撃アニメーションに切り替えてプレイヤーのHPを減らす

アニメーション自体も3Dモデルの足や腕をプログラムで操作するのかな。。と思ってたけど少なくとも今回はそうではない

残ったバグ

最後まで動画見て同じようにUnityエディタ操作してC#スクリプト写経したはずが何故かバグが残ってしまった。

  • アイテムが何故か取れない
  • フィールド上の木の幹が謎に紫色になっている

この辺りは後で直したいが。。別のUnity講座もう買ってあるしそっちやりたいんで一旦放置