<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel rdf:about="https://zakki.game-waza.net/RSS/100/">
    <title>雑・記ング・オブ・ファイターズ</title>
    <link>https://zakki.game-waza.net/</link>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="https://zakki.game-waza.net/RSS/" />
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />
    <description></description>
    <dc:language>ja</dc:language>
    <dc:date>2026-05-23T12:25:21+09:00</dc:date>
    <items>
    <rdf:Seq>
      <rdf:li rdf:resource="https://zakki.game-waza.net/aigo/%E3%83%8F%E3%83%B3%E3%82%B5%E3%83%A0goo%E3%81%AE%E8%AA%AC%E6%98%8E" />
      <rdf:li rdf:resource="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E3%81%84%E3%81%BE" />
      <rdf:li rdf:resource="https://zakki.game-waza.net/aigo/-%E9%96%8B%E7%99%BA%E4%B8%AD-aigo%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC" />
      <rdf:li rdf:resource="https://zakki.game-waza.net/aigo/20260519" />
      <rdf:li rdf:resource="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E8%BF%91%E6%B3%81%E3%81%A8%E5%AE%A3%E4%BC%9D" />
      <rdf:li rdf:resource="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E9%9B%91%E3%83%BB%E8%A8%98%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%82%BF%E3%83%BC%E3%82%BA%E3%81%AE%E5%85%AB%E6%9C%8819%E6%97%A5%E5%8F%B7" />
      <rdf:li rdf:resource="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AF%E3%81%98%E3%81%BE%E3%82%8B" />
    </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="https://zakki.game-waza.net/aigo/%E3%83%8F%E3%83%B3%E3%82%B5%E3%83%A0goo%E3%81%AE%E8%AA%AC%E6%98%8E">
    <link>https://zakki.game-waza.net/aigo/%E3%83%8F%E3%83%B3%E3%82%B5%E3%83%A0goo%E3%81%AE%E8%AA%AC%E6%98%8E</link>
    <title>ハンサムGooの説明</title>
    <description>Handsome-Goo / MUGEN / Ikemen GO 仕様差分解説
Date: 2026-05-23

概要
----

Handsome-Goo は Ikemen GO を基礎にした派生版であり、MUGEN 互換の基本挙動と
Ikemen GO の既存拡張を保ちながら、AI 制御、外部...</description>
    <content:encoded><![CDATA[Handsome-Goo / MUGEN / Ikemen GO 仕様差分解説<br />
Date: 2026-05-23<br />
<br />
概要<br />
----<br />
<br />
Handsome-Goo は Ikemen GO を基礎にした派生版であり、MUGEN 互換の基本挙動と<br />
Ikemen GO の既存拡張を保ちながら、AI 制御、外部ツール連携、部位防御、アーマー、<br />
反射、相殺、音声管理、ヘッドレス実行などを追加している。<br />
<br />
大きく言うと、違いは次の 3 層に分かれる。<br />
<br />
1. MUGEN にはない Ikemen GO 由来の拡張<br />
&nbsp; &nbsp;Tag / Simul / 追加 trigger / Go 実装のシステムなど。<br />
<br />
2. オリジナル Ikemen GO にはない Handsome-Goo 独自拡張<br />
&nbsp; &nbsp;AIGO、ArmorOverride、GuardPointOverride、PartDefense、Clsn metadata、<br />
&nbsp; &nbsp;ReflectProjectile、ClashDef、External API、Headless battle など。<br />
<br />
3. 互換性を保つために通常キャラでは触らない内部拡張<br />
&nbsp; &nbsp;ログ、デバッグ API、外部入力、AI 学習用 state、batch/headless 実行など。<br />
<br />
<br />
1. MUGEN との違い<br />
----------------<br />
<br />
1.1 エンジン基盤<br />
<br />
MUGEN は Windows 向けの古い 2D 格闘ゲームエンジンで、CNS/CMD/AIR/SFF/SND による<br />
キャラクター定義を中心に動作する。<br />
<br />
Handsome-Goo は Ikemen GO ベースなので、MUGEN の基本形式を読みつつ、Go 実装の<br />
拡張エンジンとして動作する。<br />
<br />
主な違い:<br />
<br />
- MUGEN より多くの trigger / state controller を扱える。<br />
- Tag / Simul / チーム戦など Ikemen GO 系の機能を前提にできる。<br />
- 外部 API、ヘッドレス実行、ログ出力など、ツール連携向けの機能を持つ。<br />
- MUGEN 互換キャラは基本的に動くが、Handsome-Goo 独自 SCTRL を使ったキャラは MUGEN では動かない。<br />
<br />
<br />
1.2 CNS / Trigger の違い<br />
<br />
MUGEN の CNS では、基本的な HitDef、Explod、PlaySnd、ChangeState などを使う。<br />
<br />
Handsome-Goo ではそれに加えて、次のような独自 trigger / SCTRL が使える。<br />
<br />
- ArmorOverride<br />
- GuardPointOverride<br />
- ArmorOverrideClear<br />
- PartDefenseSet<br />
- PartDefenseClear<br />
- ChangeAsset<br />
- SetReflectable<br />
- ReflectProjectile<br />
- ClashDef<br />
- ClashOverride<br />
- SendExternalEvent<br />
- SetExternalFlag<br />
- PartLife / PartStatus / PartHit / PartDamage / PartDefense<br />
- SoundChannelBusy / SoundChannelFree / SoundPlaying<br />
- HeadlessMode / FastBattleMode / ExternalAPIEnabled<br />
- HitAttackGroup / HitAttackType / HitAttackAttr<br />
- MoveHitAttackGroup / MoveHitAttackType / MoveHitAttackAttr<br />
- svar(n)<br />
<br />
これらは MUGEN には存在しないため、MUGEN 互換を重視するキャラでは使用を避ける必要がある。<br />
<br />
<br />
1.3 AIR の違い<br />
<br />
MUGEN の AIR では Clsn1 / Clsn2 の矩形を定義する。<br />
<br />
Handsome-Goo では、Clsn に意味づけを追加できる。<br />
<br />
追加 AIR key:<br />
<br />
- Clsn2Group[n]<br />
- Clsn2Type[n]<br />
- Clsn1Group[n]<br />
- Clsn1Type[n]<br />
- Clsn1Attr[n]<br />
<br />
用途:<br />
<br />
- Clsn2Group: 頭、胴、腕、脚などの部位名<br />
- Clsn2Type: normal、armor、guardpoint、critzone、invul などの防御分類<br />
- Clsn1Group: 剣先、柄、拳、弾などの攻撃部位名<br />
- Clsn1Type: slash、pierce、blunt、magic などの攻撃種類<br />
- Clsn1Attr: fire、ice、sharp、weapon などの任意タグ<br />
<br />
MUGEN ではこれらの key は意味を持たない。<br />
<br />
<br />
2. オリジナル Ikemen GO との違い<br />
-------------------------------<br />
<br />
2.1 AIGO<br />
<br />
AIGO は Handsome-Goo 独自の AI システムである。<br />
<br />
オリジナル Ikemen GO の CPU AI は、主に既存 CMD/CNS と内部 AI 入力に依存する。<br />
Handsome-Goo では、キャラクターごとの .aigo / aigo.def から行動パターンを読み、<br />
条件評価、SEQ、入力予約、学習情報を使って行動を決める。<br />
<br />
特徴:<br />
<br />
- .aigo ファイルで AI パターンを定義する。<br />
- AIGO 有効時は既存 CPU AI 入力を止める。<br />
- 最終的にはキャラの command 入力として流すため、CNS の通常コマンド処理と接続される。<br />
- aigo_debug_*.txt に AIGO 専用ログを出す。<br />
- player_control_P*.txt にプレイヤー操作・入力系ログを出す。<br />
<br />
互換注意:<br />
<br />
- AIGO はオリジナル Ikemen GO には存在しない。<br />
- .aigo を前提にした AI 調整は、オリジナル Ikemen GO では再現されない。<br />
- AIGO は入力予約経由なので、直接 state を強制する AI とは挙動が異なる。<br />
<br />
<br />
2.2 ArmorOverride / GuardPointOverride<br />
<br />
オリジナル Ikemen GO では、アーマーやガードポイントは主に HitOverride、NotHitBy、<br />
ReversalDef、独自 state 処理などを組み合わせて作る。<br />
<br />
Handsome-Goo では専用 SCTRL として実装している。<br />
<br />
ArmorOverride:<br />
<br />
- 被弾を成立させつつ、ダメージ、ヒットポーズ、硬直、速度、エフェクトなどを差し替える。<br />
- keep.state / keep.anim / keep.velocity / keep.ctrl などで被弾時の挙動を細かく制御できる。<br />
- damage.mul / damage.add / damage.min / damage.max / kill などでダメージ処理を制御できる。<br />
- no.hitspark / no.hitsound で相手 HitDef のヒット演出を抑制できる。<br />
<br />
GuardPointOverride:<br />
<br />
- ArmorOverride のガードポイント版。<br />
- 成立時は相手側のヒットスパーク、ヒット音、guard damage、guard power などをガード扱いにする。<br />
- 通常ヒットではなく、ガード成立に近い結果を作るために使う。<br />
<br />
追加の違い:<br />
<br />
- ArmorOverride と GuardPointOverride は同じ見かけ slot を指定しても内部的に別レイヤーとして保持される。<br />
- `attack.group/type/attr` と `ignore.attack.group/type/attr` で、攻撃側 Clsn1 metadata による成立条件を設定できる。<br />
- Projectile の `attack.group/type/attr` は ArmorOverride / GuardPointOverride の判定に使える。<br />
<br />
<br />
2.3 PartDefense<br />
<br />
PartDefense は、Clsn2Group を使った部位別防御システムである。<br />
<br />
オリジナル Ikemen GO / MUGEN では、通常 HitDef はキャラ全体に対して damage を与える。<br />
Handsome-Goo では、当たった Clsn2 の group/type に応じて、部位ごとの防御力や弱点を設定できる。<br />
<br />
できること:<br />
<br />
- 頭、腕、胴、脚などの部位ごとに damage 倍率を変える。<br />
- 部位 HP を持たせる。<br />
- 部位が壊れた時に broken state / broken anim / broken spark / broken sound を出す。<br />
- 弱点攻撃で weak.mul / weak.sound / weak.sparkno などを使う。<br />
- Clsn1Group / Clsn1Type / Clsn1Attr によって弱点を変える。<br />
- ignore.attack.* で特定攻撃を部位防御対象外にできる。<br />
<br />
互換注意:<br />
<br />
- PartDefenseSet / PartDefenseClear は MUGEN / オリジナル Ikemen GO には存在しない。<br />
- Projectile 直接ヒットへの PartDefense 適用は現時点では未接続。<br />
- 通常打撃と Armor hit 経路では PartDefense が接続されている。<br />
<br />
<br />
2.4 Clsn1 攻撃メタデータ<br />
<br />
Handsome-Goo では、攻撃判定 Clsn1 に group / type / attr を付けられる。<br />
<br />
例:<br />
<br />
&nbsp; Clsn1Group[0] = sword<br />
&nbsp; Clsn1Type[0] = slash<br />
&nbsp; Clsn1Attr[0] = weapon, sharp, fire<br />
<br />
用途:<br />
<br />
- 剣先だけ弱点にする。<br />
- 打撃、斬撃、刺突、魔法で PartDefense の反応を変える。<br />
- ArmorOverride を特定の攻撃種類だけに反応させる。<br />
- HitAttackGroup / MoveHitAttackAttr などの trigger で直近の攻撃種類を見る。<br />
- ClashDef の attack.* 条件に使う。<br />
<br />
互換注意:<br />
<br />
- MUGEN / オリジナル Ikemen GO ではこれらの AIR key は未対応。<br />
- ClashDef attack.* は現時点では相手側現在フレームの先頭 Clsn1 metadata を使う。<br />
&nbsp; 実際に接触した Clsn1 index を使う精密判定は未実装。<br />
<br />
<br />
2.5 ReflectProjectile / SetReflectable<br />
<br />
Handsome-Goo では Projectile や攻撃 helper の反射を扱うための SCTRL を追加している。<br />
<br />
SetReflectable:<br />
<br />
- 自分または helper を反射可能状態にする。<br />
- reflect limit や owner 情報を持つ。<br />
<br />
ReflectProjectile:<br />
<br />
- 条件に合う Projectile / helper 攻撃を反射する。<br />
- 反射後の owner、team owner、facing、速度倍率、damage scale、guard scale、hitpause scale を指定できる。<br />
- reflect spark / reflect sound / asset 指定に対応する。<br />
<br />
オリジナル Ikemen GO では、反射はキャラ側 CNS でかなり手作業になりやすい。<br />
Handsome-Goo ではエンジン側で共通化している。<br />
<br />
互換注意:<br />
<br />
- Projectile 反射後の attack metadata 上書き設定はまだ仕様未確定。<br />
- 反射後も Projectile 構造体上の attackInfo は維持される。<br />
<br />
<br />
2.6 ClashDef / 小競り合い<br />
<br />
Handsome-Goo では、攻撃判定同士の相殺を ClashDef で設定できる。<br />
<br />
できること:<br />
<br />
- HitDef に対して相殺可能条件を付ける。<br />
- clashlevel / priority / clashpause / clashspark / clashsound を設定する。<br />
- removeonclash で相殺時に攻撃を消す。<br />
- ClashOverride で相殺後の state を変更する。<br />
- scuffle = 1 の攻撃同士がぶつかった時、小競り合い state に入れる。<br />
- svar(0..2) を小競り合い用の専用値として使える。<br />
<br />
MUGEN / オリジナル Ikemen GO では、攻撃同士の相殺はキャラ側で独自に作ることが多い。<br />
Handsome-Goo では SCTRL と trigger として扱える。<br />
<br />
現行制限:<br />
<br />
- 主経路は Player/Helper の Clsn1 vs Clsn1。<br />
- projectile/weapon/throw flag は予約的に残している部分がある。<br />
- `ClashDef attack.*` の精密な接触 index 判定は未実装。<br />
<br />
<br />
2.7 複数アセット / ChangeAsset<br />
<br />
Handsome-Goo では、複数 SFF/AIR/SND を読み込み、state 中に使用 asset を切り替えられる。<br />
<br />
主な機能:<br />
<br />
- AssetBundle<br />
- ChangeAsset<br />
- sprite / anim / sound asset の切替<br />
- scope / persistent / fallback / resetanim / stopsndonchange<br />
- PlaySnd.sndasset<br />
- Explod.animasset<br />
<br />
用途:<br />
<br />
- 変身、武器変更、フォーム変更で別 AIR/SFF/SND を使う。<br />
- キャラを分割 asset 化する。<br />
- 反射 spark / sound に別 asset を使う。<br />
<br />
互換注意:<br />
<br />
- MUGEN / オリジナル Ikemen GO にはこの asset 切替仕様はない。<br />
- 通常キャラ互換を重視する場合は、標準 SFF/AIR/SND にまとめる方が安全。<br />
<br />
<br />
2.8 Sound channel<br />
<br />
Handsome-Goo では、音声 channel の制御を拡張している。<br />
<br />
追加機能:<br />
<br />
- PlaySnd.autochannel<br />
- PlaySnd.channelrange<br />
- PlaySnd.channelpriority<br />
- PlaySnd.avoidchannel<br />
- PlaySnd.channelpolicy = replace / skip / findfree / oldest / lowpriority<br />
- SoundChannelBusy<br />
- SoundChannelFree<br />
- SoundChannelGroup<br />
- SoundChannelIndex<br />
- SoundChannelTime<br />
- FreeSoundChannel<br />
- SoundGroupPlaying<br />
- SoundPlaying<br />
<br />
用途:<br />
<br />
- ボイスと効果音の channel 衝突を避ける。<br />
- 同じ音が重なりすぎるのを防ぐ。<br />
- 古い音だけ差し替える。<br />
- 空き channel を探して再生する。<br />
<br />
MUGEN / オリジナル Ikemen GO では、ここまで細かい channel 管理はできない。<br />
<br />
<br />
2.9 Headless battle / Batch / External API<br />
<br />
Handsome-Goo は、画面表示を前提にしない自動対戦・外部ツール連携を強化している。<br />
<br />
Headless battle:<br />
<br />
- `-headless`<br />
- `-fast`<br />
- `-matches`<br />
- `-batch battle_batch.json`<br />
- round / match result の出力<br />
- action stats<br />
- AIGO training summary<br />
- ai_state 出力<br />
<br />
External API:<br />
<br />
- localhost 専用で `127.0.0.1:&lt;port&gt;` に bind する。<br />
- 外部入力、step 同期、状態取得、event 送信を扱う。<br />
- allowRemote / authToken / host のようなネットワーク公開系設定は削除済み。<br />
<br />
MUGEN / オリジナル Ikemen GO との違い:<br />
<br />
- 自動評価、AI 学習、外部ツール連携を前提にできる。<br />
- ネット公開 API ではなく、ローカルツール連携用 API として整理されている。<br />
<br />
<br />
3. キャラ作者から見た互換性<br />
--------------------------<br />
<br />
3.1 MUGEN 互換キャラ<br />
<br />
標準的な MUGEN キャラは、独自拡張を使わなければ概ね従来通りの考え方で扱える。<br />
<br />
ただし、Handsome-Goo 専用 SCTRL / trigger / AIR key を使った場合、そのキャラは<br />
MUGEN では互換性がなくなる。<br />
<br />
MUGEN 互換を残したい場合:<br />
<br />
- ArmorOverride ではなく従来の HitOverride / NotHitBy 等で作る。<br />
- PartDefenseSet を使わない。<br />
- Clsn1Group / Clsn2Group などを必須にしない。<br />
- HitAttackGroup などの trigger を通常 CNS の必須条件にしない。<br />
<br />
<br />
3.2 Ikemen GO 互換キャラ<br />
<br />
オリジナル Ikemen GO 互換を残したい場合も、Handsome-Goo 独自 SCTRL は避ける必要がある。<br />
<br />
互換を壊す代表例:<br />
<br />
- type = ArmorOverride<br />
- type = GuardPointOverride<br />
- type = PartDefenseSet<br />
- type = ReflectProjectile<br />
- type = ClashDef<br />
- trigger1 = HitAttackGroup(...)<br />
- trigger1 = SoundChannelBusy(...)<br />
- Clsn1Group[n] / Clsn2Group[n] を前提にした処理<br />
- AIGO 専用ファイルを前提にした AI<br />
<br />
一方、Handsome-Goo だけを対象にするなら、これらは機能として積極的に使える。<br />
<br />
<br />
4. 開発者から見た変更箇所<br />
------------------------<br />
<br />
主な実装ファイル:<br />
<br />
- `src/char.go`<br />
&nbsp; hit、armor、guardpoint、reflect、clash、projectile、headless/event 周辺。<br />
<br />
- `src/bytecode.go`<br />
&nbsp; 追加 SCTRL の runtime、trigger opcode、Projectile / ClashDef / ArmorOverride 実行。<br />
<br />
- `src/compiler.go`<br />
&nbsp; 追加 trigger 登録、式コンパイル。<br />
<br />
- `src/compiler_functions.go`<br />
&nbsp; 追加 SCTRL parameter のコンパイル。<br />
<br />
- `src/anim.go`<br />
&nbsp; Clsn1Group / Clsn1Type / Clsn1Attr、Clsn2Group / Clsn2Type の AIR 読み込み。<br />
<br />
- `src/part_defense.go`<br />
&nbsp; PartDefenseSet のデータ、部位判定、弱点、broken、ignore.attack.*。<br />
<br />
- `src/aigo_*.go`<br />
&nbsp; AIGO 本体、parser、pattern、SEQ、入力予約、debug。<br />
<br />
- `src/external_api.go` 系<br />
&nbsp; localhost API、step 同期、外部入力、event。<br />
<br />
<br />
5. 現時点の主な未接続・注意点<br />
----------------------------<br />
<br />
1. Projectile 直接ヒットへの PartDefense<br />
<br />
Projectile には `attack.group/type/attr` を設定できるが、PartDefenseSet の部位防御処理には<br />
まだ直接接続していない。<br />
<br />
2. ClashDef attack.* の接触 index<br />
<br />
現在は相手の現在フレーム先頭 Clsn1 metadata を使う。<br />
実際にぶつかった Clsn1 index を返す精密判定はまだない。<br />
<br />
3. Projectile 反射後の attack metadata 上書き<br />
<br />
反射後も attackInfo は保持されるが、反射側が metadata を明示的に上書きする仕様は未定義。<br />
<br />
4. AIGO と CNS trigger の完全一致<br />
<br />
AIGO 側の条件評価は独自 evaluator を持つため、CNS trigger と完全に同じ範囲を常に扱えるとは限らない。<br />
追加 trigger を AIGO でも使う場合は、AIGO 側 evaluator への接続確認が必要。<br />
<br />
<br />
6. まとめ<br />
--------<br />
<br />
MUGEN は基本形式の基準。<br />
Ikemen GO は MUGEN 互換を拡張した現代的なエンジン。<br />
Handsome-Goo は Ikemen GO をさらに、AI 開発、外部ツール連携、細かい戦闘制御、研究用自動対戦へ<br />
寄せた派生版である。<br />
<br />
キャラ互換を重視するなら、MUGEN / Ikemen GO の標準機能だけで作る。<br />
Handsome-Goo 専用キャラとして作るなら、ArmorOverride、PartDefense、Clsn metadata、ReflectProjectile、<br />
ClashDef、AIGO、Headless / External API を使うことで、通常の MUGEN/Ikemen GO では作りにくい<br />
部位別防御、精密ガードポイント、攻撃属性判定、AI 学習、外部検証ワークフローを組める。<br />
<br />
]]></content:encoded>
    <dc:subject>AIGO</dc:subject>
    <dc:date>2026-05-23T12:25:21+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
  <item rdf:about="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E3%81%84%E3%81%BE">
    <link>https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E3%81%84%E3%81%BE</link>
    <title>いま</title>
    <description>生活は自転車操業ですが時間の余裕はできたのでブログ更新。
最近は3Dを練習してましたが、コーティングAIの進歩により以前から
思索していたコマンド式CPU制御システムが形になってきたので紹介します。
まず従来のMUGENのAIは
・開発に知識と手間がかかる
・本体を改変しなければいけないので許可が取...</description>
    <content:encoded><![CDATA[生活は自転車操業ですが時間の余裕はできたのでブログ更新。<br />
最近は3Dを練習してましたが、コーティングAIの進歩により以前から<br />
思索していたコマンド式CPU制御システムが形になってきたので紹介します。<br />
まず従来のMUGENのAIは<br />
・開発に知識と手間がかかる<br />
・本体を改変しなければいけないので許可が取れなければ公開できない<br />
・コマンド入力の人間らしさや学習機能などが無いので強さを求めると単調になりやすい<br />
これらを改善、発展させるためにMUGENのクローンソフトであり、<br />
オープンソースで拡張性が高いIKEMEN-GOを改造し、独自のCPU処理機能を開発しています。<br />
システム名称はAIGO(A<span style="color: #202122; font-family: sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">rtificial Intelligence Great&nbsp;</span><span style="white-space: pre-line;">Otani</span>)。本体名はハンサムグー(Handsome-Goo)<br />
<br />
.AIGOファイルを使用することで<br />
・書式を簡略化させてキャラの知識を必要とせずに開発の時間を短縮できる<br />
・コマンドを記述するため本体を改変せず、独立ファイルのみを公開できる<br />
・制御をコマンド入力にすることでCPU特有の超反応や限定行動を抑制<br />
・学習機能、性格設定、感情ステータスを実装することで単調化を防ぐ<br />
・aigo.defによる事前設定でキャラセレクトやチーム戦の順番毎に.aigoファイルを切り替えして強さの調整ができる<br />
・.aigoを複数同時に読み込むことで、ほかのキャラのaigoを流用したり、共有(common)のガード記述などを使用すれば、コピペしなくてもすむため、やらせたい部分だけ書けばよい<br />
・試合展開に応じて.aigoを切り替えられる処理があるのでより個性を強調できる<br />
・学習データを外部出力できるので自分でAIを育成して公開できる<br />
現状、思いつく機能を実装し終わった段階でこれから大量のデバッグ作業があるので<br />
公開までまだ時間がかかりますが、いずれ公開すると思います。<br />
一番の問題はコーティングAIの制限にすぐ達する作業量の多さですね。<br />
たいへんだなとおもいました<br />
おわり
<div style="clear: both;"></div>]]></content:encoded>
    <dc:subject>雑記</dc:subject>
    <dc:date>2026-05-19T19:02:04+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
  <item rdf:about="https://zakki.game-waza.net/aigo/-%E9%96%8B%E7%99%BA%E4%B8%AD-aigo%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC">
    <link>https://zakki.game-waza.net/aigo/-%E9%96%8B%E7%99%BA%E4%B8%AD-aigo%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC</link>
    <title>(開発中)AIGOトリガー</title>
    <description>AIGO トリガーリスト 解説付き
更新日: 2026-05-19
========================================================================

この文書は、2026-05-19 時点で .aigo から使用できる主要トリガーを整...</description>
    <content:encoded><![CDATA[AIGO トリガーリスト 解説付き<br />
更新日: 2026-05-19<br />
========================================================================<br />
<br />
この文書は、2026-05-19 時点で .aigo から使用できる主要トリガーを整理したもの。<br />
2026-05-18 版に、性格・感情トリガーと試合中 AI 切替関連を追加した。<br />
<br />
1. 基本状態<br />
========================================================================<br />
<br />
&nbsp; alive<br />
&nbsp; &nbsp; 生存中なら true。<br />
<br />
&nbsp; ctrl<br />
&nbsp; &nbsp; 操作可能状態なら true。<br />
<br />
&nbsp; stateno / sno<br />
&nbsp; &nbsp; 現在ステート番号。<br />
<br />
&nbsp; prevstateno / psn<br />
&nbsp; &nbsp; 直前ステート番号。<br />
<br />
&nbsp; statetype / sty<br />
&nbsp; &nbsp; S / C / A / L などの状態タイプ。<br />
<br />
&nbsp; movetype / mty<br />
&nbsp; &nbsp; I / A / H などの行動タイプ。<br />
<br />
&nbsp; time / tim<br />
&nbsp; &nbsp; 現ステート経過時間。<br />
<br />
&nbsp; roundstate / rst<br />
&nbsp; &nbsp; ラウンド状態。<br />
<br />
&nbsp; matchover / mto<br />
&nbsp; &nbsp; 決着済み判定。<br />
<br />
2. 相手参照<br />
========================================================================<br />
<br />
&nbsp; enemy,alive<br />
&nbsp; enemy,ctrl<br />
&nbsp; enemy,stateno<br />
&nbsp; enemy,statetype<br />
&nbsp; enemy,movetype<br />
<br />
相手側の値を見る。<br />
例:<br />
<br />
&nbsp; all = enemy,movetype = A<br />
&nbsp; all = enemy,statetype != L<br />
<br />
3. 距離・位置<br />
========================================================================<br />
<br />
&nbsp; p2bodydist x / p2bx<br />
&nbsp; &nbsp; 相手との body 距離 X。<br />
<br />
&nbsp; p2bodydist y / p2by<br />
&nbsp; &nbsp; 相手との body 距離 Y。<br />
<br />
&nbsp; p2dist x / p2dx<br />
&nbsp; p2dist y / p2dy<br />
<br />
&nbsp; backedgedist / bed<br />
&nbsp; frontedgedist / fed<br />
&nbsp; backedgebodydist / bebd<br />
&nbsp; frontedgebodydist / febd<br />
<br />
&nbsp; centerdist / cd<br />
&nbsp; &nbsp; 画面中央からの距離。<br />
<br />
&nbsp; cornered / crn<br />
&nbsp; &nbsp; 自分が端を背負っている。<br />
<br />
&nbsp; enemycornered / ecrn<br />
&nbsp; &nbsp; 相手が端を背負っている。<br />
<br />
4. コマンド・パターン管理<br />
========================================================================<br />
<br />
&nbsp; command / cmd<br />
&nbsp; &nbsp; .cmd 側の Command 成立を見る。<br />
<br />
&nbsp; activepattern / currentpattern / executingpattern<br />
&nbsp; &nbsp; 現在実行中の AIGO パターン名。<br />
<br />
&nbsp; activecommand / currentcommand<br />
&nbsp; &nbsp; 現在有効な AIGO 入力または .cmd 側 Command 名。<br />
<br />
例:<br />
<br />
&nbsp; all = activecommand != "F"<br />
&nbsp; all = activepattern = "下段ガード開始"<br />
&nbsp; all = activecommand = "QCF_x"<br />
<br />
5. ガード・防御<br />
========================================================================<br />
<br />
&nbsp; inguarddist / igd<br />
&nbsp; &nbsp; 相手の攻撃がガード距離内。<br />
<br />
&nbsp; guarding / isguarding / grd / isg<br />
&nbsp; &nbsp; 自分がガード中。<br />
<br />
&nbsp; enemyguarding / egs<br />
&nbsp; &nbsp; 相手がガード中。<br />
<br />
&nbsp; guardstart / gst<br />
&nbsp; &nbsp; ガード開始検知。<br />
<br />
&nbsp; guardmissrisk / gmr<br />
&nbsp; &nbsp; ガードミス履歴から見た危険度。<br />
<br />
&nbsp; guardmissraw / gmrr<br />
&nbsp; &nbsp; ガードミス生カウント。<br />
<br />
&nbsp; inguardstun<br />
&nbsp; &nbsp; ガード硬直中。<br />
<br />
6. 攻撃検知・属性<br />
========================================================================<br />
<br />
&nbsp; enemynearestattack<br />
&nbsp; &nbsp; 最も近い敵が攻撃中。<br />
<br />
&nbsp; enemynearestactivehitbox<br />
&nbsp; &nbsp; 近い敵の攻撃判定がアクティブ。<br />
<br />
&nbsp; enemynearestattackcount<br />
&nbsp; &nbsp; 攻撃中の敵人数。<br />
<br />
&nbsp; enemynearestattackdistx<br />
&nbsp; enemynearestattackdisty<br />
&nbsp; enemynearestattackfrontdist<br />
<br />
&nbsp; enemynearestlowattack<br />
&nbsp; &nbsp; 下段攻撃検知。<br />
<br />
&nbsp; enemynearestmidattack / enemynearestoverhead<br />
&nbsp; &nbsp; 中段・崩し系攻撃検知。<br />
<br />
&nbsp; enemynearestthrowattack<br />
&nbsp; &nbsp; 投げ判定検知。<br />
<br />
&nbsp; enemynearestunblockableattack<br />
&nbsp; &nbsp; ガード不能攻撃検知。<br />
<br />
&nbsp; enemynearestattackstartup<br />
&nbsp; &nbsp; 攻撃発生前・発生直前の検知。<br />
<br />
&nbsp; enemyrecovery / enemyattackrecovery<br />
&nbsp; &nbsp; 相手の攻撃硬直・差し返し候補。<br />
<br />
7. 飛び道具<br />
========================================================================<br />
<br />
&nbsp; enemyprojectile<br />
&nbsp; &nbsp; 相手飛び道具あり。<br />
<br />
&nbsp; enemyprojectiledistx<br />
&nbsp; enemyprojectiledisty<br />
&nbsp; enemyprojectilefrontdist<br />
<br />
&nbsp; enemyprojectilelowattack<br />
&nbsp; enemyprojectilemidattack<br />
&nbsp; enemyprojectilethrowattack<br />
&nbsp; enemyprojectileunblockable<br />
<br />
8. ヘルパー攻撃<br />
========================================================================<br />
<br />
&nbsp; enemyhelperattack<br />
&nbsp; enemyhelperattackdistx<br />
&nbsp; enemyhelperattackdisty<br />
&nbsp; enemyhelperattackfrontdist<br />
&nbsp; enemyhelperlowattack<br />
&nbsp; enemyhelpermidattack<br />
&nbsp; enemyhelperthrowattack<br />
&nbsp; enemyhelperunblockable<br />
<br />
9. 無敵<br />
========================================================================<br />
<br />
&nbsp; invulnerable<br />
&nbsp; invultime<br />
&nbsp; enemyinvulnerable<br />
&nbsp; enemyinvultime<br />
<br />
属性別無敵も対応済み範囲がある。<br />
詳細は現行実装と Phase B/C 仕様を参照。<br />
<br />
10. hitbox / hurtbox / bbox<br />
========================================================================<br />
<br />
&nbsp; bbox 系<br />
&nbsp; hitbox 系<br />
&nbsp; hurtbox 系<br />
&nbsp; enemybbox 系<br />
&nbsp; enemyhitbox 系<br />
&nbsp; enemyhurtbox 系<br />
<br />
距離、前後位置、判定有無などを見る。<br />
<br />
11. 学習・AI レベル<br />
========================================================================<br />
<br />
&nbsp; ailevel<br />
&nbsp; &nbsp; 現在の AI レベル。<br />
<br />
&nbsp; ailevelratio<br />
&nbsp; &nbsp; AI レベルを 0.0〜1.0 にした値。<br />
<br />
&nbsp; reactiontime / reactiondelay<br />
&nbsp; &nbsp; AI レベルと性格・感情を反映した反応遅延。<br />
<br />
&nbsp; aichance / ailevelchance<br />
&nbsp; &nbsp; AI レベルが高いほど true になりやすい確率トリガー。<br />
<br />
&nbsp; learningdirty<br />
&nbsp; &nbsp; 学習データに未保存変更がある。<br />
<br />
&nbsp; contextfailrate<br />
&nbsp; &nbsp; 状況別失敗率。<br />
<br />
&nbsp; firstteammember<br />
&nbsp; lastteammember<br />
&nbsp; memberno<br />
&nbsp; teammemberno<br />
&nbsp; teamleaderno<br />
<br />
12. 性格・感情<br />
========================================================================<br />
<br />
固定性格:<br />
<br />
&nbsp; personality.cautious / cautious / cau<br />
&nbsp; &nbsp; 慎重。<br />
<br />
&nbsp; personality.aggressive / aggressive / agg<br />
&nbsp; &nbsp; 攻撃的。<br />
<br />
&nbsp; personality.relaxed / relaxed / rel<br />
&nbsp; &nbsp; 余裕。<br />
<br />
&nbsp; personality.desperate / desperate / des<br />
&nbsp; &nbsp; 必死。<br />
<br />
&nbsp; personality.arrogant / arrogant / arg<br />
&nbsp; &nbsp; 慢心。<br />
<br />
&nbsp; personality.cold / cold / cld<br />
&nbsp; &nbsp; 冷徹。<br />
<br />
変動感情:<br />
<br />
&nbsp; emotion.anger / anger / ang<br />
&nbsp; &nbsp; 怒り。<br />
<br />
&nbsp; emotion.panic / panic / pan<br />
&nbsp; &nbsp; 焦り。<br />
<br />
&nbsp; emotion.fatigue / fatigue / fat<br />
&nbsp; &nbsp; 疲労。<br />
<br />
&nbsp; emotion.danger / danger / dng<br />
&nbsp; &nbsp; 危機感。<br />
<br />
使用例:<br />
<br />
&nbsp; all = anger &gt;= 60<br />
&nbsp; all = danger &gt;= 45<br />
&nbsp; all = fatigue &lt; 50<br />
&nbsp; all = cold &gt;= 70 &amp;&amp; enemyrecovery<br />
<br />
13. 試合中 AI 切替<br />
========================================================================<br />
<br />
aigoswitch はトリガーではなく、パターン成立時に実行されるメタキー。<br />
<br />
例:<br />
<br />
&nbsp; [AIGO_Switch_Aggressive]<br />
&nbsp; priority = 100<br />
&nbsp; all = alive<br />
&nbsp; all = anger &gt;= 65 || panic &gt;= 70<br />
&nbsp; aigoswitch = AI2<br />
&nbsp; ct = 600<br />
&nbsp; prob = 100<br />
<br />
同義キー:<br />
<br />
&nbsp; - aigoswitch<br />
&nbsp; - switchaigo<br />
&nbsp; - aigofile<br />
&nbsp; - ai_file<br />
&nbsp; - aigo_file<br />
<br />
注意:<br />
<br />
&nbsp; - 高 priority で使う。<br />
&nbsp; - ct は長めにする。<br />
&nbsp; - 切替時に実行中入力はクリアされる。<br />
&nbsp; - emotion 現在値は保持される。<br />
<br />
14. よく使う組み合わせ<br />
========================================================================<br />
<br />
差し返し:<br />
<br />
&nbsp; all = ctrl<br />
&nbsp; all = enemyrecovery<br />
&nbsp; all = p2bodydist x &lt;= 90<br />
<br />
投げ対策:<br />
<br />
&nbsp; all = enemynearestthrowattack<br />
&nbsp; c = !B,B,B<br />
<br />
危険時ガード:<br />
<br />
&nbsp; all = danger &gt;= 60<br />
&nbsp; all = inguarddist<br />
&nbsp; c = /DB<br />
<br />
怒り時攻撃型へ切替:<br />
<br />
&nbsp; all = anger &gt;= 65<br />
&nbsp; aigoswitch = AI2<br />
<br />
<br />
]]></content:encoded>
    <dc:subject>AIGO</dc:subject>
    <dc:date>2026-05-19T18:29:45+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
  <item rdf:about="https://zakki.game-waza.net/aigo/20260519">
    <link>https://zakki.game-waza.net/aigo/20260519</link>
    <title>(開発中)AIGOの説明</title>
    <description>現在開発中のため仕様が変更されます
AIが書いた説明文です

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

1. AIGOとは
======...</description>
    <content:encoded><![CDATA[現在開発中のため仕様が変更されます<br />
AIが書いた説明文です<br />
<br />
AIGO はじめての説明<br />
更新日: 2026-05-19<br />
========================================================================<br />
<br />
1. AIGOとは<br />
========================================================================<br />
<br />
AIGO は、格闘ゲームエンジン IKEMEN GO 用の AI 制御システムです。<br />
<br />
ふつうのキャラクター AI は、キャラクター本体の中に書かれている処理で動きます。<br />
AIGO はそれとは別に、外部の `.aigo` ファイルを読み込んで、キャラクターの行動を決めます。<br />
<br />
簡単に言うと、<br />
<br />
&nbsp; 「この状況なら、この行動をする」<br />
<br />
というルールをたくさん書いて、キャラクターを動かす仕組みです。<br />
<br />
例:<br />
<br />
&nbsp; - 相手が近いなら、しゃがみ小技を出す。<br />
&nbsp; - 相手が飛んだら、対空技を出す。<br />
&nbsp; - 相手が攻撃してきたら、ガードする。<br />
&nbsp; - 自分が怒っている時は、攻撃を増やす。<br />
&nbsp; - 危ない時は、防御を増やす。<br />
<br />
========================================================================<br />
2. 何ができるのか<br />
========================================================================<br />
<br />
AIGO では、キャラクターに以下のような行動をさせられます。<br />
<br />
&nbsp; - 前に歩く<br />
&nbsp; - 後ろに下がる<br />
&nbsp; - ダッシュする<br />
&nbsp; - ガードする<br />
&nbsp; - 小技を出す<br />
&nbsp; - 必殺技を出す<br />
&nbsp; - コンボをする<br />
&nbsp; - 相手のジャンプを対空する<br />
&nbsp; - 相手の攻撃の空振りに反撃する<br />
&nbsp; - 投げを避ける<br />
&nbsp; - 飛び道具に対応する<br />
&nbsp; - 試合中に AI レベルを変える<br />
&nbsp; - 試合中の展開に応じて性格を変える<br />
&nbsp; - 過去の結果を学習して行動を調整する<br />
<br />
つまり、ただランダムに技を出す AI ではなく、<br />
試合の状況を見て行動を選ぶ AI を作ることができます。<br />
<br />
========================================================================<br />
3. .aigoファイルとは<br />
========================================================================<br />
<br />
`.aigo` ファイルは、AIGO 用の行動ルールを書いたテキストファイルです。<br />
<br />
中身はこのような形です。<br />
<br />
&nbsp; [近距離_しゃがみ小技]<br />
&nbsp; priority = 70<br />
&nbsp; all = alive<br />
&nbsp; all = ctrl<br />
&nbsp; all = p2bodydist x &lt;= 50<br />
&nbsp; c = !F,1/D,a<br />
&nbsp; st = 1<br />
&nbsp; ct = 10<br />
&nbsp; prob = 80<br />
<br />
これは、だいたい次の意味です。<br />
<br />
&nbsp; [近距離_しゃがみ小技]<br />
&nbsp; &nbsp; この行動ルールの名前です。<br />
<br />
&nbsp; priority = 70<br />
&nbsp; &nbsp; 優先度です。<br />
&nbsp; &nbsp; 高いほど先に選ばれやすくなります。<br />
<br />
&nbsp; all = alive<br />
&nbsp; &nbsp; 自分が生きている時だけ使います。<br />
<br />
&nbsp; all = ctrl<br />
&nbsp; &nbsp; 自分が操作可能な時だけ使います。<br />
<br />
&nbsp; all = p2bodydist x &lt;= 50<br />
&nbsp; &nbsp; 相手との距離が近い時だけ使います。<br />
<br />
&nbsp; c = !F,1/D,a<br />
&nbsp; &nbsp; 実際に入力するコマンドです。<br />
&nbsp; &nbsp; この例では、前入力を消してから、しゃがみ小技を出します。<br />
<br />
&nbsp; st = 1<br />
&nbsp; &nbsp; 何フレーム後に入力を始めるかです。<br />
<br />
&nbsp; ct = 10<br />
&nbsp; &nbsp; 次に同じ行動をしにくくする時間、または入力を保持する時間です。<br />
<br />
&nbsp; prob = 80<br />
&nbsp; &nbsp; この行動を選ぶ確率です。<br />
<br />
========================================================================<br />
4. AIGOの考え方<br />
========================================================================<br />
<br />
AIGO は、毎フレーム以下のように考えます。<br />
<br />
&nbsp; 1. 今の試合状況を見る。<br />
&nbsp; 2. 使える行動ルールを探す。<br />
&nbsp; 3. 優先度や確率を見て、どの行動をするか決める。<br />
&nbsp; 4. 決まったコマンドを入力する。<br />
<br />
たとえば、相手が近くで攻撃してきた時は、<br />
<br />
&nbsp; - ガードするルール<br />
&nbsp; - 無敵技で割り込むルール<br />
&nbsp; - バックステップするルール<br />
<br />
などが候補になります。<br />
<br />
その中で、優先度、確率、AIレベル、性格、学習結果などを見て、実際の行動が選ばれます。<br />
<br />
========================================================================<br />
5. トリガーとは<br />
========================================================================<br />
<br />
トリガーとは、行動を出すための条件です。<br />
<br />
例:<br />
<br />
&nbsp; all = p2bodydist x &lt;= 50<br />
<br />
これは、<br />
<br />
&nbsp; 「相手との距離が50以下なら」<br />
<br />
という意味です。<br />
<br />
よく使うトリガー:<br />
<br />
&nbsp; alive<br />
&nbsp; &nbsp; 自分が生きている。<br />
<br />
&nbsp; ctrl<br />
&nbsp; &nbsp; 自分が動ける。<br />
<br />
&nbsp; p2bodydist x<br />
&nbsp; &nbsp; 相手との横距離。<br />
<br />
&nbsp; enemy,statetype = A<br />
&nbsp; &nbsp; 相手が空中にいる。<br />
<br />
&nbsp; enemy,movetype = A<br />
&nbsp; &nbsp; 相手が攻撃中。<br />
<br />
&nbsp; inguarddist<br />
&nbsp; &nbsp; 相手の攻撃がガードできる距離にある。<br />
<br />
&nbsp; enemynearestthrowattack<br />
&nbsp; &nbsp; 近くの相手が投げ判定を出している。<br />
<br />
&nbsp; anger<br />
&nbsp; &nbsp; 自分の怒りの値。<br />
<br />
&nbsp; danger<br />
&nbsp; &nbsp; 自分の危機感の値。<br />
<br />
========================================================================<br />
6. コマンドとは<br />
========================================================================<br />
<br />
コマンドは、AIGO がキャラクターに入力する操作です。<br />
<br />
例:<br />
<br />
&nbsp; c = /F<br />
&nbsp; &nbsp; 前を押しっぱなしにします。<br />
<br />
&nbsp; c = F,F<br />
&nbsp; &nbsp; 前ダッシュをします。<br />
<br />
&nbsp; c = x<br />
&nbsp; &nbsp; x ボタンを押します。<br />
<br />
&nbsp; c = D,DF,F,x<br />
&nbsp; &nbsp; 波動拳のような 236 + x コマンドを入力します。<br />
<br />
&nbsp; c = !F,x<br />
&nbsp; &nbsp; 前入力を消してから x を押します。<br />
<br />
&nbsp; c = 1/D,a<br />
&nbsp; &nbsp; 1フレームしゃがんでから a を押します。<br />
<br />
方向はキャラクターの向きを基準にします。<br />
<br />
&nbsp; F = 前<br />
&nbsp; B = 後ろ<br />
&nbsp; U = 上<br />
&nbsp; D = 下<br />
<br />
右向きでも左向きでも、F は常に「前」です。<br />
<br />
========================================================================<br />
7. 優先度と確率<br />
========================================================================<br />
<br />
AIGO の行動は、優先度と確率で選ばれます。<br />
<br />
優先度:<br />
<br />
&nbsp; - 高い行動ほど先に選ばれやすい。<br />
&nbsp; - ガードや対空など、反応が必要な行動は高めにする。<br />
&nbsp; - 前歩きや様子見などは低めにする。<br />
<br />
確率:<br />
<br />
&nbsp; - 条件を満たした時に、どのくらい選ばれるか。<br />
&nbsp; - 100 ならほぼ必ず選ばれる。<br />
&nbsp; - 低いほどたまにしか出ない。<br />
<br />
例:<br />
<br />
&nbsp; ガード:<br />
&nbsp; &nbsp; priority = 90<br />
&nbsp; &nbsp; prob = 100<br />
<br />
&nbsp; 主力の小技:<br />
&nbsp; &nbsp; priority = 70<br />
&nbsp; &nbsp; prob = 80<br />
<br />
&nbsp; たまに出す奇襲:<br />
&nbsp; &nbsp; priority = 50<br />
&nbsp; &nbsp; prob = 20<br />
<br />
========================================================================<br />
8. 性格と感情<br />
========================================================================<br />
<br />
AIGO には、AI の性格や感情を持たせることができます。<br />
<br />
固定の性格:<br />
<br />
&nbsp; - cautious<br />
&nbsp; &nbsp; 慎重。<br />
<br />
&nbsp; - aggressive<br />
&nbsp; &nbsp; 攻撃的。<br />
<br />
&nbsp; - relaxed<br />
&nbsp; &nbsp; 余裕がある。<br />
<br />
&nbsp; - desperate<br />
&nbsp; &nbsp; 必死。<br />
<br />
&nbsp; - arrogant<br />
&nbsp; &nbsp; 慢心。<br />
<br />
&nbsp; - cold<br />
&nbsp; &nbsp; 冷静、冷徹。<br />
<br />
試合中に変わる感情:<br />
<br />
&nbsp; - anger<br />
&nbsp; &nbsp; 怒り。<br />
<br />
&nbsp; - panic<br />
&nbsp; &nbsp; 焦り。<br />
<br />
&nbsp; - fatigue<br />
&nbsp; &nbsp; 疲労。<br />
<br />
&nbsp; - danger<br />
&nbsp; &nbsp; 危機感。<br />
<br />
たとえば、何度も攻撃を食らうと anger や danger が上がります。<br />
すると、攻撃的になったり、防御を増やしたりします。<br />
<br />
例:<br />
<br />
&nbsp; personality.aggressive = 80<br />
&nbsp; emotion.anger.base = 10<br />
<br />
これは、最初から少し怒りやすく、攻撃的な AI という意味です。<br />
<br />
========================================================================<br />
9. 試合中にAIを切り替える<br />
========================================================================<br />
<br />
AIGO は、試合中に読み込む AI ファイルを切り替えることもできます。<br />
<br />
例:<br />
<br />
&nbsp; [怒ったら攻撃型へ]<br />
&nbsp; priority = 100<br />
&nbsp; all = alive<br />
&nbsp; all = anger &gt;= 65<br />
&nbsp; aigoswitch = AI2<br />
&nbsp; ct = 600<br />
&nbsp; prob = 100<br />
<br />
これは、<br />
<br />
&nbsp; 「怒りが65以上になったら、AI2に切り替える」<br />
<br />
という意味です。<br />
<br />
AI2 には、攻撃型の性格を設定したファイルを読み込ませることができます。<br />
<br />
たとえば KFM では、<br />
<br />
&nbsp; - AI1: 通常型<br />
&nbsp; - AI2: 攻撃型<br />
&nbsp; - AI3: 慎重型<br />
&nbsp; - AI4: 冷徹型<br />
&nbsp; - AI5: 必死型<br />
&nbsp; - AI6: 余裕型<br />
<br />
のように分けています。<br />
<br />
========================================================================<br />
10. 学習とは<br />
========================================================================<br />
<br />
AIGO は、行動の結果を記録できます。<br />
<br />
たとえば、<br />
<br />
&nbsp; - この距離でこの技を出したら当たった。<br />
&nbsp; - この状況でこの行動をしたら反撃された。<br />
&nbsp; - この相手にはこのガードが失敗しやすい。<br />
<br />
といった情報を保存します。<br />
<br />
学習データは `.aigo` ファイルと同じ場所の `aigo_learning` フォルダに保存されます。<br />
<br />
例:<br />
<br />
&nbsp; chars/kfm/aigo/aigo_learning/kung_fu_man.json<br />
<br />
これにより、AI は少しずつ行動の選び方を調整できます。<br />
<br />
========================================================================<br />
11. どんな順番で作ればいいか<br />
========================================================================<br />
<br />
はじめて AIGO を作る時は、次の順番がおすすめです。<br />
<br />
1. まずガードを書く。<br />
<br />
&nbsp; 攻撃より先に、防御を書きます。<br />
&nbsp; ガードできない AI はすぐ負けます。<br />
<br />
2. 次に移動を書く。<br />
<br />
&nbsp; 前歩き、後退、ダッシュなどを書きます。<br />
<br />
3. 距離ごとの基本技を書く。<br />
<br />
&nbsp; 近距離なら小技。<br />
&nbsp; 中距離なら牽制。<br />
&nbsp; 遠距離なら接近や飛び道具。<br />
<br />
4. 対空を書く。<br />
<br />
&nbsp; 相手が飛んだら落とせるようにします。<br />
<br />
5. 差し返しを書く。<br />
<br />
&nbsp; 相手の攻撃の空振りや硬直に反撃します。<br />
<br />
6. コンボを書く。<br />
<br />
&nbsp; ヒットした時だけつながる行動を作ります。<br />
<br />
7. 性格や学習を足す。<br />
<br />
&nbsp; 最後に、AI の個性や成長要素を足します。<br />
<br />
========================================================================<br />
12. よくある失敗<br />
========================================================================<br />
<br />
1. 技が出ない<br />
<br />
原因:<br />
<br />
&nbsp; - コマンドが速すぎる。<br />
&nbsp; - コマンドが遅すぎる。<br />
&nbsp; - 最後のボタンだけが入力されている。<br />
<br />
対策:<br />
<br />
&nbsp; - 入力フレームを少し伸ばす。<br />
&nbsp; - `!F` で前入力を消す。<br />
&nbsp; - `.cmd` 側のコマンドと合っているか確認する。<br />
<br />
2. ガードばかりする<br />
<br />
原因:<br />
<br />
&nbsp; - ガードの priority が高すぎる。<br />
&nbsp; - ガード条件が広すぎる。<br />
<br />
対策:<br />
<br />
&nbsp; - 投げや対空の時はガードしない条件を入れる。<br />
&nbsp; - 攻撃できる距離では攻撃パターンの priority を上げる。<br />
<br />
3. 前歩き中に変な技が出る<br />
<br />
原因:<br />
<br />
&nbsp; - 前入力と攻撃ボタンが重なっている。<br />
<br />
対策:<br />
<br />
&nbsp; - 攻撃前に `!F` を入れる。<br />
<br />
4. コンボがつながらない<br />
<br />
原因:<br />
<br />
&nbsp; - ヒットしてからコマンドを入力していて遅い。<br />
<br />
対策:<br />
<br />
&nbsp; - 方向だけ先に入力する。<br />
&nbsp; - `?hit` を使って、最後のボタンだけヒット確認で押す。<br />
<br />
========================================================================<br />
13. AIGOの強み<br />
========================================================================<br />
<br />
AIGO の強みは、AI の行動を外部ファイルで細かく調整できることです。<br />
<br />
キャラクター本体を大きく書き換えなくても、<br />
<br />
&nbsp; - 行動パターン<br />
&nbsp; - ガード条件<br />
&nbsp; - コンボ<br />
&nbsp; - 性格<br />
&nbsp; - AIレベル<br />
&nbsp; - 学習<br />
<br />
を調整できます。<br />
<br />
また、ログを見ながら、<br />
<br />
&nbsp; 「この行動が出すぎている」<br />
&nbsp; 「この技が出ていない」<br />
&nbsp; 「この距離で負けている」<br />
<br />
といった問題を探して直すことができます。<br />
<br />
========================================================================<br />
14. まとめ<br />
========================================================================<br />
<br />
AIGO は、格闘ゲームのキャラクターに外部ファイルで AI を与える仕組みです。<br />
<br />
基本はとてもシンプルです。<br />
<br />
&nbsp; 条件を書く。<br />
&nbsp; 行動を書く。<br />
&nbsp; 優先度と確率を決める。<br />
&nbsp; ログを見て調整する。<br />
<br />
最初は難しく見えますが、<br />
<br />
&nbsp; - ガード<br />
&nbsp; - 移動<br />
&nbsp; - 小技<br />
&nbsp; - 対空<br />
&nbsp; - 差し返し<br />
&nbsp; - コンボ<br />
<br />
の順番で少しずつ作れば、実戦的な AI に育てられます。<br />
<br />
]]></content:encoded>
    <dc:subject>AIGO</dc:subject>
    <dc:date>2026-05-19T18:27:06+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
  <item rdf:about="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E8%BF%91%E6%B3%81%E3%81%A8%E5%AE%A3%E4%BC%9D">
    <link>https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E8%BF%91%E6%B3%81%E3%81%A8%E5%AE%A3%E4%BC%9D</link>
    <title>近況と宣伝</title>
    <description>https://descolor.yokochou.com/
風邪で熱が37.4℃ある中気晴らしに作ったテコンドーの達人ハンを公開しました。
8時間で完成しました。
ファイトフィーバーは素材は全キャラ分あるので気が向いたら他のキャラもGoです。
ここから今後の話です。
率直に言うと困窮してます。
も...</description>
    <content:encoded><![CDATA[https://descolor.yokochou.com/<br />
風邪で熱が37.4℃ある中気晴らしに作ったテコンドーの達人ハンを公開しました。<br />
8時間で完成しました。<br />
ファイトフィーバーは素材は全キャラ分あるので気が向いたら他のキャラもGoです。<br />
ここから今後の話です。<br />
率直に言うと困窮してます。<br />
もともと精神障害3級になって2年前からA型事業所で最低賃金でお世話になってたんですが、<br />
2024年6月から近辺のA型事業所が突然の法改正で軒並み廃業しまして、知らぬうちに失業してB型事業所にスライドしてました。<br />
A型は雇用契約で最低賃金で時給900円台でしたが、B型は工賃として相場時給200円くらいです。<br />
事業所はA型からB型に移行したのでお情けで時給500円なので相場の２倍ですが、3.5時間以上は体が持たず、最近は腰痛が悪化して通えるのも怪しくなってきました。<br />
事業所の利用者もよそへ行って人手が足りなくなり、作業量が増え時給が減り体調が悪化する考えなくてもやばい状況にあります。<br />
そもそもなんでA型が大量廃業して利用者が9000人以上失業してるか説明すると、<br />
厚労省がA型事業所の助成金を不正に取得したり、利用者を搾取してる事業者を潰そうとして利用者の報酬を増やそうを法を改正したら関係ないA型事業所の大半がやっていけないので大半が廃業を選んだんですね。そしてなんにも関係ない利用者が全員失業して大半が再就職できないのが現状です。<br />
詳しくは&darr;で読んでね<br />
https://hicbc.com/magazine/article/?id=radichubu-59731<br />
自分の時もまともに就職できないからA型利用してたのに突然ハローワークで就職を進められて書類審査で落ち面接で落ちでB型と障害年金でかろうじてやってます。精神障害はよくわからないから書類の時点で落とされますよ。<br />
しかし騙し騙しやってきましたがもう収支がマイナスでキャラ作ってる場合じゃない状況になってきました。<br />
犬と猫を最優先で守らなければならないので最悪パソコンを売却してキャラ制作廃業するしかないかもしれません。<br />
売れるものはもう全部売ってきたので後はライフラインを切り売りするしかないですね。<br />
一応対策として体壊す前からの趣味の3Dプリンターで設計、プリントしたのを販売してるんですが<br />
売れてない、というかそもそも存在に気付かれてないので、お願いしたいんですが販売ページを見るだけ見ていいねを押してあわよくば買ってほしいです。いいねが付けば気づかれる可能性があるし、需要はある商品だと思います。<br />
https://dododotdes.booth.pm/items/7605835<br />
こっちは無料のstlデータ<br />
https://www.printables.com/model/1466222-switch-switch-2-joy-con-grip-stand-free-version<br />
解説するとジョイコンの後付けグリップ製品にずっと不満があったのでこうすればいいのにと<br />
開発し続けました。<br />
不満点<br />
・つけたままドッグや分離モードやマウスモードに移行できない<br />
・外すのが面倒<br />
・テーブルモードだと下のusbポートが塞がる<br />
これらを重点的に改良して<br />
・挟み込み式なので取り外しがしやすい<br />
・分解できるので持ち運びがしやすく破損パーツの交換もできる(パーツ単品販売はまず売れてから)<br />
・スタンドなので自立できて角度がついているので机に置いて手の負担を軽減できる<br />
・高さが確保できるので下のusbポートが使用できる<br />
・そのまま横倒しでマウスモードに対応<br />
分解は送料と発送の手間を無くすために設計し、switch2が発表される前から作ってたのでマウスモードはたまたまちょうどいい感じはまりました。<br />
とにかく多数に見られないと何も起きないのでなんかこうお願いします。<br />
今の自分はmugenで3Dモデリングと効果音作成とプログラムは覚えたけど面接で公言できるわけないのでなにも実績が無い人なのでしばらく音沙汰がなかったら就職できず死んでると思ってください。]]></content:encoded>
    <dc:subject>雑記</dc:subject>
    <dc:date>2025-11-05T08:49:18+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
  <item rdf:about="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E9%9B%91%E3%83%BB%E8%A8%98%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%82%BF%E3%83%BC%E3%82%BA%E3%81%AE%E5%85%AB%E6%9C%8819%E6%97%A5%E5%8F%B7">
    <link>https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E9%9B%91%E3%83%BB%E8%A8%98%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%82%BF%E3%83%BC%E3%82%BA%E3%81%AE%E5%85%AB%E6%9C%8819%E6%97%A5%E5%8F%B7</link>
    <title>雑・記ング・オブ・ファイターズの八月19日号</title>
    <description>気が付いたら1年たってました

１年何をしてるのかというと制作ツールをAIに作らせてました。今も作らせてます。

現在の界隈の絶滅寸前の状況をみるに必要なのは制作環境を整える事だと思ってます。

自分がMUGENに首を突っ込んでから20年は経ちますが制作環境が

大して変わってないのは深刻な問題だと...</description>
    <content:encoded><![CDATA[気が付いたら1年たってました<br />
<br />
１年何をしてるのかというと制作ツールをAIに作らせてました。今も作らせてます。<br />
<br />
現在の界隈の絶滅寸前の状況をみるに必要なのは制作環境を整える事だと思ってます。<br />
<br />
自分がMUGENに首を突っ込んでから20年は経ちますが制作環境が<br />
<br />
大して変わってないのは深刻な問題だと思っており、<br />
<br />
もっと気楽で簡単にキャラを作れるようになれば制作志望者が多少は増えるのではないかと思っています。<br />
<br />
まず製作者が増えなければ遊ぶ人も増えませんから。<br />
<br />
そう考えると次に浮かんでくる問題は著作権問題と画像の問題です。<br />
<br />
ゲームから直接リソースを持ってきて遊んでるのは平成までの人間には平気でしょうが<br />
<br />
現代人から見るとかなりリスキーな行為です。<br />
<br />
率直に言って金銭のやりとりが無いから見逃されてるだけで<br />
<br />
だれか一人でも一線を超えた瞬間いつでも虐殺されて滅びると思いながらキャラ作ってます。<br />
<br />
そして制作難易度を下げた環境で著作権をクリアする条件となると<br />
<br />
必然的にオリジナルでキャラを作る事になりますが<br />
<br />
一から自分で画像を用意するというかなり高いハードルを越えなければなりません。<br />
<br />
これらを制作初心者にやれというのは酷だと思うので、<br />
<br />
自分が各種ツールを開発してハードルを全て破壊する必要があると思いました。　おわり<br />
<br />
画像ツールに関しては2Dと3Dのノウハウを得たので<br />
<br />
2Dの形式で3Dオブジェクトを扱える2.5Dのボーンアニメ画像作成ツールを<br />
<br />
AIに開発させてます。いつできるかはAIしか知りません。<br />
<br />
首を長くしろ。キリンのように<br />
<br />
モーションを目コピして作った場合は著作権どうなるんでしょうね<br />
<br />
PythonでSFFの画像とアニメを表示させるのに成功したので<br />
<br />
簡単AI作成ツールとかCNSジェネレータ―とかSFF自動作成ツールとか<br />
<br />
これからいろいろ作ります。GitHubで公開しますがGitHubの使い方が要領を得ないですね。<br />
<br />
キャラに関しては一通り開発ツールができたらデバッグも兼ねて<br />
<br />
制作します。とういうか公開しているキャラは全部作りなおしたい気持ちでいっぱいおっぱい僕元気<br />
<br />
あと公開ファイルの置き場をMediaFireに変えました。onedriveもdropboxも急に仕様変えるので<br />
<br />
直リンク形式でやれるなら、もう金払って公開した方が早いと思ったので引越ししました。年一万円です。<br />
<br />
リンクも貼りなおしましたがファイルが間違ってたらなにかで連絡してください。<br />
<br />
更新終了したキャラも復活させてますが、更新終了キャラを載せてなかった理由は、<br />
<br />
昔すぎて人前に晒したくなかったのと作り直したい気持ちがあったからです。<br />
<br />
今の状況だと作り直すのは当分先なのでまあ置いといてもいいだろうと思い<br />
<br />
復活させました。更新終了キャラは深刻なバグが無い限り更新はないです。<br />
<br />
むしろ全部作り直す気なので完全に別キャラになります。<br />
<br />
公開してないバトルクロードキャラはLG仕様で作るのでしばらく復活しません。<br />
<br />
まあすぐ作れるので息抜きしたときに公開します。<br />
<br />
あと収入目当ての広告も貼ってます。<br />
<br />
MUGENでの直接的な金銭のやりとりにはなってないのでお許しください<br />
<br />
うつ病発症してからまともに働けないので生活費が障害年金とB型作業所の合計月8万で現在赤字です。<br />
<br />
更新履歴でなんか間が開いてる時期は仕事で適応障害になってうつ病を発症してた時期ですね<br />
<br />
発症直後は一週間飲食が出来ず起き上がると周囲が回転しはじめ<br />
<br />
睡眠もできなかったので1週間で10キロやせましたね。周囲から死ぬんじゃないかと言われました。<br />
<br />
生活費を得るためいろいろやってるので更新も安定しないと思います。<br />
<br />
近況はツイッターXでなんか言ってると思うのでそっちになんか言ってください。]]></content:encoded>
    <dc:subject>雑記</dc:subject>
    <dc:date>2025-08-23T08:21:55+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
  <item rdf:about="https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AF%E3%81%98%E3%81%BE%E3%82%8B">
    <link>https://zakki.game-waza.net/%E9%9B%91%E8%A8%98/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AF%E3%81%98%E3%81%BE%E3%82%8B</link>
    <title>ブログはじまる</title>
    <description>雑記をいちいち消したり書いたりするのも面倒なのでブログ形式にする</description>
    <content:encoded><![CDATA[雑記をいちいち消したり書いたりするのも面倒なのでブログ形式にする]]></content:encoded>
    <dc:subject>雑記</dc:subject>
    <dc:date>2025-08-23T08:20:53+09:00</dc:date>
    <dc:creator>ですからー</dc:creator>
    <dc:publisher>NINJA BLOG</dc:publisher>
    <dc:rights>ですからー</dc:rights>
  </item>
</rdf:RDF>
