■スロットIDについて

そのフレーム中のHelperを含むキャラの処理の順番を決定する情報。
  • 正式名称不明。便宜上他のIDと区別するため「スロットID」と呼称。
    • デバッグ表示の2段目、Name、IDの隣に()内に表示されている番号のこと。
  • T-/ID(キャラID)と同様、Helperを含む全てのキャラが保有する。
    • キャラIDは「その試合中、別のキャラが同じIDを使用することがない」のに対し、
      スロットIDは特定のスロットを除き、空きが発生すれば使い回される
    • キャラIDと異なり、トリガー情報が存在しない
    • キャラIDは試合形式によっては決まった数字にはならないため
      キャラIDを利用して順番を確かめることができる状況は限られる
      • T-/TeamModeが互いにSingle(シングル)なら、キャラIDそのままで確認できる。
      • TeamModeが互いにTurns(チーム戦)でRoundNo>1の場合、キャラIDは一切信用できない。
      • TeamModeがSimul(タッグ)の場合、パートナーとのキャラIDとはそのまま確認できる。はず。

処理の順番の決定
  • 1フレームにおけるステートの処理は基本的にスロットIDの若い方から優先的に行われる。
    • 1Pは0、2Pは1、3Pは2、4Pは3で固定されているため、優先順位は1P>2P>3P>4P。
    • SC-/Helperについては後述。
  • ただしフレームの開始時点でMoveType=Aであった場合さらに優先的に処理される。
    • つまり「ステート開始時点でMovetype=AのキャラのスロットIDの若い順」の次に
      「行動していないMovetype!=Aの既存キャラのスロットIDの若い順」で処理される。
    • 新しく射出されたSC-/Helperは射出したフレームでは既存キャラ処理後、射出順で行われる。
  • またSC-/PauseSC-/SuperPause実行後のフレームではMoveTimeの無いキャラはスキップ。
    • 2キャラが同じフレームで実行した場合、両者ともMoveTime分のみ動ける。
    • ただし攻撃を受けた場合、HitPauseの時間分MoveTimeが加算され、動くことができる
      • とは言え基本的に動くことは無いが

HelperのスロットID
  • SC-/Helperに割り当てられるスロットIDは「4以上で使用されていない最も若いスロットID
    • SC-/DestroySelf消去された場合、そのスロットIDは空きとなる。
      • 既に出ているHelperのスロットIDは変化しない。既にあるHelperで空きを詰めるような処理は無い。
      • もちろん新しく射出されたHelperがあれば、空いたスロットIDに入ることもある。
  • 具体例
    • ABCD の4個のHelperを射出すると、このような優先順位で処理される。
    • CD そこからを消去すると
    • ×CD このようにのスロットIDが空きとなる。そこへ新しくのHelperを射出すると
    • CD と空いたスロットIDへEが配置され、この優先順位で処理が行われる。
  • なお射出したフレーム時点で既存キャラより後に処理が行われる
    • 上記例の場合、射出フレーム時点「ACD…」→次のフレームから「ACD」ということ。
  • 新規Helperの処理の順序は射出順
    • 「ABC」とある状態でAがDを射出「ABC(D)」、Bが消失「A_C(D)」
      CがEを射出「AECD」というスロット順になるが、
      • 射出時点では「ABC→DE」の順番で処理が行われる。
  • SC-/DestroySelf実行の手前にSC-/Helperを置いて発射と同時に消失した場合
    • 射出時点で空きにはなっていないため別のスロットIDを用いる
    • SC-/DestroySelfを先に実行してSC-/Helperを実行した場合は、エラーで落ちる。
  • Helper,リダイレクト
    • Helperリダイレクトで該当するHelperが複数存在する場合は
      最もスロットIDの若いHelperを参照する。
  • なお、こうした仕様から後に射出した方が処理が後になるわけではないが、
    • 同じキャラから同時に複数射出したHelper同士のスロットIDの前後のみは保証できる。
      • 空いている若い順からなので、同じキャラから同時にあれば若い順に入ってくれる。

+ ■スロットID処理の図解


■Lv2-処理の順番を正しく認識するために

速度計算など、相手との処理の順番を正しく認識しなければならない状況はある。
その際、処理の順番を確実に確認するためには少々の手間が必要になる。
なおHelper同士の順番については自分のHlperにかぎらなければ不可能です。
(自分のHelper同士でも、ParentVarsetなどを駆使してできるかどうか、困難です。)

確認の素案
  • T-/TeamSideで1P側か2P側かを確認する
  • T-/NumPartnerでタッグのパートナーがいるかどうかを確認する。
    • パートナーがいる場合、( ID < Partner,ID )でどちらが1P/2P側かを確認する。
  • まず自分側の状況を確認し、基本値を設定する。
    • TeamSide = 1 でNumPartner=0、もしくは( ID < Partner,ID )=1なら、1P側と確定。基本値を10に。
    • TeamSide = 1 でNumPartner=1かつ( ID < Partner,ID )=0なら、3P側と確定。基本値を12に。
    • TeamSide = 2 でNumPartner=0、もしくは( ID < Partner,ID )=1なら、2P側と確定。基本値を11に。
    • TeamSide = 2 でNumPartner=1かつ( ID < Partner,ID )=0なら、4P側と確定。基本値を13に。
    • ステート開始時にMoveType=Aであった場合は、基本値を-5する。
  • 次に相手の状況を確認し、基本値を設定する。
    • 自分側がTeamSide = 2 で( EnemyNear,ID = Enemy,ID)=1なら近い敵は1P側と確定。敵基本値を10に。
    • 自分側がTeamSide = 2 で( EnemyNear,ID = Enemy,ID)=0なら近い敵は3P側と確定。敵基本値を12に。
    • 自分側がTeamSide = 1 で( EnemyNear,ID = Enemy,ID)=1なら近い敵は2P側と確定。敵基本値を11に。
    • 自分側がTeamSide = 1 で( EnemyNear,ID = Enemy,ID)=0なら近い敵は4P側と確定。敵基本値を13に。
    • EnemyNear,Movetype=Aであった場合、敵基本値を-5する。
    • ※ただしこのままだとMovetypeが変化したフレームでの認識が定まらないため
      Helperで相手の状態を記録させて、そこから認識させるのがベター
  • 確認して設定した数値を比べ( 基本 < 敵基本値 )=1である場合、
    敵より自分の方が先に処理していると断定できる。
  • 自分基本値=10+(TeamSide=2)+ 2*(var(*相方確認*)=1) -5*(MoveType=A)
  • 相手基本値=10+(TeamSide=1)+ 2*!(EnemyNear,ID = Enemy,ID) -5*(Helper(xx),var(*敵Movetype確認*))
※Partner,リダイレクトを使用する際は必ず直前でNumPartner>0を調べること。
※2対2のタッグ時を限界として想定。改造MUGENなどでの4人タッグなどは不可。