忍者ブログ

雑・記ング・オブ・ファイターズ

(開発中)AIGOの説明

現在開発中のため仕様が変更されます
AIが書いた説明文です

AIGO はじめての説明
更新日: 2026-05-19
========================================================================

1. AIGOとは
========================================================================

AIGO は、格闘ゲームエンジン IKEMEN GO 用の AI 制御システムです。

ふつうのキャラクター AI は、キャラクター本体の中に書かれている処理で動きます。
AIGO はそれとは別に、外部の `.aigo` ファイルを読み込んで、キャラクターの行動を決めます。

簡単に言うと、

  「この状況なら、この行動をする」

というルールをたくさん書いて、キャラクターを動かす仕組みです。

例:

  - 相手が近いなら、しゃがみ小技を出す。
  - 相手が飛んだら、対空技を出す。
  - 相手が攻撃してきたら、ガードする。
  - 自分が怒っている時は、攻撃を増やす。
  - 危ない時は、防御を増やす。

========================================================================
2. 何ができるのか
========================================================================

AIGO では、キャラクターに以下のような行動をさせられます。

  - 前に歩く
  - 後ろに下がる
  - ダッシュする
  - ガードする
  - 小技を出す
  - 必殺技を出す
  - コンボをする
  - 相手のジャンプを対空する
  - 相手の攻撃の空振りに反撃する
  - 投げを避ける
  - 飛び道具に対応する
  - 試合中に AI レベルを変える
  - 試合中の展開に応じて性格を変える
  - 過去の結果を学習して行動を調整する

つまり、ただランダムに技を出す AI ではなく、
試合の状況を見て行動を選ぶ AI を作ることができます。

========================================================================
3. .aigoファイルとは
========================================================================

`.aigo` ファイルは、AIGO 用の行動ルールを書いたテキストファイルです。

中身はこのような形です。

  [近距離_しゃがみ小技]
  priority = 70
  all = alive
  all = ctrl
  all = p2bodydist x <= 50
  c = !F,1/D,a
  st = 1
  ct = 10
  prob = 80

これは、だいたい次の意味です。

  [近距離_しゃがみ小技]
    この行動ルールの名前です。

  priority = 70
    優先度です。
    高いほど先に選ばれやすくなります。

  all = alive
    自分が生きている時だけ使います。

  all = ctrl
    自分が操作可能な時だけ使います。

  all = p2bodydist x <= 50
    相手との距離が近い時だけ使います。

  c = !F,1/D,a
    実際に入力するコマンドです。
    この例では、前入力を消してから、しゃがみ小技を出します。

  st = 1
    何フレーム後に入力を始めるかです。

  ct = 10
    次に同じ行動をしにくくする時間、または入力を保持する時間です。

  prob = 80
    この行動を選ぶ確率です。

========================================================================
4. AIGOの考え方
========================================================================

AIGO は、毎フレーム以下のように考えます。

  1. 今の試合状況を見る。
  2. 使える行動ルールを探す。
  3. 優先度や確率を見て、どの行動をするか決める。
  4. 決まったコマンドを入力する。

たとえば、相手が近くで攻撃してきた時は、

  - ガードするルール
  - 無敵技で割り込むルール
  - バックステップするルール

などが候補になります。

その中で、優先度、確率、AIレベル、性格、学習結果などを見て、実際の行動が選ばれます。

========================================================================
5. トリガーとは
========================================================================

トリガーとは、行動を出すための条件です。

例:

  all = p2bodydist x <= 50

これは、

  「相手との距離が50以下なら」

という意味です。

よく使うトリガー:

  alive
    自分が生きている。

  ctrl
    自分が動ける。

  p2bodydist x
    相手との横距離。

  enemy,statetype = A
    相手が空中にいる。

  enemy,movetype = A
    相手が攻撃中。

  inguarddist
    相手の攻撃がガードできる距離にある。

  enemynearestthrowattack
    近くの相手が投げ判定を出している。

  anger
    自分の怒りの値。

  danger
    自分の危機感の値。

========================================================================
6. コマンドとは
========================================================================

コマンドは、AIGO がキャラクターに入力する操作です。

例:

  c = /F
    前を押しっぱなしにします。

  c = F,F
    前ダッシュをします。

  c = x
    x ボタンを押します。

  c = D,DF,F,x
    波動拳のような 236 + x コマンドを入力します。

  c = !F,x
    前入力を消してから x を押します。

  c = 1/D,a
    1フレームしゃがんでから a を押します。

方向はキャラクターの向きを基準にします。

  F = 前
  B = 後ろ
  U = 上
  D = 下

右向きでも左向きでも、F は常に「前」です。

========================================================================
7. 優先度と確率
========================================================================

AIGO の行動は、優先度と確率で選ばれます。

優先度:

  - 高い行動ほど先に選ばれやすい。
  - ガードや対空など、反応が必要な行動は高めにする。
  - 前歩きや様子見などは低めにする。

確率:

  - 条件を満たした時に、どのくらい選ばれるか。
  - 100 ならほぼ必ず選ばれる。
  - 低いほどたまにしか出ない。

例:

  ガード:
    priority = 90
    prob = 100

  主力の小技:
    priority = 70
    prob = 80

  たまに出す奇襲:
    priority = 50
    prob = 20

========================================================================
8. 性格と感情
========================================================================

AIGO には、AI の性格や感情を持たせることができます。

固定の性格:

  - cautious
    慎重。

  - aggressive
    攻撃的。

  - relaxed
    余裕がある。

  - desperate
    必死。

  - arrogant
    慢心。

  - cold
    冷静、冷徹。

試合中に変わる感情:

  - anger
    怒り。

  - panic
    焦り。

  - fatigue
    疲労。

  - danger
    危機感。

たとえば、何度も攻撃を食らうと anger や danger が上がります。
すると、攻撃的になったり、防御を増やしたりします。

例:

  personality.aggressive = 80
  emotion.anger.base = 10

これは、最初から少し怒りやすく、攻撃的な AI という意味です。

========================================================================
9. 試合中にAIを切り替える
========================================================================

AIGO は、試合中に読み込む AI ファイルを切り替えることもできます。

例:

  [怒ったら攻撃型へ]
  priority = 100
  all = alive
  all = anger >= 65
  aigoswitch = AI2
  ct = 600
  prob = 100

これは、

  「怒りが65以上になったら、AI2に切り替える」

という意味です。

AI2 には、攻撃型の性格を設定したファイルを読み込ませることができます。

たとえば KFM では、

  - AI1: 通常型
  - AI2: 攻撃型
  - AI3: 慎重型
  - AI4: 冷徹型
  - AI5: 必死型
  - AI6: 余裕型

のように分けています。

========================================================================
10. 学習とは
========================================================================

AIGO は、行動の結果を記録できます。

たとえば、

  - この距離でこの技を出したら当たった。
  - この状況でこの行動をしたら反撃された。
  - この相手にはこのガードが失敗しやすい。

といった情報を保存します。

学習データは `.aigo` ファイルと同じ場所の `aigo_learning` フォルダに保存されます。

例:

  chars/kfm/aigo/aigo_learning/kung_fu_man.json

これにより、AI は少しずつ行動の選び方を調整できます。

========================================================================
11. どんな順番で作ればいいか
========================================================================

はじめて AIGO を作る時は、次の順番がおすすめです。

1. まずガードを書く。

  攻撃より先に、防御を書きます。
  ガードできない AI はすぐ負けます。

2. 次に移動を書く。

  前歩き、後退、ダッシュなどを書きます。

3. 距離ごとの基本技を書く。

  近距離なら小技。
  中距離なら牽制。
  遠距離なら接近や飛び道具。

4. 対空を書く。

  相手が飛んだら落とせるようにします。

5. 差し返しを書く。

  相手の攻撃の空振りや硬直に反撃します。

6. コンボを書く。

  ヒットした時だけつながる行動を作ります。

7. 性格や学習を足す。

  最後に、AI の個性や成長要素を足します。

========================================================================
12. よくある失敗
========================================================================

1. 技が出ない

原因:

  - コマンドが速すぎる。
  - コマンドが遅すぎる。
  - 最後のボタンだけが入力されている。

対策:

  - 入力フレームを少し伸ばす。
  - `!F` で前入力を消す。
  - `.cmd` 側のコマンドと合っているか確認する。

2. ガードばかりする

原因:

  - ガードの priority が高すぎる。
  - ガード条件が広すぎる。

対策:

  - 投げや対空の時はガードしない条件を入れる。
  - 攻撃できる距離では攻撃パターンの priority を上げる。

3. 前歩き中に変な技が出る

原因:

  - 前入力と攻撃ボタンが重なっている。

対策:

  - 攻撃前に `!F` を入れる。

4. コンボがつながらない

原因:

  - ヒットしてからコマンドを入力していて遅い。

対策:

  - 方向だけ先に入力する。
  - `?hit` を使って、最後のボタンだけヒット確認で押す。

========================================================================
13. AIGOの強み
========================================================================

AIGO の強みは、AI の行動を外部ファイルで細かく調整できることです。

キャラクター本体を大きく書き換えなくても、

  - 行動パターン
  - ガード条件
  - コンボ
  - 性格
  - AIレベル
  - 学習

を調整できます。

また、ログを見ながら、

  「この行動が出すぎている」
  「この技が出ていない」
  「この距離で負けている」

といった問題を探して直すことができます。

========================================================================
14. まとめ
========================================================================

AIGO は、格闘ゲームのキャラクターに外部ファイルで AI を与える仕組みです。

基本はとてもシンプルです。

  条件を書く。
  行動を書く。
  優先度と確率を決める。
  ログを見て調整する。

最初は難しく見えますが、

  - ガード
  - 移動
  - 小技
  - 対空
  - 差し返し
  - コンボ

の順番で少しずつ作れば、実戦的な AI に育てられます。

PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
ですからー
Webサイト:
性別:
非公開
自己紹介:
だまれ!

P R