ゲームAI
ゲームAI(Game Artificial Intelligence)は、ビデオゲームに登場するプレイヤー以外のキャラクター(NPC)や敵、あるいはゲーム内システムの行動を制御するために使用されるアルゴリズムおよび技術の総称である。学術的な意味での人工知能(AI)とは異なり、最適な解を見つけることよりも、プレイヤーに楽しく没入感のある体験を提供することを最優先目標とする。
概要
ゲームAIは、一般的なソフトウェアAIとは異なる独特の要件を持つ。学術的AIや産業用AIが「問題解決」と「最適化」に焦点を当てる一方、ゲームAIは「エンターテイメント」に焦点を当てる。
- 意図された不完全性: あまりにも完璧なAIはプレイヤーに挫折感を与える可能性がある。そのため、適切なレベルのミスや反応速度の遅延などを人為的に実装することもある。
- リアルタイム処理: ゲームは毎秒30〜60フレーム以上で実行される必要があるため、AI演算に多くのリソースを割り当てることはできない。したがって、軽量で効率的なアルゴリズムが好まれる。
- 予測可能性: プレイヤーがAIのパターンを把握し、攻略できるように、ある程度の一貫性とテレグラフ(行動の前兆)が必要とされる。
主な実装手法
ゲームAIは多様な技術の階層的結合からなる。詳細は各文書を参照のこと。
移動 (Movement)
キャラクターがワールド内で物理的に動く方式である。ステアリング行動(Steering Behaviors)や隊形維持技術などが含まれる。
経路探索 (Pathfinding)
障害物を避けて目的地までの最適経路を見つける技術である。A* アルゴリズムやナビゲーションメッシュ(NavMesh)が主に使われる。
意思決定 (Decision Making)
NPCが現在の状況で何をすべきか判断するロジックである。
- 有限ステートマシン (FSM): 状態と遷移を定義する古典的方式。
- ビヘイビアツリー (Behavior Tree): 階層的構造で行動を定義する現代的標準。
- GOAP / ユーティリティシステム: 状況に応じた柔軟な計画策定および加重値ベースの選択方式。
多数のエージェント間の協調、戦術的地点分析、RTSゲームのリソースおよび生産管理技術である。
チェス、囲碁などで最適な手を見つけるアルゴリズムである。ミニマックス法(Minimax)探索とモンテカルロ木探索(MCTS)が代表的である。
環境相互作用 (World Interfacing)
AIエージェントがゲームワールドから情報を認識(Sensing)し、行動を反映するインターフェース技術である。
実行管理 (Execution Management)
限られた演算リソース内でAIを効率的に駆動するためのスケジューリングおよび負荷分散技術である。
AIの欺瞞 (Cheating)
ゲームの緊張感を高めたり、演算リソースを節約したりするために、開発者はAIにプレイヤーが知らない情報を提供したり、能力値を操作したりすることがある。
- 全知全能の感覚: 実際の視覚や聴覚ロジックを経由せず、プレイヤーの座標を直接参照して追跡する。
- リソース無限: RTSゲームなどでAIプレイヤーは、リソース採集速度にボーナスを受けたり、リソースを無限に持って開始する場合が多い。
- ラバーバンドAI (Rubber Banding): レーシングゲームでプレイヤーとの距離差を強制的に調節し、常に接戦が繰り広げられるようにする手法である。