[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
2010年8月31日 にあった、CEDECの講演についての記事です。
It’s a showtime!! -DISSIDIA FINAL FANTASYのAI設計-
ディシディア ファイナルファンタジーの 話です。
---------------------------------------------
●ディシディアのAIで 求められたもの
短いバトルで 個性を演出
アクションとして 手ごたえある強さ
多彩な キャラバリエーション
(キャラの例 すぐ目の前を攻撃したい奴、十分 力を溜めてから攻撃する奴
防御しながら攻撃、避けながら攻撃、罠を張るやつ などなど)
・忘れてはいけないこと
→ このゲームは FFである。
(FFが好きな人が 買うゲーム)
→ 重要なのは キャラクターを魅力的に見せる事
・AIを作る上で 気をつける事
→ 伝えたい事が多すぎると、伝えたい事が伝わらない
→ 時間を区切り いつ、何を見せるか? はっきりさせた
---------------------------------------------
●分けて考える
ディシディアのAIでは 大きく”性格” と ”スキル”の2つに分けています。
・分けて考える以上 互いが影響を与えあってはいけない
ひとつの行動を 複数の理由から結びつけると
その結果が どうした理由でそうなったのか? わからなくなるため
・性格と スキル
性格 ・・・ どういった行動をするか? (どこに移動するか?、どんな行動をするか?)
スキル ・・・ バトルの操作テクニック (その行動を どう行動するか?)
具体的には
性格 ・・・ 様子見するかどうか?
残りHPによる、行動の変化
状況に応じて、どんな攻撃をするか?
→ 例) ピンチになると 「ボタン連打」「けん制攻撃をし続ける」「回避し続ける」
スキル ・・・ 回避、ガード を、どれくらいするか?
どの距離で、攻撃するか?
相手のスキに対して、攻撃するか?
苦手な距離に敵がいる場合?
→ 例) 「正確な距離で攻撃する」「スキをわざと見せる」
キャラクター性は 性格・スキル に影響を及ぼさないようにする
AIで弱いキャラクターを演じる場合、「強い攻撃を出さないようにする」と言う設定を わざわざ作らない
→ ディシディアでは、技の装備を変える事ができるので 弱いキャラの場合 そもそも強い技を装備させない
→ AIは、今 装備している技の中で 戦う
・AIとは 揺らぐものです。
なので、作り的に 何で揺らいでいるのか? を明確にしないと 良く分からないものになってしまう。
---------------------------------------------
●データ と プログラム
・データ化する利点
新しいキャラクターを作る際 AIを作りやすくするため
(プログラマが作業をしない)
トライ & エラー が簡単
・4つのパラメーターのみ
得意な距離
攻撃射程
どう回避するか?
状況に対する行動
・プログラムで組んだ方が良い場所
どう移動するか?
→ 移動は ナビゲーションメッシュ による経路探索
目的地に 一直線に移動するのではなく 周りこみながら移動している
---------------------------------------------
●データ の実例
・攻撃の設定
有効距離(min/max) 有効高度(min/max) その攻撃の有効な対処法
ファイガ 16 , 30 -10 , 3 横に避ける
プチメテオ 10 , 100 -10 , 10 ガード
・状況によって 攻撃的/通常/守備的 の指針
100% 85% 35%
100% 守備的 守備的 守備的
85% 攻撃的 通常 通常
35% 攻撃的 攻撃的 攻撃的
(横軸 自分のHP 、 縦軸 敵のHP)
(実際の ディシディアでは ブレイブ値 と言うのも考慮の対象になるが
本講演では 割愛)
・指針による攻撃選定確率
蹴り ファイガ 旋風剣 プチメテオ
攻撃的 20% 30% 40% 10%
通常 40% 10% 30% 20%
守備的 10% 70% 10% 10%
・行動セット
細かい行動 を組み合わせる事で ワンセットにしたAI行動
行動が決定すると、この行動が 実行される。
例) HIT&AWAY 行動
離脱 → けん制待機 → 接近 → 攻撃
→ この行動 全体で 5~6秒
・基本的には
移動して 攻撃する物である。
→ しかし、例外として 割り込み と言う概念がある
・割り込み
自分のやりたかった行動が なんらかの事情で実行できなかった
より大きなチャンスが生じた
大きなリスクを感じた
→ その際、割り込みが発生し 別の行動を行う
・ツマらないAI?
攻撃頻度が低い敵は ツマらない
→ 待機行動は 控え目に
・防御アルゴリズム
反射型で作成
→ 相手の行動を見てから 判断
ディシディアのゲーム性として 出の遅い攻撃、必殺技は 見てから避けられる ため
また、技が多すぎて 「この攻撃に対して こう対処すれば良い」と言う事を 汎用的システムでカバーする事ができなかった
→ 問題点 技ごとに 対応を用意する事になるため バグが多い
(例 エクスデスのガード攻撃に ちょっとしたバグがあった
結果、かなりのユーザーが エクスデスを相手に経験値稼ぎ が横行した)
超反応 と言われた。
---------------------------------------------
●AIのバージョンアップ
海外版 「ディシディアファイナルファンタジー ユニバーサルチューニング」
にて 改良をしました。
・反射型アルゴリズム の反応を遅くした
→ 当然、AIが弱くなった
→ 学習型アルゴリズム を実装
(その学習は その試合のみ
戦闘が終了すると その学習は リセットさせた)
攻撃の前に 先だし回避、ガードを行うようにした
→ 回避なのか? ガードなにか? は、これまでのプレイヤーの行動を分析して決定
→ その回避、ガード が失敗したなら 次第に その選択をやらせないようにした
→ ちょっとした改造ではあったが、AIの質が 劇的に上がりました。
---------------------------------------------
●質疑応答
・AIについては 何を参考にしたか?
→ AIの資料が 全然なかったので とても苦労した
スマブラを参考にした。
→ スマブラで CPU同士が対戦している姿を永遠と眺め AIの動きを読み取った
ついったー
http://twitter.com/seki_seki_seki
連絡先は
sekisekiseki(あっと)gmail.com