一定の範囲で音声やBGMを流す(Minetest)
オンラインで一緒に遊んでいる子どもたちがレストランをつくりだしたので、店に入るとNPCが「いらっしゃいませ〜」といったり、店内でBGMを流したりする仕掛けを手伝ってあげた。
以前のワールドで時間になると「町内」にメロディが流れる時報のような装置をつくったのですが、
音を鳴らすのに使っていたmesecon_soundblockというmodに、ふたつ目のブロックをつくると以前につくったものの設定が全部同じ内容に書き換えられてしまうというバグが生じて使えなくなってしまったので、似たようなものをみつけてきました。
【Mesecons Audio Mod】
https://github.com/mmmsued/mesecons_audio
mesecon_soundblockはluacontrollerをつないで、曲を指定するコードを書いてやる必要がありましたが、これは右クリックの設定で、soundsフォルダ内のoggファイルを指定して、スイッチなどで信号を送るだけで音が出るので簡単だし、場所を取らないので見た目もスッキリします。
これを使って、ジュークボックス的な音楽プレイヤーと、入店するとNPCが「いらっしゃいませ」という仕掛けをつくってみます。
【手順】
必要なoggファイルの作成
今回はvlcでやってみます。
vlcのメニューから「Media」→「Convert/Save」を開く。
「+Add」で元ファイル(mp3など)を追加し、「Convert/Save」へ進む。
「Settings」→「Profile」で「Audio - Vorbis(OGG)」を選択。
レンチマークで「Profile edition」を開き、以下を確認。
「Encapsulation」タブ:Ogg/Ogmにチェック
「Video codec」タブ:チェック外す
「Audio codec」タブ:「Codec」は「Vorbis」、「Channels」を「1」にする(2チャンネルだとゲーム内の音量が変化しない)
設定を「Save」
「Destination file」で保存先とファイル名を指定(ファイル名には「.ogg」をつける)。
「Start」で、指定ディレクトリにファイルが生成される。
Modを入れます
Mesecons Audio Modのフォルダを、~/.minetest/mods/mesecons/にコピーし、有効化させます。
出来上がったoggファイルを、~/.minetest/mods/mesecons/mesecons_audio-master/sounds/内にコピーします。
minetestサーバを再起動して、minetestを立ち上げる。
Modの有効化
チャットコマンドを開き、「mesecons_audio」の権限を取得します。
例:/grantme mesecons_audio
give権限有効状態で、インベントリからmescons_audioを取得、またはチャットコマンドで、
/giveme mesecons_audio:audio_block
セッティング
適当な位置にaudio_blockを置き、右クリックで設定を開く。
上段のタブで流したい音源を指定。
「Hearing distance」で音が届く範囲を指定。
「volume」で音量を指定。
「Save」。
適当なスイッチなどをつけて、オンにしてやると音が流れます。
(注)ただし、設置場所が自分より高い位置だと、作動しないようです。
離れるとフェードアウトしていくので、今回のレストランではちょうど店内だけに聴こえるように「Hearing distance」の数値を調整します。
「Player_Detector」という人感センサーブロックをつないで、入店するとメイド風(?)の店員が「いらっしゃいませ〜」という仕掛けもつくりました。
音が加わるとリアルさが増して一層楽しくなります。