個人や小規模サークルでゲームを作るとき、BGM や SE 、あるいはボイスを選んでいく作業がなかなか大変だと思います。
フリーで使用できる音源をあちらのサイトやこちらのサイトからとりあえずざっくりと、あれもこれもと目一杯ダウンロードしておいて、いざ、シーンを考える段になってから、ダウンロードしておいた大量のファイルの中からぴったり合うものを選んでいくわけだが…
それにしても多すぎる!
いちいち iTunes に取り込んで聴いている場合でもないし。
ファイルパスで見ながらどんな曲かが分かりさえすればよいのだ。
もっとさくさく聴けないものだろうか。
そんなあなたとわたしの悩みを解決するべくツールを作りました。
デモ
http://ooq.jp/pri/tech/js/001.sound_list/sound_list.html
ソースファイル
sound_list.sh
sound_list.html.tpl
※利用環境は mac となります。
できること
あるディレクトリ配下にあるサウンドファイルをすべてリスト化して
ブラウザでさくさく聴く
設置のしかた
- sound_list.sh と sound_list.html.tpl を適当なディレクトリに置く
2つのファイルは同じディレクトリに置いてください。 - sound_list.sh のはじめのほうにある次の設定を実行環境に合わせて編集
・サウンドファイルが置いてあるディレクトリ
・対象のファイルタイプ
・設置する html ファイルから対象ディレクトまでの相対パス
(よく分からない場合はとりあえず空でよい) - sound_list.sh を実行する
結果は標準出力に出ます。
リダイレクトで html ファイルとして保存してください。
ex) $ sh sound_list.sh > sound_list.html
画面の使いかた
sound_list.sh を実行して作成したファイルをブラウザで開きます。
ローカルファイルとして開いても構いません。
先のデモ画面を見ながら説明します。
http://ooq.jp/pri/tech/js/001.sound_list/sound_list.html
ページを開くと1曲目から自動で流れはじめます。
上部ボタンの説明
next : 次の曲へ進みます
loop : ループ再生します
intro : イントロの 3.5秒くらいで次の曲に移ります。デフォルトで on になっています。 off にすれば以降も聴けます
あとはだいたい分かると思います。
デモのようにウェブサーバにあげるなどして http 経由で見れば、ブラウザを一度閉じたあとでも、前に聴いていた続きから聴けます。localhost でも大丈夫だと思います。
単に local ファイルとして見ている場合は cookie が使えないため前の続きからは聴けません。それ以外の機能は同じです。
プログラムの説明
プログラムの学習用に中身の説明もしたいと思い、コードの中にコメントで記述していたのですが、シェルスクリプトのほうだけで力尽きました…
javascript 部分についてはまたの機会に…
とりあえずソースは掲載しておきます。
sound_list.sh
説明をコメントで記述しています。
sound_list.html.tpl
音源ファイル提供元
Pocket Sound : http://pocket-se.info
back-ground.biz : http://back-ground.biz
music is vfr : http://musicisvfr.com
無料効果音で遊ぼう! : http://taira-komori.jpn.org
On-Jin : http://on-jin.com
効果音ラボ : http://soundeffect-lab.info
くらげ工匠 : http://www.kurage-kosho.info
DOVA-SYNDROME : http://dova-s.jp
以下は細かいことなので興味を持ってくださった方のみへ
細かいことをいうと loop と intro が両方 on のときは intro が優先され、 3.5秒で次の曲に進みます。
同じ曲の冒頭 3.5秒を繰り返すわけではありません。
もともと長さが 3.5秒未満の曲の場合、 3.5秒間は同じ曲を繰り返し、 3.5秒経ったところで次の曲へ進みます。
ボタン名から考えるとちょっと違和感があるかもしれませんが、このツールの目的としてはまあこれでいいかなと思い、こうしています。
冒頭 3.5秒を繰り返し聴きたい需要はたぶんあまりなく、もし冒頭を何回かよく聴いてみたい曲があったら頭の 10秒ぐらい聴いて自分のタイミングで先頭に戻るほうが自然。
loop 機能の目的は同じ曲の終わりとはじめのつながりに違和感がないかを確認するため。ゲームの bgm はループ再生されるのが基本なのでその確認のためです。
intro 機能を正確にいうと “イントロのみを聴いて次に進む” なのでボタン名も “intro & next” にするとより正確なのだが表示上の短縮のため “intro” としている感じです。
両方 on のときはどちらを優先するかといった細かい挙動をユーザーが自由に設定できるようにするのが一番よいと思いますが、そこまで作る時間は取れそうにないのでした…