Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ゲームAIの基礎と事例
土江智明
この会の目的
プランナーさん向けに…
● ゲームAIの考え方を紹介する
● ゲームAIの設計を紹介する
● ゲームAIの事例を紹介する
● 実装方法についてはあまり言及しない
この会で話すAI
デジタルゲームのAI
● ユーザーを楽しませるためのAI
● 開発側の設定項目を少なくするためのAI
● アクション部分等、動きのある部分のAI
この会で話さないAI
● とにかく強いもの
○ 将棋やチェス
○ 最近だとサッカー等
● システム寄りなもの
○ おすすめアイテムの紹介
○ レーティング・マッチングシステム
参考にした書籍・サイト
● Game AI Pro, Game AI Pro 2
● AiGameDev.com
● CEDECの公演、レポート
AIに関する日本語の資料は多くないです…
目次
● AIの必要性
● ゲームAIの設計
● 最近のゲームAIの事例
最近のゲームAIの事例
● 敵同士が重ならないように動かすAI
● 敵群の攻撃間隔・位置を調整するメタAI
● 種類毎に異なるセンサーを持つNPC
● 指示を与えると考慮して動く味方NPC
● 自然なアニメーション遷移のためのAI
● 特性に適...
AIの必要性
AIの必要性
● そもそもAIとはなにか
● なぜAIが必要になったか
● AIにリスクとリターン
● ゲームAIの分離
そもそもAIとはなにか
● コンテンツを少ない設定から生成する機構
コンテンツ設定 AI
AIの必要性
なぜAIが必要になったのか
● 昔はコンテンツが少なく、手で生成できた
コンテンツ設定
AIの必要性
なぜAIが必要になったのか
● 3Dの発展等に伴うコンテンツの大規模複雑化
○ 手で設定するには多すぎる・難しすぎる
コンテンツ設定
AIの必要性
コンテンツ
なぜAIが必要になったのか
● 3Dの発展等に伴うコンテンツの大規模複雑化
○ 手で設定するには多すぎる・難しすぎる
● AIでコンテンツを生成する必要がある
設定 AI
AIの必要性
なぜAIが必要になったのか
● 経路探索やヘイト管理が必要になる
● 手ですべての状況を設定するのは困難
AIの必要性
コンテンツ
AIのリスクとリターン
設定とコンテンツの差(AIによる増幅)が…
● 大きいほどコンテンツの制御が難しい
● 小さいとコンテンツが少なく/設定が多くなる
設定 AI
AIの必要性
ゲームAIの分離
● ゲームAIの発展に伴い構造が整理される
● ゲームAIは3つの部分AIと通信部に分かれる
AIの必要性
ゲームAIの分離
ゲームAIは3つの部分AIと通信部に分けられる
● キャラクターAI
○ NPCの知覚・意思決定・行動・記憶を管理する
● ナビゲ―ションAI
○ マップ等の状況をキャラクターに分かる形に変換する
● メタAI
○ キャラクタ...
ゲームAIの分離
ゲームAIは3つの部分AIと通信部に分けられる
キャラクター
ナビゲーション
メタ 知覚
指示
指示
アクション
整理したマップデータの提供
AIの必要性
ゲームAIの設計
ゲームAIの設計
● キャラクターAI
○ エージェントアーキテクチャ
● ナビゲーションAI
● メタAI
● AIエディタ
キャラクターAI
エージェントアーキテクチャが主流
キャラクターAIを分割
● 知覚
● 意思決定
● 行動
● 記憶
ゲームAIの設計
エージェントアーキテクチャ
● 知覚
○ 意思決定の材料(位置・HPなど)を取得・整理
● 意思決定
○ どういう移動・スキルの使用をするか決定
● 行動
○ 実際にスキルを使用する・アニメーションを再生する
● 記憶
○ 以前の意思決定・知覚...
エージェントアーキテクチャ
知覚・意思決定・行動・記憶へ分割
世界
キャラクターAI
ゲームAIの設計
キャラクターAI
エージェントアーキテクチャ
知覚・意思決定・行動・記憶へ分割
世界
知覚 行動
記憶
意思決定
ゲームAIの設計
キャラクターAI
エージェントアーキテクチャ
各部の詳細
● 知覚
● 行動
● 意思決定
○ ルールベース
○ ステートベース
○ ビヘイビアーベース
● 記憶
ゲームAIの設計
キャラクターAI
エージェントアーキテクチャ
知覚
● 世界の情報を取得・整理・選択する部分
○ ナビゲーションAIからマップ情報を取得
○ メタAIの指示を取得
○ 記憶から情報を取り出す
○ その他ゲーム内の情報も必要なら
● 取得した情報の重み付け・選択を...
エージェントアーキテクチャ
行動
● 意思決定で決まった行動内容を実行する
○ アニメーションの再生
○ スキルの使用
● アニメーション遷移等に影響を与える
ゲームAIの設計
キャラクターAI
エージェントアーキテクチャ
意思決定
● 何をするかを決定する部分
● 実装が主に7種類に別れる
○ ルール・ステート・ビヘイビアー
○ タスク・ゴール・ユーティリティ・シミュレーション
● よく使われるのは上の3つ
● 組み合わせて使う場合も...
意思決定
ルールベースの意思決定
● 最も単純な意思決定方法
● 「AだったらBする」というルールで意思決定する
● ルールが多くなると大変
● 状況に応じた行動を取らせにくい
● 設定は簡単
ゲームAIの設計
キャラクターAI
エージェントア...
意思決定
ステートベースの意思決定
● 現在の状態とルールベースの状態遷移
ビヘイビアーベースの意思決定
● BehaviourTreeが有名
● 詳しくは↓で
幻塔戦記グリフォンの AI で使っている Behaviour Tree
ゲームAI...
エージェントアーキテクチャ
記憶
● 過去の意思決定・知覚・行動を記憶する
● 次の意思決定に活かす
ゲームAIの設計
キャラクターAI
ナビゲーションAI
● 世界(マップ)の状況を整理する
○ 経路探索
○ 影響度マップの作成
○ レイキャストで視界に入っているかの判定
ゲームAIの設計
メタAI
● 他のAIを制御する
○ NPCの群での動きを制御する
○ プレイヤーとの戦闘のテンポ・難易度を制御する
● コンテンツを生成する
○ ダンジョンの自動生成
ゲームAIの設計
AIエディタ
良いAIを速く作るには、良いエディタが必要
良いエディタとは…
● 拡張性が高く
● コピペせず量産できる
● ゲーム側とスムーズにやり取りできる
○ 演出・ギミックとの連携
etc…
ゲームAIの設計
AIエディタ
良いAIを速く作るには、良いエディタが必要
● AIエディタはUnity拡張で既に存在している
○ ルール・ステート・ビヘイビアベースのAIが作れる
ゲームAIの設計
最近のゲームAIの事例
敵同士が重ならないように動かすAI
アクションゲーム全般
● 敵が重なると、リアルさ・見易さが失われる
● 狭い通路と広い部屋で異なる動きができる
● 大きい強い敵と弱い小さい敵をより区別できる
● 敵と味方は重なるので、味方に不便はない
最近...
敵同士が重ならないように動かすAI
実装
● 敵同士に当たり判定を設定する
● 敵を避ける経路探索・衝突回避をする
● 衝突した際は適切な反発をする
最近のゲームAIの事例
敵群の攻撃間隔・位置を調整するメタAI
無双系のアクションゲームなど
● 敵が団子にならず、主人公を囲む
● 主人公に対する敵の方向で攻撃頻度が変わる
● 複数の敵が同時に攻撃することを避ける
● 敵の位置・攻撃のテンポをメタAIがコントロール...
敵群の攻撃間隔・位置を調整するメタAI
実装
● 集団戦闘を管理するメタAI
● メタAIとキャラクターAIの通信
● 背後に回りこむ経路探索
● 適切な攻撃方法の判断
問題点
● WAVE毎に設定すると設定が大変そう
最近のゲームAIの事例
敵群の攻撃間隔・位置を調整するメタAI
応用
● 主人公を”囲まない”こともできる
● 周りの敵の”強さ”の合計で判断
● 主人公のHPによって攻撃頻度を変える
● 主人公がターゲットにしていない敵は”待つ”
● 主人公の特殊攻撃が発動可能な位...
種類ごとに異なるセンサーを持つNPC
ステルスアクションなど
● 敵の種類で感知の仕方・敏感さが変化
○ 目が見えないけど耳が良い
○ 目が見えるけど遠くまでは見えない
● 感知の範囲も色々
○ 視覚は横のほうだと気がつくのに時間が掛かる
○ ...
種類ごとに異なるセンサーを持つNPC
実装
● Perception Pipeline
○ 情報源の指定・情報の変換・選択を重ねる
○ 柔軟なセンサーを作成できる
○ ナビゲーションAIとの連携は必須
問題点
● 設定が複雑になりがち
最近のゲ...
種類ごとに異なるセンサーを持つNPC
応用
● 攻撃方法・移動場所の決定に活用
● ヘイトの貯まる範囲・対象の柔軟な設定
○ 強い敵に後ろから歩いて近づくと気が付かれない…とか
● 攻撃・防御方向に対しての指定
最近のゲームAIの事例
指示を与えると考慮して動く味方NPC
サッカーゲームなど
● 指示を与えると味方の性格が変わる
○ 攻撃的・防御的に行動を選択するようになる
○ 性格が変わるだけで、緊急対応は行う
最近のゲームAIの事例
指示を与えると考慮して動く味方NPC
実装
● AIの行動決定の優先順位を変える
○ ルールベースAIのチェックする順番を変える
○ Behaviour TreeのSelectorの優先度変える
問題点
● 意思決定システムの階層化が必要
● ...
指示を与えると考慮して動く味方NPC
応用
● 味方NPCに指示を出す
○ 「守れ」「攻撃しろ」「敵をひきつけろ」等
● 敵の性格を変える特殊効果
○ ボスの指示で急に攻撃的になる
最近のゲームAIの事例
自然なアニメーション遷移のためのAI
FPS等
● 目的によってアニメーションの遷移が変わる
○ 隠れるための移動と攻撃のための移動の最後が違う
● 急なターン等はアニメーションを変える
● ころころ向きを変えて徘徊しない
最近のゲームAIの事例
自然なアニメーション遷移のためのAI
実装
● AIの遷移とMechanimとの連携
○ アニメーション遷移・ブレンドをAIからコントロール
● 徘徊の移動方向とかの急激な変化を抑止
○ Pelrin Noiseや、数値の制限など
問題点
● ...
自然なアニメーション遷移のためのAI
応用
● 先行入力を検知して挙動を変える
○ 回避行動後の攻撃・移動
○ 何をやっている時にダメージを受けたか
● Perlin Noiseは行動決定にも用いられる
最近のゲームAIの事例
特性に適した位置に移動するNPC
オープンワールド系のゲームの味方NPC
● 攻撃方法等によって移動する位置を決定する
○ 遠距離攻撃か近距離攻撃か
○ HPの状況
○ 性格
○ メタAIからの指示
● 経路探索の前の、どこに移動するかの決定
...
特性に適した位置に移動するNPC
実装
● Tactical Position Selection
○ 移動先の候補に評価値をつけて決定する
● Influence Map
○ マップの各点にどの程度の影響度があるかを記録する
問題点
● 軽量...
特性に適した位置に移動するNPC
応用
● 指示によって移動先を変える味方
● NPCの種族や性格によって移動先を変える
● 群れる/群れないNPC
● プレイヤーの自動移動や誘導にも使える
最近のゲームAIの事例
ダンジョン・クエストを自動生成するメタAI
ハクスラ系のゲーム
● ダンジョンのマップ・敵の配置を生成
● 収集系クエストを自動でつくるMMO等もある
最近のゲームAIの事例
ダンジョン・クエストを自動生成するメタAI
実装
● マップ・敵の配置のパターンを作る
○ 既存のマップを組み合わせられる部分に分割
○ 敵の配置のルールをパターン化
● 機械学習・ルールベースで生成
問題点
● マップの部品化等にコストがかか...
ダンジョン・クエストを自動生成するメタAI
応用
● 新規マップの見た目を自動生成
○ 敵の配置・ギミックは手動
● 味方NPCの強さのテスト
● ランダムに生成して面白いマップを探す
最近のゲームAIの事例
まとめ
● AIの必要性
○ ゲームAIの役割・必要性
○ ゲームAIのリスク
● ゲームAIの設計
○ キャラクター・ナビゲーション・メタAI
○ エージェントアーキテクチャ
○ ルール・ステート・ビヘイビアベースの意思決定
● 最近のゲーム...
Upcoming SlideShare
Loading in …5
×

ゲームAIの基礎と事例

23,240 views

Published on

社内勉強会で発表した内容です。

Published in: Technology
  • Be the first to comment

ゲームAIの基礎と事例

  1. 1. ゲームAIの基礎と事例 土江智明
  2. 2. この会の目的 プランナーさん向けに… ● ゲームAIの考え方を紹介する ● ゲームAIの設計を紹介する ● ゲームAIの事例を紹介する ● 実装方法についてはあまり言及しない
  3. 3. この会で話すAI デジタルゲームのAI ● ユーザーを楽しませるためのAI ● 開発側の設定項目を少なくするためのAI ● アクション部分等、動きのある部分のAI
  4. 4. この会で話さないAI ● とにかく強いもの ○ 将棋やチェス ○ 最近だとサッカー等 ● システム寄りなもの ○ おすすめアイテムの紹介 ○ レーティング・マッチングシステム
  5. 5. 参考にした書籍・サイト ● Game AI Pro, Game AI Pro 2 ● AiGameDev.com ● CEDECの公演、レポート AIに関する日本語の資料は多くないです…
  6. 6. 目次 ● AIの必要性 ● ゲームAIの設計 ● 最近のゲームAIの事例
  7. 7. 最近のゲームAIの事例 ● 敵同士が重ならないように動かすAI ● 敵群の攻撃間隔・位置を調整するメタAI ● 種類毎に異なるセンサーを持つNPC ● 指示を与えると考慮して動く味方NPC ● 自然なアニメーション遷移のためのAI ● 特性に適した位置に移動するNPC ● ダンジョン・クエストを自動生成するメタAI 予告
  8. 8. AIの必要性
  9. 9. AIの必要性 ● そもそもAIとはなにか ● なぜAIが必要になったか ● AIにリスクとリターン ● ゲームAIの分離
  10. 10. そもそもAIとはなにか ● コンテンツを少ない設定から生成する機構 コンテンツ設定 AI AIの必要性
  11. 11. なぜAIが必要になったのか ● 昔はコンテンツが少なく、手で生成できた コンテンツ設定 AIの必要性
  12. 12. なぜAIが必要になったのか ● 3Dの発展等に伴うコンテンツの大規模複雑化 ○ 手で設定するには多すぎる・難しすぎる コンテンツ設定 AIの必要性
  13. 13. コンテンツ なぜAIが必要になったのか ● 3Dの発展等に伴うコンテンツの大規模複雑化 ○ 手で設定するには多すぎる・難しすぎる ● AIでコンテンツを生成する必要がある 設定 AI AIの必要性
  14. 14. なぜAIが必要になったのか ● 経路探索やヘイト管理が必要になる ● 手ですべての状況を設定するのは困難 AIの必要性
  15. 15. コンテンツ AIのリスクとリターン 設定とコンテンツの差(AIによる増幅)が… ● 大きいほどコンテンツの制御が難しい ● 小さいとコンテンツが少なく/設定が多くなる 設定 AI AIの必要性
  16. 16. ゲームAIの分離 ● ゲームAIの発展に伴い構造が整理される ● ゲームAIは3つの部分AIと通信部に分かれる AIの必要性
  17. 17. ゲームAIの分離 ゲームAIは3つの部分AIと通信部に分けられる ● キャラクターAI ○ NPCの知覚・意思決定・行動・記憶を管理する ● ナビゲ―ションAI ○ マップ等の状況をキャラクターに分かる形に変換する ● メタAI ○ キャラクターAIの群の制御・マップの生成 ● 各AI間の通信部 AIの必要性
  18. 18. ゲームAIの分離 ゲームAIは3つの部分AIと通信部に分けられる キャラクター ナビゲーション メタ 知覚 指示 指示 アクション 整理したマップデータの提供 AIの必要性
  19. 19. ゲームAIの設計
  20. 20. ゲームAIの設計 ● キャラクターAI ○ エージェントアーキテクチャ ● ナビゲーションAI ● メタAI ● AIエディタ
  21. 21. キャラクターAI エージェントアーキテクチャが主流 キャラクターAIを分割 ● 知覚 ● 意思決定 ● 行動 ● 記憶 ゲームAIの設計
  22. 22. エージェントアーキテクチャ ● 知覚 ○ 意思決定の材料(位置・HPなど)を取得・整理 ● 意思決定 ○ どういう移動・スキルの使用をするか決定 ● 行動 ○ 実際にスキルを使用する・アニメーションを再生する ● 記憶 ○ 以前の意思決定・知覚・行動等を記憶しておく ゲームAIの設計 キャラクターAI
  23. 23. エージェントアーキテクチャ 知覚・意思決定・行動・記憶へ分割 世界 キャラクターAI ゲームAIの設計 キャラクターAI
  24. 24. エージェントアーキテクチャ 知覚・意思決定・行動・記憶へ分割 世界 知覚 行動 記憶 意思決定 ゲームAIの設計 キャラクターAI
  25. 25. エージェントアーキテクチャ 各部の詳細 ● 知覚 ● 行動 ● 意思決定 ○ ルールベース ○ ステートベース ○ ビヘイビアーベース ● 記憶 ゲームAIの設計 キャラクターAI
  26. 26. エージェントアーキテクチャ 知覚 ● 世界の情報を取得・整理・選択する部分 ○ ナビゲーションAIからマップ情報を取得 ○ メタAIの指示を取得 ○ 記憶から情報を取り出す ○ その他ゲーム内の情報も必要なら ● 取得した情報の重み付け・選択をする ゲームAIの設計 キャラクターAI
  27. 27. エージェントアーキテクチャ 行動 ● 意思決定で決まった行動内容を実行する ○ アニメーションの再生 ○ スキルの使用 ● アニメーション遷移等に影響を与える ゲームAIの設計 キャラクターAI
  28. 28. エージェントアーキテクチャ 意思決定 ● 何をするかを決定する部分 ● 実装が主に7種類に別れる ○ ルール・ステート・ビヘイビアー ○ タスク・ゴール・ユーティリティ・シミュレーション ● よく使われるのは上の3つ ● 組み合わせて使う場合もある ゲームAIの設計 キャラクターAI
  29. 29. 意思決定 ルールベースの意思決定 ● 最も単純な意思決定方法 ● 「AだったらBする」というルールで意思決定する ● ルールが多くなると大変 ● 状況に応じた行動を取らせにくい ● 設定は簡単 ゲームAIの設計 キャラクターAI エージェントアーキテクチャ
  30. 30. 意思決定 ステートベースの意思決定 ● 現在の状態とルールベースの状態遷移 ビヘイビアーベースの意思決定 ● BehaviourTreeが有名 ● 詳しくは↓で 幻塔戦記グリフォンの AI で使っている Behaviour Tree ゲームAIの設計 キャラクターAI エージェントアーキテクチャ
  31. 31. エージェントアーキテクチャ 記憶 ● 過去の意思決定・知覚・行動を記憶する ● 次の意思決定に活かす ゲームAIの設計 キャラクターAI
  32. 32. ナビゲーションAI ● 世界(マップ)の状況を整理する ○ 経路探索 ○ 影響度マップの作成 ○ レイキャストで視界に入っているかの判定 ゲームAIの設計
  33. 33. メタAI ● 他のAIを制御する ○ NPCの群での動きを制御する ○ プレイヤーとの戦闘のテンポ・難易度を制御する ● コンテンツを生成する ○ ダンジョンの自動生成 ゲームAIの設計
  34. 34. AIエディタ 良いAIを速く作るには、良いエディタが必要 良いエディタとは… ● 拡張性が高く ● コピペせず量産できる ● ゲーム側とスムーズにやり取りできる ○ 演出・ギミックとの連携 etc… ゲームAIの設計
  35. 35. AIエディタ 良いAIを速く作るには、良いエディタが必要 ● AIエディタはUnity拡張で既に存在している ○ ルール・ステート・ビヘイビアベースのAIが作れる ゲームAIの設計
  36. 36. 最近のゲームAIの事例
  37. 37. 敵同士が重ならないように動かすAI アクションゲーム全般 ● 敵が重なると、リアルさ・見易さが失われる ● 狭い通路と広い部屋で異なる動きができる ● 大きい強い敵と弱い小さい敵をより区別できる ● 敵と味方は重なるので、味方に不便はない 最近のゲームAIの事例
  38. 38. 敵同士が重ならないように動かすAI 実装 ● 敵同士に当たり判定を設定する ● 敵を避ける経路探索・衝突回避をする ● 衝突した際は適切な反発をする 最近のゲームAIの事例
  39. 39. 敵群の攻撃間隔・位置を調整するメタAI 無双系のアクションゲームなど ● 敵が団子にならず、主人公を囲む ● 主人公に対する敵の方向で攻撃頻度が変わる ● 複数の敵が同時に攻撃することを避ける ● 敵の位置・攻撃のテンポをメタAIがコントロール 最近のゲームAIの事例
  40. 40. 敵群の攻撃間隔・位置を調整するメタAI 実装 ● 集団戦闘を管理するメタAI ● メタAIとキャラクターAIの通信 ● 背後に回りこむ経路探索 ● 適切な攻撃方法の判断 問題点 ● WAVE毎に設定すると設定が大変そう 最近のゲームAIの事例
  41. 41. 敵群の攻撃間隔・位置を調整するメタAI 応用 ● 主人公を”囲まない”こともできる ● 周りの敵の”強さ”の合計で判断 ● 主人公のHPによって攻撃頻度を変える ● 主人公がターゲットにしていない敵は”待つ” ● 主人公の特殊攻撃が発動可能な位置へ動く etc... 最近のゲームAIの事例
  42. 42. 種類ごとに異なるセンサーを持つNPC ステルスアクションなど ● 敵の種類で感知の仕方・敏感さが変化 ○ 目が見えないけど耳が良い ○ 目が見えるけど遠くまでは見えない ● 感知の範囲も色々 ○ 視覚は横のほうだと気がつくのに時間が掛かる ○ 暗闇だと見えない・川のそばだと聞こえない 最近のゲームAIの事例
  43. 43. 種類ごとに異なるセンサーを持つNPC 実装 ● Perception Pipeline ○ 情報源の指定・情報の変換・選択を重ねる ○ 柔軟なセンサーを作成できる ○ ナビゲーションAIとの連携は必須 問題点 ● 設定が複雑になりがち 最近のゲームAIの事例
  44. 44. 種類ごとに異なるセンサーを持つNPC 応用 ● 攻撃方法・移動場所の決定に活用 ● ヘイトの貯まる範囲・対象の柔軟な設定 ○ 強い敵に後ろから歩いて近づくと気が付かれない…とか ● 攻撃・防御方向に対しての指定 最近のゲームAIの事例
  45. 45. 指示を与えると考慮して動く味方NPC サッカーゲームなど ● 指示を与えると味方の性格が変わる ○ 攻撃的・防御的に行動を選択するようになる ○ 性格が変わるだけで、緊急対応は行う 最近のゲームAIの事例
  46. 46. 指示を与えると考慮して動く味方NPC 実装 ● AIの行動決定の優先順位を変える ○ ルールベースAIのチェックする順番を変える ○ Behaviour TreeのSelectorの優先度変える 問題点 ● 意思決定システムの階層化が必要 ● 階層化をサポートしたエディタが必要 最近のゲームAIの事例
  47. 47. 指示を与えると考慮して動く味方NPC 応用 ● 味方NPCに指示を出す ○ 「守れ」「攻撃しろ」「敵をひきつけろ」等 ● 敵の性格を変える特殊効果 ○ ボスの指示で急に攻撃的になる 最近のゲームAIの事例
  48. 48. 自然なアニメーション遷移のためのAI FPS等 ● 目的によってアニメーションの遷移が変わる ○ 隠れるための移動と攻撃のための移動の最後が違う ● 急なターン等はアニメーションを変える ● ころころ向きを変えて徘徊しない 最近のゲームAIの事例
  49. 49. 自然なアニメーション遷移のためのAI 実装 ● AIの遷移とMechanimとの連携 ○ アニメーション遷移・ブレンドをAIからコントロール ● 徘徊の移動方向とかの急激な変化を抑止 ○ Pelrin Noiseや、数値の制限など 問題点 ● アニメーションに指示を出す部分が複雑に 最近のゲームAIの事例
  50. 50. 自然なアニメーション遷移のためのAI 応用 ● 先行入力を検知して挙動を変える ○ 回避行動後の攻撃・移動 ○ 何をやっている時にダメージを受けたか ● Perlin Noiseは行動決定にも用いられる 最近のゲームAIの事例
  51. 51. 特性に適した位置に移動するNPC オープンワールド系のゲームの味方NPC ● 攻撃方法等によって移動する位置を決定する ○ 遠距離攻撃か近距離攻撃か ○ HPの状況 ○ 性格 ○ メタAIからの指示 ● 経路探索の前の、どこに移動するかの決定 最近のゲームAIの事例
  52. 52. 特性に適した位置に移動するNPC 実装 ● Tactical Position Selection ○ 移動先の候補に評価値をつけて決定する ● Influence Map ○ マップの各点にどの程度の影響度があるかを記録する 問題点 ● 軽量な実装には工夫が必要 ● 設定項目が増える(かも) 最近のゲームAIの事例
  53. 53. 特性に適した位置に移動するNPC 応用 ● 指示によって移動先を変える味方 ● NPCの種族や性格によって移動先を変える ● 群れる/群れないNPC ● プレイヤーの自動移動や誘導にも使える 最近のゲームAIの事例
  54. 54. ダンジョン・クエストを自動生成するメタAI ハクスラ系のゲーム ● ダンジョンのマップ・敵の配置を生成 ● 収集系クエストを自動でつくるMMO等もある 最近のゲームAIの事例
  55. 55. ダンジョン・クエストを自動生成するメタAI 実装 ● マップ・敵の配置のパターンを作る ○ 既存のマップを組み合わせられる部分に分割 ○ 敵の配置のルールをパターン化 ● 機械学習・ルールベースで生成 問題点 ● マップの部品化等にコストがかかる ● 良いダンジョンの生成にはチューニングが必要 最近のゲームAIの事例
  56. 56. ダンジョン・クエストを自動生成するメタAI 応用 ● 新規マップの見た目を自動生成 ○ 敵の配置・ギミックは手動 ● 味方NPCの強さのテスト ● ランダムに生成して面白いマップを探す 最近のゲームAIの事例
  57. 57. まとめ ● AIの必要性 ○ ゲームAIの役割・必要性 ○ ゲームAIのリスク ● ゲームAIの設計 ○ キャラクター・ナビゲーション・メタAI ○ エージェントアーキテクチャ ○ ルール・ステート・ビヘイビアベースの意思決定 ● 最近のゲームAIの事例

×