ついにこの日が来ました。日記はそういえば2ヶ月経っていました (昨日)。なかなかいい感じに習慣化したので良かったですね。
今日は諸々のバグをいろいろ直して。直したはずで。で、テスト公開をしました。
沢山の方々に来ていただいて本当にありがとうございました、無事バグも見つかり何よりでした (4枚目はみずしろさんより) pic.twitter.com/jTdmyeStyj
— phi16 (@phi16_) 2020年7月18日
この1ヶ月半の全てがどんどん収束している感じ、めちゃくちゃ熱いですね。はー。
テスト公開の甲斐あって最悪みたいなバグを発見できたのは本当に良かった。とても有意義な機会でした。
ちょっと解説をします。
端的に言えば「わいわい遊んでいたら唐突に雨が止まるバグ」が起きていました。一部の人だけ止まるときもみんな止まるときもあるようで、やばい。
まず思いつくのはUdonがクラッシュしたケースですが、エラーログを見てもらっても見つからない。
実際そのときの動画を見せてもらうと「Udonが動いてないと変化しないはずの値」が変化していることがわかります。つまりUdon自体は正常。
じゃあ何かな、って考えてみると変化すべき値が変化していないことがわかりました。それは「世界全体の時間」です。
あの世界の時間軸は一般的な Time.time
ではありません。音を丁度のタイミングで鳴らすために独立した時間軸をつくった、という話はこのときにしました。
つまり。Udonが正常に動いているにも拘らずこの時間が進んでいない、ということは。この機構に使われているAudioSourceの時間が止まっている可能性があるわけです。
そうすると想起されるのはAudioSourceの同時再生数です。考えてみればこれについて特に深いこと考えたことは今までありませんでしたが、もしもLoopしているAudioが同時再生数上限に達するとLoopしなくなるのであれば、これはまずいわけです。
これを検証する為にみんなでいっぱい音を鳴らしてみたところ。時間が止まる人が段々出始めて。私も遂に止まって。完全に再現が取れたっぽい。ということでした。
ローカルでもグローバルでも起きてるっぽいっていうのは確かにこれを反映していて、つまり境界ギリギリのときはローカルで止まるし、一気にみんなで音を出しちゃうと大体の人が境界を越えるわけですね。
ということで、音を鳴らしすぎると時間が止まるバグが見つかったわけでした。めでたしめでたし。
priorityでなおるといいね。明日やります。
なかなかこう、綺麗にバグを見つけるとかは出来ないもので。今回はすごい鮮やかな感じがしました。終わってからはなんとでも言えるんだけどね。
多分これはみんなが声を出しているから起きた部分があると思うので、大人数での検証が出来て本当に良かったです。マジで。
さて。
いろいろ連続ツイートについておはなしを書こうかなと思いましたが、まぁそれをやるのは明日にすべきでしょうね。
無事何事もなく終了できることを願います。最後の一日。やっていきます。
おやすみなさい。