概要
- グラフィック表示
- 3D モデル (Mesh Renderer / Skinned Mesh Renderer)
- 2D スプライト (Sprite Renderer)
- 衝突判定/コライダー
- 判定:タグあるいはレイヤーを適切に設定して、ランタイムに随時必要な判定を実行する。
- 床との衝突
- 障害物との衝突
- キャラクター同士の衝突
- 当たり判定
- 形状
- 立方体コライダー (Box Collider)
- 球体コライダー (Sphere Collider)
- カプセルコライダー (Capsule Collider)
- メッシュコライダー (Mesh Collider)
- 2D コライダー (Collider 2D)
- 判定:タグあるいはレイヤーを適切に設定して、ランタイムに随時必要な判定を実行する。
- 物理演算/剛体 (Rigidbody)
- 床との衝突
- 障害物との衝突
- キャラクター同士の衝突
- ジャンプモーションを物理計算する
- ナビメッシュ (Nav Mesh)
- 静的オブジェクト:歩行可能な床オブジェクトを静的としてマークする。
- ベイク:静的とマークされたオブジェクト及び事前に定義されたエージェントから行動可能な範囲をメッシュ情報として生成する。
- ナビメッシュエージェント (Nav Mesh Agent):ベイクされたナビメッシュを利用して、キャラクターの経路探索あるいは移動の可否などを判定する。
- キャラクターコントローラー (Character Controller)
- 物理演算やナビメッシュの計算タイミングを適切に設定し、整合性を取りながらキャラクターの移動やアクションを適用する。(キャラクターコントローラーの設計に依存する。)
- AI:行動パターンを定義する
- ステートマシン/有限オートマトン (Finite State Machine / FSM)
- ビヘイビアツリー (Behavior Tree)
- 視界/索敵 (Field of View / Detection)
- 巡回 (Patrol)
- 経路 (Waypoint):事前に定められた、あるいは、ランタイムに検出した幾つかの経由点で構成される経路を、ランダムあるいは指定の順路で巡回する。
- ヒットボックス (HitBox):当たり判定に用いるコライダーを設定し、ダメージの授受や強度、頻度などの付随情報をプロパティとして保持する。
- ダメージ処理 (Damage):当たり判定で攻撃がヒットしたと判定した場合に、モンスターあるいはプレイヤーの HP を減らす。
- 破壊 (Destroy):ダメージが規定量を超えて HP がゼロ以下になった場合には、死亡とフラグを付け、死亡モーション、死亡エフェクトなどを再生した後にオブジェクトを破壊する。オブジェクトプールを使用している場合は、オブジェクトを破壊する代わりにプールに戻す。
参考:
Scripting a monster – Unity Forum
チュートリアル
Simple Enemy AI – State Machine, Find Target, Chase, Attack
Monster Battle Sandbox (Infinity PBR)
動画:
入手:
Monster Battle Sandbox – Low Poly Sandbox URP | Unity Asset Store [Official]
Low Poly Monster Bundle 1 – 20 Character Packs! – Fantasy RPG | Unity Asset Store [Official]
視聴: