ICLPX's Apps

イベントリストの参考例

ここはいろんなイベントリストの例と解説を書いたページです。
イベントの組み合わせで特殊なキャラを作りたいときの参考にどうぞ。
攻撃判定の例は「攻撃判定について」ページを参考にしてみてください。
グラフィックエフェクトについて」ページにも組み合わせた参考例があります。
※例では、本来表示されるものから一部を省いています。

Sub ActionやAction(Entry)で記述するイベント
Action(Entry)に記述するイベント
Action(Exit)に記述するイベント

Sub ActionやAction(Entry)で記述するイベント
ここで例をあげているのは主にIfイベントを使ったイベント記述です。
※Action(Entry)はSpecials-EntryとOverride-Entryを指します。

BasicかFloat変数による変化
If Compare: IC-Basic[2] >= 100.0 (Events ID: 000A0400)
    Offensive Collision: id=0, Damage=B
Else
    Offensive Collision: id=0, Damage=7
End If

この場合、現在のキャラのダメージが100以上なら攻撃力が上がります。
例の100.0はScalarですが、実際はVariableでもOKです。(変数と変数を比較する形になります)
別の変数を使うことで、同様にカラーによる変化、プレイヤーによる変化も起こせます。他の変数については「Variableまとめ」ページで。
注意点としては、LA-BasicなどInt型の変数でもValueは使えず、ScalarかVariableを使って比較するので、16進数から10進数への変換も場合によっては必要です。
なお、Boolean型であるBit変数の比較にはCompareではなく、下の例のようにBit is Setを使います。

Bit変数による変化
Offensive Collision: id=0, Damage=7
If Bit is Set: LA-Bit[71] (Events ID: 000A0200)
    Change Hitbox Damage: id=0, Damage=B
End If

この場合、LA-Bit[71]がtrueなら攻撃力が上がります。
もちろん、こちらも別の変数を使えます。

ボタン入力による変化
If Button Pressed: 1 (Events ID: 000A0200)
    Change SubAction: 52
End If

この場合、Bボタンを押していればChange SubActionを読み込みます。
ボタンIDはValueで、0ならA(攻撃ボタン)、1:B(必殺技ボタン)、2:X,Y(ジャンプボタン)、3:L,R(シールドボタン)
といった具合になっています。詳しくは「Requirementについて」ページで。
また、スティックの入力はCompareで専用の変数を比較することで判別できます。詳しくは「Variableまとめ」ページで。

ランダムで変化
If Roll A Die: 2 (Events ID: 000A0200)
    Sound Effect
End If

この場合、1/2(50%)の確率でSound Effectを読み込みます。もちろん確率で変化するのは、Ifブロック内だけです。
Valueの値はいわゆる分母なので、大きくするほどIfの中にあるイベントを読み込む確率が下がります。
3つ以上のものをそれぞれ同じ確率で、その中から1つだけをランダムで読み込みたい場合は、If Roll A Dieを複数用意する必要があります。
例として4つの効果音をそれぞれ1/4(25%)の確率で発生させたい場合、
If Roll A Die: 4 (1/4)
    Sound Effect
Else If Roll A Die: 3 (1/3*3/4 = 1/4)
    Sound Effect
Else If Roll A Die: 2 (1/2*2/3*3/4 = 1/4)
    Sound Effect
Else (1*1/2*2/3*3/4 = 1/4)
    Sound Effect
End If

このようにするといいです。


Action(Entry)に記述するイベント
ここではAction1つで完成しているものだけ例にあげています。
地上でのみ使える技(例:上強攻撃)
Change Action: action=E, Requirement=In Air
Change Action: action=0, Requirement=Animation End
Additional Requirement: On Ground
Change SubAction: subAction=54

この場合、まず一番上のイベントで空中なら通常落下状態に移行するようにしています。(落下時技が中断される)
上から2つめと3つめイベントでアニメーション終了時に地上なら地上待機へ移行するようにしています。(アニメーション終了で技を終了)
そして一番下のイベントでSubActionを指定しています。
ちなみに、Animation FlagsのLoopがONになっている場合はAnimation Endは使えません。
また、空中でも使える技を地上限定の技にしたい場合、空中で技を出せなくする必要があります。
※Animation FlagsのLoopがOFFでアニメーション終了後の設定が全くない場合、アニメーション終了時のモーションのまま動かなくなります。
※Change Actionやキャンセル系のイベントがActionとSub Actionのどちらにもない場合、攻撃を受けて中断されたりしない限り、別の行動に切り替えられないので注意。

地上と空中で使える技
Change Action: action=0, Requirement=Animation End
Additional Requirement: On Ground (2つのイベントで終了時に地上なら地上待機へ)
Change Action: action=E, Requirement=Animation End
Additional Requirement: In Air (2つのイベントで終了時に空中なら通常落下へ)
Set Loop: Infinite (無限ループ始点)
    If: On Ground (地上の場合)
        Set Air/Ground: On Ground (地上ステート)
        Set Aerial/Onstage State: Can drop (地上ステート)
        If Bit is Set: RA-Bit[16] (印ありなら読み込む)
            Change SubAction: 1CE, true (アニメーションを途中から再生)
        Else (印なしなら読み込む)
            Change SubAction: 1CE (アニメーションを最初から再生)
            Bit Variable Set: RA-Bit[16] = true (次からアニメーションを途中から再生するため印をつける)
        End If
        Set Requirement: In Air (空中に移動するとLoop Restを読み込む)
    Else (地上にいない場合)
        Set Air/Ground: In Air (空中ステート)
        Set Aerial/Onstage State: In Air (空中ステート)
        If Bit is Set: RA-Bit[16]
            Change SubAction: 1CF, true
        Else
            Change SubAction: 1CF
            Bit Variable Set: RA-Bit[16] = true
        End If
        Set Requirement: On Ground (地上に移動するとLoop Restを読み込む)
    End If
    Loop Rest(Set Requirementの条件達成まで待機)
Execute Loop (ループ終点)

この場合、地上・空中で技が共通しているとなります。
ループ始点の上4つのイベントで、アニメーション終了で技を終了するようにしています。
ループ始点の中では、Change SubActionを地上用と空中用に分けて記述し、地上と空中が入れ替わると読み込むSubActionと、横移動などの状態が変わるように記述されています。

また、地上・空中で技が独立して入る場合は下のようになります。

If: On Ground
    Set Air/Ground: On Ground
    Set Aerial/Onstage State: Can drop
    Change Action: action=E, Requirement=In Air
    Change Action: action=0, Requirement=Animation End
    Change SubAction: 1CE
Else
    Set Air/Ground: In Air
    Set Aerial/Onstage State: In Air
    Change Action: action=19, Requirement=On Ground
    Change Action: action=E, Requirement=Animation End
    Change SubAction: 1CF
End If

地上と空中で技が独立して入る場合は普通こんな形です。地上と空中が入れ替わると技が中断されます。

複数のSubActionを使った技
Change Action: action=E, Requirement=In Air
Change SubAction: 4B
Set Requirement: Animation End,
Loop Rest:
Change SubAction: 4C
Synchronous Timer: frames=27.0
Set Requirement Button Not Pressed: 0
Loop Rest:
Change SubAction: 4D
Change Action: action=0, Requirement=Animation End

この場合、地上でAボタンを押している間は技が続きます。連続攻撃に使えます。

Action(Exit)に記述するイベント
状態を戻す
Visibility: true

この場合、キャラの見えない状態を必ず見えるようにします。
もちろんこの他にも、道具をしまったり、グラフィックエフェクトや効果音を消したり、変数を操作することもできます。

切り替えた後のActionが特定のものかで判別
If Compare: IC-Basic[20001] != 0.0
    And Comparison Compare: IC-Basic[20001] != 14.0
    And Comparison Compare: IC-Basic[20001] != 31.0
    And Comparison Compare: IC-Basic[20001] != 32.0
    And Comparison Compare: IC-Basic[20001] != 303.0
    Basic Variable Set: LA-Basic[64] = 0
End If:

この場合、技が別Actionによる技発動と、通常終了と回避を除く行動でキャンセルされた場合などの時のみ変数を操作します。
簡単に言うと、チャージ系の技が攻撃を受けたなどで中断された場合、チャージ状態をリセットする記述です。
もちろんこの他にも、道具をしまうなどでも使えます。複数のActionで構成される技でよく使われます。

ちなみにExitにAction中のみ効果があって、終わると解除されるようなもの(無敵やActionの切り替えで元に戻るBit変数)を入れても意味がないようです。

inserted by FC2 system