長久さんや三宅さんがやっている「ゲームAI連続セミナー」 の第2回に行ってみました。
今回のテーマは、ゴール指向アクションプランニングです。
今回から、5人ぐらいで話し合う、グループ討論が始まりました。
基本的にセミナー中にメモったものを起こし直したので、 聞き漏らしたり、勘違いしているところがあると思います。すいません。
発言機会が少ない->グループディスカッションを追加
まとまりが無い->テーマを先に選出
事前に知りたい->事前に資料配布(ただし本番まで変更する)
ゲームAIがゲームデザインを進化させたり、逆も起きる。
アメリカではゲームAIが発展してるが、日本はまだまだ
アメリカではFPSが人気があり、ユーザーの目が肥えてきたので発展した
日本はオリジナルのゲームが多いので、そこが狙い目
FPS(公式サイト,Wikipedia)
マップが複雑なのが特徴(屋内でも窓を飛び越えて行き来できたりする)
ゲームAIのいろいろある分野の中でもゴール指向プランニングに特徴があると分類される。
同じ会社が作ったゲームからの発展はどうなってきたか。
F.E.A.R.の目指したAI
ただし、これらは分離して考えることはできない。
ゴール指向型エージェントとは?
ゴールを決めて、その結果に応じた行動を行うAI
NOLF2との違い
知識表現が人間的な概念(F.E.A.R.は統一知識表現、シンボル)
昔は、「所有権」とか概念的な情報を埋め込んだ
今は、レイキャスト、パス探索などから情報を集めておき場所や信頼度、情報所得時間などの情報に統一化して溜め込む(統一知識表現)
シンボルとは高速化のために、統一記述表現から、もっと単純な情報(どのノードにいるか)として世界を集約する。
FSMからプランニングへ
昔は、ゴールを決めたらFSMで行動を制御していた(ゴール単位で設定)
今は、目的と行動は分離さていて、その途中をプラナーが(連鎖的に)つなぐ
レベルデザイナーがやっていた仕事をプラナーが勝手にやる
情報を取ってくるAI->エージェント
プランニングの欠点は、プランに従わなくてはならない(状況が変わっても対応しない)。状況が変わったときにプランを立て直すことをリプランニングという
いろいろなプランがあるときの選び方は?
行動に対してコストを考えてコストが一番小さな行動を選ぶ(A*)
これによって、キャラクタの個性として、異なるプランが生成される。
特徴
戦略、戦術、行動のゴールを設定することができる。
スクリプトで行動を規定する
フィールド全域で行動
知識表現はナビゲーションメッシュによる簡略的な表現
階層型ゴール指向プランニング
大きなゴールは小さなゴールから組み立てられる
最後はAIが実行できる簡単な行動に落とす
戦略層、振舞い層、戦術層、戦略層
下から作っていく
ゲームテスト80回
長い時間にわたる制御が可能になった。
短い時間に渡る状況の変化への対応も可能である。
Q.クロムハウンズのデバッグ画面に出ている「寿命」って何?
A.無限ループ防止用の保険
Q.行動の粒度は?
A.キャラクタごとに決まる。ユーザーからどう見えるか(おっ賢いな)を気にして行動を決めている。
Q.BlackBoard は協調行動用?
A.Yes.行動を皆に告知する。
Q.なぜ、スクリプトを選んだ?
A.必ずしもシンボル形式の簡単なところまで落とせるわけではなかった。柔軟性を持たせるため。階層型のときは有利だった。スクリプト書くのは最初は手間だが後で楽になっていく。
「実際にゲーム開発に応用するには」がテーマ。
ある行動をつなげると、単純な構造から複雑なことができる。というのがゴール指向プランニング。
以下のような応用が考えられる。
Q.企画とプログラマの場合わけは?
A.企画->三宅->プログラマで橋渡し。三宅さんが階層を気にして設計。普通は技術者が分けるのが良いでしょう
Q.スクリプトは企画でもかけるんじゃない?
A.戦術、戦略は企画が書いても良いでしょう。できればその下でも企画が書いて良いと思います。
Q.連鎖を追っていって、プランに達しないときは無いの?
A.止まることが良くあった。しつこくデバッグした。特別なデバッグ技法を使ったわけではない。デバッグしきれないからといって、導入しないのは間違っていると思う。特別な技法を開発しなきゃいけないとは思っている。
Q.階層型AIとFSMの違い?
A.階層の中でFSMが動いてるんじゃない?単にスケジューリングされたものが時間軸で線形に並べられているだけ。
ようするにネタ出し
と、紆余曲折ありまして…
生活系SLGでいこう。
人間関係シミュレーション。
このゲームのCOMとは?
あいだにいろいろ脱線して…
生活者に何させたい?
どんなCOMが実現できそう?
いままで無理だったことから何ができるようになるの?
このゲームをまとめて見ましょう。
生まれたときから始まる?高校生ぐらい?
企画の出すイメージに対して、技術者が解決方法を提案するように実現性を考える。
実際に作る時に、何が問題になる?
グループ討論は初めてだったので、 話についていくのがやっとで大変でした。