「It’s a showtime!! -DISSIDIA FINAL FANTASYのAI設計-」中継視聴メモ

アジェンダ

  1. はじめに
  2. 分けて考える-1 : 性格とスキル
  3. 分けて考える-2 : データとプログラム
  4. アルゴリズム実例
  5. 問題点と対処法

はじめに

  • DISSIDIA FF
    • FFキャラクターが多数参戦
    • 3D空間でのアクションゲーム
    • 対人対戦が面白い
  • DFFのAIに求められたもの
    • アクションとして手応えがある強さ
    • 多彩なバリエーション
    • FINAL FANTASYである
      • BATTLE is a SHOWTIME

分けて考える-1 : 性格とスキル

  • DFFでは「性格」「スキル」にわける
  • どうして分けて考えるのか
    • 伝えたいことが多すぎると、逆に伝わらなくなる
    • 時間を区切り いつ、何を見せるのか はっきりさせることが重要
  • 移動→攻防→反撃→移動→割り込み→攻防
    • 「性格」と「スキル」のどちらに割り振るか
  • キャラクター性は「性格」と「スキル」に影響を及ぼさない
  • 性格×スキル×キャラクター
  • 性格
    • 様子見の行動
    • ...
    • ...
  • スキル
    • 回避・ガード
    • 攻撃を出す距離
    • 相手の好きに対応する確率
    • 相手が接近→攻撃するまでの時間
    • ...

分けて考える-2 : データとプログラム

  • 新キャラクターのデータ設定
    • 得意な距離
    • 攻撃の射程
    • 攻撃の避け方
    • 状況による行動の変化
      • 確率のデータ
  • プログラム
    • 移動する
      • ナビゲーションメッシュで移動している
      • 曲線を描くように移動→PCが様子見をする

アルゴリズム実例

  • 待機アルゴリズム
    • 離脱(バックステップ)
    • 牽制待機/停止待機
    • 接近
    • 攻撃

※注意点:攻撃頻度が低い敵はつまらない

※注意点:バグが顕在化しやすい

問題点と対処法

  • 問題を解決するには、別のしくみについて考える
  • 反射型→遅くする→弱くなる→学習型
  • プレイヤーの行動により、「回避 : ガード」の比率を変える

質疑応答

  • 参考にしたもの
  • 学習はどのようなもの
    • 限定的。バトル開始後のデータのみ。失敗か成功かを蓄積
  • ワークフロー
    • エクセルデータ→実装してみる→問題をみて後の仕様を書き換える
  • ...