Re: バグ報告スレッド 13 [ No.277 ]
メンテ
 2023/07/30 10:36
 そーま
お忙しいなか失礼いたします。

>>246で報告されている内容について、私も同様の現象が発生しました。
ただし、>>246では「最後のものしか再生されない(最初のものが停止する)」と報告されており、公式マニュアルにもそう追記されていますが、検証したところ実際の発生条件が異なっていたのでご報告させていただきます。


【結論】
2回連続で同じSEを鳴らした際に、2回目のSEの遅延フレーム中に1回目のSEが鳴り終わると、2回目のSEが鳴らなくなる。


【検証内容】
サンプルゲームの決定音(0.47秒=28.2フレーム)を以下のように2連続で鳴らす。
1回目(遅延Xフレーム)→ウェイト(Wフレーム)→2回目(遅延Yフレーム)

このとき、W,X,Yにさまざまな値を入れてみたところ上記【結論】のような法則が得られた。

例えば、X=0,Y=5と設定したとき、W=25〜29の間の値を取ると、2回目のSEがキャンセルされる。


【発生バージョン】
チャンネル機能が実装されたVer2.271以降から当該現象が発生します。


【補足および推測@】
Ver2.271以前からDataフォルダを移行してきた場合、一度サウンドコマンドを開いて再設定した場合のみ当該現象が発生します。

ただしVer3.106以降は、再設定の有無に関わらず必ず発生します。(Ver3.106で旧サウンドコマンド関連のバグが修正されているため、ここで旧サウンドコマンドの強制置換が行われるようになったものと推察します)

報告者によって「Ver2でも発生した」「Ver3以降になってから発生した」と報告バージョンに齟齬があるのは、「Ver2.271時点で発生していた不具合がVer3.106以降になって初めて現れた」というパターンがあったためと思われます(私自身もVer2.271になった直後は気づかず、最近になって初めてこの現象に遭遇しました)


【補足および推測A】
Ver3.107の前後で、Wの値の幅が【遅延フレーム+1フレーム】から【遅延フレーム】に1フレーム分縮まっていました。

例えば、X=0,Y=5と設定したとき、Ver3.107以降はW=25〜29なのに対し、Ver3.107以前はW=24〜29がバグ発生範囲になりました。

Ver3.107で「SEの再生終了ちょうどのタイミングで同じSEを再生するとまれに再生されないバグを修正」が行われているため、恐らく当該バグはこのバグと何か関連しているのではないかと推測します。