スクラッチのBGMを切り替えるには、どういったタイミングで切り替えるのかによって方法が変わります。
こちらでは、いくつかの例を挙げて、スクラッチのBGMを切り替える方法を詳しく解説していきます。
スクラッチのBGMを切り替える方法
今回は、例として以下の処理でスクラッチのBGMを切り替える方法を紹介します。
- イベントでBGMそのものを切り替える
- メッセージブロックでBGMそのものを切り替える
- GBMの曲を止めないで、BGMを切り替える
イベントでBGMそのものを切り替える
まずは、イベントでBGMそのものを切り替える方法です。
背景のスクリプトだけで完結させる方法で、例えば、右矢印キーを押したらBGM1を、左矢印キーを押したらBGM2が流れる方法です。
こちらは、緑旗が押されたときにGBM1が流れるスクリプトと、「1」「2」キーを押したときに、それぞれBGM1,BGM2の音がなるスクリプトになっています。
単純にすべての音を止めてから、鳴らしたいBGMに切り替えているプログラムです。
イベントのハットブロックだけで処理する場合は、スプライトから背景のBGMを切り替える処理ができません。
スプライトに背景と同じBGMを入れておけば、同じBGMでもそれぞれ独立した音ですので、スプライト・背景間でのスクリプトに影響しません。
スプライトのアクションで背景の音を切り替えたい場合は、メッセージブロックを使います。
メッセージブロックでBGMそのものを切り替える
こちらは、メッセージブロックを使って、BGMそのものを切り替えるプログラムです。
BGMの音は背景側に設定しています。
背景のスクリプトでは、「BGM1」「BGM2」のメッセージを受け取った時に処理しています。
スプライトのスクリプトでは、「1」「2」キーが押されたときに、それぞれメッセージを送る処理をしています。
GBMの曲を止めないで、BGMを切り替える
途中でしゃべらせたり、何かのイベントでBGMを止めたい時があります。
これまで紹介したプログラムで切り替えは可能ですが、欠点は、切り替えたときに最初から始まるということです。
曲の流れはそのままで、何かのイベントの時だけ、BGMを止めたい場合は、音量で調整しましょう。
こちらは、「音量を●%にする」ブロックを使って、BGMの音量を調整したプログラムです。
BGMの音は背景側に設定しています。
背景のスクリプトでは、「音量OFF」「音量ON」のメッセージを受け取った時に、音量ON/OFFの処理しています。
緑旗が押されたときの処理に「音量を100%にする」を追加しているのは、音量が0%の時に終わってしまった時のためです。
「音量を100%にする」にしておかないと、最初からBGMが聞こえません。
スプライトのスクリプトでは、「1」「2」キーが押されたときに、それぞれメッセージを送る処理をしています。
これで、GBMの曲を止めないで、BGMを切り替えることができます。
こちらは、上記内容でプログラミングしたプロジェクトです。
実際にBGMが切り替わるか触ってみてください。