その他の小ネタ

Last-modified: 2017-04-13 (木) 23:08:05

AI作成に役立つかもしれない、雑多な小ネタを集める予定のページです


 

「trigger○ = random <= ○○」の確率について

MUGENのcommandやステートは毎フレーム参照される。そしてこの「フレーム」とは『60分の1秒』という
非常に短い時間単位であるため、実はrandomの値がかなり低くても、他にできる行動がない場合だと
その行動しかしなくなることは普通にあり得る。値が100程度でも意外とコンボもする

各値の10フレーム(6分の1秒)までの確率

「trigger○ = random <= ○○」の○○が各値のとき、そのフレームまでに『一回でも選ばれる確率』
を一覧にしてみた。端数の四捨五入は適当なので、参考値程度で見てほしいが、意外と高確率なのがわかるはず
「数秒程度に一回ランダムで使ってほしい」ときは、randomだけではなく「GameTime」や「var」による
時間カウントと組み合わせるほうが、思った通りに使ってくれるのではないかと思う

 
random
<= ○○
1F
(1/60秒)
2F
(1/30秒)
3F
(1/20秒)
4F
(1/15秒)
5F
(1/12秒)
6F
(1/10秒)
(中略)10F
(1/6秒)
10.1%0.2%0.3%0.4%0.5%0.6%1%
101%2%3%4%5%6%10%
505%10%14%19%23%26%40%
10010%19%27%34%41%47%65%
20020%34%49%59%67%74%90%
30030%51%66%76%83%88%97%
40040%64%78%87%92%95%99.4%
50050%75%88%94%97%98%99.9%
70070%91%97%99.2%99.8%99.9%99.9%
 

受付時間が10フレームもあるような「movecontact(チェーンコンボ)」であれば、「random <= 200」程度でも
十分につながるし、より短く5フレーム程度の猶予しかなくても、300~400程度の値で大丈夫なことが分かる
値が500を超えればコンボ失敗することはまず無く、ランダムによる行動分岐にもまだ使えるので
このwikiでは「500」という値を、コンボ時のrandomの値としてよく使っている
(ただしPrevStateNoによる目押しや、AnimElemを指定したコンボなど、猶予が1Fの場合だと話は別)

コンボの成功確率を、より厳密に絞りたい場合

(前略)
trigger○ = movecontact = [1,3]
trigger○ = random <= 100 * var(59)
(後略)

 

このように記述すると、相手に攻撃が当たってから1~3フレーム目の間という指定になるので
あとはrandomの値と上記の表から、大体の成功率も絞ることができるはず。あとはrandomの値を調整したり
「movecontact = 1」のように受け付け時間を更に絞ったりすれば、コンボの成功確率を思ったように
調整することができるようになると思う

私的なrandomの値の使い分け

以上のことを踏まえて、筆者はこんな感じで確率を設定していますよというリスト
上記の表と見比べれば分かるだろうが、攻撃範囲に入ったら即殴るのも当然な値だったりする

 
random <= ○○使っている技とかの種類
50和訳KFMの「板投げ」など、飛び道具
100和訳KFMの「カンフーブロー」や、新・擬人化アマテラスの「体当たり・弱」
蒼月潮の「連続突き」など、突進系の技
200立ち通常攻撃、または「三烈カンフー突き手」「体当たり・中」
「鬼を突く」など、超反応カウンターに使う技
300しゃがみ通常攻撃(立ち状態の相手に差し込むため高確率)
または和訳KFMなど、対空に使える技が豊富なキャラクターの対空技
400ジャンプ通常攻撃(ジャンプ中という受付時間の短い状態なので高確率)
または蒼月潮など、対空に使える技が少ないキャラクターの対空技
500他にも幾つか分岐できる技(ルート)がある場合の、チェーンコンボなど
700他に分岐できるルートが無い場合のチェーンコンボ。またはガードや当て身
超反応ジャンプによる投げ回避などの、1フレームを争う感じの、防御系の行動
 

実際にどういう感じで使っているかは、wikiの記述の方を参照してほしい

キャラ本体の更新に影響されないAI

MUGENのキャラクターが更新されるのは喜ばしいことだが、AIを作成した側としては時に
「リアルが忙しくて更新に対応できない」という事情に直面することもあり、悩ましいものでもある
そこで多少犠牲にする部分はあるものの、更新せずともある程度対応してくれるAIの作り方を考える

各ファイルの意味を再確認

このwikiで紹介している、和訳カンフーマンの簡易AIだが、使用しているファイルは4つだけである
kfmj-ai.def(kfmj.def)」「kfm.cmd」「kfm.cns」「common1.cns」、これらの意味を確認すると

 

kfmj-ai.def(kfmj.def)」は、『このキャラを構成する各ファイルの位置を指定』するファイルで
かなり大きな更新が行われたなら、ファイルが増減することもあるだろうが、そこまで大きな更新は早々無い
つまりこのファイルが更新されることはまず無いので、安心して扱うことの出来る部分と言える

 

kfm.cmd」は、『このキャラの使用する技のコマンド』が記述されたファイルであり、AIにとっては
『使用できる技のリスト』と言っても良い。キャラが更新されて、例えば新必殺技が搭載されたとなれば
このファイルも間違いなく更新されるだろう。しかしこのwikiの簡易AI記述を見れば分かるだろうが
別に全ての技を使う必要は無く、AIにとってはあくまで『技のリスト』に過ぎないので、更新に対応しなくても
エラーが出たりはしない。新必殺技を使わないのは寂しいし、使う技が多い方が見栄えが良いのは確かだが
言い換えると、そこを多少犠牲にすれば、修正せずとも更新に対応してくれる部分なのである

 

kfm.cns」は、『このキャラのステータス&使用する技の性能』などが記述されたファイル
技が強すぎたor弱すぎたので修正、技にバグが見つかったので修正と、最も更新される機会が多い部分である
つまり、このファイルを使わずにAIを作ることができれば、キャラが更新されても対応できる場合が多い
ということになる。もちろん、このwikiの簡易AI記述でもkfm.cnsには多少なりとも記述を加えているので
ここもまた、多少犠牲にしなければならない部分ということになってしまうが

 

common1.cns」は、『MUGENにおけるキャラクターの共通かつ基本行動』が記述されたファイルで
その性質上、ここの記述が更新されることは有り得ないため、問題なく使うことの出来る部分だろう
中には独自のコモンステートが用意されているキャラもあるが、それでも『基本行動を頻繁に弄ることはない』
ということは確かなので、ここもまた.defファイルと同様、更新されることのまず無いファイルとして扱える

 

つまり「kfmj-ai.def(kfmj.def)」「kfm.cmd」「common1.cns」の、3つのファイルに相当する
.defファイル」「.cmdファイル」「コモンステートファイル」だけでAIを作ることができれば
AIが完成した後にキャラ本体が更新されたとしても、長く対応し続けることが出来るはずである

.def、.cmd、コモンステートだけでAIを作成する

裏を返せば、「kfm.cns(.cnsファイル)」(及び「.stファイル」)抜きでAIを作る方法となる
方法はいくつか考えられるので列挙するが、下に行くほど更新への対応は難しくなっていくと思われる

 

ちなみに、それ以外の部分はこのwikiで解説しているとおりに作成しておけば、問題なく動くはず

.cnsファイルを使う技を使用しない

一番単純なやり方はこれ、和訳カンフーマンの場合なら、「カンフースルー」「カンフーニー(三種類)」
「パワー溜め」「板投げ」の部分を、.cmdファイルを編集し、他の使用しない技同様『;』を使って
コメントアウトしてしまうというもの。こうすれば.cnsファイルを使う必要自体が無くなる

 

ただ、当然ながら使用する技が減ってしまうので、動きもワンパターンになってしまいがちだし
使用しないとした技の中に、「カンフースルー」「パワー溜め」のように有用な技が含まれている場合
AIとしての強さも微妙な事になるため、単純であるがゆえに一長一短な方法と言える

.cnsファイル側に関係なく使える記述にする

例えば「カンフースルー」は、.cnsファイルの側で『前に投げるか後ろに投げるか』を決定しており
「板投げ」は、『弱(飛距離短い)か強(飛距離長い)か』を決定している、.cnsファイルを弄っていない場合
これらの技における投げ方向の前後や飛距離の長短は、MUGEN自体のランダムに動くAIの気分に任されるため
どちらが出るかは全く分からない。だが前投げになっても後ろ投げになっても、飛距離が長くても短くても
問題が出ないように.cmdファイルに記述しておけば、これらの技を使わせることは可能になる

 

カンフースルー」の場合だと、前投げと後ろ投げで届く範囲が若干違っているので、ここが問題となる
ならば届く範囲の広い後ろ投げの部分をコメントアウトし、前投げの方の距離で投げるよう合わせてしまえば
前投げが出ても後ろ投げが出ても、キャラの動きや技の性能的にも、問題無く見えるようになるだろう

 

;投げ技、発生は速く、外した時の隙も小さいが、届く距離は極めて短い
[State -1, カンフースルー];投げ技
type = ChangeState
value = 800
triggerall = roundstate = 2
triggerall = p2statetype != L
triggerall = statetype != A
triggerall = ctrl
triggerall = stateno != 100
triggerall = (p2statetype = S) || (p2statetype = C)
triggerall = p2movetype != H
triggerall = random <= 300 ||(p2movetype = A && random <= 500)
triggerall = p2bodydist X >= -10
trigger1 = p2bodydist X < 3
;trigger2 = p2bodydist X < 5
;trigger2 = BackEdgeBodydist <= 30

 

また「板投げ」の場合も同様に、問題なのは弱と強で飛距離が違い、強は画面の端から端まで届くが
弱は『p2bodydist X <= 180』までしか届かないということ、ならば飛距離の短い方に合わせてしまえば良い
合わせて『遠距離の相手となら飛び道具の撃ち合いをする』部分を修正すれば、問題なく使えるはず

 

;山なりな軌道の飛び道具を放つ、弱と強で飛ぶ距離が変わる
[State -1, 板投げ];ちょっとこ丸が追加した技
type = ChangeState
value = 1300
triggerall = roundstate = 2
triggerall = NumHelper(1300) = 0 ;IDナンバー「1300」のヘルパーが画面中に1個も出てない時
triggerall = NumProjID(1302) = 0 ;IDナンバー「1302」の飛び道具が画面中に1個も出てない時
trigger1 = statetype != A
trigger1 = ctrl
trigger1 = stateno != 100
trigger1 = p2bodydist X = [80,180]
trigger1 = p2movetype != A || EnemyNear,Facing = Facing
trigger1 = random <= 50
trigger2 = (stateno = [200,299]) || (stateno = [400,499])
trigger2 = stateno != 440 ;[Statedef 440](足払いのステート)ではない時
trigger2 = movecontact
trigger2 = p2statetype != C
trigger2 = random <= 500

 

このように記述することで、kfm.cnsを編集しない=kfm.cnsを使用しないAIでも、これらの技を使用できる
ただし、技の届く範囲など『性能を制限する』ことで『どちらであっても問題ない』ようにしているだけなので
当然ながらAIとしての強さは若干落ちることになるが、ここもまた多少犠牲になる部分と言えるかもしれない

 

ただ「カンフーニー」「パワー溜め」のような技は、kfm.cnsで行っているのが『膝蹴りから蹴りに派生させる』
『パワー溜めを止める』という、kfm.cmdの本来の記述を編集しただけでは、どうにもできない行動なので
このやり方で使わせることはできない。コメントアウトして使わないか、どうしても使いたいならば
次の項目で説明する通りに、kfm.cnsの記述をkfm.cmd用に書き直して、追加する必要がある

.cnsファイルの記述を.cmdファイルに移植する

「カンフーニー」の『膝蹴りから蹴りに派生させる』行動や、「パワー溜め」の『パワー溜めを止める』行動は
kfm.cmdファイル側に元々ある記述を、どう弄ってもさせることはできない。なのでコメントアウトして
使わないか、kfm.cnsファイルの記述を書き直して、kfm.cmdファイルに追加記述として書き加える必要がある

 

カンフーニー」の場合、弱と強の記述がほとんど同じなので、一つに纏めて記載することにする
この記述をkfm.cmdファイルの「カンフーニー」の近くに置いてやれば、追加の蹴りを出すようになる

 

;飛び膝蹴りから追加で蹴りを放つ、連続技を行うか否かの項目
[State -1, ステート変更];追加入力
type = ChangeState
triggerall = roundstate = 2
triggerall = stateno = 1051 || stateno = 1061
trigger1 = movecontact || Vel y > -2
trigger1 = random <= 700
trigger1 = Vel y < -1
value = 1055

 

パワー溜め」も同様に書き直し、kfm.cmdファイルの「パワー溜め」の近くに置いてやる
記述を見れば分かるだろうが、どちらも要するに『stateno = 』のトリガーを利用するということだ
これで適切な時に止めるようになるので、「パワー溜め」を使わせることもできるようになる

 

;パワー溜め行動を、どのタイミングで止めるかの設定
[State -1, ステート変更]
type = ChangeState
triggerall = stateno = 700
trigger1 = RoundState != 2 || p2movetype = A || InGuardDist || p2bodydist X <= 60
trigger2 = Power >= PowerMax
value = 0
ctrl = 1

 

またMUGENのキャラの中には、『歩きにアーマーが付いている』『ダッシュ中は飛び道具無敵』などのように
基本行動の性能が通常のキャラと大きく違う、要するにデフォルトの「common1.cns」を使用せず
.cnsファイルの方に、特殊な技として「歩き」「ダッシュ」「ジャンプ」などを登録しているキャラも存在する
そういったキャラの基本行動を、.cnsファイルを使わず制御したい時も、上記と同様のやり方で行えるはず

 

ただし問題が全く無いわけではなく、.cnsファイルの方に手を付けないということは、MUGEN自体のAIの気紛れで
「カンフースルー」の投げ方向が分からないように、「板投げ」の飛距離が分からないように、これらの行動も
勝手に実行されてしまうかもしれないのである。要するにヒットもしていない、届きもしない距離なのに
派生の蹴りを放ったり。まだパワーを溜めてても良い状況なのに、勝手に止めて動き出したりといったように

 

つまりここもまた、多少犠牲になる部分と言えるだろう。またこのやり方は、.cnsファイル内の記述を
無理に.cmdファイルに移植しているため、技によってはちゃんと動かない場合もある。その場合はスパッと諦め
コメントアウトして、使わないことにする割り切りも必要になるだろう

現在編集中

キャラを強化調整する

昨今のAI対戦動画は凶以上のランクが主戦場ゆえ、もっとも多くキャラが作られているランクのはずの
並~強キャラの出番が少なくなってしまっているのが現状である。しかし強さは足りていないが良いキャラを
何とか大会に参加させることができないか? というのは、誰しもが考えることのはずだろう

 

そういった時に使える小ネタを列挙してみる、既に周知のものが殆どだが、それはご愛嬌ってことで
なお、これらの編集は「改変」に当たる可能性が高いため、改変禁止の本体・AIに対して行うべきではない
(要するに自身の作成したAIに対して、仕込んでおくという形が良いだろうという話である)

 

なお、これらの記述は、配布しているAIには全く記述していない。cnsを弄る手始めとして
自力でcnsファイルを開いてみて、記述を追記するのに挑戦してみてはどうだろうか?

「Data」を編集する

「kfm.cns」をテキストエディタで開き、[Data]で検索すると、「life」「power」「attack」と言った項目が
並んでいる部分が見つかるだろう。ここはRPGで言うところの「ヒットポイント」「マジックポイント」
「攻撃力」といった『ステータス』を設定する箇所であり、要するにこの数値を上下させることで
キャラを強くしたり弱くしたりすることが出来る、という単純だが効果的な方法である

「life」「attack」「defence」を上げて設定する

編集前

[Data]
life = 1000 ;ライフ(体力ゲージ)最大値
power = 3000 ;パワーゲージ最大値(オプション・デフォルトは3000=Lv.3)
attack = 100 ;攻撃力(デフォルトは100%)
defence = 100 ;防御力(デフォルトは100%)
;(以下略)

 
編集後

[Data]
life = 2000 ;ライフ(体力ゲージ)通常の2倍
power = 3000 ;パワーゲージ最大値(オプション・デフォルトは3000=Lv.3)
attack = 150 ;攻撃力(デフォルトの1.5倍)
defence = 100 ;防御力(デフォルトは100%)
;(以下略)


「life」は「ヒットポイント」、「attack」は「攻撃力」、「defence」は「防御力」なので、この値を上げれば
単純に強くすることができる。「life」と「defence」は、どちらも耐久力を高めるステータスなのだが
その効果は多少異なり、『固定値ダメージの攻撃』に対しては「defence」が高くても効果は無かったりする
(代わりにコンボなどに対する耐久力としては効果大だが)、詳しい事は自力で検索するなどして調べて欲しい

 

まあ耐久力を強化調整する際は、「life」か「defence」のどちらか片方
お勧めは「life」の方を上げることで調整するのが良いと思われる

 

ちなみに「power」の値も別に増やして構わないのだが、超必殺技を使うには
結局その値までゲージを溜めなければいけないので、最大値だけ高くしてもあまり意味が無い
なので初期値のままで問題無い(余程ゲージ本数が少ないとか、ゲージの溜まる速度が早くて溢れるとか
そういう変わった事情があるなら、この値を増やすことで強化に繋がるかもしれないが)

「Statedef -2」を編集する

「kfm.cns」をテキストエディタで開き、[Statedef -2]で検索すると「常時監視ステート(-2)」と呼ばれる
箇所が見つかるだろう。ここはそのキャラクターがどんな状態でも、たとえステートを奪われている状態
(カンフースルーで投げられていたり、速いカンフー突き手で壁バウンドしていたり)であっても読み込まれる
項目であり、この[Statedef -2]の下に記述を付け加えることで、様々な強化を施すことが出来る

ライフ自動回復&ゲージ自動回復

編集前

[Statedef -2]

 
編集後

[Statedef -2]

 

[state -2, ライフ自動回復]
type = lifeadd
triggerall = roundstate = 2
triggerall = alive
triggerall = life < lifemax
trigger1 = (GameTime%2) = 0 ;2フレーム(2/60秒)ごとに回復
value = 1 ;回復する量

 

[state -2, ゲージ自動回復]
type = poweradd
triggerall = roundstate = 2
triggerall = alive
triggerall = power < powermax
trigger1 = (GameTime%1) = 0 ;1フレーム(1/60秒)ごとに回復
value = 1 ;回復する量


ごく簡単なライフ自動回復&ゲージ自動回復の記述、「lifeadd」はライフ増減で「poweradd」はゲージ増減
「GameTime」は何フレーム(秒)おきに回復が行われるかの指定、ちなみに60フレームで1秒なので
覚えておくと良い。あとは回復する量と組み合わせることで、回復速度を調節することが出来る

 

「lifemax」「powermax」を適当な数値に変えることで、「体力やゲージが一定の値以下になったら回復しだす」
ようにすることも出来る、ゲージ自動回復の「value」を極端に大きな値(例えば10000とか)にすることで
ゲジマユにすることも出来たりする、やりすぎても面白くない項目だと思うので気をつけて弄ろう

1ゲージ技を使い放題

編集前

[Statedef -2]

 
編集後

[Statedef -2]

 

[State -2, 1ゲージ技使い放題]
type = powerset
triggerall = roundstate = 2
triggerall = alive
triggerall = power < powermax
trigger1 = power < 1000
value = 1000
ignorehitpause = 1


「poweradd」がゲージを「増加させる」トリガーなら、「powerset」はゲージを「指定値に変更」するトリガー
こちらも「value」を極端に大きな値(例えば10000とか)にすることで、ゲジマユ化するのに使えるのだが
それだけでは面白く無いので、見ての通り『ゲージが1本未満になったら1本まで回復させる』という
記述にしている。こうすると和訳カンフーマンの場合、三烈カンフー突き手&スマッシュカンフーアッパーの
無敵技による切り返しが使い放題となり、かなりの強化につながるのではないかと思われる

 

またゲージが1本以上ある場合は動作しないので、普通にゲージ溜めでゲージを2本3本と溜めることもでき
三烈カンフー突き手→キャンセルしてスマッシュカンフーアッパーの、強力コンボも普通に出せるはず

 

切り返しにゲージ技(特に1ゲージ技)を使うキャラの場合、こういう強化手段もあるという一例

一部の技に無敵を付与する

編集前

[Statedef -2]

 
編集後

[Statedef -2]

 

[State -2, 一部の技に無敵を付与]
type = NotHitBy
triggerall = roundstate = 2
triggerall = movetype = A
trigger1 = stateno = 1100 ;弱カンフーアッパー
trigger2 = stateno = 400 ;しゃがみ弱パンチ
trigger3 = stateno = 1010 ;強カンフー突き手
trigger4 = stateno = 1050 ;弱カンフーニー
value = , NA, SA, AT
time = 1


「NotHitBy」は無敵を設定するトリガー、これを利用して一部の技に無敵を付与することで強化を図る
「value = , NA, SA, AT」は、三烈カンフー突き手&スマッシュカンフーアッパーと、同程度の無敵という意味
これくらいの無敵があれば、十分に無敵という効果は実感できるだろう

 

「弱カンフーアッパー」は発生こそ速いが無敵の無い対空技、それに無敵が付加されれば十分強くなる
「しゃがみ弱パンチ」「強カンフー突き手」「弱カンフーニー」は、シールドからの反撃の際に用いるため
暴発する危険のある技なので、これらに無敵が付加されれば、安全かつ暴発しても打ち勝てる
無敵を付与すると言ってもこれくらいの、重要な技を数個程度で十分だと思う

 

[State -2, 攻撃体勢中は兎に角無敵]
type = NotHitBy
trigger1 = MoveType = A
value = SCA
time = 1

 

ちなみにこんな感じで記述すると、攻撃体勢中は何でもかんでも無敵とか言う
情緒も何も無い事になってしまうので注意したい、強化のし過ぎは冷めるだけだし

カラーパレットと併用する

黒カラー(11Pカラー)、金カラー(12Pカラー)という言葉を聞いたことはないだろうか?
これは要するに『上位のカラーにだけ強化を付与する』記述がされているので、強化して使いたいなら
そのカラーを選択してやれば良くて、それ以外のカラーなら通常のまま使えるという、便利なやり方のことだ
このように記述しておくと、AIに強化仕様として仕込む際にも、使いやすいのではないかなと思う

 

まず「kfmj-ai.def」を開き、「Pal」で検索すると

 

Pal1 = kfm.act ;Aボタンで決定した色が使えます
Pal2 = kfm2.act ;B
Pal3 = kfm3.act ;C
Pal4 = kfm4.act ;X
Pal5 = kfm5.act ;Y
Pal6 = kfm6.act ;Z

 

Pal7 = kfm7.act ;S押しながらAボタンで決定した色が使えます
Pal8 = kfm8.act ;S押しながらB
;Pal9 = ;S押しながらC
;Pal10= ;S押しながらX
;Pal11= ;S押しながらY
;Pal12= ;S押しながらZ

 

このようになっており、和訳カンフーマンは12Pまでカラーが登録されておらず、8Pカラーまでしか無い
と言うか多くのキャラクターは、12種類ものカラーパレットは用意されていないのが普通なので
.defファイルを開いてみて、カラーが何種類用意されているか確認するのは必須だろう

 

特殊カラー強化の例

用意されているカラーの種類を確認したら、そのカラー(Pal)を利用して
上位のカラーにだけ強化を適用する記述を施していく、和訳カンフーマンの場合だと
7Pカラーと8Pカラーが、通常の選択では普通選ばれないカラーなので、特殊カラーに相応しい


編集前

[Statedef -2]

 
編集後

[Statedef -2]

 

[state -2, 8Pカラーならライフ自動回復]
type = lifeadd
triggerall = roundstate = 2
triggerall = alive
triggerall = life < lifemax
triggerall = PalNo = 8
trigger1 = (GameTime%2) = 0 ;2フレーム(2/60秒)ごとに回復
value = 1 ;回復する量

 

[state -2, 8Pカラーならゲージ自動回復]
type = poweradd
triggerall = roundstate = 2
triggerall = alive
triggerall = power < powermax
triggerall = PalNo = 8
trigger1 = (GameTime%1) = 0 ;1フレーム(1/60秒)ごとに回復
value = 1 ;回復する量

 

[State -2, 7Pカラーなら1ゲージ技使い放題]
type = powerset
triggerall = roundstate = 2
triggerall = alive
triggerall = power < powermax
triggerall = PalNo = 7
trigger1 = power < 1000
value = 1000
ignorehitpause = 1

 

[State -2, カラー毎に一部の技に無敵を付与]
type = NotHitBy
triggerall = roundstate = 2
triggerall = movetype = A
trigger1 = stateno = 1100 ;弱カンフーアッパー
trigger1 = PalNo >= 7 ;7Pカラー以上で無敵付与
trigger2 = stateno = 400 ;しゃがみ弱パンチ
trigger2 = PalNo >= 8 ;8Pカラー以上で無敵付与
trigger3 = stateno = 1010 ;強カンフー突き手
trigger3 = PalNo >= 8 ;8Pカラー以上で無敵付与
trigger4 = stateno = 1050 ;弱カンフーニー
trigger4 = PalNo >= 8 ;8Pカラー以上で無敵付与
value = , NA, SA, AT
time = 1


このように記述すると、7Pカラーだと「1ゲージ技使い放題」「弱カンフーアッパー無敵」だけが適用され
それなりの強さ。8Pカラーでは「ライフ自動回復&ゲジマシ」「色々な技に無敵が付与」となり、かなりの強さ
になると思われる。とは言えこれはあくまで一例なので、色々と弄って試してみることをお勧めしたい