Scratch ライブラリ(BGM 管理)
はじめに
Hi, there! 先日公開した Attractive Drivers (→記事) ですが、公開 1 か月で参照数 700 を突破し、800 に達する勢いです。ありがたいものです。最初に公開した G14 Jerrydog (→記事1)/(→記事2) は公開 1 週間程度で参照数が 100 にはなったものの、600 を超えたあたりから鈍り始め、先日ようやく 700 に達した形です。あっさり追い抜いていきました。
Attractive Drivers は SEGA の名作 OutRun へのオマージュとなっております。ぜひプレイしてみてください。
- Attractive Drivers
ドライブ中に聞ける曲数も 5 曲に増えたので、ぜひ聞いてみてください。完全オリジナル。割と全部気に入ってます。
BGM 管理
さて、私の作っているプロジェクトでは常に使っている BGM 管理システムです。毎回同じなので、以前よりライブラリっぽくはなっていたのですが、今回改めてライブラリとしてシェアしました。
プロジェクト
ここにあります。
ライブラリ概要
BGM を流すためのスプライトです。以下のような特徴があります。
- 曲をイントロとメインに分けて登録し、メインをループさせることも可能
- 各種メッセージを送ることで停止や再生が可能
- 曲を変える際、自動的に現在の曲をフェードアウトして次の曲に進む
使い方
基本
ほぼ全てのプロジェクトで使っているので、詳細は「中身を見る」で参照してみてください。
① 使用したいBGMを用意します
- 以下の命名規則に従ってサウンドに音楽を追加する
- 曲名が「Name」の場合、曲名は「Name (Intro)」と「Name (Main)」にする必要があります。 「Name (Intro)」は、ドラムフィルインなどのイントロフレーズがある楽曲の場合のみ必要となります
- 「Name (Main)」は曲のメインループです。ループさせる必要がある場合は、滑らかに曲の終わりと始まりがつながるようにしておきましょう
② いくつかのリストに情報を設定します
- 上記の「Name」のような曲名を「BGM Title」リストに追加します
- イントロフレーズが必要な場合は、「BGM Intro」リストに「1」を追加して「Name (Intro)」データを用意します。必要ない場合は、そのリストに 0 を追加します
- その音楽をループさせたい場合は、「BGM Loop」リストに 1 を追加します。不要な場合は 0 を付加してください
- リストのインデックス番号は音楽のトラック番号になります
③ ゲーム内で音楽を再生します
- イベント名「Track」+トラック番号を送信するだけで、曲が再生されます。最初の音楽の場合は「Track1」のようになります
- 別のBGMの再生中にイベントを送信すると、現在のBGMがフェードアウトし、前のBGMが停止してから新しいBGMが始まります
各種情報
変数・リスト
In: 他スプライト管理の値を参照/Out: 本スプライトで設定
変数名 | In/Out | 概要 |
---|---|---|
BGM Auto Disk Repeat |
Out | 1: 最後の曲終了後、最初に戻る |
BGM Auto Track Repeat |
Out | 1: 現在のトラックをループさせる |
BGM Current Track |
Out | 現在のトラック番号 |
BGM Sound Volume |
In | 現在の音量 |
イベント
イベント名 | 操作 |
---|---|
BGM - Volume Up |
ボリュームを 1 上げる |
BGM - Volume Down |
ボリュームを 1 下げる |
BGM - Volume Set |
音量を BGM Sound Volume にする |
BGM - Track Infinite Loop On |
トラックのループを有効にする |
BGM - Track Infinite Loop Off |
トラックのループを無効にする |
BGM - Disk Repeat On |
ディスクのループを有効にする |
BGM - Disk Repeat Off |
ディスクのループを無効にする |
BGM - Prev Track |
前のトラックへ戻る |
BGM - Next Track |
次のトラックへ進む |
BGM - Pause |
ポーズ※ |
BGM - Play |
ポーズの場合は再開させる、or 現在のトラックで曲を開始する |
BGM - Replay |
現在のトラックで曲を開始する |
BGM - Stop |
現在の曲を終了させる |
※ Scratch の仕様上、正確なポーズはできないため疑似的に再現。厳密には超ゆっくり進む状態となっている。
コスチューム
特になし
ということで、BGM をならす時にはいつもこれを使ってます。もう少しシンプルにできそうなので、バージョン2を作るかもしれない。