概要

  • グラフィック表示
    • 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

How to Make the Enemy Attack

Monster Battle Sandbox (Infinity PBR)

動画:

Monster Battle Sandbox

Enemy Setup Tutorial #1

Enemy Setup Tutorial #2

Exploding Enemy Attacks

入手:

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]

視聴:

Monster Battle Sandbox – YouTube

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA