MUGENキャラ ドラえもん

------------------------------------
-ボタン配置-------------------------
------------------------------------

      F - 前
      B - 後
      U - 上
      D - 下
      a - Ａボタン
      b - Ｂボタン
      c - Ｃボタン
　　　x - Ｘボタン
      y - Ｙボタン
　　　z - Ｘボタン
      s - スタートボタン
　　

      DFは斜め前下、UBは斜め後ろ上など、斜め入力はDFUBを２つ組み合わせる表記になっています。
　　　コマンドはこれによってできています。
      

------------------------------------
-基本操作---------------------------
------------------------------------

※操作説明は全てドラえもんが右向きの時です。このキャラは通常のキャラと違い
　受け身コマンドを変えてあります。

      →            　　　   - 前進
      ←           　　　    - 後退
      →→         　　　    - ダッシュ
      ←←          　　　   - バックステップ
      ↓            　　　   - しゃがむ
      ↑            　　　   - ジャンプ
      前進しながら↑　　　   - 前ジャンプ
      後退しながら↑　　　   - 後ジャンプ
      ふっとび中にＡorＢorＣ - 受け身を取る（地上受け身・空中受け身）
      相手が攻撃中に←　　　 - ガード（空中・しゃがみ可）

------------------------------------
-基本技-----------------------------
------------------------------------

Ａ 　　　　　　　　 　  鶴嘴

相手を鶴嘴で叩く。
威力は低いが連続で出せる。

Ｂ　　　　　　　　 　　 チャンピオングローブ

グローブで相手を攻撃。多段ヒットし、
相手を吹っ飛ばすので、遠距離戦が得意なドラえもんにとっては、
相手を退けるのに適している。

Ｃ　　　　　　　　 　　 空気砲

真っ直ぐ飛ぶ空気の弾を発射。

Ｘ　　　　　　　　 　　 アタールガン

相手を追尾する弾を４発発射。

Ｙ　　　　　　　　　 　 衝撃波ピストル

壁や天井で跳ね返る弾を一気に４発発射。
当たると相手を落とすので、空中の相手を地面に落としフルボッコできる。

Ｚ　　　　　　　　　 　 ペンシルミサイル

ミサイルを発射。ミサイルは最初だけ↑↓で角度を調整できる。

Ｓ                      ドラ焼きを食べる

パワーゲージを増やし、体力を回復する。

相手の近くで→,Ａ　　　 投げ

相手を投げる。

←,→,Ａ　　　    	のび太召喚

友達をタケコプターで召喚する。相手の下から登場。
 　
←,→,Ｂ　　    	ジャイアン召喚 

相手の下から登場し、数回ヒットする。
　
←,→,Ｃ　　　    	しずかちゃん召喚 　

相手の下から登場し、当たれば相手のパワーゲージを減らす。

←,→,Ｘ　　　    	ドラミ召喚 　

相手の位置に関係なく、ランダムな位置から飛んでくる。

←,→,Ｙ　　　    	スネ夫召喚 　

相手に向かって突撃する。

←,→,Ｚ		カムカムキャット　そうはいかない

相手を自分の遥か後ろへ越えさせる。
それだけでなく、ガード削りが大きい。
12Pは超即死OTHキラー（下記参照）。

→,←,Ａ　		手榴弾

暫くするか攻撃が当たると爆発する手榴弾を３つ投げる。
相手に当てても爆発し、さらに威力が甚だしい。

------------------------------------
-必殺技-----------------------------
------------------------------------

←,Ａ			桃太郎印の黍団子

黍団子を投げ、ティラノサウルスを呼び出す。AIの常用技。
ティラノサウルスは攻撃を喰らうと戻るが、
１/８の確率で２体登場する。
飛び道具を掻き消したり、ティラノサウルスを盾に使うことも可能。
	
←,Ｂ			ミニドラ行進

相手の後ろからミニドラが３体走ってきて、連続攻撃をする。
AIの常用技。１/８の確率で６体登場する。

←,Ｃ			御座敷釣堀

河豚を釣り飛ばす。
ランダムに飛び、連発しなければ当たりにくいが、威力が高い。
たまに数匹釣り飛ばす。

←,Ｘ			シャボン玉ピストル

空へ浮くシャボン玉を３つ発射。

←,Ｙ			ショックガン

連続ヒットする長い弾を発射。

→,Ｚ			マジックハンド

威力は低いが、攻撃範囲は非常に広い。AIの常用技。
		
→,Ａ			何処でもドア

自分より前方へワープする回避技。

→,Ｂ			ハッスル螺子巻き

ハッスル螺子巻きでとても速く相手に突進し、素早く戻る。
無敵なので、打ち逃げとして最適。

→,Ｃ			ミニ雷雲　　イケてるよ〜！（空耳）

ミニ雷雲の雷で攻撃。連発すると、恐ろしい技になり、
下手するとオーバーキルまでしてしまう。

→,Ｘ			転ばし屋（ゲージ10円費）

パワーゲージを10消費し、転ばし屋を出す。
転ばし屋は相手を３回転倒させて消える。

→,Ｙ			ショックスティック

相手に槍を喰らわし、大ダメージを与える。

→,Ｚ			ひらりマント

非常に使える技で、ひらりマントが攻撃を受けた瞬間、
相手に飛び道具を跳ね返すカウンター技。連続攻撃も跳ね返す。
相手の攻撃の威力を強化して返すので、
威力の高い技を跳ね返すと恐ろしい技になり、
下手するとオーバーキルまでしてしまう。
12Pは超即死OTHキラー（下記参照）。

------------------------------------
-超必殺技---------------------------
------------------------------------

※※パワーゲージ1000消費※※

Ａ+Ｂ		        SL煙突　　さっき決めたばっかりじゃないか!!

SL煙突で、ステージ内を走り回る。
煙突から出る煙にも攻撃判定がある。

Ｂ+Ｃ		        ウラドラマン　　挫けてはいけない！　

まず、この技は最初の体当たりが当たらなければ成功しない。
ヒットするとウラドラマンに変身し、相手に大ダメージを与えられる。

Ａ+Ｘ 		        皆でタケコプター　　しょうがないなあ、のび太君は。

のび太、しずかちゃん、ジャイアン、スネ夫、ドラミが一斉に
タケコプターで登場する。喰らった相手のパワーゲージは０になる。

Ｘ+Ｙ		        だから友達

１のび太　　　　　　空気ピストル
２しずかちゃん　　　お風呂で水をかける　即死弾幕
３ジャイアン　　　　リサイタル
４スネ夫　　　　　　ドラえもんが相手に佰列拳!!
５ドラミ　　　　　　気球爆弾　アーマー貫通砲？　
１〜５のうちランダムに１つ発動し、碌に出せない。
ただし狙って出す方法がある。その方法は下の「クリップボード」を参照。

※※パワーゲージ全部消費※※

Ｙ+Ｚ		        何か無いか、何か無いか、

ゲージ数によってドラえもんが出すガラクタが増える、弾幕技。

Ａ+Ｃ　　　　		ドラや菌落とし

◆パワーゲージ1000◆
相手に大ダメージ！

◆パワーゲージ2000◆
即死攻撃!!!

◆パワーゲージ3000◆
相手がドラや菌に攻撃した瞬間、
相手が無敵であろうが投げが効かないだろうが相手は死ぬ!!!!!
相手のヘルパーが攻撃した場合、相手自身も死ぬ。
その原理を教えてあげよう。

◆相手が直接攻撃した場合◆
1.ドラや菌にはReversaldefがついている。Reversaldefは自分の攻撃判定に相手が攻撃すると発動する当身ステート。
2.Reversaldefを使うとなぜか投げが効かない敵も投げられて、無敵状態の敵も投げられるよ。
3.普通１つのステートに512個以上のステートコントローラーがあるとエラーになるが・・・そのステートに当身で相手をそのステートに送る。
　[State 701, 受け止め定義]
　type=reversaldef
　trigger1=1
　reversal.attr=SCA,AA,AP
　pausetime=0,30
　numhits=1
　p1stateno=3250;←攻撃ステート
　p2stateno=9999;←相手が死ぬステート
　ignorehitpause=1
　このように書くこと
4.すると、なぜかエラーが出ず、相手は死ぬwww あまりにステートが多くて、相手のAlive（生きているか死んでいるのかを判断）が書き換えられるらしい。腐腐腐腐腐腐・・・
5.これを超即死という。最初に搭載したキャラはADS。

◆相手のヘルパーが攻撃した場合◆

1.ヘルパーはヘルパー自身の見た目の飛び道具発射。
2.ドラえもんはその飛び道具にわざわざ当たりに行く。
3.その飛び道具に予め設定されているp1statenoで相手本体はそのヘルパーになる。
　つまり、相手を相手の攻撃ヘルパーのステートに引き込む、という事。
4.後はその攻撃がドラや菌に当たれば、相手は死ぬ。
5.これをOTHキラーという。本体に当たり判定はなく攻撃は全てヘルパーを使うのオメガトムハンクスを殺せるから。ﾀﾞﾀﾞﾀﾞﾀﾞｰﾝ♪
6.さら〜に多いステート（550000個ぐらい？）でやると・・・なんとヘルパーが攻撃しても相手が直ぐに死んでしまう。これは「直死」だ。

これで勝つと正直どっちが勝ったかわからなくなるwww しかもたまにバグる。
AIは自分からドラや菌に攻撃して死ぬことが多い。

------------------------------------
-空中状態---------------------------
------------------------------------

→→　		　　　　タケコプター

↑↓←→で操作でき、Ａ、Ｂ、Ｃ、Ｘ、Ｙ、Ｚのいずれかで基本空中攻撃に移ることが可能。

↓,Ｃ		　　　　ロケットストロー

ロケットストローで空気の塊を落としながら落ちる。
メテオ判定あり。

Ａ 　　　　　　　　 　  コンボキック

相手を蹴る。連発可能。

Ｂ　　　　　　　　 　　 蹴り

相手を遠くへ蹴飛ばす。

Ｃ　　　　      　　　　踏みつけ

前方に移動して相手を踏みつける。

Ｘ　　　　　　       　 ウラドラキック

斜め下に踵落とし。

Ｙ　　　　　　　 　　　 チャンピオングローブ
Ｚ　　　　　　 　　　 　空気砲

空気の弾が前方下へ飛ぶ。

←,Ｘ			シャボン玉ピストル

地上版と同じ。。。

←,Ｙ			ショックガン

地上版と同じ。。。

→,Ｚ	　　　　　	ひらりマント

地上版と同じ。。。


------------------------------------
-しゃがみ状態-----------------------
------------------------------------

Ａ 　　　　　　　　　　 ドラ焼き落とし

相手を蹴って、ドラ焼きを落とす。

Ｂ　　　　　　　　　　　強蹴り

隙は大きいが、威力が高い。

Ｃ　		        鼠！？

鼠が出てきて、ドラえもんは驚いてジャンプ体当たり。

Ｘ　　　　　　　　　　　飛ばしキック

相手を上に吹っ飛ばす。
隙が小さく、空中で攻撃ボタン連打でのコンボに最適。

Ｙ　　　　　　　　　　　転ばしキック

相手を転ばす。

Ｘ　　　　　　　　　　　ランチャーカット

相手を上に殴り上げる。

↑			大ジャンプ

大きくジャンプする。

------------------------------------
-カラー-----------------------------
------------------------------------

Ａで決定　　 　　1P 青
Ｂで決定　　 　　2P オレンジ
Ｃで決定　　 　　3P 水色
Ｘで決定　　 　　4P 黄緑
Ｙで決定　 　　　5P 紫
Ｚで決定　 　　　6P 黄土色
Ｓ＋Ａで決定　　 7P 黒
Ｓ＋Ｂで決定　　 8P シャドウドラえもん　　画面をとにかくワープし続けていて、ダメージを受けると無敵になり、行動可能になる。また、相手を攻撃しても行動可能になる。
Ｓ＋Ｃで決定　　 9P 石ドラえもん　　　　　攻撃力・防御力があがり、常時ハイパーアーマー。着地すると地面が揺れ相手が転ぶ。
Ｓ＋Ｘで決定　　10P スーパードラえもん　　技強化
Ｓ＋Ｙで決定　　11P ドラえもん軍団　　　　ドラえもんだらけwwwww　無理ゲー。。。
Ｓ＋Ｚで決定　　12P レインボードラえもん　強すぎる　攻撃一撃　体力減らない　どらや菌が常に登場　ステート抜け　試合に負けるとMUGENを終了させる

------------------------------------
-クリップボード---------------------
------------------------------------
◆１行目◆
ACTIONID:アニメ番号 SPR:スプライト番号 ELEMNO:アニメのコマ番号 TIME:アニメの経過時間
◆２行目◆
STATENO:ステート番号 CTRL:コントロール（0:不可1:可） TYPE:Statetype（1:地上 2:しゃがみ 3:空中 4:倒れている） 
MOVETYPE:Movetype（0:待機 1:攻撃 2:喰らい） TIME:ステート経過時間
◆３行目◆
AI:AIレベル（0:機能していない） BODY-DISTANCE X Y:最寄りの相手との距離　AI作成に便利。 
TOMODACHI:だから友達の変数（0:のび太 1:スネ夫 2:しずかちゃん 3:ドラミ 4:ジャイアン）
１秒置き（技を連続で出すと遅くなりやすい）に書き換わっており、クリップボードを見ながら狙って出すことが出来る。
◆４行目◆
POSITION X Y:自分の位置 VELOCITY X Y:自分の移動速度 
HIT:攻撃ヒット（0:当たっていない 1以上:当たった）攻撃がガードされたり、飛び道具の場合は無効。

------------------------------------------------------------------------------
-バグ-------------------------------------------------------------------------
------------------------------------------------------------------------------

・どらや菌のOTHキラー、超即死で殺すと勝った時に付くはずのマークが付かない。

------------------------------------------------------------------------------
-修正したバグ-----------------------------------------------------------------
------------------------------------------------------------------------------

・ジャイアンリサイタルの音楽が途切れる
・ジャイアンがどっかへ行ってもジャイアンリサイタルの音楽がながれっぱなし
・AIがジャンプしながらショックガンを使う
・HAS NO ROOTのエラーが垂れ流し
・AIがゲージを全く消費せずどらや菌を出す

------------------------------------------------------------------------------
-ドラえもんのAIについて-------------------------------------------------------
------------------------------------------------------------------------------

デフォルトでAIが搭載されており、非常に兇悪。
多分普通のキャラでは勝てない。
秘密道具を容赦無く使いまくり、相手をフルボッコにする。
特にミニドラ→恐竜→転ばし屋→ショックガン→アタールガン→衝撃波ピストルの繰り返し、
ゲージが溜まったらどらや菌の鬼畜コンボは恐ろしい。
その強さはドナルド軍団を一人で、時々ノーダメージでやっつけてしまうほど。
さらに飛行している相手には躱しにくい衝撃波ピストル、
ガードが堅い相手にはガード削りのカムカムキャット。
体力が減ったら通常のコンボに絡めてどら焼きを食べて体力回復。
トレーニングや設定でAIレベルを低めても、兇悪AIが発動しにくくなるだけ。
強すぎるなら、AIX.cnsを弄ること。

------------------------------------------------------------------------------
-|　Ｑ＆Ａ　|-----------------------------------------------------------------
------------------------------------------------------------------------------

Ｑ.AIが強すぎるのだが？
Ａ.「ドラえもんのAIについて」を読んで。このキャラは狂キャラだ。

Ｑ.小さくて攻撃が当たりにくい
Ａ.仕様。

Ｑ.11Pや12Pが異常に強すぎる！
Ａ.神キャラとかで対抗したら？

------------------------------------------------------------------------------
-コモンステート---------------------------------------------------------------
------------------------------------------------------------------------------

M.U.G.E.Nのデフォルトで使われているcommon1.cns内にある
コモンステートナンバーの早見表です。

common1.cnsに存在しないナンバーは、ユーザーが任意でキャラに追加出来るステート。

例外として、[Statedef 180]（勝利ポーズ）はcommon1.cnsに入っていないけど
M.U.G.E.Nのシステムで予め処理されているので、コモンステート。

------------------------------------------------------------------------------

コモンステートとは、全キャラ共通の基本動作のステートです。
通常は特に変更しない限り、M.U.G.E.N本体のdataフォルダにある
「common1.cns（コモンステートファイル）」を使います。

しかし、もしもあなたのキャラのステートファイルでcommon1.cnsと同じ番号の
基本動作のステートを作った場合は処理が上書きされ、
common1.cns側の同じ番号のステートは無効になります。

common1.cnsのプログラム優先度は最低に属しているので、
ステートの作成には番号に注意しないといけません。

------------------------------------------------------------------------------

   0 - 通常立ち（振り返る動作もシステムがここで処理しています）
  10 - 立ち状態からしゃがむ動作
  11 - しゃがみ
  12 - しゃがみ状態から立ち上がる動作
  20 - 前進＆後退

  40 - ジャンプ開始
  45 - 空中ジャンプ開始
  50 - ジャンプ
  51 - ジャンプ後の下降（使われていない）
  52 - 着地

 100 - 走る（前）
 105 - バックステップ
 106 - バックステップ後の着地
 110 - 走る（奥）
 115 - 走る（手前）

 120 - ガード開始＆準備
 130 - ガード受付（立ち）
 131 - ガード受付（しゃがみ）
 132 - ガード受付（空中）
 140 - ガード終了
 150 - ガード硬直（立ち）
 151 - ガード硬直解除後の後退（立ち）
 152 - ガード硬直（しゃがみ）
 153 - ガード硬直解除後の後退（しゃがみ）
 154 - ガード硬直（空中）
 155 - ガード硬直解除後の後退（空中）

 170 - タイムオーバーで負けた時
 175 - タイムオーバーで引き分けた時
 190 - イントロ準備
 191 - イントロ

5000 - 立ち食らい
5001 - 立ち食らい後退
5010 - しゃがみ食らい
5011 - しゃがみ食らい後退

5020 - 空中食らい
5030 - 吹っ飛び開始
5035 - 吹っ飛び（フォール状態か否かを判断もしている）
5040 - 吹っ飛びから自動受け身（フォール状態ではない時）
5050 - 吹っ飛び下降
5070 - 足払いで転ぶ・硬直
5071 - 足払いで転ぶ

5080 - 横に倒れている時の食らい・硬直
5081 - 横に倒れている時の食らい
5100 - 吹っ飛び後地面に激突
5101 - 激突後バウンド
5110 - 横に倒れる
5120 - 起き上がる
5150 - 負けた時に横に倒れている

5200 - 地上に近い時の空中受け身予約
5201 - 地上に近い時の空中受け身
5210 - 空中受け身

5500 - コンティニュー画面時
5900 - ラウンド開始前初期化専用ステート

------------------------------------------------------------------------------
-MUGENでサポートされているファイル一覧----------------------------------------
------------------------------------------------------------------------------

-def-

英語でDefinitionの略、つまり『定義』を意味するファイル。
キャラ・ステージ・アドオンを実際にM.U.G.E.Nへ登録させるために必要なファイルです。

テキストエディタでの編集は可能だけど、
M.U.G.E.N用テキスト形式ファイルの中で、拡張子の変更はコレだけ不可。

-air-
キャラのアニメーション関係をまとめたファイル。

・バトル中のアニメーション
・画像の位置
・画像の向き
・透過処理
・攻撃判定ボックス
・食らい判定ボックス

をこのファイルだけで一度に設定する事が出来る。
拡張子の意味は不明。みすずちん、ぴんち！（それはＡＩＲ）
テキスト形式なので拡張子の変更が可能。
テキストエディタでの編集も出来る。

-cmd-

英語でCommandの略。キャラのコマンド入力を管理するファイル。
入力するコマンドと技などを出すための条件を設定する。

ＸＰではこの拡張子だと大概『Windows NT コマンド スクリプト』という
本来Windowsのシステムで使われているファイル形式の扱いになってるけど、
M.U.G.E.N用cmdファイルは全くの別物です。

実際はテキスト形式なので拡張子の変更が可能。
テキストエディタでの編集も出来る。

※cmdファイルは通常ではテキストエディタでは開けないけど、
　実際にキャラに使用する場合でも、拡張子を「txt」など別のものに変更してＯＫ。
　M.U.G.E.Nでもエラーも出ず使えるはず。

　どうしてでもcmdファイルを開きたいなら、
　ファイルその物を右クリックして「編集」を選ぶか、
　あなたが使っているテキストエディタのショートカットをデスクトップに置き
　ファイルをそこへドラッグ＆ドロップしよう。

-cns-

英語でConstantsの略。『定数』を意味するファイル。
キャラのライフや大きさや、ダッシュやジャンプの移動速度などを予め決めておく所。
ステートファイルとの共用が可能な上にテキスト形式なので拡張子の変更も可能。
テキストエディタでの編集も出来る。

日本ＭＵＧＥＮ界では「ＭＵＧＥＮキャラのプログラムを作る事」を
『ＣＮＳを組む』と呼ぶのが通例。
由来はステートファイルが大概この拡張子になっている事から・・・だと思う。

-st-

英語でStateの略。『状態』を意味するファイル。
キャラの動作に必要なステート（動作プログラム）を管理するファイルです。
通常攻撃や必殺技などの仕切りや概念は無く、キャラの行動を自由に組み立てる事が出来る。
その自由度が災いしてか、キャラ作りの敷居が非常に高いワケですが（苦笑

テキスト形式な上に拡張子の変更やテキストエディタでの編集は「自由」と言えるでしょう。
なのでステートファイルなのにcnsとかtxtとか色々出来ます。

-sff-

キャラ・ステージ・アドオンの画像（スプライト）を管理するM.U.G.E.N専用ファイル。
拡張子の意味は多分『 Sprites Format File 』の略。
『ペイントブラシ』というMS-DOS用ペイントツール専用の
『ＰＣＸ』という拡張子の画像を何枚も一つにまとめた特殊な物。
pcxファイルはIrfanViewで変換可能。http://www8.plala.or.jp/kusutaku/iview/でDLできる。
M.U.G.E.N用のＰＣＸ画像は一枚ずつ、インデックスカラー（発色形式が２５６色まで）
にしないと使えません。
オススメの256色エディタは『EDGE』。http://takabosoft.com/edgeでDLできる。
尚、IrfanViewは、256色に減色することもできる。
そしてこのＰＣＸを専用のツール（ＭＣＭやFighterFactory）で登録していきます。
登録した画像はグループ番号・イメージ番号・画像の位置を設定しなければいけません。
でないとM.U.G.E.Nで適用出来ない。もちろん、拡張子の変更は不可。

-snd-

キャラ・アドオンの音声を管理するファイル。英語でそのままSoundの略です。
普通に音声が聞けるＡＵ形式のsndファイルとは全くの別物なので注意。
ＷＡＶＥ形式（拡張子がwavの物）の音声ファイルを画像と同じように
ＭＣＭなどでグループ番号・サウンド番号を付けて複数登録していき、
一つにまとめた物です。

なお「11,0」のみ、システムによりキャラ用の『ＫＯ時の叫び声』として
予め番号が決められています。

-act-

キャラのカラーパレットを登録するファイルです。
PhotoShopなどアドビ社製ソフトで使われる『Adobe Color Table』の略。
２Ｐカラーなども作れます。
２Ｐ以上のカラーを作って使う場合は、
sffに使うキャラ用ＰＣＸ画像のパレット配置をactと一緒にしないといけません。
「でもそんなの関係ねぇ！」とか申す人はやらなくて良いですよ（ｶｴﾚ

パレット２５５番はM.U.G.E.Nでは必ず「背景色」に指定します。
pcxもactも両方これをやらないと画像のいらない部分（余白）が透明にならない。

色をいじくる場合はベクター等や一部M.U.G.E.N関連のサイトに専用のツールが
置いてあるはずなので、探してね（コラ

-fnt-

M.U.G.E.Nで名前やアナウンスなどの文字を表示するためのアドオン専用ファイル。
フォント（Font）の略。
作るには海外のM.U.G.E.N関連サイトを探して専用のツールを落とす必要がある。
ちなみに必要な数の文字を一列にまとめた
インデックスカラーのＰＣＸを作って登録しなければならない。

-bat-

最近よく別のアドオンを起動するのに使われるファイル。
exeの実行ファイルを、コマンドプロンプトを利用してショートカット起動させるための
バッチファイル（Batchの略）であります。

メモ帳などで「winmugen -h」と書いて拡張子をbatにして保存し、
winmugen.exeがあるM.U.G.E.Nのフォルダに置き、そのbatファイルを実行すると
M.U.G.E.Nのオプションメニューが表示されます。
それを見てやり方を把握しておきましょう。
やり方次第で、これを利用して延々とＣＰＵ対戦を観賞する事も可能。

------------------------------------------------------------------------------
-- MUGEN小技集 ---------------------------------------------------------------
------------------------------------------------------------------------------

●相手キャラまでの角度に回転する

[State 1] 
type = AngleDraw 
trigger1 = 1 

[State 1] 
type = AngleSet
trigger1 = 1 
value = (atan((p2dist x-(p2dist x=0))/(p2dist y-(p2dist y=0)) )*180/pi+ 0.0000001 ) - (p2dist y>0)-(p2dist y<=0) *90

;★極小の数値を足しているのは0で割ることを防ぐためです。  

●相手を追尾する

[State 2]
type = Velset
trigger1 = 1
X = ☆*((p2dist x - 10)/(abs(p2dist x - 10) + abs(p2dist y - 0) + 0.0000001));☆には任意の数字を入れてください。
Y = ☆*((p2dist y - 0)/(abs(p2dist x - 10) + abs(p2dist y - 0) + 0.0000001))

●相手の場所に目掛けて移動する

[State 3]
type = Velset
trigger1 = time = 0
X = ☆*((p2dist x - 10)/(abs(p2dist x - 10) + abs(p2dist y - 0) + 0.0000001));☆には任意の数字を入れてください。
Y = ☆*((p2dist y - 0)/(abs(p2dist x - 10) + abs(p2dist y - 0) + 0.0000001))


●自分の移動している方向に回転する

[State 4]
type = AngleSet
trigger1 = 1
value = 90-ceil(atan((Vel Y)/(Vel X+0.000000001))*180/Pi)
ignorehitpause = 1

●AIの暗転返しの組み方

まず、未使用のvarが二つ必要。
-3ステートにコレを記述　表記は適宜変えてください

[State -3, 汎用ヘルパー]
type = helper
trigger1 = !NumHelper(2666662)
trigger1 = roundstate = 2
helpertype = normal
name = "hanyou"
stateno = 2666662
ID = 2666662
pos = 9999,9999
keyctrl = 0
pausemovetime = 2147483647
supermovetime = 2147483647
persistent = 0

[State -3, 暗転感知用]
type = varadd
trigger1 = roundstate = 2
var(0) = 1
ignorehitpause = 1

[State -3, 暗転感知暴発防止用]
type = varset
trigger1 = var(1) >= 90
trigger2 = stateno = 7000;←はAIに暗転返しさせるステート番号が良いと思う。
var(0) = helper(2666662),var(0)
ignorehitpause = 1

[State -3, 暗転感知暴発防止用]
type = varset
trigger1 = var(0) = [1,19];超必らしくない暗転を感知したら0に
trigger2 = var(1) >= 90
var(1) = 0
ignorehitpause = 1

こんなのを記述。勿論変数は適宜。
次にどこかのcnsに

[Statedef 2666662]
ctrl = 0

[State 2666662, カウント]
type = varset
trigger1 = time = 0
var(0) = parent,var(0)
ignorehitpause = 1

[State 2666662, カウント]
type = parentvaradd
trigger1 = parent,var(1) != var(0)
var(1) = 1
ignorehitpause = 1

[State 2666662, カウント]
type = varadd
trigger1 = roundstate = 2
var(0) = 1
ignorehitpause = 1

こんなのをいれる。
ここまでで何をしているかと言うと
・ヘルパーと本体で同期している変数を用意
・時間が止まる（=暗転）すると同期ができなくなり、ヘルパー側で本体にvarを加算させていく
・ブロッキングやシールドなどの微暗転はスルーする
・時間が解除された時に加算されているvarは暗転時間である。
・暗転解除後も加算され続けるので適当なところでまた同期を取り直す。
というモノ。
コレのみでは何の役にも立たないので

[State -1, 暗転返し]
type = ChangeState
value = 7000;←使わせたいステート番号に変える
triggerall = var(59) = 1;←つけたいキャラのAIトリガー
trigger1 = ctrl
trigger1 = var(50) > 19;暗転20F以上
trigger1 = enemynear,animtime <= -8;暗転技の発生F+2,3Fがいいと思う

これで20F以上の暗転（一般的な超必）で、相手を刺せそうな時、ctrlなら暗転返ししてくれる
ctrl = 0をトリガーに暗転返し判定変数をリセットしたりしても良いだろう
そこらへんは各自で調整
タッグだと相方の暗転にも反応してしまうので注意

●デバックキーの使い方

F1　　　　　  2P側のライフを0に 
CTRL+F1 　　  1P側のライフを0に 
F2　　　　　  両側のライフを1に 
CTRL+F2       1P側のライフを1に 
SHIFT+F2      2P側のライフを1に 
F3 　　　　　 両側のパワーをMAXに。ゲージマックストーナメントでお馴染み 
F4 　　　　　 ラウンドをやり直す 
SHIFT+F4　　  試合を始めからやり直し、データのリロード(mugen起動中にcnsを更新して、そのまま更新データを読み込ませる事も可能) 
F5 　　　　　 タイムオーバーにする 
F12　　　 　  スクリーンショット 
CTRL+C　　　  判定枠の表示の切り替え。青が当たり判定、赤が攻撃判定、水色は無敵状態
CTRL+D 　　　 デバッグデータ表示の切り替え 
CTRL+I 　　　 両側のプレイヤーを強制的に立ちステート(StateNo=0)にする(はまり状態の回避に使える) 
CTRL+L 　　　 アドオンのライフ、パワーバー等を消去(キャラ固有のパワーバーは消せない)、用途はキャラ作成時に見やすくすることなど 
CTRL+S 　　　 ゲームスピードアップ(デバッグのFPSとSPEEDで確認可能) 
CTRL+数字 　  数字には1〜4の数値が入る。指定した数値のキャラをAIモードに(1なら1P、2なら2P) 
CTRL+ALT+数字 数字には1〜4の数値が入る。キャラの消去。もう一度押すと元に戻る 
SPACE 　　　　両側のライフとパワーをMAXに、時間もリセット 
PAUSE 　　　　ポーズ画面の表示、トレーニングモードならサンドバッグの状態の指定も可能 
SCROLLLOCK 　 PAUSE中にSCROLLLOCKを押すたびに1Fだけ時間を進める、製作中キャラの動きの確認等で使える。 
ESC 　　　　　mugenの終了や画面を戻すのに使用 

●画面に対するPosadd

[state 5]
type=Posadd;Possetでも可
trigger1=1
y=-screenpos y;+8←好きな値、screenpos xでも可
ignorehitpause=1

--------------------------------------------------------------------------------
-ステートコントローラ一覧-------------------------------------------------------
--------------------------------------------------------------------------------

ステートコントローラ名
パラメータ指定例
必須パラメータ
オプションパラメータ
代替書式
使用例

の順に並んでおります。

　パラメータ指定例は、テキトーにパラメータを指定した例です。コピペすれば動くはずです。ただし、使用が推奨されていないものと、動作しないものを除いたすべてのパラメータを指定していますので、必要に応じてパラメータを間引く必要があります。
　また、すべてのステートコントローラが、「persistent」と「ignorehitpause」というパラメータを取りますが、これは省略しています。
　persistent=0の場合、持続性のトリガーでも1回しかステコンが実行されません。重要。省略時は1。
　ignorehitpause=1とるすと、ヒット停止時間を無視してステコンが実行されます。省略時は0。

　必須パラメータは、ステートコントローラのパラメータのうち、記述が省略できないものです。省略すると、エラーとなります。

　オプションパラメータは、ステートコントローラのパラメータのうち、記述が省略できるものです。
　各パラメータの説明文は、docの英文を適当に和訳したもので、検証してない部分もあります。さらに、意味不明な英文は、そのまま掲載しています。

　代替書式は、標準の書式の代わりに使用できる記述方法で、一部のステコンにのみ存在します。複数の記述をまとめられたり、あまり意味なかったりします。なお、ステートコントローラ、トリガーともに大小文字を区別しませんが、代替書式は小文字しか使えません。
　いい加減な解説なので過信は禁物です。
　一番重要な部分は使用例です。根性で和訳してください。といっても使用例のあるものはごく一部ですが。


--------------------------------------------------------------------------------
AfterImage 

　キャラに残像を付けます。様々な調整が可能ですが、パラメータはすべて省略可能で、省略した場合、残像は青くなります。

パラメータ指定例:

type = AfterImage
trigger1 = time = 0
time = 1
length = 20
palcolor = 256
palinvertall = 0
palbright = 30,30,30
palcontrast = 120,120,220
palpostbright = 0,0,0
paladd = 10,10,25
palmul = .65,.65,.75
timegap = 1
framegap = 4
trans = "non"

必須パラメータはありません

オプションパラメータ:


　 time = 持続時間 (int)

指定時間内は残像が付き続けます。ステートが変わっても有効ですので、持続時間中に攻撃を受けると、やられモーションにも残像が付きます。
省略時は1。一瞬で効果が切れますが、省略してAfterImageTimeで調整するのが普通です。-1で永続します。


　 length = ヒストリーバッファ容量 (int)

残像として表示する画像を何フレーム間保存するか指定します。1つの残像の表示時間や、移動したときに残る残像の長さとして表れます。最長60フレーム、省略時20フレーム。


　 palcolor = 彩度 (int) 

パレットの彩度を0〜256で指定します。省略時256（変化なし）、0でグレースケール(白黒)になります。


　 palinvertall = 反転フラグ (bool)

1でパレットを反転表示します。写真のネガのようになります。省略時0。


　 palbright = add_赤, add_緑, add_青 (int)

残像のパレットに指定の色要素を加算します。例えば、0,0,256とすれば、青っぽくなりますが、同時に白っぽくもなります。もともと白い部分は白いまま。省略時30,30,30。少しだけ明度を底上げしています。
win版ではr要素が機能しないっぽい？。


　 palcontrast = mul_赤, mul_緑, mul_青 (int)

残像のパレットに指定の色要素を乗算します。例えば、128,128,256とすれば、青っぽくなりますが、同時に黒っぽくもなります。もともと黒い部分は黒いまま。省略時120,120,220。青っぽくなります。


　 palpostbright = add2_赤, add2_緑, add2_青 (int)

２つ目以降の残像について、指定の色要素を加算します。省略時0,0,0。


　 paladd = add_赤, add_緑, add_青 (int)

2,3,4…番目の残像に、累積して色要素が加算されます。残像をグラデーションさせるときに。省略時10,10,25。


　 palmul = mul_赤, mul_緑, mul_青 (float)

2,3,4…番目の残像に、累積して色要素が乗算されます。残像をグラデーションさせるときに。省略時.65,.65,.75


　 timegap = スキップフレーム数 (int)

何フレーム置きに残像用の画像を保存するかを指定。省略時1(毎フレーム保存)。連続写真のような残像にしたい場合は、こちらを弄りましょう。値が大きくなるほど、残像の間隔が長くなります。移動技向け。


　 framegap = フレーム間隔 (int)

何フレーム置きに画像を表示するかを指定。残像の間隔、ということになります。後をついてくるような残像にする場合はこちら。


　 trans = 透過の種類 (string)

残像の透過の種類を指定。"non"は透過なし。"add"はアルファ値256,256の加算透過。"add1"はアルファ値256,128の加算透過。"sub"は減算透過。

使用例: なし


--------------------------------------------------------------------------------
AfterImageTime 

　残像の表示時間を変更します。

パラメータ指定例:

type = AfterImage
trigger1 = 1
time = 1

必須パラメータ:


　time = 新しい時間 (int)

有効なAfterImageのtimeパラメータを変更します。省略不可。
代替書式: 
　value = 新しい時間 (int)

timeの代わりにvalueと書いても動きます。
オプションパラメータはありません

使用例: なし


--------------------------------------------------------------------------------
AllPalFX

　内容的にはPalFXと同じですが、こちらは画面上のすべてのパレットが対象です。

パラメータ指定例:

type = AllPalFX
trigger1 = time = 0
time = 10
add = 0,0,0
mul = 256,256,256
sinadd = 256,256,256,10
invertall = 0
color = 256


使用例: なし




--------------------------------------------------------------------------------
AngleAdd

　AngleDrawで回転させる角度を増減します。
　単位は度。角度を返すトリガー(arc○○○)は、戻り値がラジアンなので、変換が必要となります。

パラメータ指定例:

type = AngleAdd
trigger1 = 1
value = 10

必須パラメータ:


　value = 加算角度 (float)

加算する角度を指定。省略不可。
オプションパラメータはありません


使用例: なし



--------------------------------------------------------------------------------
AngleDraw

　プレイヤーの軸を中心に回転させて表示します。AngleAdd、AngleMul、AngleSetと併せて使用。角度は、右向き時、反時計回りが正方向になります。
　1フレームしか効果がないので、triggerの指定には注意。
　Helperと組み合わせて、グルグル回転する、飛び道具とか、オプション等に使えるほか、回転やられに使う人もいます。
　ただし、90の倍数角度回転なら問題ありませんが、それ以外の場合はジャギィがでてしまいます。
　このステート実行中は、AIRファイル中の座標指定、反転表示、透過表示は無効になります。回転の中心を変えたい場合は、sffに別なスプライトとして登録しなければなりません。なお、これらの無効化は、AfterImageにも影響を及ぼします。また、判定枠は回転しませんので、判定を持たせる場合は、最初から原点(0,0)を中心とする正方形とするか、回転に合わせてAirを設定する必要があります。
　dos版はパラメータをとりませんが、win版には2つのオプションパラメータが存在します。

パラメータ指定例:

type = AngleDraw
trigger1 = 1

必須パラメータはありません

オプションパラメータ(Win版限定)


　value = 角度 (float)

角度を指定。


　scale = 横縮尺, 縦縮尺 (float, float)

スプライトの縮尺を指定。
注意 :　 回転・縮尺ともに、判定枠には影響を及ぼしません。

使用例 : 　なし



--------------------------------------------------------------------------------
AngleMul

　AngleDrawで回転させる角度を倍数で指定。
　単位は度。角度を返すトリガー(arc○○○)は、戻り値がラジアンなので、変換が必要となります。

パラメータ指定例:

type = AngleMul
trigger1 = 1
value = 0.8

必須パラメータ:


　value = 倍数 (float)

乗算する角度を指定。省略不可。見た目としては、1以上でアクセル、0〜1間の小数でブレーキとして働きます。

オプションパラメータはありません

使用例: なし


--------------------------------------------------------------------------------
AngleSet

　AngleDrawで回転させる角度を指定値に変更。
　単位は度。角度を返すトリガー(arc○○○)は、戻り値がラジアンなので、変換が必要となります。

パラメータ指定例:

type = AngleSet
trigger1 = time = 0
value = 90

必須パラメータ:


　value = 角度 (float)

設定する角度を指定。省略不可。

オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
AppendToClipboard

　基本的にはDisplayToClipboardと同じ。
　DisplayToClipboardは、すでにメッセージが存在する場合、上書きされますが、こちらは改行して表示されます。
　直前の値と見比べることができますが、頻繁に値が変わる場合、却って見にくくなってしまいます。

パラメータ指定例:

type = AppendToClipboard
trigger1 = 1
text = "%d,%d,%d,%f,%f"
params = var(0),var(1),var(2),fvar(0),fvar(1)



--------------------------------------------------------------------------------
AssertSpecial

　キャラを特殊な状態にします。どのような状態にできるかは下記を参照。
　同時に指定できるのは３種類までです。1フレームのみ有効。

パラメータ指定例:

type = AssertSpecial
trigger1 = 1
flag = intro
flag2 = invisible
flag3 = nobardisplay

必須パラメータ:


　flag = フラグ名

指定できるフラグ名は、下記詳細にあるうちのいずれかです。省略不可。
オプションパラメータ:


　flag2 = フラグ名2

　flag3 = フラグ名3

同時に3種類まで指定可能です。省略可。
詳細:

flagには以下の文字列を指定します。


Intro          = イントロ（試合開始前の登場演出アクション）の状態になる。イントロステート専用。

Invisible      = 自分の姿を消す。しかし残像（AfterImage）は消せない。

RoundNotOver   = 現在のラウンドを過ぎない。勝利ポーズ専用。

NoBarDisplay   = ライフバーを非表示にする。

NoBG           = ステージの奥の画像を非表示にし、「真っ黒の背景」にする。

NoFG           = ステージの手前の画像を非表示にする。

NoStandGuard   = 立ちガードが出来なくなる。

NoCrouchGuard  = しゃがみガードが出来なくなる。

NoAirGuard     = 空中ガードが出来なくなる。

NoAutoTurn     = 自動で振り向かない。

NoJuggleCheck  = ジャグルポイントが減らなくなる。

NoKO           = ＫＯ判定をしない。

NoKOSnd        = ＫＯ時の音声（11,0）を鳴らさないようにする。画面中に存在する全員に有効なので注意。

NoKOSlow       = ＫＯ時のスローモーションを無効にする。（ＫＯ直前に有効にしないといけない）

NoShadow       = 自分の影を消す。

GlobalNoShadow = 画面中に存在する全てのプレイヤー（ヘルパーとProjectileも含む）の影を消す。

NoMusic        = 演奏しているＢＧＭを止める。

NoWalk         = 歩かない。（前か後ろのキーを入力中コントロールが可能の時に勝手に[Statedef 20]にならない）

TimerFreeze    = 制限時間を止める。

UnGuardable    = 自分の全ての攻撃がガード不可になる。

使用例:
　type = AssertSpecial
　trigger = 1
　flag = nobardisplay
　flag2 = nomusic
　flag3 = timerfreeze


そのステート中は、ゲージ類非表示、音楽停止、タイマー停止となります。カットインとかに使えるかも？
基本的にイントロや勝利ポーズのモーションで使用されることが多いステートコントローラです。あと、Helperの影を消したり。 



--------------------------------------------------------------------------------
AttackDist

　攻撃を行ったときに相手が防御体制をとる距離を変更します。

パラメータ指定例:

type = AttackDist
trigger1 = 1
value = 100

必須パラメータ:


　value = 攻撃認識距離 (int)

新しい認識距離をピクセルで指定。省略不可。
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
AttackMulSet

　攻撃力を倍数で指定します。一時的に攻撃力が上がる技などに。効果は1フレーム。

パラメータ指定例:

type = AttackMulSet
trigger1 = Life < 200
value = 1.25

必須パラメータ:


　value = 攻撃力係数(float)

攻撃力を何倍にするか指定。例えば、0.5なら半分に、2なら倍になります。省略不可。
ちなみに、負数を指定すると、ダメージ値×係数の分体力が回復します。0を指定すると、一律1のダメージになります。
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
BGPalFX

　PalFXと同じですが、こちらは背景のパレットを対象とします。

パラメータ指定例:

type = BGPalFX
trigger1 = time = 0
time = 1
add = 0,0,0
mul = 256,256,256
sinadd = 256,256,256,10
invertall = 0
color = 256



--------------------------------------------------------------------------------
BindToParent

　Helperのステート内で記述します。そのhelperを呼び出したステートのスプライトを基準に位置を固定します。
　親がHelperの場合、当然そのHelperのスプライトが対象となります。

パラメータ指定例:

type = BindToParent
trigger1 = 1
time = 1
facing = 0
pos = 0, 0

必須パラメータはありません

オプションパラメータ:


　time = 固定時間 (int)

何フレーム固定するかを指定。省略時1。


　facing = 向きフラグ (int)

-1で常に親と反対の方を向きます。0で向きを変えません。1で常に親と同じ方を向きます。省略時は0。


　pos = x座標 (float), y座標 (float)

親の足元を0, 0とした相対座標を指定。


注意: 
helper等が親の場合、親がDestroySelfすると、このステートコントローラは無効になります。
使用例: なし



--------------------------------------------------------------------------------
BindToRoot

　Helperのステート内で記述します。ルート(そのhelperを呼び出した大元のステートのスプライト)を基準に位置を固定します。

パラメータ指定例:

type = BindToRoot
trigger1 = 1
time = 1
facing = 0
pos = 0, 0

必須パラメータはありません

オプションパラメータ:


　time = 固定時間 (int)

何フレーム固定するかを指定。省略時1。


　facing = 向きフラグ (int)

-1で常にルートと反対の方を向きます。0で向きを変えません。1で常にルートと同じ方を向きます。省略時は0。


　pos = x座標 (float), y座標 (float)

ルートの足元を0, 0とした相対座標を指定。


注意: 
helper等がルートの場合、ルートがDestroySelfすると、このステートコントローラは無効になります。でも、helperがルートになるって、ありえるのか？なお、親がDestroySelfした場合も、無効となります。
使用例: なし



--------------------------------------------------------------------------------
BindToTarget

　特定のターゲット(プレイヤーの攻撃を受けてヒット・ガード状態になっている敵)を基準にプレイヤーの位置を固定します。
　相手に乗っかったりする投げなどに使用。

パラメータ指定例:

type = BindToTarget
trigger1 = 1
time = 1
ID = -1
pos = 0, 0, "Head"

必須パラメータはありません

オプションパラメータ:


　time = 固定時間 (int)

固定する時間を指定。省略時1。


　ID = ヒットID (int)

基準にするターゲットをIDで指定。
ちなみに、ターゲットIDは、自動で割り当てられるIDではなく、ターゲットにされた攻撃のHitDefのIDパラメータで指定した値となります。 よって、大抵の場合、デフォルト値の0となります。
省略時-1。(無差別に1つのターゲットをを選択)


　pos = x座標 (float), y座標 (float), 基準位置 (string)

基準位置("Head","Foot","Mid"のいずれか)の座標を(0,0)として、座標を指定。"Head"の場合は、ターゲットのcnsのhead.pos、"Foot"の場合は、(0,0)座標、"Mid"の場合はMid.posを基準にします。
相手のcns設定がいい加減だと、こちらの動きが見苦しくなるので困りもの。

使用例: なし



--------------------------------------------------------------------------------
ChangeAnim

　アニメーションを変更します。

パラメータ指定例:

type = ChangeAnim
trigger1 = time = 0
value = 0
elem = 1

必須パラメータ:


　value = アクション番号 (int)

変更するアクション番号を指定。省略不可。
オプションパラメータ:


　elem = 要素番号 (int)

何枚目から始めるかを指定。省略時1。

使用例: なし



--------------------------------------------------------------------------------
ChangeAnim2

　ChangeAnimと似た効果があります。パラメータについてはそちらを参照のこと。
　HitDefのp2stateパラメータやTargetStateを使って相手に参照させるステート内で、プレイヤーのairファイルを使用して相手のアニメーションを変更するのに使用します。

パラメータ指定例:

type = ChangeAnim2
trigger1 = time = 0
value = 0
elem = 1



--------------------------------------------------------------------------------
ChangeState

　ステートを変更します。

パラメータ指定例:

type = ChangeState
trigger1 = animtime = 0
value = 0
ctrl = 1
anim = 0

必須パラメータ:


　value = ステート番号 (int)

変更させるステート番号を指定。省略不可。
オプションパラメータ:


　ctrl = コントロールフラグ (int)

0以外を指定すると、ステート変更と同時にコントロールフラグが立ちます。省略時は現在のフラグを引き継ぎます。
変更先のステートの冒頭でフラグがセットされる場合は、指定しても意味なし。


　anim = アクション番号 (int)

アクション番号も同時に変更可能。省略時は変更なし。どうやら、ignorehitpauseを指定してもHitPauseの影響を受けてしまう模様。
変更先のステートの冒頭でアニメが変更される場合は、指定しても意味なし。


使用例:
　type = ChangeState
　value = 0
　ctrl = 1

ステートを0（アイドル状態）に変更し、同時に操作可能にします。
大抵のStateDefの最後を飾る記述です。 


--------------------------------------------------------------------------------
ClearClipboard

　デバッグ用。クリップボードの内容(デバッグ情報)を消去します。

パラメータ指定例:

type = ClearClipboard
trigger1 = 1

使用例: なし



--------------------------------------------------------------------------------
CtrlSet

　プレイヤーのコントロールフラグをセットします。フラグが立っていると技の途中でも歩行、ジャンプ等の動作ができてしまいます。
　通常はStateDefの冒頭でセットするので、ステートの途中でフラグを変更するときなどに使用します。

パラメータ指定例:

type = CtrlSet
trigger1 = time = 10
value = 1

必須パラメータ:


　value = コントロールフラグ (int)

1なら操作可能。0で不可。 
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
DefenceMulSet

　防御力を倍数で指定します。一時的に防御力が上がる技などに。バグか仕様かはわかりませんが、win版ではMovetypeがHのときしか効果がありません。

パラメータ指定例:

type = DefenceMulSet
trigger1 = Life < 200
value = .9

必須パラメータ:


　value = 防御力係数 (float)

ダメージ係数を少数で指定。省略不可。単純に、受けるはずのダメージ値にこの係数が乗算されます。例えば、0.5でダメージ半分、2で倍です。
ちなみに、負数を指定すると、ダメージ値×係数分体力が回復します。0にすると、一律1のダメージを受けるようになります。 
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
DestroySelf

　helperのステートに記述します。そのhelperを消すことができます。パラメータはありません。
　helperは同時に存在する数に上限がありますので、常駐させるとき以外は、必ず消すようにしましょう(ラウンド終了時も自動で消えますが)。helper以外のステートでは無効。

パラメータ指定例:

type = DestroySelf
trigger1 = animtime = 0

使用例: なし



--------------------------------------------------------------------------------
DisplayToClipboard

　デバッグモード(Ctrl+D)でのみ有効なステートコントローラ。 
　クリップボードの内容を消去し、デバッグ用のメッセージを表示します。
　直前の値と見比べたい場合は、AppendToClipboardを使用します。

パラメータ指定例:

type = DisplayToClipboard
trigger1 = 1
text = "%d,%d,%d,%f,%f"
params = var(0),var(1),var(2),fvar(0),fvar(1)

必須パラメータ:


　text = "所定の文字列"

画面に出力したい文字列を、定められた書式に従って指定します。
基本的には""で括った文字列がそのまま出力されますが、特別な書式として、
「\n」が改行、「\t」がタブ、「%%」が%、「%d」がint値、「%f」がfloat値として出力されます。
オプションパラメータ:


　params = exp_1, exp_2, exp_3, exp_4, exp_5

ここで指定した値が、指定順に、textで記述した%d、%fと置き換わります。5つまで指定可能。
text中の%d、%fの数と、paramsの数は、一致させる必要があります。データ型は、一致しなくてもエラーとはなりませんが、正しい値が返されません。 
使用例:
　type = DisplayToClipboard
　text="The value of var(17) is %d, which is %f%% of 23.\n\t--Kiwi."
　params = var(17):=1,var(17)/.230

この例では、paramsに「var(17):=1」と、「var(17)/.230」の2つの値を指定しています。
:=は、代入を明示する演算子です。var(17)の値がtextの%dに置き換わり、var(17)/0.230の答えが、%fと置き換わって画面に出力されます。 
実際に画面出力される文字列は、

The value of var(17) is 1, which is 4.347826% of 23.
--Kiwi.

ということになります。


--------------------------------------------------------------------------------
EnvColor

　画面を指定色で塗りつぶします。ただし、ヒットスパークやontop=1のExplodなど前面のレイヤーに表示されるスプライトは除きます。
　ステージの前面レイヤーは、透明になります。

パラメータ指定例:

type = EnvColor
trigger1 = time = 0
value = 255, 255, 255
time = 1
under = 0

必須パラメータはありません

オプションパラメータ:


　value = col_赤, col_緑, col_青 (int)

色のR,G,B要素を指定。省略時255,255,255(まっしろ)。


　time = 効果持続時間 (int)

効果を及ぼす時間を指定。省略時1。-1で永久。


　under = 背面フラグ (int)

1にすると、キャラと飛び道具を塗りつぶさなくなります。省略時0。 
使用例: なし



--------------------------------------------------------------------------------
EnvShake

　画面を揺らします。

パラメータ指定例:

type = EnvShake
trigger1 = time = 0
time = 10
freq = 60
ampl = -4
phase = 0

必須パラメータ:


　time = 揺れる時間 (int)

揺れの持続時間を指定。省略不可。
オプションパラメータ:


　freq = 揺れの速度 (float)

揺れるスピードを、0(低速)〜180(高速)の間で指定。省略時60。


　ampl = 揺れ幅 (int)

揺れ幅をピクセル寸法で指定。負数を指定すると、最初、下方向に揺れます。省略時-4。


　phase = 位相 (float)

位相を指定。省略時0。但し、振動数の乗数が90以上のときは、省略時90。よくわかりません。 
使用例: なし


--------------------------------------------------------------------------------
Explod

　指定したスプライトを表示します。anim以外のパラメータは、省略可能。なお、同時に存在できる総数には上限があり、標準では64個となっています。仮に1Pが64個出してしまった場合、2Pは1つも出せなくなります。
　総数の上限は自由に変えられますが、高い値にするほど、マシンパワーを必要とします。逆に、動作が重かったりする場合は、この値を下げることにより改善する場合があります。

パラメータ指定例:

type = Explod
trigger1 = time = 0
anim = F2
ID = 0
pos = 0, 0
postype = p1
facing = 1
vfacing = 1
bindtime = -1
vel = 0, 0
accel = 0, 0
random = 0, 0
removetime = -2
supermovetime = 0
pausemovetime = 0
scale = 1, 1
sprpriority = 1
ontop = 0
shadow = 0, 0, 0
ownpal = 0
removeongethit = 1

必須パラメータ:


　anim = [F]アクション番号 (int)

省略不可。表示させるスプライトのアクション番号を指定。fightfx.airのものを使う場合は、先頭にFを記述。
オプションパラメータ:


　ID = ID番号 (int)

識別用のIDを指定。


　pos = x座標, y座標 (int)

出現位置を指定。


　postype = 出現位置の基準 (string)

どこを出現位置の基準(0,0)にするかを、以下の文字列から指定。

　　- p1

自分。向いている方が正方向。

　　- p2

直近の敵。直近の敵が向いている方が正方向。

　　- front

自分が向いている方向の画面上端。画面中央方向が負数となるらしい。

　　- back

自分が背を向けている方向の画面上端。画面中央方向が正数となるらしい。

　　- left

画面左上。右方向が正。

　　- right

画面右上。左方向が正。


　facing = 向き (int)

スプライトの向きを指定。1で正、-1で負の方向を向きます。省略時1。


　vfacing = 上下の向き (int)

省略時1。-1にすると、垂直方向に反転表示されます。


　bindtime = 固定時間 (int)

ここで指定した時間内は、基準位置からの相対位置で表示されます。
つまり、基準位置が移動すると、それに合わせてスプライトも移動します。


　vel = x速度, y速度 (float)

スプライトの初速度を指定。省略時0,0。


　accel = x加速度, y加速度 (float)

スプライトの加速度を指定。省略時0,0。


　random = x範囲, y範囲 (int)

出現位置をランダムにする場合の、出現範囲を指定。
pos = 0,0で、random = 40,80の場合、0,0の位置から左右-20〜20ピクセル、上下-40〜40ピクセルの範囲内でランダムに出現します。


　removetime = 消滅時間 (int)

発生してから消滅するまでの時間を指定。-1で永久に表示。省略時は-2で、スプライトのアニメが終了すると消えます。特定の条件下で消すような場合は、Expoldを消すコントローラを使うとよいでしょう。


　supermove = superpause無視フラグ (boolean)

1にすると、superpauseコントローラの影響を受けなくなります。省略時0。
指定しないほうがよいパラメータのようです。下記のsupermovetimeで代用してください。


　supermovetime = superpause無視時間 (int)

superpauseコントローラの影響を無視する時間を指定。省略時0。


　pausemovetime = move_time (int)

pauseコントローラの影響を無視する時間を指定。


　scale = 横縮尺 [,縦縮尺] (float)

縮尺を指定。省略時1。


　sprpriority = スプライト表示優先順位 (int)

スプライトの表示優先順位を指定。-3にすると、大抵のスプライトより奥に表示されます。省略時0。


　ontop = 手前表示フラグ (boolean)

1にすると、sprpriorityは無視され、全てのスプライト、背景レイヤーより手前に表示されます。ただし、ヒット/ガードスパークより手前に表示させることはできません。省略時0。


　shadow = 赤影, 緑影, 青影 (int)

影の色をR,G,Bで指定。-1でステージ依存。省略時0,0,0(影なし)。


　ownpal = 独自パレットフラグ (boolean)

省略時は0で、プレイヤーと共通のパレットを持ちます。例えば、プレイヤーが青く点滅すると、Explodも青く点滅します。
1にすると、独自のパレットを持つようになります。


　removeongethit = やられ消滅フラグ (boolean)

1にすると、プレイヤーが攻撃を受けた場合、消滅します。省略時0。 


--------------------------------------------------------------------------------
ExplodBindTime

　そのまんま。有効なExplodのbindtimeパラメータを変更します。

パラメータ指定例:

type = ExplodBindTime
trigger1 = time = 0
ID = 100
time = 10

必須パラメータはありません

オプションパラメータ:


　ID = ExplodのID (int)

変更するExplodのIDを指定。-1で、すべてのExplodが対象になります。省略時-1。


　time = 固定時間 (int)

新たに設定する固定時間を指定します。 
代替書式:

　value = 固定時間 (int)

timeの代わりにvalueと書いてもエラーがでません。それだけ。 
使用例: なし



--------------------------------------------------------------------------------
ForceFeedback

　対応ゲームパッドをぶるぶるさせるらしいです。このコントローラの動作を確認できる人がいるのかどうかは謎。

パラメータ指定例:

type = ForceFeedback
trigger1 = time = 0
waveform = "sine"
time = 60
ampl = 128,0,0,0
self = 1

必須パラメータ:


　waveform = 振動の仕方 (string)

"sine"、 "square"、 "sinesquare"、 "off"の内から、振動の仕方を指定。
オプションパラメータ:


　time = 持続時間 (integer constant)

何フレーム振動するかを指定。省略時60。


　freq = 初期振動数 (integer constant), d1, d2, d3 (float constants)

振動数を0〜255の範囲で指定します。経過時間tにおけるfreqは、
初期振動数 + d1*t + d2*t**2 + d3*t**3
という式で表せます。ちなみに、**はべき乗の演算子です。省略時は、
freq = 128,0,0,0
でも、このパラメータ、全然無効とのこと。


　ampl = 初期振幅 (integer constant), d1, d2, d3 (float constants)

振幅を0〜255の範囲で指定します。経過時間tにおけるamplは、
初期振幅 + d1*t + d2*t**2 + d3*t**3
という式で表せます。ちなみに、**はべき乗の演算子です。省略時は、
ampl = 128,0,0,0


　self = 自分フラグ (boolean constant)

1ならp1の、0ならp2のパッドがブルブルします。省略時1。 
使用例:

common1.cnsファイルのやられステートに記述が見られます。 


--------------------------------------------------------------------------------
FallEnvShake

　プレイヤーが攻撃を受けているときに有効。相手のHitDef中のfall.envshakeパラメータを実行します。やられステートを上書きするときや、特殊なやられなどに使用。

パラメータ指定例:

type = FallEnvShake
trigger1 = time = 0

パラメータはありません

使用例: 
common1.cnsファイルのやられステートに記述が見られます。 


--------------------------------------------------------------------------------
GameMakeAnim

　ヒットマークやダウン衝撃などの共通アニメを表示します。
　Explodでも代用は可能ですが、相手に参照させるステート内では、こちらを使うのが無難。

パラメータ指定例:

type = GameMakeAnim
trigger1 = time = 0
value = 0
under = 0
pos = 0, 0
random = 0

必須パラメータ:


　value = アクション番号 (int)

fightfxに登録されているアクション番号を指定します。
オプションパラメータ:


　under = 背面フラグ (int)

1にすれば、キャラの奥側に表示されます。省略時は0で、キャラの前面に表示されます。


　pos = x_座標, y_座標 (float)

キャラの軸を基準とした出現位置を指定します。


　random = 出現範囲 (int)

指定した値を辺の長さとする正方形の範囲内でランダムな位置に出現さるときに指定。
使用例: なし



--------------------------------------------------------------------------------
Gravity

　cnsで設定した"yaccel"の値を利用してプレイヤーに重力をかけます。効果は1フレーム。パラメータはありません。
　"yaccel"以外の重力をかけるときはVelAddを使用します。VelAddでも代用可能ですが、GravityはPosFreeze中に加速の影響を受けないという特徴があります。

パラメータ指定例:

type = Gravity
trigger1 = 1

パラメータはありません

使用例:
　trigger1 = 1
　type = Gravity

そのステート中、プレイヤーに対して常に重力がかかります。
このコントローラを使う場合は、phisycsがNのはずなので、着地したときの記述を忘れないようにしましょう。


--------------------------------------------------------------------------------
Helper

　プレイヤー以外のキャラクターを出現させます。
　helperが参照するステートを別に記述する必要がありますが、様々な動きが可能。
　複雑な動作の飛び道具や援護キャラ、プレイヤーについて動き回るペットなどに利用します。
　普通のプレイヤーと同じ扱いなので、攻撃したり、攻撃を受けたりすることが可能ですが、扱いには少々慣れが必要で、専用のステート以外には移行しないように気をつけないと、プレイヤーの分身木偶人形になり、そのラウンド中は消せなくなってしまいます。やられ判定をつけるときは、特に気をつけましょう。
　Helperは、独立したキャラなので、ヘルパーのステートで使用される変数は、そのヘルパーに固有のものとなります。ヒットフラグやターゲットも独自に保有しますので、例えば飛び道具として使用した場合、敵に当たっても、相手はhelperのターゲットとなり、プレイヤー側には何も起こりません(ターゲット取得せず、ヒットフラグも立たず、ジャグルも減らない)。そしてhelperが消滅すると、ターゲットも存在しなくなるため、敵がのけぞり中でもコンボカウンターが途切れます。但し、消滅前に別キャラが攻撃を当てた場合や、別キャラのターゲットに対してヘルパーが攻撃した場合は、そのキャラのターゲットとして継続しますので、コンボカウンターは途切れません。
　そんな自立心あふれるHelperさんですが、彼が射出したProjectileは、何故かプレイヤーの管理となります。
　なお、helperは、同時に存在できる数に上限が定められており、標準で32個です。プレイヤー1人につきでなく、全部合わせた数です。値は自由に変えられますが、大きな値にするほどマシンパワーが必要となります。
　ちなみに、プレイヤーIDは、このhelperの分が最初に確保されるようで、プレイヤーキャラクターに当てられるIDは、helperの上限値からとなります。

パラメータ指定例:

type = Helper
trigger1 = time = 0
helpertype = normal
name = "MyHelper"
ID = 2000
pos = 0, 0
postype = p1
facing = 1
stateno = 2000
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
size.xscale = 0
size.yscale = 0
size.ground.back = 0
size.ground.front = 0
size.air.back = 0
size.air.front = 0
size.height = 0
size.proj.doscale = 0
size.head.pos = 0, 0
size.mid.pos = 0, 0
size.shadowoffset = 0

必須パラメータはありません

オプションパラメータ:


　helpertype = nomal または player

ヘルパーのタイプをnomalかplayerで選択します。省略時はnomal。playerにした場合、カメラが追うなど、通常のプレイヤーと同じ扱いとなりますが、普通、指定してはいけません。


　name = "ヘルパー名"

ヘルパーの名前を指定。省略時は、 "<親の名前>'s helper"となります。
多数のヘルパーを使う処理の場合、名前をつけないと、デバッグ時にわけがわからなくなります。


　ID = ヘルパーID (int)

ヘルパーのIDを指定。省略時は0。特定IDのヘルパーの状態を取得したりするのに必要。自動で割り振られるプレイヤーIDとは別物。


　pos = x座標, y座標 (int)

ヘルパーの初期出現位置を指定します。


　postype = 基準位置

どこを基準(0,0)にヘルパーを出現させるかを、以下の文字列から指定します。


　　- p1

自分。向いている方が正方向。

　　- p2

直近の敵。直近の敵が向いている方が正方向。P4は指定不可。。。

　　- front

自分が向いている方向の画面上端。画面中央方向が負数となるらしい。

　　- back

自分が背を向けている方向の画面上端。画面中央方向が正数となるらしい。

　　- left

画面左上。右方向が正。

　　- right

画面右上。左方向が正。


　facing = facing (int)

ヘルパーの出現時の向きを指定。省略時1。
postypeがleftかrightの場合、1で右、-1で左を向きます。postypeがp2の場合、1で直近の敵と同じ向きを、-1で逆を向きます。postypeがそれ以外の場合は、1でプレイヤーと同じ向きを、-1で逆を向きます。


　stateno = ステート番号 (int)

ヘルパーが参照するステート番号を指定。省略時0。つまり通常モーション。


　keyctrl = コントロールフラグ (boolean)

ヘルパーがキーコントロールを受け取るかどうかを指定。省略時0。
1にした場合、プレイヤーの-1ステートを参照するようになります。
helperの仕様をよほど深く理解していない限りは、指定しない方が良いでしょう。


　ownpal = 独自パレットフラグ (boolean)

省略時0。親と共通のパレットを持ちます。つまり、親が燃えやられ等で赤点滅すると、ヘルパーも赤点滅します。
1にすると、ヘルパーが独自のパレットを持ちます。基本的に、1を指定した方が良いでしょう。


　supermovetime = SuperPause無視時間 (int)

SuperPause中に動ける時間を指定。


　pausemovetime = Pause無視時間 (int)

Pause中に動ける時間を指定。


　size.xscale = 横縮尺 (float)
　size.yscale = 縮尺 (float)
　size.ground.back = 前ぶつかり判定 (int)
　size.ground.front = 後ぶつかり判定 (int)
　size.air.back = 空中での前ぶつかり判定 (int)
　size.air.front = 空中での後ぶつかり判定 (int)
　size.height = 縦ぶつかり判定 (int)
　size.proj.doscale = 飛び道具縮尺適用フラグ (int)
　size.head.pos = 頭の位置 (int,int)
　size.mid.pos = 体の中間の位置 (int,int)
　size.shadowoffset = 影の表示位置 (int)

サイズを指定。省略時は親と同じ値になります。
もっとも、nomalヘルパーは、ぶつかり判定がありませんので、気にする必要は、あまりありません。判定を持たせたい場合は、PlayerPushを使用します。
ちなみに、ground.back〜heightまで、すべて0にした場合、playerpushでぶつかりを発生させても、相手をすり抜けるようになります。

使用例: なし



--------------------------------------------------------------------------------
HitAdd

　連続技実行中、ヒット数を増減します。

パラメータ指定例:

type = HitAdd
trigger1 = time = 0
value = 1

必須パラメータ:


　value = ヒット数増減値 (int)

増減したい値を指定。 
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
HitBy

　一時的に特定の攻撃以外食らわないようにします。回り込み(投げのみ食らう)などに。
　ジャンプの瞬間など「投げのみ食らわない」といった場合は姉妹品のNotHitByを使います。
　また、HitBy効果持続中に、同じスロットのHitBy、NotHitByが実行されると、それまでのHitByの効果は無効となります。

パラメータ指定例:

type = HitBy
trigger1 = 1
value = ,AT
time = 1

必須パラメータ:


　value = 攻撃属性 又は value2 = 攻撃属性

省略不可。攻撃属性で指定できる値は、HitDefのattrパラメータで指定できる値と同じです。
2つのスロットが用意されており、どちらか一方のみ指定可能。
他のHitBy、NotHitBy効果持続中に実行される可能性があるなら、value2の方を使うとよいでしょう。
オプションパラメータ:


　time = 効果持続時間 (int)

指定時間内だけ効果があります。省略時1。特定の技に無敵を付加する場合は、トリガーで持続時間を指定したほうがよいでしょう。
詳細:

2つのスロットが用意されており、どちらもHitByとNotHitByで利用されます。
ステートコントローラが実行されると、指定されたスロットのtimeパラメータで指定された時間がカウントダウンし、0になるまでの間はそのスロットが有効と判断され、有効なすべてのスロットの攻撃属性の攻撃のみ受け付けられます。
HitByを使用することにより、これらのスロットに有効な攻撃属性をセットできます。

使用例:
　trigger1 = 1
　type = HitBy
　value = S, NA

そのステート中は立ち通常攻撃以外食らいません。


--------------------------------------------------------------------------------
HitDef

　airファイルで設定した攻撃判定Clsn1(赤い四角)が敵のやられ判定Clsn2(青い四角)に接触したときのやられ側の動きを設定します。
　そのステート中効果が持続しますが、1回ヒットしたキャラに対しては、効果を及ぼさなくなります。このため、複数ヒットする技の場合は、ヒットさせたい数だけHitDefを定義するか、複数回効果があるようにトリガーを設定する必要があります。
　なお、一度発生したHitDefの効果を完全に無効にするには、別なステートに移行する必要があります。
　Clsn1がない場合、又はmovetypeがA以外の場合は、一時的に判定がなくなります。
　極めて多くのパラメータが用意されており、非常に細かい設定が可能です。

パラメータ指定例:

type = HitDef
trigger1 = animelemtime(2) = 0
attr = S,NA
hitflag = MAF
guardflag = MA
affectteam = E
animtype = Light
air.animtype = Back
fall.animtype = DiagUp
priority = 4,Hit
damage = 40
pausetime = 8, 8
guard.pausetime = 2, 2
sparkno = S2000, 0
guard.sparkno = S2100, 0
sparkxy = -60, 20
hitsound = S10 ,0
guardsound = S20, 0
ground.type = High
air.type = High
ground.slidetime = 20
guard.slidetime = 20
ground.hittime = 20
air.hittime = 20
guard.ctrltime = 20
yaccel = .5
ground.velocity = -4, 0
guard.velocity = -4
air.velocity = -3, -6
airguard.velocity = -3, -6
ground.cornerpush.veloff = 0
air.cornerpush.veloff = 0
down.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
airguard.cornerpush.veloff = 0
airguard.ctrltime = 20
air.juggle = 0
sprpriority = 1
p1facing = 1
p1getp2facing = 0
p2facing = 1
p1stateno = 0
p2stateno = 5000
p2getp1state = 0
forcestand = 0
fall = 1
fall.xvelocity = 0
fall.yvelocity = -4.5
fall.recover = 0
fall.recovertime = 4
fall.damage = 0
air.fall = 1
down.velocity = -3, -6
down.hittime = 10
down.bounce = 1
id = 200
chainID = -1
nochainID = 0, 200
hitonce = 0
kill = 1
guard.kill = 1
fall.kill = 1
numhits = 1
getpower = 50, 25
givepower = 30, 15
palfx.time = 1
palfx.mul = 256,256,256
palfx.add = 256,256,256
envshake.time = 10
envshake.freq = 60
envshake.ampl = -4
envshake.phase = 0
fall.envshake.time = 10
fall.envshake.freq = 60
fall.envshake.ampl = -4
fall.envshake.phase = 0

必須パラメータ:

　attr = 属性1, 属性2 (string)

攻撃の属性を指定します。省略不可。
属性1には、「S」「C」「A」(順に立ち、屈み、空中)のいずれかを指定します。
属性2には、「N」「S」「H」「A」（順に通常、必殺、超必殺、すべて）と、「A」「T」「P」（同じく攻撃、投げ、飛び道具）を組み合わせて指定します。
例えば立ちパンチなどなら attr = S,NA、空中で飛び道具を出す超必殺技なら attr = A,HP と記述します。
空中判定になる地上攻撃(リープアタック等)は、空中扱いにしましょう。ただし、AirやOffsetで見た目のみ浮いている場合は、地上扱いでもかまいません。とりあえず、statetypeと同じにしておけば、問題ないでしょう。


オプションパラメータ:

　hitflag = ヒットフラグ (string)

敵がどういう状態ならヒットするかを指定します。
「H」が立ち、「L」が屈み、「M」が立ち、屈みの両方、「A」が空中、「F」が落下状態、「D」がダウン状態を表し、その組み合わせで指定します。ただし、Dは、Fと組み合わせなければ機能しません。また、Win版では、「P」が追加されており、組み込むことで飛び道具を消せるようになります。
また、これらに「+」を追加すると、食らい状態の敵のみにヒットするようになります。「-」を追加すると食らい状態の敵にはヒットしなくなります。
投げ技など連続技に組み込めない攻撃で有効。
省略するとMAF（ダウン状態にのみヒットしない）になります。


　guardflag = ガードフラグ (string)

敵がどういう状態ならガードできるかを指定します。
「H」が立ち、「L」が屈み、「M」が立ち、屈みの両方、「A」が空中で、これらの組み合わせで指定します。省略時MA(どのような状態でもガード可)。


　affectteam = 影響チーム (string)

チームモード時、どのチームに攻撃が影響するかを指定します。
「B」が敵味方かまわず、「E」が敵のみ、「F」が味方のみです。
省略時はもちろん「E」です。


　animtype = アニメタイプ (string)

相手のリアクションアニメの種類を指定します。
「light」が弱、「medium」が中、「hard」が強、「back」が吹き飛び、「up」が真上吹き飛び、「diagup」が斜め吹き飛びです。省略時は「light」。
ただし、「up」と「diagup」はオプションで、相手が絵を用意してない場合は、「back」と同じ結果になります。さらに、Diagupは見本であるカンフーマンでも使用例が用意されていないため、authorによって解釈がまちまちです。


　air.animtype = 空中でのアニメタイプ (string)

空中でのアニメタイプを指定。省略時はanimtypeと同じ。


　fall.animtype = fall状態時のアニメタイプ (string)

fall状態のときのアニメタイプです。省略時は、air.animtypeがupの時はup、それ以外ならbackです。
※fall状態・・・fall=1。hittimeを過ぎても、受身を取らない限り空中復帰できず、着地すると落下ダウンする状態。これに対し、fall=0の場合、空中で立ち直り、hittimeを過ぎると操作可能となる。また、hittime中でも、着地すると通常のジャンプ着地となる。なお、一度fall=1になると、fall=0の攻撃を受けてもfall=1のままとなる。


　priority = ヒット優先度 (int), 相打ちの挙動 (string)

攻撃の優先度で、1から7までの整数で指定します。省略時は4です。また、相打ち時の挙動を「hit」「doge」「miss」のうちから指定します。
こちらの攻撃と相手の攻撃が同時に発生した場合、数値の高い方のみヒットします。
数値が同じだった場合、「Hit」ならヒット、「Miss」、「Dodge」なら空振りです。「Dodge」の場合、相手の指定が「Hit」でも両者空振りとなります。投げ技に「Hit」を指定すると、不具合が発生する確率が上がります。


　damage = ヒットダメージ,ガードダメージ (int)

ヒット、ガード時のダメージを整数で指定します。省略すると0です。


　pausetime = p1停止時間, p2ブルブル時間 (int)

ヒット時の自分と相手の停止時間を整数で指定します。停止時間中、相手はブルブル揺れます(HitShake状態)。省略時0,0。


　guard.pausetime = p1停止時間, p2ブルブル時間 (int)

ガード時の自分と相手の停止時間を整数で指定します。停止時間中、相手はブルブル揺れます(HitShake状態)。省略した場合、pausetimeと同じになります。


　sparkno = ヒットスパークのアクション番号 (int)

ヒットスパークのアクション番号をfightfx.airから指定します。自分のairファイルから指定したい場合は、"sparkno = S2000,0"のように、先頭にSを記述します。省略時は、cnsで設定した値が使用されます。


　guard.sparkno = ガードスパークのアクション番号 (int)

ガードスパークのアクション番号をfightfx.airから指定します。自分のairファイルから指定したい場合は、"guard.sparkno = S2010,0"のように、先頭にSを記述します。省略時は、cnsで設定した値が使用されます。


　sparkxy = スパークx座標, スパークy座標 (int)

ヒット、ガードスパークの表示位置を指定します。省略時0,0。


　hitsound = グループ番号, アイテム番号 (int)

ヒット音をcommon.sndから指定します。5,0(弱ヒット音)〜5,4(大打撃音)から選ぶことになります。自分のsndファイルから指定したい場合は、"hitsound = S1,0"のように、先頭にSを記述します。


　guardsound = グループ番号, アイテム番号 (int)

ガード音をcommon.sndから指定します。といっても、用意されているのは6,0のみ。自分のsndファイルから指定したい場合は、先頭にSを記述します。


　ground.type = 地上でののけぞり方 (string)

相手の地上でののけぞり方を文字列で指定します。animtypeと似てますが、animtypeは強弱、こちらは上下を区別します。tripとかはanimtypeでもよかったような気もしますが・・・
「High」が上のけぞり、「Low」が下のけぞり、「Trip」が転倒、「non」だと何もなし。「non」は、かなり特殊な振る舞いをしますので、設定しない方が吉。
省略時は「high」です。


　air.type = 空中でののけぞり方 (string)

相手の空中でののけぞり方を文字列で指定します。設定方法はground.typeと同じ。省略時はground.typeと同じ値になります。


　ground.slidetime = ヒットバック時間 (int)

相手が攻撃を受けて後ずさる時間です。この時間が経過すると、ブレーキがかかります。ただし、やられステートのphysicsがSやCになっているため、ヒットバックは摩擦によっても停止します。よって、よろけやられのような、ゆっくりとしたヒットバックは、HitDefでは再現できません。ナニソレ。
省略時0。殆ど意味のないパラメータですが、省略すると、強烈なブレーキがかかってしまうので、省略もできません。


　guard.slidetime = ガードバック時間 (int)

ground.slidetimeのガード版。省略時はguard.hittimeと同値になります。


　ground.hittime = ヒット時間 (int)

相手が攻撃を受けて行動不能になる時間です。長くするほど連続攻撃が繋がりやすくなります。永久コンボが発生しないように、気をつけて設定しましょう。
相手が地上にいる間のみ有効です。省略時0。


　guard.hittime = ガード時間 (int)

相手が攻撃をガードしてから自動的に(キーを後ろに入力しなくても)ガードモーションをとり続ける時間。行動不能時間ではないので注意。
DOS版では、なぜか、実際にゲームに反映されるのは、指定値の半分になります。省略するとground.hittimeと同値になりますが、前述の仕様により、実際のガード時間はground.hittimeの半分となり、硬直は、guard.ctrltime(省略時guard.slidetime)か「ground.hittimeの半分」のどちらか低い方、ということにになります。
「ガードされると凄く不利」というのがDOSの仕様です。DOSでの使用を想定している場合は、ちゃんと設定したほうがよいでしょう。 WIN版では、指定値がそのまま適応されます。


　air.hittime = 空中でのヒット時間 (int)

相手が空中で攻撃を受けて行動不能になる時間です。この時間を過ぎると、相手はコントロールを取り戻します。ちなみに、このときのグラフィックはairにのみ依存するため、見た目が立ち直っていても、時間内なら行動不能(5035番のアニメが短いとき起きる現象)ですし、時間が経過していれば、見た目がのけぞり中でも行動可能(5035番のアニメが長いとき起きる現象)です。省略時は20。つまり、この値に合わせてair(5035番)を設定する必要があります。fallパラメータが1の場合、このパラメータは無効になります。


　guard.ctrltime = ガードからの復帰時間 (int)

相手が攻撃をガードしてからコントロールを取り戻すまでの時間。ただし、どんなに大きな値にしてもguard.hittimeが過ぎれば相手はコントロールを取り戻します。
省略時は、なぜかguard.slidetimeと同値。ちゃんと設定した方がよいパラメータです。


　guard.dist = ガード認識距離 (int)

相手がガード操作を行うことでガードポーズを取るようになる距離をピクセルで指定します。省略時は、cns冒頭で設定した値と同じになります。
基本的に、使用されることのないパラメータです。


　yaccel = 重力 (float)

ヒット時の重力を指定します。省略時は、相手の重力に依存。


　ground.velocity = ヒット速度X, ヒット速度Y (float)

相手が地上で攻撃を受けて移動する速度です。yに負数を指定すると、宙に浮きます。
省略時0,0。地上にいる場合、摩擦の影響を受けます。


　guard.velocity = ガード速度X (float)

相手が地上で攻撃をガードしたとき移動する速度です。垂直方向は指定不可。
省略時はground.velocityと同値。


　air.velocity = 空中ヒット速度X, 空中ヒット速度Y (float)

相手が空中で攻撃を受けたとき移動する速度です。省略時0,0。


　airguard.velocity = 空中ガード速度X, 空中ガード速度Y (float)

相手が空中で攻撃をガードしたとき移動する速度です。省略時は、air.velocityの空中ヒット速度X * 1.5, 空中ヒット速度Y / 2。


　ground.cornerpush.veloff = 地上コーナープッシュ速度 (float)

画面端で地上の相手に攻撃を加えたときに、押し戻される速度を指定します。値が大きくなるほど、画面端から遠くに押し戻されます。
省略時は、attrがAの場合は0、それ以外の場合は、1.3*guard.velocityとなります。
相手の移動距離とは無関係で、相手のshaketimeではなく、自分のpausetimeが0になった瞬間に速度がかかります。


　air.cornerpush.veloff = 空中コーナープッシュ速度 (float)

画面端で空中の相手に攻撃を加えたときに、押し戻される速度を指定します。値が大きくなるほど、画面端から遠くに押し戻されます。
省略時は、ground.cornerpush.veloffと同値になります。


　down.cornerpush.veloff = ダウンコーナープッシュ速度 (float)

画面端でダウン状態の相手に攻撃を加えたときに、押し戻される速度を指定します。値が大きくなるほど、画面端から遠くに押し戻されます。
省略時は、ground.cornerpush.veloffと同値になります。


　guard.cornerpush.veloff = 地上ガードコーナープッシュ速度 (float)

画面端で地上の相手に攻撃をガードされた時に、押し戻される速度を指定します。値が大きくなるほど、画面端から遠くに押し戻されます。
省略時は、ground.cornerpush.veloffと同値になります。


　airguard.cornerpush.veloff = 地上ガードコーナープッシュ速度空中 (float)

画面端で空中の相手に攻撃をガードされた時に、押し戻される速度を指定します。値が大きくなるほど、画面端から遠くに押し戻されます。
省略時は、ground.cornerpush.veloffと同値になります。


　airguard.ctrltime = 空中ガード復帰時間 (int)

相手が空中で攻撃をガードしてからコントロールを取り戻すまでの時間。省略時はguard.ctrltimeと同値。


　air.juggle = ジャグルポイント (int)

fall状態の敵に対する連続技に必要なポイント数を上乗せします。StateDefの"juggle"パラメータと混同しないようにしましょう。
projectile専用のパラメータと思ってよいらしいです。省略時0。


　mindist = x最小座標, y最小座標 (int)

　maxdist = x最大座標, y最大座標 (int)

攻撃がヒットしている間の、P2の移動範囲をP1の位置を基準として指定できますが、このパラメータは一般に使用されません。とありますが、カンフーマンで使われてたり。。。。


　snap = x固定座標, y固定座標 (int)

ヒットした相手を固定する位置を、P1を基準として指定します。
このパラメータも、通常、使用しません。投げ等で相手を指定位置に固定する場合は、TargetBindを使用します。


　sprpriority = スプライト表示優先度 (int)

攻撃が接触した場合のスプライトの表示優先度を指定します。1だと相手の手前、-1だと奥に表示されます。省略時1。


　p1facing = p1の向き (int)

-1にすると、攻撃がヒットした場合に後ろを向きます。主に投げ技で使用。省略時は向きを変えません。


　p1getp2facing = p1の向き (int)

1にすると、攻撃がヒットした場合に相手と同じ方向を、-1で逆を向きます。省略時0(向きを変えない)。p1facingより優先されます。


　p2facing = p2の向き (int)

1にすると、攻撃がヒットした場合、相手に正面を向かせます。-1にすると後ろを向かせます。省略時は向きを変えません。


　p1stateno = ヒット時移行するステート番号 (int)

攻撃がヒットした場合に移行するステートの番号を指定します。主に投げ技で使用。


　p2stateno = ヒット時相手に参照させるステート番号 (int)

攻撃がヒットした場合に、相手に参照させるステートの番号を指定します。これを指定した場合、HitOverrideを仕込んだ相手(Helper等)に攻撃が当たらなくなります。投げ以外には使わない方が良いです。というか、投げに使ってもProjectile等と相打ちした時に致命的な不具合が生じることがあるので、できれば全く使わない方が良いです。
といいたいところですが、代わりに使うことになるTargetStateも扱いが難しいので、不具合を承知で使うのも止むを得ないかもしれません。実際、見本であるカンフーマンでも不具合が発生しますし。。。


　p2getp1state = ステート奪取フラグ (int)

0にすると、p2statenoが無効になります。条件によってp2statenoをon/offするときなどに使用します。p2stateno=0でoffになるんじゃないかって？ステート0は通常モーションですよ？
でもp2statenoは使わない方が…


　forcestand = 強制立たせフラグ (int)

1にすると、しゃがんだ相手にヒットしても立ち食らいポーズをとらせます。省略時は、ground.velocityのy速度が0なら0、0でなければ1です。


　fall = 落下フラグ (int)

通常、相手を浮かせるような攻撃でも、hittimeが終了すれば、相手は立ち直り、着地しますが、fall = 1にした場合、相手は自動では立ち直らず、受身操作（x+y）をしなければダウンします。


　fall.xvelocity = 落下バウンド水平速度 (float)

落下状態のままダウンした場合の、バウンド水平速度を変更する場合、指定します。省略時は速度変更なし。


　fall.yvelocity = 落下バウンド垂直速度 (float)

落下状態のままダウンした場合の、バウンド垂直速度を指定します。省略時-4.5。


　fall.recover = 受身可能フラグ (int)

0にすると相手が落下状態でも受身（x+y）をとれなくなります。省略時1(受身可能)。


　fall.recovertime = 受身可能受付開始時間 (int)

落下状態になってから受身が取れるようになるまでの時間を指定します。pausetimeは含まれません。省略時4。fall.recover = 0にした場合は無効。
追撃できることを想定している技の場合、大きな値を設定するか、fall.recover=0にするとよいでしょう。


　fall.damage = damage_amt (int)

落下状態のままダウンした場合に与えるダメージを指定します。省略時0。


　air.fall = value (int)

空中ヒットしたときのみ落下状態にしたい場合は1にします。fall = 1だと地上やられでも落下状態になります。省略時はfallと同値。


　down.velocity =ダウン追い討ち水平速度, ダウン追い討ち垂直速度 (float)

ダウン追い討ちヒット時ののけぞり速度を指定します。垂直方向の速度が0以外の場合、相手は宙に浮きます。0の場合はスライドします。省略時は、air.velocityと同値。


　down.hittime = ダウン追い討ちヒット時間 (int)

ダウン状態の敵に攻撃が当たったとき、スライドする時間です。down.velocityの垂直速度が0の時のみ有効。


　down.bounce = ダウン追い討ちヒットバウンドフラグ (int)

1にすると、ダウン追い討ちヒット時、fall.xvelocityとfall.yvelocityでバウンドします。down.velocityの垂直速度が0の時のみ有効。
省略時0(バウンドしない)。


　id = ヒットid番号 (int)

識別用のIDをつけることができます。後述と組み合わせることにより、特定の技からは繋がらなかったりするようにできます。
また、Target系のステコン、トリガーが参照するID(HitID)は、このIDの攻撃によりターゲットとなった敵を示します。省略時0。


　chainID = 連続ヒットid番号 (int)

ここで指定したIDからのみ、攻撃が繋がるようになります。省略時-1(すべての攻撃が繋がります)。


　nochainID = 不連続ヒットid番号1,不連続ヒットid番号2 (int)

ここで指定したIDからは攻撃が繋がらなくなります。2つまで指定可。ガード時も繋がらなくなる(攻撃がすり抜ける)ので、使いにくい。。。省略時-1(すべての攻撃が繋がります)。


　hitonce = 1回ヒットフラグ (boolean)

省略時0。1にした場合、複数の敵がいても、1方にしかヒットしなくなります。attrがT(投げ)の場合、1になります。


　kill = KOフラグ (int)

0にすると、その攻撃で相手をKOできなくなります。省略時1。
最後の一撃でのみKOしたい多段攻撃などに。


　guard.kill = ガードKOフラグ (int)

0にすると、ガード時のダメージで相手をKOできなくなります。省略時1。


　fall.kill = 落下KOフラグ (int)

0にすると、落下ダウン時のダメージで相手をKOできなくなります。省略時1。


　numhits = ヒットカウント数 (int)

コンボカウンターに加算されるヒット数です。省略時1。


　getpower = p1ヒットゲージ増加量, p1ガードゲージ増加量 (int)

攻撃がヒットした、ガードされたときに増えるゲージ量です。
省略時は、ヒット時がmugen.cfgのDefault.Attack.LifeToPowerMulパラメータにdamageをかけたものに、ガード時がその半分になります。


　givepower = p2ヒットゲージ増加量, p2ガードゲージ増加量 (int)

攻撃がヒットした、ガードされたときに増える相手のゲージ量です。
省略時は、ヒット時がmugen.cfgのDefault.GetHit.LifeToPowerMulパラメータにdamageをかけたものに、ガード時がその半分になります。


　palfx.time = パレット効果時間 (int)
　palfx.mul = 赤乗算, 緑乗算, 青乗算 (int)
　palfx.add = 赤加算, 緑加算, 青加算 (int)

攻撃ヒット時、相手に色の効果を与えたい場合、各値を指定します。


　envshake.time = ヒット時画面振動時間 (int)
　envshake.freq = 振動数 (float)
　envshake.ampl = 振幅 (int)
　envshake.phase = 位相 (float)

攻撃ヒット時に画面を揺らしたい場合、各値を指定します。


　fall.envshake.time = 落下時画面振動時間 (int)
　fall.envshake.freq = 振動数 (float)
　fall.envshake.ampl = 振幅 (int)
　fall.envshake.phase = 位相 (float)

相手の落下ダウン時に画面を揺らしたい場合、各値を指定します。


　attack.width = z1, z2 (int)

現在、使われておりません。 
使用例: なし



--------------------------------------------------------------------------------
HitFallDamage

　攻撃を受けたとき、HitDefで設定された落下ダメージを与えます(自分に)。共通ステートを上書きするときや、相手に参照させるステートで使用します。

パラメータ指定例:

type = HitFallDamage
trigger1 = time = 0

パラメータはありません

使用例: なし



--------------------------------------------------------------------------------
HitFallSet

　プレイヤーがヒットモーション中にあるとき、落下状態にします。共通ステートを上書きするときや、相手に参照させるステートで使用します。

パラメータ指定例:

type = HitFallSet
trigger1 = time = 0
value = 1
xvel = -2
yvel = -4.5

必須パラメータはありません

オプションパラメータ:


　value = 落下フラグ (int) 
-1で変更なし。1でfall、0だとfallが解除となります。省略時-1。


　xvel = 水平速度 (float)
　yvel = 垂直速度 (float)

速度を変更したい場合は、指定します。 
使用例: なし



--------------------------------------------------------------------------------
HitFallVel

　プレイヤーがヒットモーション中の落下状態にあるとき、相手のHitDefで指定されたfall.xvelとfall.yvelの値を有効にします。
　共通ステートを上書きするときや、相手に参照させるステートで使用します。

パラメータ指定例:

type = HitFallVel
trigger1 = time = 0

パラメータはありません

使用例: なし



--------------------------------------------------------------------------------
HitOverride

　指定した種類の攻撃を受けたときに、指定したステートに移行することができます。カウンター技や、helperのやられなどに。ただし、攻撃側がp2Statenoを設定していると、攻撃が当たらなくなります(不具合防止のため？)。
　なお、このコントローラでMovetypeがH以外のステートに移行すると、HitDefを無効にできますが、ヒットスパークとヒット音は必ず発生してしまいます。
　一度に8種類の指定が可能。

パラメータ指定例:

type = HitOverride
trigger1 = 1
attr = S,AA
slot = 1
stateno = 0
time = 1
forceair = 0

必須パラメータ:


　attr = 攻撃属性

どのような攻撃で有効になるかを指定します。設定できる値はHitDefのattrと同じ。省略不可。
オプションパラメータ:


　slot = スロット番号 (int)

このステートコントローラは一度に8つまで定義ができますが、それぞれslotに指定された番号で区別されます。attr毎に異なる挙動にしたいときに指定。
省略時は0。同じ番号のHitOverrideが有効になると、前のHitOverrideの効果は消えます。


　stateno =ステート番号 (int)

attrの攻撃を受けたときに移行するステートを指定します。省略時-1(ステート移行しない)。のはずですが、-1を指定すると、HitOverrideそのものが機能しなくなります。


　time = 効果時間 (int)

このコントローラの有効時間。省略時は1。-1にすると、同じslotのHitOverrideに上書きされるまで有効。


　forceair = 空中ヒットフラグ (boolean)

1にすると、空中で攻撃を受けたときと同じ状態になります。全ての攻撃でダウンさせたいときに有効らしい。省略時0。 
使用例: なし



--------------------------------------------------------------------------------
HitVelSet

　プレイヤーがやられモーション中であるとき、相手のHitDefで指定された速度を有効にします。
　共通ステートを上書きするときや、相手に参照させるステートで使用します。

パラメータ指定例:

type = HitVelSet
trigger1 = hitshakeover
x = 1
y = 1

必須パラメータはありません

オプションパラメータ:


　x = 水平速度フラグ (int)
　y = 垂直速度フラグ (int)

それぞれの方向の速度を有効にするフラグです。0で無効、0以外で有効。 
使用例: なし

注意:

旧式のコントローラ。の割には、common1.cnsで使われてたり・・・。 


--------------------------------------------------------------------------------
LifeAdd

　体力を増減します。回復技、自爆技などに。相手の防御力は考慮されますが、無視することも可能。

パラメータ指定例:

type = LifeAdd
trigger1 = time = 0
value = -100
kill = 1
absolute = 1
必須パラメータ:


　value = 体力増減量 (int)

体力の増加・減少量を指定。省略不可。
オプションパラメータ:


　kill = KOフラグ (int)

0にすると、ライフが1ポイント残り、KOになりません。省略時1。


　absolute = 絶対量フラグ (int)

1にすると、valueで指定した値が増減されます。省略時は0で、相手の防御力が考慮されます。 
使用例: なし



--------------------------------------------------------------------------------
LifeSet

　体力を指定値に変更します。全回復技、自分が瀕死になる技など。

パラメータ指定例:

type = LifeSet
trigger1 = time = 0
value = 500

必須パラメータ:


　value = 体力変更値 (int)

コントローラ実行後に変更される体力を指定します。 
オプションパラメータはありません 

使用例: なし



--------------------------------------------------------------------------------
MakeDust

　土埃を表示します。絵はfightfx.airのものが使用されます。効果は1フレーム。

パラメータ指定例:

type = MakeDust
trigger1 = time = 0
pos = 0, 0
pos2 = -10, 0
spacing = 3

必須パラメータはありません

オプションパラメータ:


　pos = x出現位置, y出現位置 (int)

出現位置をプレイヤーの相対位置で指定。


　pos2 = 2つ目のx出現位置, y出現位置 (float)

2つ同時に出す場合、2つ目の位置を指定。省略すると、2つ目は出ません。


　spacing = 表示間隔 (int)

何フレームごとに表示するかを指定。省略時3で、3フレームごとに表示されます。1以上を指定すること。 
使用例: なし



--------------------------------------------------------------------------------
ModifyExplod

　Explodで設定できる各値を変更します。将来的に仕様変更される予定だったコントローラで、動作が保証されていませんでしたが、もはやmugenがアップデートされることはないので、使用しても問題ないでしょう。

パラメータ指定例:

type = ModifyExplod
trigger1 = time = 0
ID = 0
pos = 0, 0
postype = p1
facing = 1
vfacing = 1
bindtime = -1
vel = 0, 0
accel = 0, 0
random = 0, 0
removetime = -2
supermovetime = 0
pausemovetime = 0
scale = 1, 1
sprpriority = 1
ontop = 0
shadow = 0, 0, 0
ownpal = 0
removeongethit = 1



--------------------------------------------------------------------------------
MoveHitReset

ヒットフラグ(MoveContact、MoveGuarded、MoveHit、WinではMoveReversedも)を0にします。

パラメータ指定例:

type = MoveHitReset
trigger1 = movecontact

パラメータはありません

使用例: なし



--------------------------------------------------------------------------------
NotHitBy

　一時的に特定の攻撃を食らわなくなります。無敵技、ジャンプ開始モーションなどに。
　姉妹品にHitByがあります。指定方法が異なるだけで、実質的に同じコントローラと思ってよいです。

パラメータ指定例:

type = NotHitBy
trigger1 = 1
value = SC,AT
time = 1

必須パラメータ:


　value = 攻撃属性 又は value2 = 攻撃属性

省略不可。攻撃属性で指定できる値は、HitDefのattrパラメータで指定できる値と同じです。
2つのスロットが用意されており、どちらか一方のみ指定可能。
他のHitBy、NotHitBy効果持続中に実行される可能性があるなら、value2の方を使うとよいでしょう。
なお、value = SCA, NAなどとして通常攻撃のみ食らわないようにしようとしても、全ての攻撃に対し、無敵になります。どうやらSCAを指定すると、問答無用で無敵になるようです。このような場合は、SCAを省略し、value = ,NAとしましょう。
オプションパラメータ:


　time = 効果持続時間 (int)

指定時間内だけ効果があります。省略時1。特定の技に無敵を付加する場合は、トリガーで持続時間を指定したほうがよいでしょう。

詳細:

2つのスロットが用意されており、どちらもHitByとNotHitByで利用されます。
ステートコントローラが実行されると、指定されたスロットのtimeパラメータで指定された時間がカウントダウンし、0になるまでの間はそのスロットが有効と判断され、有効なすべてのスロットの攻撃属性の攻撃のみ受け付けられます。
NotHitByを使用することにより、これらのスロットに有効な攻撃属性をセットできます。

使用例:

　type = NotHitBy
　value = SCA
　trigger1 = 1

一切攻撃を食らわなくなります。


　trigger1 = 1
　type = NotHitBy
　value = , NA, AP

通常攻撃、飛び道具を食らわなくなります。 


--------------------------------------------------------------------------------
Null

　何もしません。ステートコントローラを一時的に無効にするときなどに使用します。動作チェック用。

パラメータ指定例:

type = Null
trigger1 = 1

パラメータはありません



--------------------------------------------------------------------------------
Offset

　プレイヤースプライトの表示位置を変更します。Clns枠もしっかり移動します。1フレームのみ有効。
　見た目のみキャラを移動させる場合に使えます。

パラメータ指定例:

type = Offset
trigger1 = 1
x = -2
y = 0

必須パラメータはありません

オプションパラメータ:


　x = x位置 (float)
　y = y位置 (float)

プレイヤーを基準として指定の表示位置にスプライトをずらして表示させます。 
使用例: なし



--------------------------------------------------------------------------------
PalFX

　プレイヤーのパレットに様々な効果を与えます。

パラメータ指定例:

type = PalFX
trigger1 = time = 0
time = 1
add = 0,0,0
mul = 256,256,256
sinadd = 256,256,256,10
invertall = 0
color = 256

必須パラメータはありません

オプションパラメータ:

　time = 持続時間 (int)

効果の持続時間を指定します。ステートが変わっても有効なので、パレット変更中にやられステートに移行しても効果は持続します。この現象を回避したければ、time=1にして、トリガーで時間を調整します。ただし、その場合sinaddは機能しません。


　add = add_赤, add_緑, add_青 (int)

指定した色要素をプレイヤーのパレットに加算します。省略時は0,0,0で、効果は変更なし。色要素の合計値が大きくなるほど、色が明るくなります。
暗い色ほど指定色に近づきます。例えば、add=256,0,0の場合、真っ黒な箇所は赤くなりますが、真っ白な箇所は真っ白のままです。


　mul = mul_赤, mul_緑, mul_青 (int)

指定した色要素(の1/256)をプレイヤーのパレットに乗算します。省略時は256,256,256で、効果は変更なし。色要素の合計値が小さくなるほど、色が暗くなります。
明るい色ほど指定色に近づきます。例えば、add=64,256,64の場合、真っ白な箇所は緑になりますが、真っ黒な箇所は真っ黒のままです。
add=30,30,30などとして暗い部分を底上げしてから、mulで色を変更すると、指定色のスクリーンを通したような感じになります。
CVSの燃え/電撃やられのように、黒っぽくしたい場合は、mulのみを指定するとよいです。


　sinadd = ampl_赤, ampl_緑, ampl_青, 周期 (int)

指定した色要素を、指定周期(単位はフレーム)の正弦波でプレイヤーのパレットに加算/減算します。例えば、sinadd = 0,0,256,20の場合、5Fかけて青っぽくなり、さらに5Fかけて元に戻り、次に5Fかけて黄色っぽくなってから、5Fかけてまた元に戻る(計20F)、という周期を繰り返します。指定色だけでなく、補色も出てしまうという、謎の仕様です。addパラメータで補色の分を底上げしておきましょう。


　invertall = 反転フラグ (bool)

1にすると、色が反転されます。結果として写真のネガのようになります。


　color = 彩度 (int)

省略時は256(変化なし)ですが、0に近付くにつれ彩度が低下します。0でグレースケール(白黒)になります。
元のパレットに影響を受けずに色合いを変更できます。 
使用例: なし



--------------------------------------------------------------------------------
ParentVarAdd

　helperのステート内で記述。helperの親の変数を増減します。helper以外のステートで書いても意味なし。
　helperは固有の変数を持ちますので、VarAddだとhelper自身の変数を増減することになります。

記述例(整数版):

type = ParentVarAdd
trigger1 = time = 0
v = 0
value = 1

　又は
type = ParentVarAdd
trigger1 = time = 0
var(0) = 1

記述例(小数版):

type = ParentVarAdd
trigger1 = time = 0
fv = 0
value = .1

　又は
type = ParentVarAdd
trigger1 = time = 0
fvar(0) = .11

必須パラメータ:


　v = 整数変数番号 (int)

増減する親の整数変数の番号を0〜59から指定します。


　value = 整数増加量 (int)

増減量を整数で指定します。


　fv = 小数変数番号 (int)

増減する親の小数変数の番号を0〜39から指定します。


　value = 小数変数増加量 (float)

増減量を小数で指定します。

オプションパラメータはありません

代替書式:

　var(番号) = 整数増減量 (整数版)
　fvar(番号) = 小数増減量 (小数版)

こっちの書式を使った方が楽チン。 
注意:

Due to historical reasons, note that the alternate VarAdd syntax listed above matches neither the syntax for variable assignment within an expression, nor the syntax for variable addition within an expression.
相手のステートを奪った状態でこのコントローラを実行すると、相手の親の変数を変更することになってしまいます(helperのステートを奪うことは、あまりないとは思いますが)。失礼な行為に当たりますので、注意。 
使用例: なし



--------------------------------------------------------------------------------
ParentVarSet

　helperのステート内で記述。helperの親の変数に指定値を代入します。helper以外のステートで書いても意味なし。
　helperは固有の変数を持ちますので、VarSetだとhelper自身の変数が対象になります。

記述例(整数版):

type = ParentVarSet
trigger1 = time = 0
v = 0
value = 1

　又は
type = ParentVarSet
trigger1 = time = 0
var(0) = 1

記述例(小数版):

type = ParentVarSet
trigger1 = time = 0
fv = 0
value = .1

　又は
type = ParentVarSet
trigger1 = time = 0
fvar(0) = .11

必須パラメータ:


　v = 整数変数番号 (int)

代入する親の整数変数の番号を0〜59から指定します。


　value = 整数代入値 (int)

代入値を整数で指定します。


　fv = 小数変数番号 (int)

代入する親の小数変数の番号を0〜39から指定します。


　value = 小数変数代入値 (float)

代入値を小数で指定します。

オプションパラメータはありません

代替書式:

　var(番号) = 整数代入値 (整数版)
　fvar(番号) = 小数代入値 (小数版)

こっちの書式を使った方が楽チン。 
注意:

Due to historical reasons, note that the alternate variable assignment syntax listed above does not exactly match the syntax for variable assignment within an expression. 
相手のステートを奪った状態でこのコントローラを実行すると、相手の親の変数を変更することになってしまいます(hlperのステートを奪うことは、あまりないとは思いますが)。失礼な行為に当たりますので、注意。 
使用例: なし



--------------------------------------------------------------------------------
Pause

　時間を止めます。画面上の全てのスプライト、キャラクター、背景に効果を及ぼしますが、-3ステートはPause中も実行されます。
　また、Helper、Explod等は設定により停止時間中も動くことが可能。

パラメータ指定例:

type = Pause
trigger1 = time = 0
time = 1
movetime = 1
必須パラメータ:


　time = 停止時間 (int)

止める時間(フレーム)を1以上の整数で指定。省略不可。
オプションパラメータ:


　movetime = 停止無視時間 (int)

停止時間中に動ける時間を、1以上停止時間以内の整数で指定。停止時間中も、相手に攻撃を加えることが可能。
この時間内は-1ステートが有効になりますが、-2ステートは実行されません。

注意:

このコントローラによる停止時間中に同じコントローラが実行されると、それまでのpauseは無効となります。
SuperPause停止時間中にPaseが実行された場合は、SuperPauseの効果時間が切れてからPauseが有効になります。 
使用例: なし



--------------------------------------------------------------------------------
PlayerPush

　プレイヤーのぶつかり判定の有無を指定します。相手をすり抜けたりする場合に使用。効果は1フレーム。

パラメータ指定例:

type = PlayerPush
trigger1 = 1
value = 0

必須パラメータ:


　value = ぶつかりフラグ (int)

1で判定あり、0で判定なし。省略不可。初期値はプレイヤーが1、ヘルパーが0です。 
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
PlaySnd

　音を鳴らします。

パラメータ指定例:

type = PlaySnd
trigger1 = time = 0
value = 1, 1
volume = 0
channel = 0
lowpriority = 0
freqmul = 1
loop = 0
pan = 0

必須パラメータ:


　value = グループ番号, サウンド番号

プレイヤーのsndファイルから、鳴らす音のグループ番号、サウンド番号を指定。省略不可。common.sndから音を鳴らす場合は、"value = F1, 1"のように、最初にFを記入。
11,0がKOやられ音声である以外は、特に番号に決まりはないため、相手に参照させるステートで使用する場合は、KO音声以外は、common.sndから再生せざるを得ません。
オプションパラメータ:


　volume = 音量

音量を指定。0が標準で、正数だと音が大きく、負数だと小さくなるようです。


　channel = チャンネル番号

チャンネルを指定。同じチャンネルのPlaySndが実行されると、それまで鳴っていた音は止まります。StopSndで特定の音を止める場合にも必要。また、チャンネル0は、ボイス再生専用で、再生中にmovetypeがH(やられ)になると、音が停止するという特性を持っています。省略時は-1で、空いてるチャンネルを使用することになり、再生間隔が短いと、音声がオーバーラップします。キャラ音声の場合は、激しく不自然となるので、忘れずに0を指定しましょう。


　lowpriority = 先方優先フラグ (int)

基本的に、同じチャンネルのPlaySndが実行されると、それまで鳴っていた音は止まりますが、lowpriorityを0以外に指定すると、同じチャンネルの音が鳴ってる場合は、PlaySndが実行されなくなります。チャンネルが-1の場合は無効。


　freqmul = 周波数 (float)

周波数を倍数で指定。例えば1.1にすると、ピッチが1割り増しとなります。たぶん。はじめて〜の〜チュウ〜


　loop = 繰り返しフラグ (int)

0以外を指定すると、サウンドがループするようになります。BGMを鳴らすときなどに？


　pan = パノラマ位置 (int)

音が出る位置を変更することができるようです。左右のスピーカーのバランスで調節するのでしょうか。正で自分の前方、負で後方位置から音が鳴ることになります。単位はピクセル。
うまく使えば、臨場感あふれるサウンドを実現できるかもしれません。MUGENでまともに音が鳴れば。
省略時0。プレイヤーの位置から音が鳴っているはずです。ステレオ環境の方は、気をつけて聞いてみましょう。


　abspan = パノラマ位置 (int)

panとほぼ同じ。panはプレイヤーを基準として位置を指定(正の値が前方、負は後方)しますが、こちらはスクリーンの中央からの位置で指定します。panとの同時指定不可。 
使用例:

　　type = PlaySnd
　　value = 2,0

プレイヤーのsndファイルから2,0に登録されている音を再生します。


　　type = PlaySnd
　　value = F5,2

common.sndファイルから5,2に登録されている音を再生します。 


--------------------------------------------------------------------------------
PosAdd

　ピクセル単位で位置を増減します。瞬時に移動させるときに。

パラメータ指定例:

type = PosAdd
trigger1 = time = 0
x = 1
y = 1

必須パラメータはありません

オプションパラメータ:


　x = 水平移動量 (float)
　y = 垂直移動量 (float)

自分を基準とした移動量を指定。横方向は自分が向いているほうが正。垂直方向は下が正。
なお、小数を指定できるはずですが、座標を返すトリガーをそのまま指定すると、エラーを吐きます。 
使用例: なし



--------------------------------------------------------------------------------
PosFreeze

　一時的にその場に停止します。効果は1フレーム。
　停止している間もVelAddなどの影響を受けます。その場合、停止が終了したときに、停止時間分の速度が加算された状態で動き出します。なお、Gravityは影響を及ぼしません。

パラメータ指定例:

type = PosFreeze
trigger1 = 1
value = 1

必須パラメータはありません

オプションパラメータ:


　value = 停止フラグ (int)

1を指定するとその場に停止します。0で変化なし。省略時1。 
使用例: なし



--------------------------------------------------------------------------------
PosSet

　指定座標に瞬時に移動します。着地の瞬間にY座標を0にするときなどに使います。

パラメータ指定例:

type = PosSet
trigger1 = time = 0
x = 1
y = 1

必須パラメータはありません

オプションパラメータ:


　x = 水平位置 (float)
　y = 垂直位置 (float)

自分を基準とした位置を指定。横方向は自分が向いているほうが正。垂直方向は下が正。
なお、小数を指定できるはずですが、座標を返すトリガーをそのまま指定すると、エラーを吐きます。 
使用例: なし



--------------------------------------------------------------------------------
PowerAdd

　標準パワーゲージを増減します。

パラメータ指定例:

type = PowerAdd
trigger1 = time = 0
value = -1000

必須パラメータ:


　value = 増減量 (int)

標準パワーゲージの増加量を指定。正で増加、負で減少です。1ゲージ1000ポイントが標準ですが、cnsで変更可能。省略不可。 
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
PowerSet

　標準パワーゲージを指定値に変更します。

パラメータ指定例:

type = PowerSet
trigger1 = time = 0
value = 0

必須パラメータ:


　value = 変更値 (int)

標準パワーゲージの変更値を指定。省略不可。 
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
Projectile

　飛び道具を出現させます。独自のパラメータ以外にHitDefの全てのパラメータを設定可能。
　ちなみに、飛び道具でもやられ判定を付けないと相殺しません。
　割と細かい設定が可能ですが、それでもあまり複雑な動きはできません。
　このステートコントローラで役不足な場合はhelperを使用します。
　なお、winではプレイヤーへのPalFXの影響を受けてしまいます(バグ？)。ownpal=1を指定してもエラーとはなりませんが、無効です。
　ちなみに、helperが出したProjectileも、本体管理となります。当然、パレットも本体と共用です。
　Projectile専用のパラメータはすべて省略可能ですが、HitDefのattr、hitflag、guardflagは必須です。

パラメータ指定例:

type = Projectile
trigger1 = animelemtime(3) = 0
projID = 1000
projanim = 1000
projhitanim = 1001
projremanim = 1002
projcancelanim = 1003
projscale = 1, 1
projremove = 1
projremovetime = 10
velocity = 8, 0
remvelocity = 0, 0
accel = 0, 0
velmul = 1, 1
projhits = 4
projmisstime = 0
projpriority = 4
projsprpriority = 2
projedgebound = 20
projstagebound = 20
projheightbound = -240, 1
offset = 0, 0
postype = p1
projshadow = 0, 0, 0
supermovetime = 0
pausemovetime = 0

必須パラメータはありません

オプションパラメータ:


　projID = 飛び道具のID番号 (int)

IDを指定。Projectile発生条件などに使用。正の整数のみ指定可。


　projanim = 飛び道具のアニメ番号 (int)

飛び道具のアニメを指定。省略時0。


　projhitanim = ヒット時のアニメ番号 (int)

飛び道具が当たったときのアニメを指定。省略時-1(変更なし)。


　projremanim = 消滅時のアニメ番号 (int)

時間経過や、画面外に出たりして消えるときのアニメを指定。省略すると、ヒット時のアニメが使われます。


　projcancelanim = 相殺時のアニメ番号 (int)

敵の飛び道具等にかき消されたときのアニメを指定。省略すると、消えるときのアニメが使われます。


　projscale = x縮尺, y縮尺 (float)

縮尺を指定。cnsファイルの[Size]群にある"proj.doscale"パラメータが1の場合、同群の"scale"パラメータの影響も受けます。
省略時1,1(変更なし。ただし、proj.doscale=1の場合、プレイヤーのscaleの影響は受ける)。


　projremove = 消滅フラグ (int)

0以外を指定すると、ヒット時に消えるようになります。省略時1。


　projremovetime = 射程時間 (int)

画面に出現してから、消滅するまでの時間を指定。省略時-1(消えない)。


　velocity = 水平速度, 垂直速度 (float)

初速度を指定。省略時0,0。


　remvelocity = 消滅時水平速度, 消滅時垂直速度 (float)

消滅時の速度を指定。省略時0,0。


　accel = 水平加速度, 垂直加速度 (float)

加速度を指定。省略時0,0。


　velmul = 水平速度係数, 垂直速度係数 (float)

加速度を倍数で指定。省略時1,1。


　projhits = ヒット数 (int)

ヒット数を指定。省略時1。


　projmisstime = ミス時間 (int)

複数ヒットする場合、何フレームごとにヒットするかを指定。省略時0。一瞬で全部当たります。
省略しない方がよいとされていますが、misstime中もprojectileは移動するため、ヒット数が多い場合、途中で敵をすり抜けてしまうことがあります。
全段ヒットする飛び道具の場合は、pausetimeの方で調節するのが吉。


　projpriority = 飛び道具優先度 (int)

飛び道具の優先度を指定。ヒット数に関係なく、高い方が低い方をかき消します。但し、かき消した場合、優先度が1下がります。省略時1。
例えば、3ヒットするprojpriority = 3の飛び道具は、飛び道具を2つかき消した後でヒットしても、3ヒットします。


　projsprpriority = スプライト表示優先度 (int)

飛び道具のスプライト表示優先度を指定。省略時3。結構高いです。


　projedgebound = 画面外射程 (int)

画面外に出てから消滅するまでの距離をピクセル(ドット)で指定。省略時40。消滅アニメの半径より小さいと、消滅アニメが画面にはみ出ます。


　projstagebound = ステージ外射程 (int)

ステージ外に出てから消滅するまでの距離をピクセル(ドット)で指定。省略時40。消滅アニメの半径より大きくしましょう。


　projheightbound = 上空射程, 地上射程 (int)

飛び道具の上下射程を指定。この範囲を超えると、消滅します。
省略時-240,1。上空240ピクセル、地下1ピクセルで消滅します。


　offset = 水平発射位置, 垂直発射位置 (int)

postypeを基準とした発射位置を指定。省略時0,0。


　postype = 発射基準位置

どこを発射位置の基準(0,0)にするかを、文字列で指定。

　　- p1

自分。向いている方が正方向。

　　- p2

直近の敵。直近の敵が向いている方が正方向。敵が2人以上いる場合は、うまく表示されないことも。

　　- front

自分が向いている方向の画面上端。画面中央方向が負数となるらしい。

　　- back

自分が背を向けている方向の画面上端。画面中央方向が正数となるらしい。

　　- left

画面左上。右方向が正。

　　- right

画面右上。左方向が正。


　projshadow = 赤影, 緑影, 青影 (int)

影の色を指定。-1でステージ依存。省略時0,0,0(影なし)。255,255,255でまっくろ。


　supermovetime = superpause無視時間 (int)

superpause中に動ける時間を指定。コントローラの実行主体は問いません。


　pausemovetime = pause無視時間 (int)

pause中に動ける時間を指定。コントローラの実行主体は問いません。 


--------------------------------------------------------------------------------
RemoveExplod

　Explodで出現させたスプライトを消滅させます。

パラメータ指定例:

type = RemoveExplod
trigger1 = time = 0
ID = 1000

　ID = 消滅させるExplodのID (int)

消滅させたいExplodのIDを指定します。省略時は、全てのExplodを消します。 


--------------------------------------------------------------------------------
ReversalDef

　プレイヤーの攻撃判定枠Clns1(赤い四角)と敵の攻撃判定枠(つまり攻撃判定同士)が接触したときの動作(以下、「反撃」)を設定します。
　設定できるのはHitDefのパラメータのうちpausetime, sparkno, sparkxy, hitsound, p1stateno, p2statenoと、以下の必須パラメータです。
　当て身投げ、弾き、回避技などに。

パラメータ指定例:

type = ReversalDef
trigger1 = animelemtime(2) = 0
reversal.attr = SA,NA,SA
pausetime = 10,10
sparkno = S8000,0
sparkxy = 0,0
hitsound = S1,1
p1stateno = 1000
p2stateno = 1001

必須パラメータ:


　reversal.attr = 反撃属性1,反撃属性2

どのような攻撃を受けたときに反撃するかを文字で指定。
反撃属性1には、「S」「C」「A」(順に立ち、屈み、空中)のいずれかを指定します。
反撃属性2には、「N」「S」「H」「A」（順に通常、必殺、超必殺、すべて）と、「A」「T」「P」（同じく攻撃、投げ、飛び道具）を組み合わせて指定します。
例えば、reversal.attr = SA,NA,SAとした場合は、立ち又は空中で出す通常攻撃、必殺技に対し、反撃します。

オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
ScreenBound

　カメラ？がプレイヤーを追うか否かを設定します。
　軌道の低いジャンプや高速で往復したりする場合などは、画面を固定した方がよいことが多いです。1フレームのみ有効。

パラメータ指定例:

type = ScreenBound
trigger1 = 1
value = 1
movecamera = 1,0

必須パラメータはありません

オプションパラメータ:


　value = 画面固定フラグ (int)

0を指定すると、カメラがプレイヤーを追わなくなります。敵との距離が離れると、敵のみカメラが追うため、自分は画面の外に出ることになります。
フラグが解除されたときに、プレイヤーがステージのスクロール距離の範囲外にいる場合、その範囲内に強制的に引き戻されます。この仕様が問題で、たとえ画面内にいても、スクロール距離までワープしてしまいます。


　movecamera = 水平移動フラグ, 垂直移動フラグ (int)

省略時0,0。カメラがプレイヤーを追わなくなります。0以外を指定すると、その方向にはカメラが追うようになります。縦方向のみ固定する場合等に。 
使用例: なし



--------------------------------------------------------------------------------
SelfState

　ChangeStateと同じく、ステートを変更するコントローラですが、相手のステートを参照している場合に、自分のステートに変更するという点で異なります。
　HitDefのP2StateパラメータやTargetStateを使った場合、必ずSelfStateで元に戻すようにしましょう。
また、ChangeStateの代わりとして普通に使えます。-2ステートに記述すれば、相手のステートから無理矢理抜けることもできますが、不具合の元です。

パラメータ指定例:

type = SelfState
trigger1 = animtime = 0
value = 0
ctrl = 1
anim = 0



--------------------------------------------------------------------------------
SprPriority

プレイヤーのスプライト表示優先度を変更します。

パラメータ指定例:

type = SprPriority
trigger1 = animelemtime(3) = 0
value = 0
必須パラメータ:


　value =スプライト表示優先度 (int)

スプライト表示優先度を-5から5までの値を指定。当然、値が大きいほうが手前に表示されます。

オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
StateTypeSet

　プレイヤーのステートタイプ、行動状態、物理状態を変更します。技の途中で宙に浮いたりする場合に使用します。

パラメータ指定例:

type = StateTypeSet
trigger1 = animelemtime(3) = 0
statetype = S
movetype = I
physics = N

必須パラメータはありません

オプションパラメータ:


　statetype = ステートタイプ (string)

立ち、しゃがみ等の状態を文字で指定します。Aが空中、Cがしゃがみ、Sが立ち、Lがダウンです。省略した場合、ステートタイプは変化しません。


　movetype = 行動状態 (string)

行動状態を文字で指定。Iが待機状態、Aが攻撃中、Hがくらい中です。省略した場合、行動状態は変化しません。
Aの場合、HitDefが有効になり、敵もガードモーションをとれるようになります。また、Hの場合、相手のHitDefが有効になります。逆を言うと、Aでなければ攻撃しても無効ですし、Hでなければ攻撃を受けてもダメージを受けません。
通常、攻撃を受けた場合、自動的にmovetype=Hのステート(120〜150番台と5000番台)に変更されるため、あまり気にとめることはありませんが、HitOverrideを使う場合や、相手のステートを奪う場合は、注意する必要があります。


　physics = 物理状態 (string)

物理状態を文字で指定。Aが空中、Cがしゃがみ、Sが立ち、Nが何もなし。省略した場合、物理状態は変化しません。
Aだとcnsで設定されている重力がかかり、着地時は自動的に着地ステートに移行します。C、Sの場合cnsで設定されている摩擦がかかります。Nは何もなし。重力も摩擦もかかりません。

使用例: なし



--------------------------------------------------------------------------------
SndPan

　PlaySnd実行中、特定チャンネルのサウンドのpan/abspanパラメータを変更します。

パラメータ指定例:

type = PlaySnd
trigger1 = time = 0
pan = 20

必須パラメータ:


　channel = チャンネル番号 (int)

パンしたいチャンネルの番号を指定。


　pan = パノラマ距離 又は abspan = パノラマ距離 (int)

音を鳴らしたい位置を、ピクセルで指定。基準位置(0)は、panの場合が、プレイヤー位置、abspanの場合がスクリーン中央です。省略不可。
これらのパラメータは、同時に指定できません。

オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
StopSnd

　特定チャンネルのサウンドを止めます。

パラメータ指定例:

type = StopSnd
trigger1 = time = 0
channel = 1

必須パラメータ:


　channel = チャンネル番号 (int)

止めたい音のチャンネルを指定。省略不可。
-1で全ての音を止めることができますが、全プレイヤーが対象ですので、乱用してはいけません。
オプションパラメータはありません

使用例: なし



--------------------------------------------------------------------------------
SuperPause

　必殺技演出用に時間を止めます。Pauseも参照のこと。画面の暗転、超必殺技エフェクトも指定可能。
　時間が止まっている間は、ステート時間も経過しませんが、設定によっては行動可能。
　なお、-3ステートは、このステートコントローラを無視します。

パラメータ指定例:

type = SuperPause
trigger1 = time = 0
time = 30
anim = S3100
sound = S100,1
pos = 0,-50
movetime = 30
darken = 1
p2defmul = 1
poweradd = -1000
unhittable = 1

必須パラメータはありません

オプションパラメータ:


　time = 停止時間 (int)

止める時間を指定。省略時30(標準で0.5秒)


　anim = 超必殺演出アニメ番号 (int)

演出用のアニメを指定。省略時30。fightfx.airの30番が再生されます。自分のairから選ぶ場合は、"anim = S10"のように、最初にSを記述。


　sound = サウンド番号, グループ番号 (int, int)

演出用のサウンドを指定。省略時-1(音なし)。標準ではcommon.sndから再生されますので、自分のsndから選ぶ場合は、"sound = S10,0"のように、最初にSを記述。


　pos = x表示位置, y表示位置 (float)

アニメの表示位置を指定。省略時0,0。


　movetime = 停止無視時間 (int)

停止時間中に動ける時間を指定。省略時0。この時間中は、-1ステートも有効になりますが、-2ステートは実行されません。


　darken = 暗転フラグ

省略時1で、時間停止中は画面が暗くなります。暗くしたくない場合、0を指定。


　p2defmul = p2防御力 (float)

ターゲット(自分の攻撃でヒット/ガード状態になった相手)の防御力を倍数で指定。1だと、生でぶち当てた場合と同じダメージになります。
省略時0で、この場合は、mugen.cfgの[Rules]セクションで設定したSuper.TargetDefenceMulの値が適用されます。


　poweradd = パワーゲージ増減量 (int)

パワーゲージを増減します。省略時0。通常、-3000〜-1000を指定することになるでしょう。


　unhittable = 無敵フラグ (boolean)

0を指定すると、時間停止中も相手の攻撃を受けるようになります。省略時1。 
注意:

Pauseコントローラ実行中にSuperPauseが実行されると、Pauseは中断されます。SuperPauseの効果が終了すると、Pauseの効果が再開されます。
使用例: なし


--------------------------------------------------------------------------------
Tagin

タッグ戦用で、パートナーを指定のステートに移動させます。 

type = Tagin 
trigger1 = Time = 0 
stateno = 821;自身が移動するステート 
partnerstateno = 5110;パートナーが移動するステート 


--------------------------------------------------------------------------------
TargetBind

　自分の位置を基点にターゲット(自分の攻撃によりヒット/ガード中の相手)を固定します。主に投げ技に使用。
　ガードされた場合でも有効であることも十分考慮しましょう。

パラメータ指定例:

type = TargetBind
trigger1 = 1
time = 1
ID = 800
pos = 0, 0

必須パラメータはありません

オプションパラメータ:


　time = 固定時間 (int)

固定する時間を指定。省略時1。


　ID = ヒットID (int)

固定する敵のヒットIDを指定。省略時-1(全てのターゲットを固定)。


　pos = x位置, y位置 (float)

プレイヤーの原点座標からの位置を指定。省略時0,0。
注意:

Target○○○の命令は、特定のターゲットを指定できないため、敵が2以上いるsimulモードでは不具合が出やすいです。
例えば、1方がヒット、1方がガードだった場合でも、両方巻き込んでしまいます。
両方ともヒットIDは同じであるため、ヒットの方だけ対象にすることは不可能です。
よく考えてトリガーを設定しましょう。


--------------------------------------------------------------------------------
TargetDrop

　複数のターゲットがいる場合、特定のもの以外をターゲットから除外します。

パラメータ指定例:

type = TargetDrop
trigger1 = time = 0
excludeID = 800
keepone = 1

必須パラメータはありません

オプションパラメータ:


　excludeID = 除外ID (int)

ターゲットとして残す敵をIDで指定。
もちろん、IDはヒットID(攻撃を当てたHitDefのID)です。
省略時-1。全てのターゲットがターゲットでなくなります。よって、コンボカウンターが止まります。


　keepone = タイマンフラグ (int)

残すターゲットが複数いた場合、ランダムで1体を残し、後はターゲットから外します。省略時1。0にすると、excludeIDで指定したヒットIDの敵は、全てターゲットとして残ります。
使用例: なし



--------------------------------------------------------------------------------
TargetFacing

　ターゲットの向きを変更します。投げ技などに使用。

パラメータ指定例:

type = TargetFacing
trigger1 = time = 0
value = 1
ID = 800

必須パラメータ:


　value = 敵の向き (int)

正数を指定すると、ターゲットがプレイヤーの方向を、負数で逆を向きます。省略不可。
オプションパラメータ:

　ID = ヒットID (int)

対象とするターゲットのヒットIDを指定。でも、ヒットIDって、IDの意味があまりないです。省略時-1(全てのターゲットが対象)。
使用例: なし



--------------------------------------------------------------------------------
TargetLifeAdd

　ターゲットの体力を増減します。投げなどに使用。攻撃力、防御力も考慮されます。

パラメータ指定例:

type = TargetLifeAdd
trigger1 = time = 0
value = -100
ID = 800
kill = 1
absolute = 1

必須パラメータ:


　value = 体力増減値 (int)

増減する値を指定。減らす場合は負数。攻撃力、防御力の影響を受けますので、指定値がそのまま増減するわけではありません。省略不可。
オプションパラメータ:

　ID = ヒットID (int)

対象とするターゲットのヒットIDを指定。省略時-1(すべてのターゲットが対象)。


　kill = KOフラグ (int)

0にすると、このコントローラでは死ななくなります。省略時1。


　absolute = 定数フラグ (int)

1にすると、attack/deffencemulを無視します。省略時1。
使用例: なし



--------------------------------------------------------------------------------
TargetPowerAdd

　ターゲットのパワーゲージを増減します。

パラメータ指定例:

type = TargetPowerAdd
trigger1 = time = 0
value = 50
ID = 800

必須パラメータ:


　value = ゲージ増減量 (int)

増減する値を指定。減らす場合は負数。
オプションパラメータ:

　ID = ヒットID (int)

対象とするターゲットのヒットIDを指定。省略時-1(すべてのターゲットが対象)。
使用例: なし



--------------------------------------------------------------------------------
TargetState

　ターゲットのステートを指定値に変更します。このコントローラで、相手はプレイヤーのステートを参照するようになります。
　なお、ターゲットとは、自分の攻撃でヒット、ガード状態となった相手のことを指します。ガードも含まれることに注意。
　ステートを奪った状態で相手がコントロール可能になると、歩く、ジャンプなどの共通動作が可能となりますが、このときもこちらの共通動作ステートを参照しています。なお、-1ステートは参照できませんので、攻撃はできません。ただ、-2ステートは、相手のステートを参照している場合も有効なので、内容によっては操作可能ですが、ChangeStateの対象はこちらのステートなので、不具合が生じる可能性が高いです。
　この状態は、攻撃を受けるか、防御することで元に戻りますが、SelfStateで元に戻すのが普通です。
　HitDefのP2statenoの代わりに使うこともできますが、simulモードや、連続技に組み込める技で使用する場合は、不具合が起きやすいので、トリガーの設定には十分注意しましょう。

パラメータ指定例:

type = TargetState
trigger1 = time = 0
value = 800
ID = 800

必須パラメータ:


　value = ステート番号 (int)

ターゲットに参照させるステート番号を指定。省略不可。 
オプションパラメータ:

　ID = ヒットID (int)

対象とするターゲットのヒットIDを指定。省略時-1(すべてのターゲットが対象)。
特定のターゲットを指定できないため、非常に取扱が難しいです。TargetDropで対象を特定してから使うのが吉。
使用例: なし



--------------------------------------------------------------------------------
TargetVelAdd

　ターゲットの速度を増減します。

パラメータ指定例:

type = TargetVelAdd
trigger1 = 1
x = .1
y = .5
ID = 800

必須パラメータはありません

オプションパラメータ:

　x = 水平加速度 (float)
　y = 垂直加速度 (float)

各方向の速度加算量を指定。水平方向は、ターゲットが向いている方向が正。垂直方向は、下方向が正です。両方同時に指定できますし、どちらか一方指定してもかまいません。


　ID = ヒットID (int)

対象とするターゲットのヒットIDを指定。省略時-1(すべてのターゲットが対象)。

使用例:
　type = TargetVelAdd
　y = 0.45

全てのターゲットに重力を与えます。


--------------------------------------------------------------------------------
TargetVelSet

　ターゲットの速度を指定値に変更します。

パラメータ指定例:

type = TargetVelSet
trigger1 = time = 0
x = -4
y = -8
ID = 800

必須パラメータはありません

オプションパラメータ:

　x = 水平速度 (float)
　y = 垂直速度 (float)

各方向の速度を指定。水平方向は、ターゲットが向いている方向が正。垂直方向は、下方向が正です。両方同時に指定できますし、どちらか一方指定してもかまいません。


　ID = ヒットID (int)

対象とするターゲットのヒットIDを指定。省略時-1(すべてのターゲットが対象)。

使用例: なし



--------------------------------------------------------------------------------
Trans

　Airファイルの透過指定を1フレームのみ変更します。エフェクト等に使用。
　このコントローラは、Win版で新たに追加されたものです。このコントローラを使用しているキャラは、Dos版では使用することができません。

パラメータ指定例:

type = Trans
trigger1 = 1
trans = addalpha
alpha = 128, 128

必須パラメータ

　trans = 透過型 (string)

透過型には、以下のいずれかの文字列を指定します :
default - 透過指定を変更しません
none - 透過を無効にします
add - 加算透過を指定します
addalpha - 加算透過をアルファ値で指定します
add1 - 加算透過を アルファ値256,128で指定します
sub - 減算透過を指定します

オプションパラメータ:

　alpha = ソースアルファ, デスティネーションアルファ (int, int)

透過型が"addalpha"の場合に指定します。有効範囲は0(低)から256(高)です。省略時256, 0。
ソースアルファは、透過させるスプライトの透過度、デスティネーションアルファは、スプライト透過の目的となるピクセル(背景と考えると、実際には異なるが、わかり易い)の透過度、ということになります。
使用例:

　; 256フレームかけて、キャラをフェードインさせます。
　type = Trans
　trigger1 = time < 256
　trans = addalpha
　alpha = time, 256-time




--------------------------------------------------------------------------------
Turn

　振り向きます。そんだけ。相手を後ろに投げる技の途中で振り向く場合や、相手に背を向けたい場合などに。

パラメータ指定例:

type = Turn
trigger1 = time = 0

パラメータはありません

使用例: なし



--------------------------------------------------------------------------------
VarAdd

　変数を増減します。整数・小数どちらの変数も扱えますが、同時に指定することはできません。

記述例(整数版):

type = VarAdd
trigger1 = time = 0
v = 0
value = 1

　又は
type = VarAdd
trigger1 = time = 0
var(0) = 1

記述例(小数版):

type = VarAdd
trigger1 = time = 0
fv = 0
value = .1

　又は
type = VarAdd
trigger1 = time = 0
fvar(0) = .1

必須パラメータ:


　v = 整数変数番号 (int)

増減する整数変数の番号を0〜59から指定します。


　value = 整数増加量 (int)

増減量を整数で指定します。


　fv = 小数変数番号 (int)

増減する小数変数の番号を0〜39から指定します。


　value = 小数変数増加量 (float)

増減量を小数で指定します。

オプションパラメータはありません

代替書式:

　var(番号) = 整数増減量 (整数版)
　fvar(番号) = 小数増減量 (小数版)

こっちの書式を使った方が楽チン。なお、ムゲンは基本的に大文字、小文字を区別しませんが、「代替書式」だけは小文字オンリーで、大文字を使うと無効となります。エラー報告されないのでやっかい。
注意: 
Due to historical reasons, note that the alternate VarAdd syntax listed above matches neither the syntax for variable assignment within an expression, nor the syntax for variable addition within an expression.
相手のステートを奪った状態でこのコントローラを実行すると、相手の変数を変更することになってしまいます。失礼な行為に当たりますので、注意。
使用例: なし



--------------------------------------------------------------------------------
VarRandom

　変数に0〜1000の乱数を代入します。fvarに代入することはできません。用途は様々。

パラメータ指定例:

type = VarRandom
trigger1 = time = 0
v = 0
range = 5,10

必須パラメータ:


　v = 整数変数番号 (int)

増減する整数変数の番号を0〜59から指定します。省略不可。

オプションパラメータ:

　range = 乱数最小値, 乱数最大値 (int)

発生させる乱数の最小値と最大値を指定します。ここで指定した範囲の整数が、無作為に変数に代入されます。
省略時0,1000。第1引数が0の場合は、省略可能。例えば、0〜10の乱数を代入したい場合は、range = 10と書いても可。 
注意:

相手のステートを奪った状態でこのコントローラを実行すると、相手の変数を変更することになってしまいます。失礼な行為に当たりますので、注意。 
使用例:
　type = VarRandom
　v = 5
　range = 500

Var(5)に0以上500以下の乱数を代入します。 


--------------------------------------------------------------------------------
VarRangeSet

　指定した範囲の番号の変数に、一気に同じ値を代入します。整数変数、小数変数ともに代入可能ですが、両方を同時に扱うことはできません。

パラメータ指定例(整数版):

type = VarRangeSet
trigger1 = time = 0
value = 100
first = 40
last = 50

パラメータ指定例(小数版):

type = VarRangeSet
trigger1 = time = 0
fvalue = .1
first = 5
last = 10

必須パラメータ (整数版):

　value = 整数代入値 (int)

代入する整数値を指定。省略不可。 
必須パラメータ (小数版):

　fvalue = 小数代入値 (float)

代入する小数値を指定。省略不可。 
オプションパラメータ (整数、小数共通):

　first = 最初の変数番号 (int)

値を変更する変数の範囲のうち、最初の変数の番号を指定します。省略時0。


　last = 最後の変数番号 (int)

値を変更する変数の範囲のうち、最初の変数の番号を指定します。
省略時の値は、整数変数に代入する場合は59、小数の場合は39です。すなわち、first、lastともに省略した場合、全ての整数または小数変数に同じ値を代入することになります。 
注意:

敵が参照するプレイヤーのステート内で変数を操作すると、敵の変数を変えることになってしまいます。注意。 
使用例:
　type = VarRangeSet
　value = 0
　first = 2
　last = 10

var(2)からvar(10)に0を代入します。 


--------------------------------------------------------------------------------
VarSet

　変数を指定値に変更します。整数・小数どちらの変数も扱えますが、同時に指定することはできません。

記述例(整数版):

type = VarSet
trigger1 = time = 0
v = 0
value = 1

　又は
type = VarSet
trigger1 = time = 0
var(0) = 1

記述例(小数版):

type = VarSet
trigger1 = time = 0
fv = 0
value = .1

　又は
type = VarSet
trigger1 = time = 0
fvar(0) = .1

必須パラメータ:


　v = 整数変数番号 (int)

変更する整数変数の番号を0〜59から指定します。


　value = 整数増加量 (int)

代入値を整数で指定します。


　fv = 小数変数番号 (int)

変更する小数変数の番号を0〜39から指定します。


　value = 小数変数増加量 (float)

代入値を小数で指定します。

オプションパラメータはありません

代替書式:

　var(番号) = 整数増減量 (整数版)
　fvar(番号) = 小数増減量 (小数版)

こっちの書式を使った方が楽チン。なお、ムゲンは基本的に大文字、小文字を区別しませんが、「代替書式」だけは小文字オンリーで、大文字を使うと無効となります。エラー報告されないのでやっかい。
注意: 
Due to historical reasons, note that the alternate VarAdd syntax listed above matches neither the syntax for variable assignment within an expression, nor the syntax for variable addition within an expression.
相手のステートを奪った状態でこのコントローラを実行すると、相手の変数を変更することになってしまいます。失礼な行為に当たりますので、注意。
使用例:
　type = VarSet
　var(10) = 0

　　var(10)に0を代入。ちなみに、:=演算子でも代入は可能。

　type = VarSet
　var(10) = (var(11) := 1)+(var(12) := 1)

　　var(11)とvar(12)に1を、var(10)に2を代入。
　　代入と同時に参照することはあまりありませんので、初期化くらいにしか使えませんが･･･



--------------------------------------------------------------------------------
VelAdd

　速度を増減します。

パラメータ指定例:

type = VelAdd
trigger1 = 1
x = .1
y = .5

必須パラメータはありません

オプションパラメータ:

　x = 水平加速度 (float)
　y = 垂直加速度 (float)

各方向の加速度を指定。水平方向は、ターゲットが向いている方向が正。垂直方向は、下方向が正です。両方同時に指定できますし、どちらか一方指定してもかまいません。


使用例:
　type = VelAdd
　y = 0.45

プレイヤーに重力をかけます。 


--------------------------------------------------------------------------------
VelMul

　速度を倍数指定で増減します。浮力、摩擦等に使用。

パラメータ指定例:

type = VelMul
trigger1 = 1
x = .9
y = .9

必須パラメータはありません

オプションパラメータ:

　x = 水平方向乗算速度 (float)
　y = 垂直方向乗算速度 (float)

各方向の速度乗算量を指定。水平方向は、ターゲットが向いている方向が正。垂直方向は、下方向が正です。両方同時に指定できますし、どちらか一方指定してもかまいません。

使用例:
　type = VelMul
　x = 0.8

プレイヤーに摩擦をかけます。 


--------------------------------------------------------------------------------
VelSet

　速度を指定値に変更します。

パラメータ指定例:

type = VelMul
trigger1 = time = 0
x = 4
y = -6

必須パラメータはありません

オプションパラメータ:

　x = 水平方向乗算速度 (float)
　y = 垂直方向乗算速度 (float)

各方向の速度を指定。水平方向は、ターゲットが向いている方向が正。垂直方向は、下方向が正です。両方同時に指定できますし、どちらか一方指定してもかまいません。

使用例: なし



--------------------------------------------------------------------------------
Width

　キャラや画面端の幅を変更します。例えば、edge=40とすると画面端から40ピクセルの範囲はプレイヤーが進入不可になります。
投げ技等の場合、これを使わないと画面端で位置が狂ってしまいます(screenboundを使うサムスピ式の方法もありますが)。
1フレームしか効果が無いので注意。

パラメータ指定例:

type = Width
trigger1 = 1
edge = 64,64
player = 32,32

又は:

type = Width
trigger1 = 1
value = 64,64

必須パラメータはありません

オプションパラメータ:

　edge = 前方画面端幅, 後方画面端幅 (int)

画面端に対するプレイヤーの幅をピクセル単位指定。画面端から指定値までの範囲は進入不可能になります。省略時0,0。


　player = 前方プレイヤー幅, 後方プレイヤー幅 (int)

相手に対するプレイヤーの幅を指定。省略時0,0。 
代替書式:

　value = 前方幅, 後方幅 (int)

画面端とプレイヤーの幅を指定。 
注意: 
デバッグモードで、判定枠を表示(Ctrl+C)させると、対画面端幅を示すバーが橙で、対プレイヤー幅を示すバーが黄色で、重なっている部分が明るい黄色で表示されます。 
使用例: なし 

--------------------------------------------------------------------------------
-トリガー一覧-------------------------------------------------------------------
--------------------------------------------------------------------------------
MUGENにおいて、様々な状態を調べることができる「トリガー」の索引です。


この索引では、プログラムの処理結果を画面に反映する単位時間を「フレーム」と表記しています(doc中ではtickとなっています)。最近の格ゲーでは、1フレームが60分の1秒となっているのが普通ですが、mugenでは自由に変更できます。でも初期設定はやっぱり1/60秒。つまり、1/60秒ごとに画面が描きかえられています。
まあ、ここの設定を変更するする人は、あまりいないと思いますので、mugenにおいては、1フレーム=1/60秒と思ってもらって結構かと思います。


トリガーにはステートコントローラを実行する条件を記述します。

trigger1 = 条件式

トリガーの右辺が0以外の数値になると、ステートコントローラ（以下ステコン）が実行されるようです。
trigger1 = 1とすると、そのステート中、常にステコンが実行されます。
PlaySndなどにこのトリガーを設定すると1フレームごとに音が鳴ってしまいますので、

trigger1 = Time = 10

のように一瞬しか効果のないトリガーを指定します。このトリガーの場合、
Timeが1から9までの間は「Time = 10」の値は偽(0)で、
10になったとき真(1)となり、
10を過ぎるとまた偽(0)となります。

Time = 10になった瞬間だけPlaySndが実行され、音が鳴るわけです。
逆にGravityなど1フレームしか効果がないステコンの場合、一瞬しか効果のないトリガーでは効果が得られません。

trigger1 = 1　や　trigger1 = Time >4

などとして効果が持続するようなトリガーを指定する必要があります。初心者が陥りやすい罠(？)です。
ただ、ステートコントローラにpersistent=0というパラメータを指定すれば、トリガーの条件が満たされている間でも一度しか実行されません。


triggerの後ろには番号を付けます。付けないとエラーになります。

（例）
　trigger1 = Anim = 200
　trigger1 = Time = 4
　trigger2 = Anim = 200
　trigger2 = Time = 12

同じ番号のトリガーの条件が満たされたとき、ステコンが実行されます。
上の例ではアクション番号が200でステート経過時間が4フレームの時と、アクション番号が200でステート経過時間が12フレームの時に実行されます。
Anim = 200のようにすべてのトリガーで同じ条件の場合はtriggerallでまとめて記述できます。

　triggerall = Anim = 200
　trigger1 = Time = 4
　trigger2 = Time = 12

同時に条件が満たされたときのトリガーは符号「&&」で連結して記述できます。

　trigger1 = Anim = 200 && Time = 4
　trigger2 = Anim = 200 && Time = 12

どちらかの条件が満たされたときのトリガーは符号「||」で連結して記述できます。

　trigger1 = Anim = 200
　trigger1 = Time = 4 || Time = 12

これらはすべて同じ条件を示します(ただし、意味は全く同じではない)。

複数のトリガーを指定した場合、途中に無効なトリガーがあると、それ以降はすべて無効になってしまいます。例えば、trigger1〜trigger5まである場合、trigger2を書き忘れると、trigger3以降は無効となります。

以上のような使い方をする場合のトリガーを、「コンディショントリガー」と呼びます。

トリガーはステートコントローラのパラメータとして指定も可能です。

type = ChangeAnim
trigger1 = 1
value = anim ← valueに現在のアクションナンバーを指定

このような使い方をする場合のトリガーを、「ファンクショントリガー」と呼びます。

上の例では、そのステート中ずっとアニメの1枚目を表示します。ヒット・ガードやられの時間停止に使われている記述です。 
ただし、特定の状態を判定し、真偽を返す旧式トリガー(***)は、このような使い方はできません。

例えば、animelemトリガーは、直接パラメータに指定できません。
type = ChangeAnim
trigger1 = 1
value = anim
elem = animelem ← エラーになります。

他の旧式もいっしょですが、戻り値を返す記述であれば、しっかり機能します。

value = (ainelem = 2, <0)

こんな指定なら可能。現在のアニメが2枚目の0フレーム目未満(つまり1枚目)であれば、valueに1を、それ以外なら0を指定。あくまで真偽(0か1)を返すトリガーなので、ファンクショントリガーとして使用する意味は、あまりありません。


(ちょっと重要)トリガーのリダイレクト

トリガーが返すのは、基本的に全て自分(プレイヤー)に関する値ですが、リダイレクトキーワードを指定することにより、対象を変更できます。
リダイレクトキーワードには、以下の種類があります。

　parent ･･･ ヘルパーのステートで使います。親にリダイレクトします。
　root ･･･ ヘルパーのステートで使います。ルートにリダイレクトします。
　helper(helperID) ･･･ ヘルパー(ID指定可能)にリダイレクトします。
　target(hitID) ･･･ ターゲット(ID指定可能)にリダイレクトします。
　partner ･･･ パートナーにリダイレクトします。
　enemy(index) ･･･ 敵(インデックス指定可能)にリダイレクトします。
　enemynear(index) ･･･ 直近の敵(インデックス指定可能)にリダイレクトします。
　playerID(ID) ･･･ プレイヤー(ID指定可能)にリダイレクトします。

例えば、、、

　enemy(0),time ･･･ 最初に見つかった敵(多分IDが最小の敵。未検証)のステート時間を返します。
　enemynear(0),MoveType = A ･･･ 直近の敵が攻撃中の場合、1を返します。
　target(1000),StateNo ･･･ ヒットID1000の攻撃を当てた(ガード含む)ターゲットのステート番号を返します。
　playerID(32),NumProj ･･･ ID32のプレイヤーが出した飛び道具の数を返します。
　helper(10),Pos X ･･･ ヘルパーID10のヘルパーのX座標を返します。

　playerID(ID)以外は、引数を省略できます。
　target(hitID)とhelper(helperID)は、ID指定しても複数のプレイヤーが対象となりますが、参照できるのは、そのうち1体だけで、しかも自分で指定できません。何ソレ。


☆☆　リファレンスの見方　☆☆

トリガー名
書式
概要
戻り値の型
エラー条件
詳細
注意
使用例

の順に並んでおります。たぶん。

トリガー名〜
　トリガーの名称です。
　いくつかのトリガーにある(*,***)という記述は、あまり気にしなくてもよいですが、一応怪しげな説明をしますと、「*」は、引数に決められた値しか指定できないトリガー、「**」は、使わない方がよいトリガー(削除される予定だったもの。TimeModのみが該当)、「***」は、特定の状態を判定して真偽を返す、旧式のトリガーです。(*,***)は、「*」かつ「***」であるという意味です。たぶん。

書式〜
　トリガーの記述のしかたです。
　トリガーには特定の値を受け取ってその計算結果を返すものが多く、このとき受け取る値のことを、ここでは引数（ひきすう）と呼びます。

概要〜
　引数、演算子、オペランド、構成要素等についての概要です。
　Posなど座標を指定するトリガーは、Pos X又はPos Yのように方向要素を指定しなければ機能しません。また、PosとXの間の半角スペースは必須です。

戻り値の型〜
　「戻り値」はトリガーが返す計算結果のことです。「型」には次の種類があります。たぶん。
　boolean（真偽型。1が真、0が偽）、int（整数型）、float(小数型)、chr（文字型）、string（文字列型）。
　ただし、chr、stringを返すトリガーは存在しません。例えば、StateTypeトリガーは、S、C、A等の文字を返すわけではなく、状態を判定して真偽(bool型)を返します。
　ファンクションとして使用する場合は気をつけましょう。
　なお、データ型を間違えてしまっても、問題なく動くことが多いのですが、デバッグモードでエラーログが垂れ流しとなります。特に、座標、速度関係のトリガーは、floatを指定可能なパラメータに使用してもエラーが出ることがあります。注意。

エラー条件〜
　エラーの条件です。正直、よくわかりませんが、あまり気にしなくてもいいようです。

詳細〜
　指定できる演算子が限られている場合や、特定の状態を数値で返すトリガーの場合は、ここに詳しい内容が記述されています。

注意〜
　注意点です。意外と重要なことが書かれていることがあるので、根性で和訳してください。

使用例〜
　ぶっちゃけここだけ見ればほとんどのトリガーの使い方が解ります。一番重要な部分かも。




--------------------------------------------------------------------------------
Abs

　引数の絶対値を返します。

書式: 　abs(引数)

概要:
　引数には、絶対値を計算したい値を指定します。

戻り値の型: 　引数と同じ

エラー条件: 　引数がSFalseの場合、SFalseを返します。



--------------------------------------------------------------------------------
Acos

　引数のアークコサイン（逆余弦）値を返します。つまり、cosθ=引数となるθを、ラジアンで返します。

書式: 　acos(引数)

概要:
　引数には、アークコサイン（逆余弦）を計算したいfloat値を指定します。

戻り値の型: 　float(少数型)

エラー条件:
　引数がSFalseの場合、SFalseを返します。または、引数がアークコサインの範囲外([-1.0,1.0])の場合もSFalseとなります。

使用例:
　value = acos(1)
　　Acos(1)の計算結果をvalueに代入します。結果は約0.0です。引数には可変値を指定するのが普通です。でも単位はラジアン。



--------------------------------------------------------------------------------
Alive

　プレイヤーが生きていれば1を、KOされていれば0を返します。

書式: 　alive

概要: 　なし

戻り値の型: 　boolean int 真偽型(1 又は 0)

エラー条件: 　なし

使用例:
　trigger1 = alive = 0
　　プレイヤーがKOされた場合のトリガー。



--------------------------------------------------------------------------------
Anim

プレイヤーの現在のアクションナンバーを返します。

書式: 　Anim

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = Anim = 200
　　プレイヤーの現在のアクションナンバーが200のときのトリガー。



--------------------------------------------------------------------------------
AnimElem(*,***)

　アニメの順番と、その経過時間を判断する、コンディション専用の旧式トリガー。
　sffファイルでは0から番号を付けることが多いですが、このトリガーでは1から順番を数えます。

　類似品にAnimElemTimeトリガーがあります。
　AnimElemトリガーは、2つの値を判断し、真偽を返す、という無駄の多い仕様なので、AnimElemTimeを使った方が吉。

書式:
　1.　AnimElem = 値1
　2.　AnimElem = 値1, [符号] 値2

概要:
　[符号] には、次のいずれかを指定します(他は無効)。
　　=, !=, <, >, <=, >=
　値1には、何枚目のアニメをチェックするかをintで指定。
　値2には、比較する時間をintで指定。

戻り値の型: 　boolean int 真偽型(1 or 0)

エラー条件:
　無効なアニメ枚数(多すぎ又は少なすぎなど)を指定すると、SFalseを返します。

詳細:
　書式1は、アニメが「値1」枚目になった瞬間に真(1)を返すトリガーです。AnimElem = 値1, =0の略式と考えてよいです。
　書式2は、アニメが「値1」枚目に切り替わってからの経過時間を値2と比較し、真偽を返すトリガーです。

使用例:
　trigger1 = AnimElem = 2
　　アニメが2枚目になった瞬間のトリガー。下の書き方でも一緒です。
　trigger1 = AnimElem = 2, = 0

　trigger1 = AnimElem = 2, = 4
　　アニメが2枚目になってから4フレーム後のトリガー。

　trigger1 = AnimElem = 2, >= 0
　trigger1 = AnimElem = 3, < 0
　　アニメが3枚以上存在するとき、2枚目が表示されている間有効なトリガー。
　　3枚目が存在しない場合、2行目はSFalseを返し、トリガーも成立しません。
　　このような場合、2行目を削除するか、次のトリガーに置き換えるとよいです。
　trigger1 = AnimTime <= 0



--------------------------------------------------------------------------------
AnimElemNo

　特定の経過時間におけるアニメの絵が何枚目かを返します。
　使用に当たっては、時間の経過をよく考慮する必要があります。

書式: 　AnimElemNo(引数)

概要:
　引数には、現時点からの経過時間をintで指定します。
　例えば、0なら現在、-1なら1フレーム前、1なら1フレーム後です。

戻り値の型: 　int

エラー条件:
　引数に、0枚目以前を返すことになるような時間を指定すると、SFalseを返します。

注意:
　ループアニメ部分が表示されている場合、引数にどんな値を指定しても、ループ部分のアニメ順番しか返しません。

使用例:
　trigger1 = AnimElemNo(0) = 2
　　0フレーム後(つまり現在)のアニメの絵が2枚目のときのトリガーです。以下の記述と同じ効果があります。
　　　trigger1 = AnimElem = 2, >= 0
　　　trigger1 = AnimElem = 3, < 0

　trigger1 = AnimElemNo(2) = 4
　　2フレーム後に表示されるアニメが4枚目の場合のトリガー。以下の記述と同じ効果があります。
　　　trigger1 = AnimElem = 4, >= -2
　　　trigger1 = AnimElem = 5, < -2



--------------------------------------------------------------------------------
AnimElemTime

　特定のアニメ順番の経過時間を返します。アニメの順番は0からでなく、1から数えます。
AnimElemトリガーの代わりに登場したトリガー。ファンクションとして使う場合はこちら。

書式: 　AnimElemTime(引数)

概要:
　引数には、経過時間をチェックしたいアニメ順番をintで指定します。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。また、存在しないアニメ順番を指定した場合も、SFalseを返します。

使用例:
　trigger1 = AnimElemTime(2) = 0
　アニメが2枚目の絵になった瞬間のトリガーです。AnimElemトリガーを使用した場合、次のようになります。
　trigger1 = AnimElem = 2

　trigger1 = AnimElemTime(2) = 4
　アニメが2枚目の絵になってから4フレーム後のトリガーです。
　アニメの表示時間が1枚につき2フレームの場合、4フレーム後は3枚目の2フレーム目ということになりますが、その場合もトリガーは成立します。

　trigger1 = AnimElemTime(2) >= 0
　trigger1 = AnimElemTime(3) < 0
　アニメが3枚以上存在するとき、2枚目が表示されている間有効なトリガー。
　3枚目が存在しない場合、2行目はSFalseを返し、トリガーも成立しません。
　このような場合、2行目を削除するか、次のトリガーに置き換えるとよいです。
　trigger1 = AnimTime <= 0



--------------------------------------------------------------------------------
AnimExist

　特定のアクション番号が存在するとき、1を返します。相手に参照させるステートの場合、自分のアニメが対象となります。
　相手に参照させるステートで、相手のアニメを調べる場合は、SelfAnimExistを使います。

書式: 　AnimExist(引数)

概要:
　引数には調べたいアクション番号をintで指定します。

戻り値の型: 　boolean int (1 or 0)

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　trigger1 = !AnimExist(200)
　　アクション番号200が存在しないときのトリガーです。



--------------------------------------------------------------------------------
AnimTime

　アニメ終了からの経過時間を返します。アニメが終了していない場合、終了までの時間を負数で返すことになります。
　アニメが終了した場合、アニメの最初に戻るか、他のアニメに切り替わることになりますので、基本的にこのトリガーが正の数を返すことはありませんが、最後の絵が表示時間-1の場合など、「終わらないアニメ」が表示されているときは、表示時間-1の絵になってからの経過時間が、正の数で返されます。ただし、1枚目の表示時間が-1の場合、1しか返しません。

書式: 　AnimTime

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = AnimTime = 0
　　アニメが終了した時点を意味するトリガーです。



--------------------------------------------------------------------------------
Asin

　引数のアークサイン（逆正弦）値を返します。つまり、sinθ=引数となるθを、ラジアンで返します。

書式: 　asin(引数)

概要:
　引数には、アークサインを計算したい値をfloatで指定します。

戻り値の型: 　float

エラー条件:
　引数がSFalseの場合、SFalseを返します。または、引数がアークサインの範囲外([-1.0,1.0])の場合もSFalseとなります。

使用例:
　value = asin(1)
　　Asin(1)の計算結果をvalueに代入します。結果は約π/2です。引数には可変値を指定するのが普通です。でも単位はラジアン。



--------------------------------------------------------------------------------
Atan

　引数のアークタンジェント（逆正接）値を返します。つまり、tanθ=引数となるθを、ラジアンで返します。

書式: 　atan(引数)

概要:
　引数には、アークタンジェントを計算したい値をfloatで指定します。

戻り値の型: 　float

エラー条件: 　引数がSFalseの場合、SFalseを返します。

使用例:
　value = atan(1)
　　Atan(1)の計算結果をvalueに代入します。結果は約π/4です。位置や速度から角度を計算するのに使えます。単位はラジアンなので、180/piをかけて度にすると良いです。戻り値の型はfloatなので注意。



--------------------------------------------------------------------------------
AuthorName(*,***)

　defファイル中の製作者名を判断し、真偽を返します。製作者名そのものを返すわけではありません。

書式: 　AuthorName [符号] "作者名"

概要:
　[符号]には、次のいずれかを指定します(他は無効)。
　　=, != 
　"作者名"には、製作者の名前を文字列で指定します。ダブルクォーテーションで括らないとエラーになります。

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = Authorname = "Suika"
　製作者名がSuikaさんの場合のトリガー。リダイレクトキーワード"enemy,"、"partner,"等と組み合わせて使用されることが多いです。



--------------------------------------------------------------------------------
BackEdgeBodyDist

　プレイヤーの背面判定から後ろ側の画面端までの距離を返します。

書式: 　BackEdgeBodyDist

概要: 　なし

戻り値の型: 　float

エラー条件: 　なし

使用例:
　trigger1 = BackEdgeBodyDist < 30
　　プレイヤー背中側のぶつかり判定から後方の画面端までの距離が30ピクセル未満のときのトリガー。



--------------------------------------------------------------------------------
BackEdgeDist

　プレイヤーの中心軸から後ろ側の画面端までの距離を返します。

書式: 　BackEdgeDist

概要: 　なし

戻り値の型: 　float

エラー条件: 　なし

使用例:
　trigger1 = BackEdgeBodyDist < 30
　　プレイヤーのX座標中心軸から後方の画面端までの距離が30ピクセル未満のときのトリガー。



--------------------------------------------------------------------------------
CanRecover

　プレイヤーが空中受身(必須動作)を取れる状態のとき、1を返します。

書式: 　CanRecover

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし



--------------------------------------------------------------------------------
Ceil

　小数点以下を切り上げます。

書式: 　ceil(引数)

概要: 　引数には、切り上げしたい小数を指定します。

戻り値の型: 　int

エラー条件: 　引数がSFalseの場合SFalseを返します。

使用例:
　1. value = ceil(5.5)
　　valueに6を代入。
　2. value = ceil(-2)
　　valueに-2を代入。



--------------------------------------------------------------------------------
Command (*,***)

　cmdファイルで設定したコマンド名を判断し、真偽を返します。

書式:
　Command [符号] "コマンド名"

概要:
　[符号]には、次のいずれかを指定します(他は無効)。
　　=, != 
　"コマンド名"には、cmdファイルで設定したコマンド名を文字列で指定します。ダブルクォーテーションで括る必要があります。
　同じ名前の複数のコマンドがある場合、どのコマンドも有効となります。

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = Command = "fireball motion"
　　コマンド "fireball motion"(波動拳?)が入力されたときのトリガーです。



--------------------------------------------------------------------------------
Const (*)

　cnsの冒頭部で設定した各種パラメータを返します。
　自分にとっては定数なので、自分のCnsを参照しても、あまり意味はありません。主に、相手のパラメータを参照したり、相手に参照させるステートで使用したります。

書式: 　Const(パラメータ名)

概要:
　パラメータ名には、参照したいパラメータ名を指定します。指定できる値については詳細を参照のこと。

戻り値の型:
　パラメータによって異なります。

エラー条件: なし

詳細:
　以下はcnsファイル中の[Data]部分で設定されているパラメータを参照します。

　data.life: "life" パラメータを返します。 (int)
　data.attack: "attack" パラメータを返します。 (int)
　data.defence: "defence" パラメータを返します。 (int)
　data.fall.defence_mul: "fall.defence_up" パラメータを f として、 100/(f+100)を返します。 (float)
　data.liedown.time: "liedown.time" パラメータを返します。 (int)
　data.airjuggle: "airjuggle" パラメータを返します。 (int)
　data.sparkno: "sparkno" パラメータを返します。 (int)
　data.guard.sparkno: "guard.sparkno" パラメータを返します。 (int)
　data.KO.echo: "ko.echo" パラメータを返します。 (int)
　data.IntPersistIndex: "IntPersistIndex" パラメータを返します。 (int)
　data.FloatPersistIndex: "FloatPersistIndex" パラメータを返します。 (int)

　以下はcnsファイル中の[Size]部分で設定されているパラメータを参照します。

　size.xscale: "xscale" パラメータを返します。 (float)
　size.yscale: "yscale" パラメータを返します。 (float)
　size.ground.back: "ground.back" パラメータを返します。 (int)
　size.ground.front: "ground.front" パラメータを返します。 (int)
　size.air.back: "air.back" パラメータを返します。 (int)
　size.air.front: "air.front" パラメータを返します。 (int)
　size.height: "height" パラメータを返します。 (int)
　size.attack.dist: "attack.dist" パラメータを返します。 (int)
　size.proj.attack.dist: "proj.attack.dist" パラメータを返します。 (int)
　size.proj.doscale: "proj.doscale" パラメータを返します。 (int)
　size.head.pos.x: "head.pos" パラメータのx要素を返します。 (int)
　size.head.pos.y: "head.pos" パラメータのy要素を返します。 (int)
　size.mid.pos.x: "mid.pos" パラメータのx要素を返します。 (int)
　size.mid.pos.y: "mid.pos" パラメータのy要素を返します。 (int)
　size.shadowoffset: "shadowoffset" パラメータを返します。 (int)
　size.draw.offset.x: "draw.offset" パラメータのx要素を返します。 (int)
　size.draw.offset.y: "draw.offset" パラメータのy要素を返します。 (int)

　以下はcnsファイル中の[Velocity]部分で設定されているパラメータを参照します。

　velocity.walk.fwd.x: "walk.fwd" パラメータを返します。 (float)
　velocity.walk.back.x: "walk.back" パラメータを返します。 (float)
　velocity.run.fwd.x: "run.fwd" パラメータのx要素を返します。 (float)
　velocity.run.fwd.y: "run.fwd" パラメータのy要素を返します。 (float)
　velocity.run.back.x: "run.back" パラメータのx要素を返します。 (float)
　velocity.run.back.y: "run.back" パラメータのy要素を返します。 (float)
　velocity.jump.y: "jump.neu" パラメータのy要素を返します。"velocity.jump.neu.y"ではなく、"neu" パラメータなので注意！(float)
　velocity.jump.neu.x: "jump.neu" パラメータのx要素を返します。 (float)
　velocity.jump.back.x: "jump.back" パラメータを返します。 (float)
　velocity.jump.fwd.x: "jump.fwd" パラメータを返します。 (float)
　velocity.runjump.back.x: "runjump.back" パラメータを返します。 (float)
　velocity.runjump.fwd.x: "runjump.fwd" パラメータを返します。 (float)
　velocity.airjump.y: "airjump.neu" パラメータのy要素を返します。"velocity.airjump.neu.y"じゃありませんので、注意！(float)
　velocity.airjump.neu.x: "airjump.neu" パラメータのx要素を返します。 (float)
　velocity.airjump.back.x: "airjump.back" パラメータを返します。 (float)
　velocity.airjump.fwd.x: "airjump.fwd" パラメータを返します。 (float)

　以下はcnsファイル中の[Movement]部分で設定されているパラメータを参照します。

　movement.airjump.num "airjump.num" パラメータを返します。 (int)
　movement.airjump.height: "airjump.height" パラメータを返します。 (int)
　movement.yaccel: "yaccel" パラメータを返します。 (float)
　movement.stand.friction: "stand.friction" パラメータを返します。 (float)
　movement.crouch.friction: "crouch.friction" パラメータを返します。 (float)

使用例:
　trigger1 = Const(velocity.walk.fwd.x) > 4
　　自分の前進速度が4より上のときのトリガー。



--------------------------------------------------------------------------------
Cos

　引数のコサイン（余弦）値を返します。

書式: 　cos(引数)

概要:
　引数には、コサインを計算したい値をfloatで指定します。

戻り値の型: 　float

エラー条件: 　引数がSFalseの場合、SFalseを返します。

使用例:
　value = cos(0)
　　cos(0)の計算結果をvalueに代入します。結果は1.0ですが、Intではないので注意。余弦波を点滅や軌道に利用します。



--------------------------------------------------------------------------------
Ctrl

　プレイヤーのコントロールフラグを返します。

書式: 　Ctrl

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = Ctrl
　　プレイヤーがコントロール可能なときのトリガー。



--------------------------------------------------------------------------------
DrawGame

　ラウンド終了時、ドローゲームだった場合、1を、それ以外の場合、0を返します。

書式: 　DrawGame

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = DrawGame
　　ドローゲームだった場合のトリガー。



--------------------------------------------------------------------------------
E 
　ネピア数 e(2.718281828...)を返します。定数です。

書式: 　e

概要: 　なし

戻り値の型: 　float

エラー条件: 　なし



--------------------------------------------------------------------------------
Exp

　ネピア数のべき乗を返します。ネピア数のべき乗は、微分しても自分自身になります。e**引数と書いても同じです。

書式: 　exp(引数)

概要:
　引数には、eの乗数をfloatで指定します。

戻り値の型: 　float

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　value = exp(4-var(0))
　　valueにeの"4-var(0)"乗を代入します。


--------------------------------------------------------------------------------
Facing

　プレイヤーが右向きのときに1、左向きのときに-1を返します。

書式: 　Facing

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　Trigger = Facing = -1
　　プレイヤーが左向きのときのトリガー。



--------------------------------------------------------------------------------
Floor

　小数点以下を切り捨てます。

書式: 　floor(引数)

概要:
　引数には、切捨てを行いたい小数を指定します。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　1. value=floor(5.5)
　　valueに5を代入。
　2. value=floor(-2)
　　valueに-2を代入。



--------------------------------------------------------------------------------
FrontEdgeBodyDist

　プレイヤー前面のぶつかり判定から、前方の画面端までの距離を返します。

書式: 　FrontEdgeBodyDist

概要: 　なし

戻り値の型: 　float

エラー条件: 　なし

使用例:
　trigger1 = FrontEdgeBodyDist < 30
　　プレイヤー前面のぶつかり判定から前方の画面端までの距離が30ピクセル未満のときのトリガー。



--------------------------------------------------------------------------------
FrontEdgeDist

　プレイヤーの中心軸から前面の画面端までの距離を返します。

書式: 　FrontEdgeDist

概要: 　なし

戻り値の型: 　float

エラー条件: 　なし

使用例:
　trigger1 = FrontEdgeDist < 30
　　プレイヤーのX座標中心軸ら前方の画面端までの距離が30ピクセル未満のときのトリガー。



--------------------------------------------------------------------------------
FVar

　小数変数FVarの値を返します。

書式: 　FVar(引数)

概要:
　引数には、0から39までの変数番号を指定します。

戻り値の型: 　float

エラー条件:
　引数がSFalse、または小数変数番号として無効な値の場合、SFalseを返します。

使用例:
　trigger1 = FVar(5) = -1.23
　　FVar(5)の値が-1.23のときのトリガー。



--------------------------------------------------------------------------------
GameTime

　ゲーム経過時間を返します。

書式: 　GameTime

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例: 　trigger1 = (GameTime%27)=0
　　%は割り算の余りを返す演算子です。この例では総ゲーム時間を27で割った余りが0のときのトリガーとなります。つまり総ゲーム時間が27フレームごとに実行されます。



--------------------------------------------------------------------------------
GetHitVar(*)

　攻撃を受けてmovetypeがHのステートにいるとき、相手のHitDefで設定された各値を参照できます。
　movetypeがH以外の場合、たとえ共通やられステート(5000番台)にいても0しか返しません。

書式: 　GetHitVar(パラメータ名)

概要:
　パラメータ名は以下の文字列から指定します。詳しい内容については詳細を参照のこと。
　xveladd, yveladd, type, animtype, airtype, groundtype, damage, hitcount, fallcount, hitshaketime, hittime, slidetime, ctrltime,recovertime, xoff, yoff, zoff, xvel, yvel, yaccel, hitid, chainid, guarded, fall, fall.damage, fall.xvel, fall.yvel, fall.recover, fall.time, fall.recovertime.

戻り値の型:
　パラメータに依存します。詳細を参照のこと。

エラー条件: なし

詳細:
　xveladd: KOされたときの横方向の加算速度を返します。(float)
　yveladd: KOされたときの垂直方向の加算速度を返します。(float)
　type: HitDefのtypeパラメータを数字で返します。: 0 - non, 1 - high, 2 - low, 3 - trip (地上ヒット時のみ) 
　animtype:
　HitDefのanimtypeパラメータを数字で返します。(0 - light, 1 - medium, 2 - hard, 3 - back, 4 - up, 5 - diag-up)
　airtype: HitDefのairtypeパラメータを数字で返します。
　groundtype: HitDefのgroundtypeパラメータを数字で返します。
　damage: コンタクトの瞬間のみ、ダメージ値を返します。ガードのときは、削りダメージを返します。(int)
　hitcount:
　攻撃をうけている間のヒット数を返します。3ヒット目なら3を返します。画面に表示されているヒット数ではなく、自分が受けたコンボのヒット数です。(int)
　fallcount: 攻撃をうけている間の、地面に落下した回数を返します。(int)
　hitshaketime:
　攻撃を受けてブルブルする時間の残り時間を返します。具体的には、ヒットの瞬間にHitDefのpausetimeを返し、0になるまで1フレームにつき1づつ減っていきます。(int)
　hittime: ヒット(ガード)が終了するまでの残り時間を返します。(int)
　slidetime: 地上ヒット(ガード)時、スライドが終了するまでの残り時間を返します。(int)
　ctrltime: ガード時、コントロール可能になるまでの残り時間を返します。(int)
　recovertime:
　ダウン状態から起き上がるまでの残り時間を返します。ボタン連打で短縮されます。(int)
　xoff: "Snap" の x オフセットを返します。(謎)
　yoff: "Snap" の y オフセットを返します。(謎)
　zoff: "Snap" の z オフセットを返します。(謎)
　xvel: 横方向の速度を返します。(float)
　yvel: 垂直方向の速度を返します。(float)
　yaccel: 垂直方向の加速度を返します。(float)
　chainid: HitDefのchainidを返します。(int)
　guarded: ガードのとき1を、それ以外で0を返します。(int)
　fall: fallのとき1を、それ以外で0を返します。(int)
　fall.damage: 落下で受けるダメージを返します。(int)
　fall.xvel: 落下バウンド時の横方向の速度を返します。(float)
　fall.yvel: 落下バウンド時の垂直方向の速度を返します。(float)
　fall.recover: 空中復帰(x+y)が可能なとき1を、それ以外のとき0を返します。
　fall.recovertime: 空中復帰(x+y)が可能になるまでの残り時間を返します。(int)
　fall.kill: HitDefのfall.kill パラメータを返します。(int)
　fall.envshake.time: HitDefのfall.envshake.time パラメータを返します。(int)
　fall.envshake.freq: HitDefのfall.envshake.freq パラメータを返します。(float)
　fall.envshake.ampl: HitDefのfall.envshake.ampl パラメータを返します。(int)
　fall.envshake.phase: HitDefのfall.envshake.phase パラメータを返します。(float)

使用例:
　trigger1 = GetHitVar(yvel) < -5.5
　　攻撃を受けたときのY方向への吹き飛び速度が-5.5未満だったときのトリガー。



--------------------------------------------------------------------------------
HitCount

　そのステート内でのヒット数を返します。ガード含まず。ステートが変わるとヒット数はリセットされますので、前のステートのヒット数を引き継ぎたい場合は予めStatedefの冒頭にhitcountpersist = 1と記述しておく必要があります。
　姉妹品にUniqHitCountがあり、チームプレイで複数の敵に同時ヒットした場合の扱いが異なります。HitCountの場合は1ヒット、UniqHitCountの場合は2ヒットとして扱われます。
画面に表示されるヒット数とは全くの別物で、同一ステート内、もしくはhitcountpersist = 1であれば連続ヒットしなくてもカウントされます。よってダメージ補正に使うのは難しいです。

書式: 　HitCount

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = HitCount > 8
　　同一ステート内、もしくはhitcountpersist = 1のステートで攻撃が9回以上ヒットしたときのトリガー(連続ヒットの必要はなし)。



--------------------------------------------------------------------------------
HitDefAttr(*,***)

　プレーヤーのHitDefコントローラが実行されているとき、そのattrの値を判定し、真偽を返します。主にcmdファイル内で使用されます。

書式: 　HitDefAttr [符号] 値1, 値2

概要:
　[符号]には、 = 又は != を指定します。他は無効。
　値1には、「立ち」、「しゃがみ」、「空中」を表す"S"、"C"、"A"の文字のうちから、少なくとも1つを指定します。
　複数の指定も可能で、例えば、"SA"であれば、「立ち又は空中」を意味します。
　値2には、「通常」、「必殺」、「超必殺」を表す"N"、"S"、"H"と、「攻撃」、「投げ」を表す"A"、"T"を組み合わせた2文字で指定します。例えば、通常攻撃は"NA"です。
　また、複数の組み合わせをコンマで区切って指定できます。例えば、"SA, ST, HA, HT"で必殺攻撃、必殺投げ、 超必殺攻撃、超必殺投げを意味します。

　HitDefの攻撃属性指定の書式を、
　属性1, 属性2
　とすると、このトリガーは、属性1、属性2がそれぞれ値1、値2に含まれていた場合に1を返します。

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = HitDefAttr = A, HA
　　プレイヤーが空中超必殺技を出しているときのトリガー。

　trigger1 = HitDefAttr = SC, NA, SA
　　プレイヤーが立ち又はしゃがみ状態で通常攻撃又は必殺技を出しているときのトリガー。



--------------------------------------------------------------------------------
HitFall

　プレイヤーがやられ状態にあるとき、落下状態なら1、それ以外なら0を返します。

書式: 　HitFall

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = !HitFall
　　プレイヤーが落下やられ状態でないときのトリガー。



--------------------------------------------------------------------------------
HitOver

　攻撃を受けた場合のhittimeが0になったとき、1を返します。共通のやられは、このトリガーにより通常ステートに移されています。
　やられステートをカスタマイズするとき等に。

書式: 　HitOver

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = HitOver = 1
　　プレイヤーのやられ状態が終了したときのトリガー。



--------------------------------------------------------------------------------
HitPauseTime

　プレイヤーの攻撃がヒットしたときの停止時間が終了するまでの時間を返します。
　HitPauseTimeの初期値は、プレイヤーのHitDefのpausetimeパラメータの値1(自分の停止時間)と同値になり、1フレーム経過するごとに1減ることになります。
　但し、ignorehitpause=1を指定しないと、0しか返しません。

書式: 　HitPauseTime

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = HitPauseTime = 0
　　ヒットによる時間停止中でないときのトリガー。



--------------------------------------------------------------------------------
HitShakeOver

　プレイヤーがやられ状態で、ヒットシェイクが終了したとき1を返します。
　相手を特殊やられにするときや、やられステートをカスタマイズするときに。

書式: 　HitShakeOver

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = HitShakeOver = 0
　　ヒットシェイク中であることを意味するトリガー。



--------------------------------------------------------------------------------
HitVel

　プレイヤーが攻撃を受けたときの速度を取得します。

書式: 　HitVel [要素]

概要:
　[要素]には、XまたはYを指定します。間の半角スペースは必須です。

戻り値の型: 　float

エラー条件: 　なし

詳細:
　HitVel Yは、上方向が、HitVel Xは後方が正の値となります。Vel Xトリガーとは逆ですので、注意。

使用例:
　trigger1 = HitVel X > 0.5
　　攻撃を受けたときのX方向の吹き飛び速度が0.5ピクセル毎フレームより大きいときのトリガー。



--------------------------------------------------------------------------------
ID

　プレイヤーのIDを返します。このIDは、helperを含むプレイヤーが発生すると、自動で割り付けられ、その試合中は変更できません。自分で指定することもできません。
　"playerID"リダイレクトキーワードに使用するため、敵のIDを取得するのが主な使用方法でしょうか。

書式: 　ID

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　value = ID
　　プレイヤーのID番号をvalueに代入します。
　value = EnemyNear, ID
　　プレイヤーに最も近い敵のID番号をvalueに代入します。"EnemyNear()"もリダイレクトキーワードです。



--------------------------------------------------------------------------------
IfElse

　条件判断用のトリガー。３つの引数をとります。第１引数が真(0以外)なら第２引数の値を、偽(0)なら第３引数の値を返します。ネスト(入れ子)することも可能ですが、回数に上限があるようです。
　あまり必要性を感じないトリガー。

書式:
　IfElse(条件式, 真の値, 偽の値)

概要:
　条件式には、トリガー、条件式等を記述します。
　真の値には、条件式が真のときの値を指定します。
　偽の値には、条件式が偽のときの値を指定します。

戻り値の型:
　引数に依存しますが、残念ながらChrとStrを返すことはできません。これらが返せれば、役に立つのですが。。。

エラー条件:
　引数のいずれかでもSFalseの場合、SFalseを返します。

使用例:
　value = ifelse(var(3),1,2)
　　var(3)が0以外なら1を、0なら2をvalueに代入。下の書き方でも同じ結果となります。
　value = (var(3)=0)+1

　value = ifelse(var(3),H,"holdfwd")
　　文字や文字列を指定しても、0しか返しません。



--------------------------------------------------------------------------------
InGuardDist

　敵の攻撃、または敵の飛び道具の攻撃認識範囲内にいる場合に1を、いない場合、0を返します。「攻撃認識範囲」は、相手のHitDefのguard.distパラメータで指定されている値です。
　Win版から追加されたトリガーで、このトリガーを使用しているキャラは、Dos版で使うとエラーが出ます。
　このトリガーも含め、ガード関係は、Dosでmugen本体で内部処理されていたものが、ステートで定義されるようになっているため、カスタマイズの自由度が高まった代わりに、Dos版との互換性が低下しています。

書式:
　InGuardDist

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件 : なし

使用例 : なし



--------------------------------------------------------------------------------
IsHelper

　プレイヤーがヘルパーなら1を、それ以外なら0を返します。
　ヘルパーのIDを引数に指定することができ、その場合はプレイヤーが指定されたIDのヘルパーのとき1を返します。

書式:
IsHelper
IsHelper(引数) 

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　1. trigger1 = !IsHelper
　　プレイヤーがヘルパーでないときのトリガー。
　2. trigger1 = IsHelper(1234)
　　プレイヤーがID1234のヘルパーの場合のトリガー。



--------------------------------------------------------------------------------
IsHomeTeam

　プレイヤーのチームが「ホームチーム」とみなされれば1を返します。
　アーケードモードではCPUが、対戦時はP1側（左側）が「ホームチーム」とみなされるそうです。用途不明。

書式: 　IsHomeTeam

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例: 　なし



--------------------------------------------------------------------------------
Life

　プレイヤーの現体力を返します。

書式: 　Life

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = life <= 10
　　プレイヤーの現体力が10以下のときのトリガー。体力の最大値は標準で1000なので、あまり実用的な使用例ではありません。



--------------------------------------------------------------------------------
LifeMax

　プレイヤーの体力の最大値を返します。シングルモードでは、cnsファイルの[data]グループにあるlifeパラメータを返しますが、チームモード等では異なる値を返します。
　Win版から追加されたトリガーで、このトリガーを使用しているキャラは、Dos版で使うとエラーが出ます。

書式: 　LifeMax

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = life <　lifemax / 4
　　プレイヤーの現体力が最大値の1/4未満のときのトリガー。



--------------------------------------------------------------------------------
Log

　指定値の対数を返します。

書式: 　Log(底,指数)

概要:
　底には、対数の底(てい)を指定します。負数不可。
　指数には、指数を指定します。負数不可。

戻り値の型: 　float

エラー条件:
　引数のいずれかでもSFalseまたは負数の場合、SFalseを返します。

使用例:
　value=log(2,64)
　　2を底とした64の対数(=6)をvalueに代入します。第2引数には、可変値を指定することになるでしょう。



--------------------------------------------------------------------------------
Ln

　指定値の自然対数を返します。自然対数は底(てい)をネピア数eとする対数です。

書式: 　ln(引数)

概要:
　引数には、自然対数を計算したい指数をfloatで指定します。

戻り値の型: 　float

エラー条件:
　引数がSFalseまたは負数の場合、SFalseを返します。

使用例:
　value = ln(time)
　　ステートの経過時間の自然対数をvalueに代入します。



--------------------------------------------------------------------------------
Lose

　プレイヤーがそのラウンドで負けた場合、1を返します。
　KO負け、時間切れ負けの区別も可能。

書式:
　1. Lose
　2. LoseKO
　3. LoseTime

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　1. trigger1 = Lose
　プレイヤー（又はチーム）がそのラウンドで負けた場合のトリガー。
　2. trigger1 = !LoseKO
　プレイヤー（又はチーム）がそのラウンドでKO負けしていない場合のトリガー。



--------------------------------------------------------------------------------
MatchNo

　現在の試合番号を返します。アーケードモードで勝利するたび1増えます。
　対戦時は常に1です。

書式: 　MatchNo

概要: 　なし

戻り値の型: 　int

詳細:
　MatchNoは、対戦モードでは常に1です。
　アーケード、チームアーケードモードでは、コンティニューや勝利により試合が切り替わるごとに、1ずつ増え、ゲームオーバー、ゲームクリアーなどでゲームを終わらせた場合、1に戻ります。

使用例: 　なし



--------------------------------------------------------------------------------
MatchOver

　試合が終了すれば1を返します(ラウンドではないので注意)。

書式: 　MatchOver

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

詳細:
　Dos版では、プレイヤーが勝利ポーズ(ステート180番)をとるまで値を返しません。
　この仕様は将来的に変更されるとのことで、Win版では決着後10フレームほど経過してから値を返すようになっています。

使用例:
　trigger1 = matchover
　試合が終わった場合のトリガー。Dos仕様では、勝利ポーズ後の試合終了時カットインくらいにしか使えません。
　Winなら、何とかやられモーションの差し替えに使用可能。ただし、10フレーム前後ずれますけど。



--------------------------------------------------------------------------------
MoveContact

　攻撃判定のあるステートでのみ効果のあるトリガーで、プレイヤーの攻撃がヒット、ガードにかかわらず相手に接触した場合、1を返します。winmugenでは仕様が異なり、接触してからの時間を返します。
　cmdファイル内で"StateNo"、"Command"と組み合わせ、キャンセル条件としてよく使われます。

書式: 　MoveContact

概要: 　なし

戻り値の型:
　Dos版は　boolean int (1 or 0)
　Win版は　int

エラー条件: 　なし

詳細:
　Win版では、攻撃が接触した瞬間に1を返し、以降、同じステートにいる間は、1フレームに1ずつ増加します。ただし、pausetime中は増加しません。この仕様は、MoveGuarded、MoveHit、MoveReversedで共通です。
注意1
　MoveContact、MoveGuarded、MoveHit及びMoveReversedは、同時にそれぞれの値がセットされます。例えば、あるHitDefがヒットし、MoveHitが0以外を返したとします。その攻撃中に、同じHitDefがガードされた場合、MoveGuardedが0以外を返すと同時に、他の3つは0を返します。
注意2
　上記4つのトリガーは、ステートが変わると0になり、増加も止まります。直前のステートのヒット状態を引き継ぎたい場合は、StateDefの冒頭で、"movehitpersist = 1"を指定する必要があります。

使用例:
　trigger1 = MoveContact
　　プレイヤーの攻撃が空振りしなかったときのトリガー。
　trigger1 = MoveContact = 1
　　こう記述すると、DosとWinで差が出ます。Dosでは「攻撃が接触してからステートが終了するまで」を意味しますが、Winでは「攻撃接触後1フレーム目(ヒットポーズが終わった瞬間)」を意味します。


--------------------------------------------------------------------------------
MoveGuarded

　攻撃判定のあるステートでのみ効果のあるトリガーで、プレイヤーの攻撃がガードされたとき、1を返します。winmugenでは仕様が異なり、ガードされてからの時間を返します。
　cmdファイル内で"StateNo"、"Command"と組み合わせ、キャンセル条件としてよく使われます。

書式:
　MoveGuarded

概要: 　なし

戻り値の型:
　Dos版は　boolean int (1 or 0)
　Win版は　int

エラー条件: 　なし

詳細:
　MoveContactを参照のこと。

使用例:
　trigger1 = MoveGuarded
　　攻撃が防御されたときのトリガー。
　trigger1 = MoveGuarded = 1
　　こう記述すると、DosとWinで差が出ます。Dosでは「ガードされてからステートが終了するまで」を意味しますが、Winでは「ガード後1フレーム目(ガードポーズが終わった瞬間)」を意味します。


--------------------------------------------------------------------------------
MoveHit

　攻撃判定のあるステートでのみ効果のあるトリガーで、プレイヤーの攻撃が相手にヒットしたとき、1を返します。winmugenでは仕様が異なり、ヒットしてからの時間を返します。
　cmdファイル内で"StateNo"、"Command"と組み合わせ、キャンセル条件としてよく使われます。

書式: 　MoveHit

概要: 　なし

戻り値の型:
　Dos版は　boolean int (1 or 0)
　Win版は　int

エラー条件: 　なし

詳細:
　MoveContactを参照のこと。

使用例:
　trigger1 = MoveHit
　　攻撃が成功した場合のトリガー。
　trigger1 = MoveHit = 1
　　こう記述すると、DosとWinで差が出ます。Dosでは「ヒットしてからステートが終了するまで」を意味しますが、Winでは「ヒット後1フレーム目(ヒットポーズが終わった瞬間)」を意味します。



--------------------------------------------------------------------------------
MoveType(*,***)

　現在のMoveTypeを判定し、真偽を返します。

書式:
　MoveType [符号] 動作型

概要:
　[符号]には、=または !=を指定します(他は無効)。
　動作型には、A, I, Hのいずれかを指定します。順に、攻撃、待機、くらいを意味します。

戻り値の型: 　boolean int (1 or 0) 
エラー条件: 　なし

使用例:
　trigger1 = movetype != H
　　プレイヤーが攻撃を受けている状態でないときのトリガー。



--------------------------------------------------------------------------------
MoveReversed

　攻撃判定のあるステートでのみ効果のあるトリガーで、プレイヤーの攻撃が相手の反撃を受けたとき(ReversalDefが定義された攻撃判定枠に接触したとき)、0以外の値を返します。
　Win版から追加されたトリガーで、このトリガーを使用しているキャラは、Dos版で使うとエラーが出ます。

書式: 　MoveReversed

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

詳細:
　MoveContactを参照のこと。

使用例:
　trigger1 = MoveReversed
　　攻撃が反撃された場合のトリガー。



--------------------------------------------------------------------------------
Name(*,***)

　defファイルで設定してあるnameを判定し、真偽を返します。画面に表示されるキャラクター名とは、必ずしも一致しません。

書式: 　Name [符号] "名前"

概要:
　[符号]には、=または != を指定します(他は無効)。
　"名前"には、判定する名前を""で括ってstringで指定。

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = Name = "Kumquat"
　　プレイヤーの名称が「Kumquat（キンカン）」さんの場合のトリガー。



--------------------------------------------------------------------------------
NumEnemy

　現在の敵の数を返します。ニュートラルプレイヤー(?)とノーマルタイプのヘルパーは数に含まれないそうです。

書式: 　NumEnemy

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = NumEnemy = 2
　trigger1 = enemynear(1), name = "Squash"
　敵が2人いて、2番目に近い敵の名前が「Squash」さんだったときのトリガー。



--------------------------------------------------------------------------------
NumExplod

　出現しているExplodの数を返します。引数にID番号を指定した場合、そのID番号のExplodの数を返します。
　IDには、-1以上の整数を指定します。-1の場合、省略時と同じ扱いになります。

書式:
　1. NumExplod
　2. NumExplod(引数)

概要:
　引数には、数えるExplodのID番号を-1以上のintで指定します。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　1. trigger1 = NumExplod >= 4
　プレイヤーのexplodが4つ以上出現している場合のトリガー。
　2. trigger1 = NumExplod(1234) >= 4
　プレイヤーのID1234のexplodが4つ以上出現している場合のトリガー。



--------------------------------------------------------------------------------
NumHelper

　プレイヤーが出現させているhelperの数を返します。引数にID番号を指定した場合、そのID番号のhelperの数を返します。
　IDには、0以上の整数を指定します。0以下の数を指定した場合、省略時と同じ扱いになります。

書式:
　1. NumHelper
　2. NumHelper(引数)

概要:
　引数には、数えるhelperのID番号を0以上のintで指定します。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　1. trigger1 = NumHelper < 2
　　プレイヤーのヘルパー数が2つ未満の場合のトリガー。
　2. trigger1 = NumHelper(1234) < 2
　　プレイヤーのID1234のヘルパー数が2つ未満の場合のトリガー。



--------------------------------------------------------------------------------
NumPartner

　現在のパートナー数を返します。ニュートラルプレイヤー(?)と、ノーマルヘルパーは、パートナーとみなされません。

書式: 　NumPartner

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = NumPartner = 1
　trigger1 = partner, life < 200
　　プレイヤーのパートナーが1人で、そのパートナーの体力が200未満の場合のトリガー。



--------------------------------------------------------------------------------
NumProj

　プレイヤーが出現させているProjectileの数を返します。コマンド条件で飛び道具の数を制限したい場合などに。
　このトリガーは、ID指定できません。ID指定したい場合は、NumProjIDを使いましょう。mugenの遍歴を感じるトリガーです。

書式: 　NumProj

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例: 　trigger1 = NumProj = 0
　　プレイヤーの飛び道具が出現していない場合のトリガー。



--------------------------------------------------------------------------------
NumProjID

　プレイヤーの特定IDのProjectile数を返します。コマンド条件で飛び道具の数を制限したい場合などに。

書式: 　NumProjID(引数)

概要:
　引数には、数えたいProjectileのIDを、intで指定。

戻り値の型: 　int

エラー条件:
　引数に負数を指定した場合、IDは0とみなされます。
　また、引数がSFalseの場合、SFalseを返します。

使用例:
　trigger1 = NumProjID(1234) = 1
　プレイヤーが放出したID1234の飛び道具が1つだけ存在している場合のトリガー。



--------------------------------------------------------------------------------
NumTarget

　プレイヤーのターゲットの数を返します。引数にID番号を指定した場合、そのID番号のターゲット数を返します。
　IDに-1以下を指定した場合、省略時と同様に扱われます。

書式:
　1. NumTarget
　2. NumTarget(引数)

概要:
　引数には、数えたいターゲットのヒットIDを指定。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　1. trigger1 = NumTarget >= 2
　　ターゲットが2体以上のときのトリガー。
　2. trigger1 = NumTarget(1234) >= 2
　　ID1234のターゲットが2体以上のときのトリガー。



--------------------------------------------------------------------------------
P1Name(*,***)

Nameトリガーの別書式です。効果は全く一緒。



--------------------------------------------------------------------------------
P2BodyDist

　プレイヤーからP2までのぶつかり判定同士の距離を返します。cmdファイルで、技の距離条件等に使用します。

書式: 　 P2BodyDist [要素]

概要:
　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型:
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件: 　なし

詳細:
　P2BodyDist Y は、自分のY軸のheightとの座標差を返します。負の値は、P2がP1の頭上にいることを意味します。
　P2BodyDist X は、P1の前面からP2の前面までの座標差を返します。互いに正面を向いて密着している場合、0を返すことになります。
　CNSファイルの[Size]部分で設定した "front.width"がプレイヤーの前面となりますので、忘れずに設定しましょう。
　P2Distも参照のこと。

使用例:
　trigger1 = P2BodyDist X < 30
　　P2のぶつかり判定までの距離が30ピクセル未満の場合のトリガー。


--------------------------------------------------------------------------------
P2Dist

　プレイヤーの軸からP2までの距離を返します。

書式: 　P2Dist [要素]

概要:
　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型:
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件: 　なし

詳細:
　P2Dist Y は、自分のY軸のheightとの座標差を返します。負の値は、P2がP1の頭上にいることを意味します。
　P2ist X は、P1の中心軸からP2の中心軸までの座標差を返します。互いに正面を向いている場合、正の値を返すことになります。
　P2BodyDistも参照のこと。

使用例:
　trigger1 = P2Dist Y <= -12
　　P2が12ピクセル以内の高さにいる場合のトリガー。



--------------------------------------------------------------------------------
P2Life

　Lifeと同じように、P2の現体力を返します。



--------------------------------------------------------------------------------
P2MoveType

　MoveTypeと同じように、P2のMoveTypeを判定し、真偽を返します。



--------------------------------------------------------------------------------
P2Name(*,***)

　Nameと同じように、最初の敵のnameを判定し、真偽を返します。
　最初の敵がいない場合、 p2name = "p2の名前" は、名前が指定されていても0を返します。同様に、 p2name != "p2の名前" は1を返します。



--------------------------------------------------------------------------------
P2StateNo

　StateNoと同じように、P2のステート番号を返します。

エラー条件:
　ゲームクリア、ゲームオーバー画面など、P2が存在しない場合、SFalseを返します。



--------------------------------------------------------------------------------
P2StateType

StateTypeと同じように、P2のStateTypeを判定し、真偽を返します。

エラー条件:
　ゲームクリア、ゲームオーバー画面など、P2が存在しない場合、SFalseを返します。



--------------------------------------------------------------------------------
P3Name(*,***)

　チームモードでチームメイトがいる場合、Nameと同じように、チームメイトのnameを判定し、真偽を返します。
　チームメイトがいない場合、 p3name = "p3の名前" は、名前が指定されていても0を返します。同様に、 p3name != "p3の名前" は1を返します。



--------------------------------------------------------------------------------
P4Name(*,***)

　Nameと同じように、2番目の敵のnameを判定し、真偽を返します。
　2番目の敵がいない場合、 p4name = "p4の名前" は、名前が指定されていても0を返します。同様に、 p4name != "p4の名前" は1を返します。



--------------------------------------------------------------------------------
PalNo

　プレイヤーのパレット番号を返します。パレット番号はキャラセレクト時の決定ボタンで変化します。
　決定カラーで戦闘スタイルが異なるキャラや、カラーによってCPUアルゴリズムを変える場合などに。

書式: 　PalNo 

概要: 　なし 

戻り値の型: 　int 

エラー条件: 　なし 

詳細: 
　選択ボタンとパレット番号は次のとおり（スト2配置で言えば、弱キックが1番）: 
　X Y Z 
　4 5 6 
　A B C 
　1 2 3 
　スタートボタンを押しながら選択すると、上記番号に6を足したものがパレット番号になります。
　大抵の格ゲーでは、左上のボタンが標準パレットなので、palnoは4となりますが、1を標準パレットにする人も多いです。

使用例: 
　trigger1 = PalNo = 5 
　　パレット番号5番（Yボタンで選んだときの色） のときのトリガー。



--------------------------------------------------------------------------------
ParentDist

　ヘルパーのステート内で使用します。親までの距離を返します。P2Distと同じような働きをします。

書式: 　ParentDist [要素] 

概要: 
　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型: 
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件: 
　親がdestroyselfしている場合、SFalseを返します。

詳細: 
　ParentDist Y は、自分のY軸のheightとの座標差を返します。負の値は、親が頭上にいることを意味します。
　ParentDist X は、ヘルパーの中心軸から親の中心軸までの座標差を返します。正の値は、親がヘルパーの前にいることを意味します。

使用例: 
　trigger1 = ParentDist X != 0 
　　ヘルパーのX座標が親と同じでない場合のトリガー。



--------------------------------------------------------------------------------
Pi

　円周率π(3.141593...)を返します。 定数です。ラジアンに180/piをかけると度になります。

書式: 　pi 

概要: 　なし 

戻り値の型: 　float 

エラー条件: 　なし 



--------------------------------------------------------------------------------
Pos

　プレイヤーの位置を返します。Pos X = 0で画面中央を、Pos Y = 0で地面を意味します。 

書式: 　Pos [要素] 

概要: 
　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型:
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件: 　なし 

詳細: 
　Pos X は、画面中央を0、左方向を正、右方向を負とした、相対距離を返します。
　Pos Y は、地面を0、下方向を正、上方向を負とした、相対距離を返します。

使用例: 
　trigger1 = Pos Y >= 0 
　　プレイヤーが地面より下にいる場合のトリガーです。 



--------------------------------------------------------------------------------
Power

　プレイヤーの標準ゲージ現在量を返します。

書式: 　Power 

概要: 　なし 

戻り値の型: 　int 

エラー条件: 　なし 

使用例: 
　trigger1 = power >= 1000 
　　ゲージ残量が1,000(レベル1)以上のときのトリガー。



--------------------------------------------------------------------------------
PowerMax

　プレイヤーの標準ゲージの最大量を返します。
　Win版から追加されたトリガーで、このトリガーを使用しているキャラは、Dos版で使うとエラーが出ます。

書式: 　PowerMax

概要: 　なし 

戻り値の型: 　int

エラー条件: 　なし 

使用例: 
　trigger1 = power <　powermax / 2
　　ゲージ量が最大値の半分未満のときのトリガー。



--------------------------------------------------------------------------------
PlayerIDExist

　指定IDのプレイヤーが存在する場合1を、しない場合0を返します。 
　IDはIDトリガーで取得できます。 

書式: 　PlayerIDExist(ID番号) 

概要: 
　ID番号には、調べたいプレイヤーのID番号をintで指定します。

戻り値の型: 　boolean int (1 or 0) 

エラー条件: 
　引数がSFalseの場合、SFalseを返します。 

使用例: 
　trigger1 = PlayerIDExist(var(4)) 
　　IDがvar(4)のプレイヤーが存在するときのトリガー。



--------------------------------------------------------------------------------
PrevStateNo

　直前のステート番号を返します。正確な値を返すという保証はないようです。 

書式: 　StateNo 

概要: 　なし 

戻り値の型: 　int 

エラー条件: 　なし 

使用例: 
　trigger1 = prevstateno = [200,650] 
　　直前のステート番号が200以上650以内の場合のトリガー。



--------------------------------------------------------------------------------
ProjCancelTime

　引数として、正の整数をID番号として指定することを必要とします。
　プレイヤーが最後に放出したProjectile（飛び道具）が指定したID番号の場合、そのProjectileが相手のProjectileに消されてからの時間を返します。IDに0を指定した場合、チェックされません。これらの条件に該当しない場合、-1を返します。

書式: 　ProjCancelTime(引数) 

概要: 
　引数には、調べたいProjectileのID番号を、0または正のintで指定します。省略不可。

戻り値の型: 　int 

エラー条件: 
　引数がSFalseの場合、SFalseを返します。また、IDに負数を指定した場合、0を返します。

使用例: 
　1. trigger1 = ProjCancelTime(1234) = 1 
　　ID1234のProjectileが消された瞬間のトリガーです。 
　2. trigger1 = ProjCancelTime(0) != -1 && ProjCancelTime(0) < 15 
　　プレイヤーのProjectileが消されてから15フレーム未満のときのトリガーです。 



--------------------------------------------------------------------------------
ProjContact(*,***)

　プレイヤーのProjectile(飛び道具)がヒット又はガード(以下、「接触」)したか、していないかを判定し、真偽を返します。また、そのときの時間条件を指定することもできます。
　IDを指定することもできますが、引数として指定するのではなく、接尾辞として括弧で括らずに記述します。省略した場合は、プレイヤーの全てのProjectileが対象となります。
　使いにくい旧式トリガーなので、複数のProjectileを扱う場合でなければ、ProjContactTimeの方を使った方がよいしょう。もちろん、単体ではファンクショントリガーとして使用できません。

書式: 
　1. ProjContact[ID] = 値1 
　2. ProjContact[ID] = 値1, [符号] 値2 

概要: 
　[ID]には、ProjectileをID指定したい場合に、ID番号を整数で指定します。省略可。
　値1には、接触を調べる場合1を、非接触を調べる場合0を指定。
　[符号]には、 =, !=, <, >, <=, >= のうちのいずれかを指定します。
　値2には、比較する時間を指定します。

戻り値の型: 　boolean int 

エラー条件: 　なし 

詳細: 
　複数ヒットする場合、1ヒットごとに判定します。
　様式1は、MoveContactとは異なり、接触後1フレームしか値を返しません。
　様式2は、正の整数nが条件式"n [符号] 値2"を満たす場合、接触してからnフレームの間、真を返します。
　ID番号に0を指定した場合、省略時と同じく、全てのProjectileが対象となります。 

使用例: 
　1. trigger1 = ProjContact1234 = 1
　　ID 1234のProjectileが接触した場合のトリガー。 
　2. trigger1 = ProjContact456 = 0, < 15 
　　ID 456のProjectileが過去15フレーム未満の間に接触しなかった場合のトリガー。わかりにくい？



--------------------------------------------------------------------------------
ProjContactTime

　引数として、正の整数をID番号として指定することを必要とします。
　プレイヤーが最後に放出したProjectile（飛び道具）が指定したID番号の場合、そのProjectileが相手にヒット、またはガードされてからの(以下「接触」という)時間を返します。IDに0を指定した場合、チェックされません。これらの条件に該当しない場合、-1を返します。

書式: 　ProjContactTime(引数) 

概要: 
　引数には、調べたいProjectileのID番号を、0または正のintで指定します。省略不可。

戻り値の型: 　int 

エラー条件: 
　引数がSFalseの場合、SFalseを返します。また、IDに負数を指定した場合、0を返します。

使用例: 
　1. trigger1 = ProjContactTime(1234) = 1 
　　ID1234のProjectileが相手に接触した瞬間のトリガーです。 
　2. trigger1 = ProjContactTime(0) != -1 && ProjContactTime(0) < 15 
　　プレイヤーのProjectileが相手に接触してから15フレーム未満のときのトリガーです。 



--------------------------------------------------------------------------------
ProjGuarded(*,***)

　プレイヤーのProjectile(飛び道具)がガードされたか、されていないかを判定し、真偽を返します。また、そのときの時間条件を指定することもできます。
　IDを指定することもできますが、引数として指定するのではなく、接尾辞として括弧で括らずに記述します。省略した場合は、プレイヤーの全てのProjectileが対象となります。
　使いにくい旧式トリガーなので、複数のProjectileを扱う場合でなければ、ProjGuardedTimeの方を使った方がよいしょう。もちろん、単体ではファンクショントリガーとして使用できません。

書式: 
　1. ProjGuarded[ID] = 値 
　2. ProjGuarded[ID] = 値, [符号] 値2 

概要: 
　[ID]には、ProjectileをID指定したい場合に、ID番号を整数で指定します。省略可。
　値1には、ガードされたかを調べる場合1を、ガードされていないかを調べる場合0を指定。
　[符号]には、 =, !=, <, >, <=, >= のうちのいずれかを指定します。
　値2には、比較する時間を指定します。

戻り値の型: 　boolean int (1 or 0) 

エラー条件: 　なし 

詳細: 
　複数ヒットする場合、1ヒットごとに判定します。
　様式1は、MoveGuardedとは異なり、ガード後1フレームしか値を返しません。
　様式2は、正の整数nが条件式"n [符号] 値2"を満たす場合、ガードされてからnフレームの間、真を返します。
　ID番号に0を指定した場合、省略時と同じく、全てのProjectileが対象となります。 

使用例: 
　1. trigger1 = ProjGuarded1234 = 1 
　　ID1234のProjectileがガードされた瞬間のトリガーです。
　2. trigger1 = ProjGuarded = 1, < 15 
　　プレイヤーのProjectileがガードされてから15フレーム未満のときのトリガーです。



--------------------------------------------------------------------------------
ProjGuardedTime

　引数として、正の整数をID番号として指定することを必要とします。
　プレイヤーが最後に放出したProjectile（飛び道具）が指定したID番号の場合、そのProjectileが相手にガードされてからの時間を返します。IDに0を指定した場合、チェックされません。これらの条件に該当しない場合、-1を返します。

書式: 　ProjCancelTime(引数) 

概要: 
　引数には、調べたいProjectileのID番号を、0または正のintで指定します。省略不可。

戻り値の型: 　int 

エラー条件: 
　引数がSFalseの場合、SFalseを返します。また、IDに負数を指定した場合、0を返します。

使用例: 
　1. trigger1 = ProjGuardedTime(1234) = 1 
　　ID1234のProjectileがガードされた瞬間のトリガーです。 
　2. trigger1 = ProjGuardedTime(0) != -1 && ProjGuardedTime(0) < 15 
　　プレイヤーのProjectileがガードされてから15フレーム未満のときのトリガーです。 



--------------------------------------------------------------------------------
ProjHit(*,***)

　プレイヤーのProjectile(飛び道具)がヒットしたか、していないかを判定し、真偽を返します。また、そのときの時間条件を指定することもできます。
　IDを指定することもできますが、引数として指定するのではなく、接尾辞として括弧で括らずに記述します。省略した場合は、プレイヤーの全てのProjectileが対象となります。
　使いにくい旧式トリガーなので、複数のProjectileを扱う場合でなければ、ProjHitTimeの方を使った方がよいしょう。もちろん、単体ではファンクショントリガーとして使用できません。

書式: 
　1. ProjHit[ID] = 値 
　2. ProjHit[ID] = 値, [符号] 値2 

概要: 
　[ID]には、ProjectileをID指定したい場合に、ID番号を整数で指定します。省略可。
　値1には、ヒットを調べる場合1を、非ヒットを調べる場合0を指定。
　[符号]には、 =, !=, <, >, <=, >= のうちのいずれかを指定します。
　値2には、比較する時間を指定します。

戻り値の型: 　boolean int 

エラー条件: 　なし 

詳細: 
　複数ヒットする場合、1ヒットごとに判定します。
　様式1は、MoveHitとは異なり、ヒット後1フレームしか値を返しません。
　様式2は、正の整数nが条件式"n [符号] 値2"を満たす場合、ヒットしてからnフレームの間、真を返します。
　ID番号に0を指定した場合、省略時と同じく、全てのProjectileが対象となります。 

使用例: 
　1. trigger1 = ProjHit1234 = 1 
　　ID1234のProjectileがヒットした瞬間のトリガーです。 
　2. trigger1 = ProjHit = 1, < 15 
　　プレイヤーのProjectileがヒットしてから15フレーム未満のときのトリガーです。



--------------------------------------------------------------------------------
ProjHitTime

　引数として、正の整数をID番号として指定することを必要とします。
　プレイヤーが最後に放出したProjectile（飛び道具）が指定したID番号の場合、そのProjectileが相手にヒットしてからの時間を返します。IDに0を指定した場合、チェックされません。これらの条件に該当しない場合、-1を返します。

書式: 　ProjHitTime(引数)

概要:
　引数には、調べたいProjectileのID番号を、0または正のintで指定します。省略不可。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。また、IDに負数を指定した場合、0を返します。

使用例:
　1. trigger1 = ProjHitTime(1234) = 1
　　ID1234のProjectileがヒットした瞬間のトリガーです。
　2. trigger1 = ProjHitTime(0) != -1 && ProjHitTime(0) < 15
　　プレイヤーのProjectileがヒットしてから15フレーム未満のときのトリガーです。



--------------------------------------------------------------------------------
Random

　0以上999以下の乱数を返します。同じステートコントローラ内で複数のrandomを記述しても、それぞれ異なる値を返します。

書式: 　Random

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = Random <= 249
　　乱数が249以下のときのトリガーです。25%の確率を意味します。
　　Ceil、Floor、%演算子などと組み合わせることにより、任意の範囲の乱数を発生させることもできます。



--------------------------------------------------------------------------------
RootDist

　ヘルパーのステート内で使用します。ルートまでの距離を返します。P2Distと同じような働きをします。
　ルートは、最初のヘルパーを呼び出したキャラのことで、メインプレイヤーを指します。例えば、プレイヤー"キンカン"が、ヘルパー"キウイ"を出し、"キウイ"が、ヘルパー"ペンギン"を出した場合、"ペンギン"のルートは、"キンカン"になります。
　なお、親ヘルパーが存在しない場合、ルートを参照できなくなるようです。上の例で、"キウイ"がDestroySelfした場合、"ペンギン"は、"キンカン"を参照できなくなります。

書式: 　RootDist [要素]

概要:
　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型:
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件:
　ルートがいない場合、SFalseを返します。

詳細:
　RootDist Y は、自分のY軸のheightとの座標差を返します。負の値は、ルートが頭上にいることを意味します。
　RootDist X は、ヘルパーの中心軸からルートの中心軸までの座標差を返します。正の値は、ルートがヘルパーの前にいることを意味します。

使用例:
　trigger1 = RootDist X != 0
　　ヘルパーのX座標がルートと同じでない場合のトリガー。



--------------------------------------------------------------------------------
RoundNo

　現在のラウンド数を返します。

書式: 　RoundNo

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = RoundNo = 3
　　3ラウンド目のときのトリガー。



--------------------------------------------------------------------------------
RoundsExisted

　試合中、プレイヤーが存在していたラウンドの数を返します。ターンバトル(KOF等のアレ)一本目で一人目が負けた場合、二本目のRoundNoは2ですが、二人目にとっては初ラウンドなので、RoundsExistedは0になります。一方、勝った方はRound1でも存在していたので、RoundExistedは1となります。
　ターンバトル以外では、常にRoundNoから1を引いた値を返すことになると思います。 

書式: 　RoundsExisted

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = RoundsExisted = 0
　trigger1 = TeamMode = Turns
　trigger1 = RoundNo > 0
　ターンバトル時、ラウンド番号にかかわらず、そのプレイヤーにとっての最初のラウンドのときのトリガーです。
　この使用例は、初期化ステート(StateDef 5900)に書き込むことにより、イントロを変更するときなどに使用できます。



--------------------------------------------------------------------------------
RoundState

　ラウンドの現在の状態番号を返します。状態番号については詳細を参照のこと。

書式: 　RoundState

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

詳細:
　戻り値は、以下のいずれかになります:
　0: Pre-intro　- 試合前、画面がフェードインしている状態です。
　1: Intro　- 登場モーション中です。
　2: Fight - バトル中です。
　3: Pre-over - 決着がついた瞬間です。
　4: Over - 勝利モーション中です。

使用例:
　trigger1 = RoundState = 2
　　バトル中であることを意味するトリガーです。



--------------------------------------------------------------------------------
ScreenPos

　プレイヤーの画面上での絶対座標(画面に対する相対座標)を返します。Posとは異なり、座標がステージに依存しないのが特徴。

書式: 　ScreenPos [要素]

概要:
　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型:
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件: 　なし

詳細:
　ScreenPos X は、画面左端が0、それより左側(つまり画面外)が負、右側が正です。
　ScreenPos Y は、画面上端が0、それより上側(つまり画面外)が負、下側が正です。
使用例:
　trigger1 = ScreenPos Y = [0,239]
　　プレイヤーの垂直座標が画面内にあるときのトリガーです。



--------------------------------------------------------------------------------
SelfAnimExist

　自分のairに引数のアニメが存在するときは1を、なければ0を返します。AnimExistトリガーとの違いは、相手に参照させるステートで、相手のアニメが対象になることです。



--------------------------------------------------------------------------------
Sin

　指定値のサイン（正弦）値を計算します。

書式: 　sin(引数)

概要:
　引数には、サインを計算したい値をfloatで指定します。

戻り値の型: 　float

エラー条件:
　引数がSFalseの場合、SFalseを返します。

使用例:
　value = sin(pi/2)
　　Sin(π/2)をvalueに代入します。結果は約1.0。time等を引数にしてパレットのフラッシュや振動する軌道に。



--------------------------------------------------------------------------------
StateNo

現在のステート番号を返します。cmdファイルでの条件指定に有効。

書式: 　StateNo

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = stateno = [200,650]
　　現在のステート番号が200以上650未満の場合のトリガー。



--------------------------------------------------------------------------------
StateType

現在のStateTypeを判定し、真偽を返します。cmdファイルでの条件指定に有効。

書式: 　StateType [符号] state_type

概要:
　[符号]には、= 又は != を指定します。他の符号は使用不可。
　state_typeには、S, C, A(順に立ち、しゃがみ、空中を表す)の文字のうち、いずれかを指定します。

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = StateType != A
　　StateTypeがA（空中）でない場合のトリガーです。よくコマンド条件に利用されます。



--------------------------------------------------------------------------------
SysFVar

　システムの小数変数を参照します。システム変数はcommon1ファイル内で使われています。
　システム変数を使用しているステートを上書きするとき以外は、使わない方がよいでしょう。

書式: 　FVar(引数)

概要:
　引数には、0から4までの変数番号を指定します。

戻り値の型: 　float

エラー条件:
　引数がSFalseの場合、SFalseを返します。また、引数に有効範囲外の値を指定しても、SFalseを返します。

使用例:
　trigger1 = SysFVar(0) = -1.23
　　SysFVar(0)に-1.23が代入されているときのトリガー。



--------------------------------------------------------------------------------
SysVar

　システムの整数変数を参照します。システム変数はcommonファイル内で使われています。
　システム変数を使用しているステートを上書きするとき以外は、使わない方がよいでしょう。

書式: 　Var(引数)

概要:
　引数には、0から4までの変数番号を指定します。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、SFalseを返します。また、引数に有効範囲外の値を指定しても、SFalseを返します。

使用例:
　trigger1 = SysVar(0) = -34
　　SysVar(0)に-34が代入されているときのトリガー。



--------------------------------------------------------------------------------
Tan

　指定値のタンジェント（正接）値を計算します。

書式: 　tan(引数)

概要:
　引数には、タンジェントを計算したい値をfloatで指定します。

戻り値の型: 　float

エラー条件: 　引数がSFalseの場合、SFalseを返します。

使用例:
　value = tan(pi/4)
　　Tan(π/4)をvalueに代入します。結果は約1.0です。使い道を思いつかない…。Atanの方は役に立つのですが。



--------------------------------------------------------------------------------
TeamMode(*,***)

　現在のチームモードを判定し、真偽を返します。

書式: 　TeamMode [符号] mode

概要:
　[符号]には、 = または != を指定します。他の符号は無効です。
　modeには、以下の文字列のうち、いずれかを指定します。
　　single - シングルプレイ
　　simul　- 数人同時
　　turns　- ターンバトル（KOF等のアレ）

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　trigger1 = TeamMode = Single
　　シングルモード時のトリガー。



--------------------------------------------------------------------------------
TeamSide

　プレイヤーが所属するチームを返します。1P側(左側)なら1、2P側(右側)なら2です。

書式: 　TeamSide

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = TeamSide = 2
　　プレイヤーが2P側のときのトリガー。



--------------------------------------------------------------------------------
TicksPerSecond

　1秒あたりの単位時間を返します。1フレームが1/60秒のとき60を返すことになります。
　音声や取り込みアニメなどを、ゲームスピードに関係なく特定の間隔で再生したい場合に有効です。

書式: 　TicksPerSecond

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = Time > 10 * TicksPerSecond
　　ゲームスピードにかかわらず、ステート経過時間が10秒を超えているときのトリガー。



--------------------------------------------------------------------------------
Time

　ステートの経過時間を返します。

書式: 　Time

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = Time = 2
　　現在のステートに移行して2フレーム後のトリガー。



--------------------------------------------------------------------------------
TimeMod(*,**,***)

　ステート時間を第1指定値で割った余りが第2指定値と符号の条件を満たしている場合、1を返します。
　%も割り算の余りを返す符号なので、代用可能です。っていうか、このコントローラ自体使う必要なし。恐らく過去の遺物。

書式:
　TimeMod [符号] 除数, 剰余

概要:
　[符号]には、=、 !=、 <、 >、 <=、 >= のうちいずれかを指定します。
　除数には、剰余を計算するための除数を正の整数で指定します。
　剰余には、ステート時間を除数で割った余りをintで指定します。

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　除数を0にするとSFalseを返します。

使用例:
　trigger1 = TimeMod = 4, 3
　　ステートの経過時間が 3, 7, 11, 15, ...のときのトリガー。
　trigger1 = Time%4 = 3
　　上記と同じ意味です・・・・・か？（弱気）



--------------------------------------------------------------------------------
UniqHitCount

　そのステート内でのヒット数を返します。ステートが変わるとヒット数はリセットされますので、前のステートのヒット数を引き継ぎたい場合は予めStatedefの冒頭にhitcountpersist = 1を記述しておく必要があります。
　姉妹品にHitCountがあり、チームプレイで複数の敵に同時ヒットした場合の扱いが異なります。HitCountの場合は1ヒット、UniqHitCountの場合は2ヒットとして扱われます。

書式: 　UniqHitCount

概要: 　なし

戻り値の型: 　int

エラー条件: 　なし

使用例:
　trigger1 = UniqHitCount = [4,6]
　　プレイヤーが攻撃を開始してからそのステート中に4ヒット以上6ヒット未満したのときのトリガー。連続ヒットの必要なし。



--------------------------------------------------------------------------------
Var

　整数の変数を参照します。小数を代入したい場合はFVarを使います。

書式: 　Var(引数)

概要:
　引数には、0から59の整数変数番号を指定します。

戻り値の型: 　int

エラー条件:
　引数がSFalseの場合、または、引数に指定可能な値以外を指定した場合、SFalseを返します。

使用例:
　trigger1 = Var(0) = -34
　　Var(0)に-34が代入されているときのトリガー。



--------------------------------------------------------------------------------
Vel

プレイヤーの速度を返します。

書式: 　Vel [要素]

　[要素]には、 Xまたは Yを指定します。間の半角スペースは、必須です。

戻り値の型: 
　floatですが、float型のパラメータをとるステートコントローラでも、floatを返すトリガーをそのまま指定すると、なぜかエラーとなる場合が多いです。floorやceilと併用するようにしましょう。

エラー条件: 　なし

詳細:
　Vel X は、前方に移動している場合、正の値を返します。(HitVel X の仕様とは逆になります。)
　Vel Y は、下方に移動している場合、正の値を返します。

使用例:
　trigger1 = Vel Y >= 0
　　プレイヤーが上方向に移動していないときのトリガー。



--------------------------------------------------------------------------------
Win

　プレイヤーもしくはその所属するチームがラウンドで勝利した場合1を、その他の場合0を返します。
　KO、時間切れ、パーフェクトの別の指定もできます。条件によって勝利ポーズを変更するときなどに。

書式:
　1. Win
　2. WinKO
　3. WinTime
　4. WinPerfect

概要: 　なし

戻り値の型: 　boolean int (1 or 0)

エラー条件: 　なし

使用例:
　1. trigger1 = Win
　　プレイヤー（又はチーム）がそのラウンドで勝利したときのトリガー。
　2. trigger1 = !WinKO
　　プレイヤー（又はチーム）がそのラウンドでKO勝ちしなかったときのトリガー。
　　時間切れ勝利、引き分け、負けはもちろん、まだ決着がついていない場合も含まれます。

--------------------------------------------------------------------------------
-演算子一覧---------------------------------------------------------------------
--------------------------------------------------------------------------------

MUGENで使用されるデータ型には、Int、Float、Boolean、Char、Stringがあります(他にもあったかも)。
Int :整数型。10、-100など。-2,000,000,000〜2,000,000,000(-20億〜20億)位まで指定可能らしいです。
Float :浮動小数型。-1.23、1.414など。7文字位までは正確に扱われるそうです。
Boolean :真(0以外)か偽(0)のいずれか。基本的にはInt。
Chr :文字。S、C、Aなど。
String :文字列。"fire_ball"など。

データ型はトリガーやステートコントローラのパラメータ毎によって異なり、誤った指定をすると、エラーとなります。
ただ、FloatにIntの値を指定するのはかまいません。それぞれ値が含まれてますので。
StrもChrを含んでいますが、Strは""で括る必要があります。


演算子

ムゲンでは、おなじみの+、-などのほか、様々な演算子が用意されています。

≪おなじみの演算子≫
+ :足し算。1+2=3
- :引き算。3-2=1
* :かけ算。2*3=6
/ :割り算。6/3=2

≪独自の演算子≫
% :剰余。割り算の余りです。6%3=0、7%2=1。
** :べき指数。2**10=1024。数学的には第2オペランドに小数を指定できる(例：256**0.5=16)のですが、MUGENではサポートされておらず、第1、第2オペランドともに整数のみ指定可能。よって平方根はおろか小数のべき乗すら計算することはできません。logは用意されてるのに････何で？

ちなみに
例えば0.6**2=0.36となるはずですが、正しい値は返されません。
0.6=6/10なので、6**2/10**2で0.6**2になるのでは？と思う方もいらっしゃるかもしれませんが、やはり正しい値は返されません。


≪理論演算子≫〜条件が合えば(真なら)1、それ以外なら(偽なら)0になります。
! :NOT条件を意味します。!10で10以外ということです。演算子というよりは符号に近いといえます。
&& :AND条件を意味します。左辺と右辺が共に真のとき1、それ以外なら0です。1&&1=1。1&&0=0。
|| :OR条件を意味します。左辺と右辺が共に偽のとき0、それ以外なら1です。1||0=1。0||0=0。
^^ :XOR条件を意味します。左辺と右辺のどちらかのみが真のとき1、それ以外なら0です。1^^0=1。1^^1=0。
~、&、|、^ :ビット単位のNOT、AND、OR、XORです。1つの変数を複数のフラグ(ON/OFFのみ)として使用する場合に使います。
~は全フラグの反転、&は特定フラグの判定、|はフラグのON、^は特定フラグの反転に使用できます。

≪等号、不等号≫
= :等号。イコール。
!= :ノットイコール。等しくない。
:= :変数に値を代入することができます。たぶん。varsetと同時にそのvarを参照する場合、こちらを使ったほうが簡潔に処理できます。たぶん。
> :大なり。
< :小なり。
>= :以上。=>と書くとエラー。
<= :以下。=<はエラー。

≪値の範囲≫演算子ではありませんが･･･
( ) :(100,1000)で100より大きく、1000未満
[ ] :[50,200]で50以上200以下。
組み合わせて使用可能。
[0,300)････0以上300未満。

演算子の優先順位は以下のとおり

高い
! ~ -　･･･演算子というよりは符号。
**
* / %
+ -
> >= < <=
= !=
:=
&
^
|
&&
^^
||
低い


トリガー

トリガーはコンディショントリガーとファンクショントリガーに大別できます。

------------------------------------------------
[State 1234, 5]
type = VarSet
trigger1 = time = 5
v = 0
value = time + 5

------------------------------------------------
上の例では、trigger1 = time = 5のtimeはコンディショントリガー、value = time + 5のtimeはファンクショントリガーです。

まあ、要するに、trigger* = の後に書けばコンディション、それ以外はファンクションです。
ぶっちゃけ、どうでもいいことですが。


トリガーのリダイレクト

トリガーが返すのは、基本的に全て自分(プレイヤー)に関する値ですが、リダイレクトキーワードを指定することにより、自分以外のプレイヤーのトリガーを参照可能です。
リダイレクトキーワードには、以下の種類があります。

parent :親
root :ルート
helper(ID) :ヘルパー。(ID)を省略した場合は最初に見つかったヘルパー。
target(ID) :ターゲット。(ID)を省略した場合は最初に見つかったターゲット。
partner :パートナー。
enemy(n) :n番目に見つかった敵(nは0から数えます)。(n)を省略した場合は最初に見つかった敵。
enemyNear(n) :n番目に近い敵(nは0から数えます)。(n)を省略した場合は最も近い敵。
playerID(ID) :プレイヤーをIDで指定。

これらの文字列の後にカンマ","とトリガーを記述すれば、それぞれの対象の値を参照できます。
「最初に見つかった」という記述は、英語のdocを直訳したもので、最小IDの対象だとは思いますが、正確に何を意味するのかは、把握しておりません。
ちなみに、helper、target、playerIDは、いずれもIDを引数にとりますが、それぞれIDの意味合いが異なり、helperの場合はhelperID、targetはhitID、playerIDはplayerIDを意味します。
それゆえ、helperとtargetは、ID指定しても、複数のプレイヤーが対象になる場合があり、そのいずれか一体を指定することはできません。

(例)
type = VarSet
trigger1 = time = 0
v = 1
value = enemynear(1),ID　← 2番目に近い敵のIDをvar(1)に代入

type = TargetState
trigger1 = time = 0
trigger1 = target,stateno = 5000
value = 15000
↑ターゲットのステート番号が5000なら、15000に変更、といいたいところですが、ターゲットが複数の場合、うまく機能しません。
例えば、一方がガード、一方がヒットだった場合、target,statenoは、一方の状態しか返しません。
ガードの方の状態を返した場合、どちらも何も起こりませんが、ヒットの方を返した場合、どちらもステート15000に変更されます。

ゲームに支障はない場合が多いですが、いずれも対象のhelpr、targetなどがいないとエラーとなります。コンディショントリガーとして使用してもエラーが出てしまうので、確実に対象がいる場合にのみ使用した方がよいです。
特にtarget(攻撃を当て、ヒット状態にした相手)は、すぐにいなくなるので、取扱注意です。
NumTargetなどと併用しましょう。

以下のトリガーは旧式であり、ファンクショントリガーとしては使用できません。

AnimElem(AnimElemTimeを使用すれば問題なし)
P1Name, P2Name, P3Name, P4Name
StateType, P2StateType
Command
MoveType, P2MoveType
TimeMod(%演算子を使用すれば問題なし)
ProjHit, ProjContact, ProjGuarded(それぞれProjHitTime, ProjContactTime, ProjGuardedTimeを使用すれば問題なし)

そして、ファンクション的コンディショントリガーの記述方法もありますので、ちょっと紹介。

common1.cnsには、以下のような記述があります。

------------------------------------------------
[State 120, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 130 + (statetype = C) + (statetype = A)*2

------------------------------------------------

statetypeは、右辺の文字(S or C or A)を判定し、真(1)か偽(0)を返すトリガーです。
つまり、上の例では、
statetype = Cのとき　130+1+0*2=131
statetype = Aのとき　130+0+1*2=132
どちらでもないとき　　130+0+0*2=130　を返します。

んで、通常の条件式(例:time=0など)も、真のとき1、偽のとき0を返します。
よって、10 + (time = 0)などと書けば、time=0のとき11を、それ以外のとき10を返します。
すなわち、完全ではありませんが、IfElseの代用となります。

IfElseはネスト回数に上限があるようですが、この方法なら気にする必要もありません。
かなり便利な記述方法なので、覚えておいて損はないです。


エフェクト

ヒットマーク、ガードマークなどは最初から準備されています。
標準添付のものが貧弱すぎるので、自分のスプライトを参照する方が大半ですが、できのよいADD-ONが公開されているので、エフェクトを統一するためにも共通エフェクトを使用してみましょう。その方がラクです。
ADD-ONを使用していない場合、ヒットマークが出なかったりしますが、ご愛嬌。

0 - 弱ヒットマーク
1 - 中ヒットマーク
2 - 強ヒットマーク
3 - 必殺ヒットマーク
10 - 弱出血
11 - 中出血
12 - 強出血
40 - 弱ガードマーク
41 - 中ガードマーク(標準添付されてません)
42 - 強ガードマーク(標準添付されてません)
60 - 弱地面衝撃
61 - 中地面衝撃
62 - 強地面衝撃
70 - 弱壁衝撃
71 - 中壁衝撃
72 - 強壁衝撃
100 - lv1 超必殺技演出
101 - lv2 超必殺技演出
102 - lv3 超必殺技演出
120 - 埃
130 - パワーアップ演出
 
原作者　SUGIO
改変者　カイリ　sk1852m@gmail.com
