Trigger reference

M.U.G.E.N, (c) Elecbyte 2001
Documentation for version 2001.04.14

Beta-release documentation
Updated 8 April 2001




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

 条件判断用のトリガー。3つの引数をとります。第1引数が真(0以外)なら第2引数の値を、偽(0)なら第3引数の値を返します。ネスト(入れ子)することも可能ですが、回数に上限があるようです。
 あまり必要性を感じないトリガー。

書式:
 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中は増加しません。この仕様は、MoveGuardedMoveHitMoveReversedで共通です。
注意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勝ちしなかったときのトリガー。
  時間切れ勝利、引き分け、負けはもちろん、まだ決着がついていない場合も含まれます。