>>251
ウディタの仕様からの予想と俺なりの解釈なんで、間違っていたらすまん。と最初に言っておく
間違ってたら誰か修正してくれ

ウディタの動作指定の仕様は、【一次予約】と【二次予約】から成り立っているんや。

(A) キャラクターが動いていない(チップの間にいない)状況の場合(移動中?の変数が0の場合)
 1. 移動処理が当たるまで処理を実行する
 2. 移動処理が入っていた場合は移動先のマスが空いているかの確認
 3. 移動先のマスが空いていた場合、Evの座標をそこへ移して、Evの移動処理を【一次予約】に書き込む。変数操作+の、対象Evの移動中?の変数を1にする
 4. まだ行が残っていた場合、【二次予約】へ書き込む
 ※これはコモンEvの場合の処理。マップEvの場合、移動以外の処理にも頻度が影響するため、一番最初の行以外は【二次予約】行き(のハズ)

(B) キャラクターが動いている(チップの間にいる)状況の場合(移動中?の変数が1の場合)
 1. 既に【二次予約】が存在していた場合は、全て消去
 2. 全ての新しい動作指定を【二次予約】へ書き込む

んでウディタの処理順番は大雑把に言うと

マップ並列実行→自動実行→コモン並列実行→ウディタ側の処理→画面更新

って感じ。んでキャラクターを実際に画面上で移動させたりしているのが、このウディタ側の処理なのよ。
このウディタ側の処理がどんな感じで動いているかと言うと

1. 【一次予約】が残っていた場合は処理を行う
2. 【一次予約】の処理分が、この処理で終わった場合、【二次予約】から(A)の処理を行う
3. 既に何も残っていない場合、対象Evの移動中?の変数を0にする

ここで【二次予約】から【一次予約】への移し替えがあるわけ。しかも動作完了と同時に行われる。この処理が、全ての処理が終わった後に行われるっていうのがミソでな。
並列実行や自動実行、呼び出しなんかでは、【一次予約】は書き換えられないんだけど、【二次予約】は書き換えられるので、
キャラクターが動いていない場合は、最初の動作は一次予約に書き込まれるので、「先に実行された処理が優先」されて、キャラクターが動いている場合には「後に実行された処理が優先」される
ように見えるんや