トリガーの書き方

基本的に、

[State ***]
type = ***
trigger1 = ***
以下略


と言うような形で、cnsやcmdは記述していきます。
んで、ここではtriggerの部分を解説します。

とりあえず、triggerと言うのは、「trigger=引き金」と言う意味で、条件が合うと、Sctrlが発動する、と言う感じです。


例えば、

[State ***]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

と言う記述があります。この場合は、
trigger1で指定してある、AnimTime = 0の時に、StateNo = 0にCtrl = 1でChangeStateすることになります。

んで、
;-----------------------------------------------------------------------------------------

[State ***]
type = ChangeState
trigger1 = Time >= 10
trigger1 = MoveHit
value = 0
ctrl = 1

と言う場合、 
trigger1が2つあるので、この2つが同時に成立した場合、ChangeStateが行われます。

;-----------------------------------------------------------------------------------------

[State ***]
type = ChangeState
trigger1 = Time >= 10
trigger2 = MoveHit
value = 0
ctrl = 1

と言う場合、 
trigger1とtrigger2があります。
これは、trigger1のtime >= 10か、trigger2のmovehitのどちらかが成立したときに、発動します。
;-----------------------------------------------------------------------------------------

[State ***]
type = ChangeState
triggerall = Time >= 10
trigger1 = MoveHit
trigger2 = MoveGuarded
value = 0
ctrl = 1

と言う場合、 
triggerallというのがあります。
これは、trigger1以降、trigger2やtrigger3などの数字の記述全てに影響します。
なのでこの場合、
triggerallの time >= 10 が成立しつつ、
これは、trigger1のmovehitか、trigger2のmoveguardedのどちらかが成立したときに、発動します。

ちなみに、triggerallだけの記述だとエラーが出て落ちます。
必ずtrigger1を記述しましょう。

;-----------------------------------------------------------------------------------------

[State ***]
type = ChangeState
trigger1 = MoveHit && time >= 10
trigger2 = Moveguarded || time >= 30
value = 0
ctrl = 1

と言う場合、 
trigger1のmovehitとtime >= 10が同時に成立したとき。
trigger2のmoveguardedかtime >= 30のどちらかが成立したとき。
と言う条件で発動します。

分かりやすく分解すると、
[State ***]
type = ChangeState
trigger1 = MoveHit
trigger1 = time >= 10
trigger2 = Moveguarded 
trigger3 = time >= 30
value = 0
ctrl = 1

と言う具合です。
;-----------------------------------------------------------------------------------------
■トップへ戻る