ウディタの並列実行0フレームの挙動が気になった

並列実行0フレームゲーム製作
スポンサーリンク

どうも、かっぱのごびゅうです。

ウディターのゲーム製作がなかなかうまくいきません。
並列実行処理をたくさん使ってるんですが、
なんか挙動がおかしいです。

バグと言えるほど壊れてはないんだけど、
正常かと言われるとそうでもないような。

よくわかんないけどなんかモヤっとする感じ。
なので今回も調べてみることにしました。

テーマは、
並列実行0フレームの挙動

あやしさ満点、さあいきましょう。

 

まずは準備から

並列実行01

並列実行02

並列実行03

3列のブロックを左から右に走らせて、
並列実行を読み込んだ順に番号をつけていく、というテスト。
自分で言ってて説明の意味がわかりません。
とりあえずやります。

まずは肩慣らしで自動実行でやってみます。

並列実行04

はい、ちゃんと数字は走りました。

0フレームだから一瞬のはずだったんだけど、
ブロックは2マス動いたみたいですね。
まぁ、問題無し。
見たいのはそこじゃないから。

1列目が終わってから2列目が走って3列目。
まぁ、そういう風に組んだだけなんですけどね。
ちゃんと動いてくれました。

かっぱの予想だと、
並列実行もこれと同じ挙動になると思うんですけど、
どうなんでしょうか?

やってみます。
起動条件を並列実行に変えて、
無駄に100まで数えさせてみる。
(画面内には48までしか映らないはず)

並列実行06

ポチっとな

並列実行05

走ったんですけど、なんか自動実行と違いますね。
そして挙動がえらい遅かったんですが。
これ、ホントに0フレームで動いてるんですかね?

・・・あぁ、忘れてました。
並列実行の時って、勝手に頭にウエイト1フレーム入るんでしたっけ?

たしか?たぶん?

だから遅かったのかな。

でもまぁそう考えると、この展開は納得できますね。
イベントID若い方から順に1個ずつ走って、
みんなで1フレーム待って、また走る。
それを繰り返してるってことですかね。

で、100になったら止まると。

並列実行07

・・・あれ?
なんで102まで行ってるの?
イベント的には100以上だと動かないはずなんだけど・・・。

・・・48(画面に収まる範囲)で実験。

並列実行08

並列実行09

大丈夫でした。
次は47で実験。

並列実行09

・・・48まで行ってる。

46で実験しても、同じ・・・。

45は?

並列実行10

並列実行11

止まった。

いや、なんか、途中から、
薄々はそうじゃないかなって思ってたんですけど、
並列実行の0フレーム内の処理って、
飛び出す時は順番があるけど、リレーしてるわけじゃないっぽいですよね。

次のフレームまでは最初の条件しか見ないで行動しちゃう感じ?

つまり、

並列実行予想イメージ

こうじゃなくて、

並列実行実際イメージ

こういうこと、なのかな?

結論としては、

変数を動かしたら、
最低1フレームは待たないと、
イベントは連動してくれない。

こんな感じでしょうか?

かっぱが疑問に思ってた挙動については、なんかこれで合点がいきました。
0フレームでバンバン変数動かしてたので、それでおかしくなってたんですね。

分かればまぁ、そのルールでやればいいんだけど・・・

ほぼほぼ作り直しだよ

かっぱは未だにゲームを完成させることができません。
作り上げてる人たちはやっぱりすごいなぁ。

まぁでも、ね。
こっちはかっぱだから。
そういうアドバンテージあるから。
最低1フレームは待つかっぱだから。
そもそもフレームってなに?
まぁいいや。
おつかれさま。

コメント

タイトルとURLをコピーしました