現在開発中のため仕様が変更されます
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 に育てられます。