ティラノスクリプトで WEB_AUDIO_API (JavaScript) を利用する意義
どうもこんにちは、シャチです。
今回はティラノスクリプトで WEB_AUDIO_API (JavaScript) を利用する意義について書こうと思います。
ティラノスクリプト基本機能の限界
ティラノスクリプトには音声ファイルを扱う上で、基本的な機能が備わっています。
しかし、音楽や効果音の演出を凝ろうとしたとき、できないことがあることにも気付くのです。
シームレスなループ再生
その代表的なものとして「シームレスなループ再生」が挙げられます。
同じBGMを延々と鳴らしていると、当然曲の終わりが来てまた最初から再生されます。
これがティラノスクリプトのループ再生機能です。
ですが、ループの継ぎ目がシーンの雰囲気を壊してしまうこともあります。
それを解決するのがシームレスなループ再生ですが、ティラノの基本機能にはありません。
同じゲーム作成キットとして有名な「RPGツクール」には「oggファイルのループ」として実装されている機能です。
この機能は音声ファイルのある地点(たとえば1分05秒)からある地点(2分03秒)の間をループ再生します。
(もちろんループ範囲の指定は手動で行う必要があります)
この機能なしに同じ事を実現しようとすると、ループ部分のみのファイルを作ることになります。
しかし、そうなるとループ部分の前後を切り落とすことになり、BGMとしては不自然なものになってしまうジレンマがあります。
うまくループするものとしないものを繋げられれば良いのでしょうが、その機能もありません。
ティラノスクリプトと WEB_AUDIO_API で、できることの比較
それでは、具体的にティラノスクリプトと WEB_AUDIO_API で、どれほどできることに違いがあるのかを比較してみましょう。
以下、表にまとめてみました。
やりたいこと | ティラノスクリプト | WEB_AUDIO_API |
1.再生する | ○ | ○ |
2.停止する | ○ | ○ |
3.ループ再生する | ○ | ○ |
4.フェードイン再生する | ○ | ○ |
5.フェードアウト停止する | ○ | ○ |
6.ボリューム操作する | ○ | ○ |
7.シームレスなループで再生する (継ぎ目の分からない無限ループ) |
× | ○ |
8.ゆっくりとボリュームを操作する (フェードイン/アウトさせながら) |
× | ○ |
9.再生を一旦停止して、停止した場所から改めて再生する | × | ○ |
10.指定した位置から再生する (例えば音楽ファイルの1分15秒あたりから) |
× | ○ |
ご覧の通り、基本的な機能(1~6)まではティラノスクリプトで事足ります。
WEB_AUDIO_API が必要になるのは(7~10)を実現しようとした場合のみです。
私の場合、特に7と8の演出がないと動画的に厳しかったので WEB_AUDIO_API を利用することになりました。
今後の記事では、7~10の具体的な実装について書きたいと思います。
お楽しみに。それでは。
↓まだシームレスなループ再生ができていなかった時代の動画です。苦労が垣間見えます。
【第六話】優しい騎士と小さな魔法使い【後編】―動画版