ゲーム効果音の再生方法
ボタンをクリックすると、「ピッ」となるプログラムを作ります。
効果音を探し、加工、プログラムへの組み込み、遅延のない再生と進みます。
- 効果音を探す
- 効果音の加工
- 効果音をプログラムに組み込む
- 効果音を遅延なく再生する
(注)効果音再生時の遅延
ボタンクリックから効果音再生までに時間が空くこと。
ゲームなどで、ボタンを連打する場合、この遅延が生じないようにする必要がある。
効果音を探す
グーグル検索で、フリーの効果音を探すと、サイトが沢山あります。
- Google検索:キーワード「音 フリー素材 効果音」
その中で、「フリー効果音素材・無料効果音」というサイトから、フリー素材をダウンロードしました。
- sh_pickup01.mp3
効果音の加工
効果音をプログラムに組み込むため、mp3ファイルをbase64文字列に変換します。
base64文字列
グーグル検索で、mp3 をbase64 に変換するサービスを提供しているサイトを探します。
- Google検索:キーワード「mp3 base64 変換」
以下のサイトが見つかりました。
Code Contribution: MP3 to base64 encoder and decoder
このサイトの記事「MP3 to base64 encoder and decoder」中にあるツールを利用します。
このツールを利用することで、mp3効果音がbase64文字列になります。
- sh_pickup01.mp3 → sh_pickup01.txt
sh_pickup01.txtは、1バイト文字が、9,712文字も並んでいます。
- sh_pickup01.txt の内容: SUQzAwCAA ・・・・・ qqqqqg==
(注)sh_pickup01.txt のファイルサイズは、9.48(KB)です。
効果音をプログラムに組み込む
プログラム言語は、Javascript を用います。
base64文字列の設定
sh_pickup01.txtの中身であるbase64文字列を、変数「se64」に代入します。
代入演算子(=)の右辺に空文字(””)を作り、その中にsh_pickup01.txtの中身を「コピー&ペースト」します。
- var se64 = ”SUQzAwCAA ・・・・・ qqqqqg==”;
(注)実際は、9,712文字あるので、とても長い文字列です。
プログラム(全体)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UYF-8" /> <title>Sound Effect</title> <script> // // // var se64 = ”SUQzAwCAA ・・・・・ qqqqqg==”; // // // var se = new Audio("data:audio/wav;base64," + se64); </script> </head> <body> <input type="button" value="効果音" onclick="se.currentTime=0; se.play()"> </body> </html>
プログラムの説明
10行目において、変数「se64」にbase64文字列を代入しています。
14行目では、その「se64」を用いて、Audioオブジェクトを生成しています。
18行目で、inputタグでボタンを定義しています。
inputタグのonclick属性に、ボタンをクリックしたときに動くプログラムを記述します。
ここでは、効果音を再生するため、se.play() と記述します。
効果音を遅延なく再生する
18行目のinputタグのonclick属性に以下のコマンドがあります。
- se.currentTime = 0;
AudioオブジェクトのcurrentTimeプロパティをゼロ(0)にしています。
ボタンをクリックする度に、currentTimeプロパティがゼロ(0)になります。
ボタンをクリックする度に、効果音が初期位置に巻き戻しされます。
これにより、ボタンを連打したときに効果音の遅延がなくなります。