バグ一覧/116

Last-modified: 2022-03-27 (日) 00:10:52

水中判定の世界から通常判定の世界にぺんぎんで加速した状態で移動すると移動速度が加速したままになる

重大度些細
バージョンver0.118c パッチ6
状態

CEV0027:【呼】エフェグラフィック更新 が変更されCEV0010:歩行速度判定、処理 が呼び出されなくなったのが原因のようです。

あまり検証できてませんが水中→陸判定の移動をすると起きると思います(水中華→夢火星で確認)
パッチ6で海底のはマップEV側で修正しましたがCEV側で直した方がよさそうです。


【このバグが発生する原因】

CEV0029で加速した状態になった後、
CEV0029による「歩行速度に2を代入→歩行速度判定、処理コモン呼び出し」が実行される前に
CEV0029の出現条件スイッチがOFFになって、処理が止まるため。

平たく言うと、『CEV0029が中途半端なところで止まってしまう』ことが本当の原因です。
CEV0027の変更はこのバグを顕在化させただけで、バグの真の原因ではありません。
『CEV0029が中途半端なところで止まってしまう』状態でセーブすることも可能です。
この状態で水中判定のスイッチが再度ONになると、
ぺんぎん状態でないのに見た目がぺんぎんに変化して見えるバグが発生します。

従って、このバグを修正する場合、
『CEV0029が中途半端なところで止まってしまう』ことを防げなくてはなりません。


【解決する方法】
①加速中は場所移動イベントを起動できないようにする
②「イベント中動作禁止」を実行した後、16フレーム以上経過してから水中判定のスイッチをOFFにする

①はMAP0056のピアノの場所移動イベントなどで採用されています。
②は言葉で説明すると複雑ですが(この説明もちょっと不十分ではある)、多くのマップやシステムで採用されています。
ほほをつねったときに『CEV0029が中途半端なところで止まってしまう』ことが発生しないのも、②が理由です。

逆に言うと、このような対策がとられていないところはバグが発生します。


【バグの発生する箇所】(適当にざーっと見ただけなので万全なリストではない)

  • MAP0056 20海底(遊園地みたいなとこに行くところ)
  • MAP0204:深海1 [うろつきがすっぴんに戻る関係で速度変化バグは発生しないが、ぺんぎん変化バグは起こる]
  • MAP0280 20海底2(こども取るとこへ行くところ)
  • MAP0668 水中華(noildoof氏のマップに行くところ)

このように修正対象のマップは意外と少ないかもしれません。
その理由は以前同じバグを2i9さんが修正してくれているからです。
その修正で漏れたところが今回のバグとして顕在化している箇所だと考えられます。

2022-03-03 (木) 13:55:31

  • 個人的にはCEV側で直す…具体的には「CEV0027でCEV0010を呼び出すように変更する」という修正方法は採らない方がいいと思いました。
    マップイベントを直すほうが手間なのは確かですが、以下のような理由からこう思いました。
  1. コモンイベントを分かりやすい形に維持するには、1つのコモンイベントに1つの仕事だけを与える形が望ましい。
    「【呼】エフェグラフィック更新」とグラフィック更新を謳うコモンイベントには、それ以外の仕事(歩行速度変更)をしてほしくない。
  2. CEV0027でCEV0010を呼び出すように変更する場合、エフェクトの変身にかかるフレーム数が1増える。
    処理の重複が単純に無駄なだけでなく、このフレーム数増加の結果新しいバグを発生させる可能性がある。
  • もし、しばらく誰もこのバグを修正しないようなら、私の方で出来る範囲でマップイベントを修正していこうと思います。 -- qxy? 2022-03-03 (木) 19:26:42
  • ぺんぎん時のみ[歩行速度判定、処理]を呼び出すこともできるけど、上記の"2."の件は確かに避けた方が良さそう。(全然考えてなかった)
    発端が私だし、もしqxy氏より先に走ることになれば私もマップイベント側修正で対応しようと思います。 - kuraud -- 2022-03-03 (木) 22:11:13
  • かつての動作をマップイベント側で再現する場合このまま行くと、ぺんぎんであるか判定→歩行速度に2を代入→歩行速度判定、処理コモン呼び出し、になるんだけど、これだとぺんぎんに何らかのMIXができた時に大変なことになりそうな予感がする… - kuraud -- 2022-03-11 (金) 00:47:37
  • 【このバグが発生する原因】【解決する方法】【バグの発生する箇所】を追記しました。このバグは以前報告されて修正されたと思われていたバグのうち、修正をすり抜けたものが顕在化したものだと思います。そのため、このバグをより本質的に解決するためにはこのような方法になるだろうと思います。この方法ならばおのずとCEV0029が「歩行速度に2を代入→歩行速度判定、処理コモン呼び出し」を必ず実行してくれるようになりますので、ぺんぎんに何らかのMIXができた場合にも問題ないだろうと思います。 -- qxy? 2022-03-11 (金) 19:37:24
  • 了解です。そもそもこの方法だとぺんぎんかどうか判定しませんもんね…。CEV0029側が中途半端に折られてるとこまでは追えてて「CEV0029側の出現条件を変えるか、いや結局バッティングしまくる」辺りまでは考えてたけどそういやイベ中動作禁止だったな…。 - kuraud -- 2022-03-11 (金) 20:47:39
  • 機会があったのでMAP0668 水中華だけ修正 -- 2022-03-17 (木) 00:13:03