ティラノビルダーでBGMを再生させようとするとき、ループの際に途切れてしまう現象が生じたため、色々と試してみました。
あくまで私の環境での改善方法ですが参考になれば幸いです。
どうやらHTML5オーディオでの再生が問題のよう
結論から言いますと、BGM再生において「HTML5オーディオで再生」にチェックを入れていると、ループ再生したときに途切れる現象が起きるようです。
ですので、「HTML5オーディオで再生」しなければ、音源がおかしくない限りは滑らかにループするはずです。
上の画像のように設定すればOKです。
これは色々試した結果、消去法にて導かれたものなので、原理はよく分かっていません。
もし同じ症状が起きた方で、とりあえずシームレスにループ再生が出来れば良いという場合はこちらを試すだけで問題ないかと。
ただ、もう少し踏み込んで考えてみると、この処置を行う場合「HTML5オーディオ再生」が出来ないわけです。
そこで「HTML5オーディオ再生」についてちょこっと考えてみました。
HTML5オーディオとは
HTML5オーディオは HTML5 の仕様の主題の一つで、音声の再生・入力・合成・認識などをウェブブラウザで扱う。
Wikipedia
ということらしいです。
「HTML5」がWebにおける新しい仕様っぽいので、それにおける音楽を再生するためのものが、「HTML5オーディオ」ということですかね。
これもまた、新しい音楽再生の方式だと考えたら良いのでしょう。
新しい方式ですので、しばらくは多くのデバイスで再生できるという利点があるかと思います。
ティラノビルダーにおける利点
では、ティラノビルダーにおいて、「HTML5オーディオ再生」にはどんな利点があるでしょうか?
再生までに生じるラグを無くし、瞬時に再生させる
公式のアップデート情報によると、そういう利点があるようです。
これはフルボイスのノベルゲームなどを作る際、テキストの進行に合わせて瞬時にボイスを再生させる時に活用できますね。
注意点
しかし、ティラノビルダーで「HTML5オーディオ再生」を設定した場合、スマートフォンなどで音量調整が効かないなどの制限が生じるようです。
最近はスマートフォンでノベルゲームをプレイする層も増えていると思いますから、注意が必要です。
対策としては、元々の音源データの音量を適切なものに設定しておくくらいでしょうか。
余程小さすぎたり大きすぎたりしない限りは、問題ないかと思います。
使い分けが必要
つまり。「HTML5オーディオ再生」は再生の開始にラグを生じさせない再生方法なわけです。
では、再びBGMのループ再生の話に戻ります。
個人的な考えですが、BGMの再生において開始のラグはそこまで大きくゲームの品質に影響しないだろうと思うのです。
それは、そもそもBGMが再生開始される直前は、何らかの切り替え演出がある場合が多いからです。
そこで生じる待ち時間と、再生開始のラグの違いは分かりづらいものでしょうし、あえて「ウェイト」などを挿入する場合もあるので。
そして、仕様なのか分かりませんが、BGMのループ再生の場合、「HTML5オーディオ再生」だとループの繋ぎ部分で途切れてしまうのです。
ですから、
【SE・ボイスデータ再生】
・HTML5オーディオで再生にチェックを入れる
【BGMをループ再生】
・ループ再生にチェックを入れる
・HTML5オーディオで再生のチェックは外す
と、このように使い分ける必要があるのです。
ちなみに、色々試す中で、BGMのファイル形式を「ogg」と「mp3」で比較したりしたのですが、ファイル形式による変化はあまりないように感じました。
余談
余談ですが、SE(効果音)を再生させる場合、私の場合どうしても前半にノイズが入る現象がありました。
これは「HTML5オーディオ再生」にすることで、ノイズのない再生にすることが出来ています。
元々の音源にもノイズはないですし、原因は不明ですが、同じような症状が出た方は試してみると良いかもしれません。
以上、ティラノビルダーでシームレスにBGMをループさせる方法についての覚え書きでした。