ゲームのモデル化

雪見だいふく生チョコ


Twitter での話題でゲームの AI の挙動をどうするか的なものが出ていたので手の動くままに書く。

上記の図は SVG Cats 2 で描いたもの。 Administrator 権限がないと起動しなかったり選択していないツールが選択されたり選択していないオブジェクトが選択されていたりとなんか変な挙動をする。モデル図描くなら素直に JudePowerPoint とかの方がいいかもしれない。とかいう感想はいいとして、まぁゲームをプレイする際のモデルは非常に大雑把に以上の絵で説明される。

とりあえず問題の簡単のために STG などのリアルタイムアクションを前提とするが、AI を開発するという問題をまともに考える場合、上図の中で人間という枠を AI によって代用しようという流れになる。しかし現状では状況把握はあまり重視されていないような印象を受ける。この原因を勝手に妄想すると、視覚・聴覚入力〜状況把握に至るまでにはまともにやると以下のような感じになってしまい、収集がつかないからだと思われる。

  • 画像認識
  • 状況把握
    • バックに持つルール ( 弾が自機にあたったらいけない etc ) の評価
    • 難易度や視覚・聴覚効果による心理的影響 ( 弾幕によるプレッシャー etc )
    • 上記とプレイヤースキルを加味して、攻撃優先 / 回避優先などの現在の状況のランク付け

さらに行動決定時にはフィードフォワード・フィードバック ( 予測・経験からの微調整 ) も働くため単純に人間を模倣するには馬鹿正直にやると膨大な計算量が必要になる。まぁ、上記全部をまともにやるのはあまりにもボンクラすぎるので、画像認識あたりはすっ飛ばしてどれが自機でどれが弾かくらいは教えてやってもいいんだろうが、視覚効果 (コントラストによる視認性の低下・画面効果による把握の難易度を上げる) によって画像認識を行いにくくしている STG もあるのでここをすっ飛ばしてしまうと真に人間くさい AI は生まれないはず。

また、あまり STG はプレイしない人間なので間違っていることも十分考えられるが、東方などを見ていると自機からごく近距離の状況把握に留まっているようだ ( あくまであまり知らない人間が外側から見ている結果 ) 。確かに人間でも弾の画面内比率が高まってくれば自機周辺に目が行きがちになるが、スコアラーなどは明らかに盤面全体を見ているようなので ( これもあくまでリプレイを見た上での感想 ) 現状の方法論のみで十分とは言えない。

さらに重要になってくるのはプレイヤースキルの設定だと思うのだが、例えば避けられる弾間隔などを評価できる形で量子化してしまう ( 10px までなら見極められる etc ) とか、無敵時間の使用が上手い ( 誤差 3% で判定復帰タイミングがわかる etc ) など、客観視できるものは片っ端から数値化してそれらのサブセットによってプレイヤースキルを決定付けることなどが考えられる。

より人間くさい AI を目指すのであればステージ序盤〜中盤〜終盤〜ボスなどの流れによる心理的効果も考えて、序盤強気〜ボス弱気とかのパターン選択機構を組み込んでみてもいいかもしれない。ルールの解釈も強気な理解と弱気な理解があるはずなので ( ボムによる無敵時間の発生を緊急回避と捉えるか危険回避と捉えるか etc ) 、これも数値化できるならしたほうがいいがかなりめんどくさそう。

結論としてはヒューリスティック全開 + 画像認識すっ飛ばしなどのズルが現状では現実的。単純な弾避けゲーなどでテスト環境を作成して実験などしてみるくらいが関の山ではなかろうか。

やってみてわかったがゲームプレイのモデル化はけっこう面白い。 STG に絞ってみても考えることはかなりある。ゲームプレイはジャンルによって系がいくつも出てくるのでこれ専門で考える人とかいてもいいんじゃないかと思った。