条件付きマップBGM変更
by 蒼竜 @soryu_rpmakermv
コンシューマ用のRPGをプレイしていると、
「普段は穏やかな街が襲撃に遭い戦闘状態になっている」といった
ストーリー上の演出が入ることがあるが、街のBGMは決していつもの街のBGMではなく、
別のBGMに切り替わっている。
とりわけこのようなBGMの変更は、1マップだけではなく複数の広いマップに渡ることが多い。
このような演出をRPGツクールでやるとどうなるのか?
通常、下図のようなイベントを作成することになる。
エディタの機能のみでこれを行おうとすると、図に示したようなイベントをBGMを変えたいマップに配置することになるが、
この方法だと、マップ切り替わりの時点で設定したBGMを一旦止めた上で新しいBGMを再生するという
処理になるため、一瞬の不自然な間ができたり、最悪デフォルトのBGMが一瞬再生されるという
間抜けな現象が起こる可能性がある。
このプラグインは、通常のツクール上のイベントコマンドで実装した場合の不自然さを無くし、
できる限りコンシューマ用のRPGに見られるBGM演出に近づける。
BGMが変更される場合は、エディタ上で設定されているBGMは一切触れずに代替のBGMを再生するため、
「ストーリー中のある一定場面のみ、そのマップのBGMを変える」というゲーム上の演出がより自然になる。
本プラグインを使用した場合と、通常のイベントコマンドで同様の実装をした場合の処理の違いを下図に整理した。
特に、連続(ゲーム演出上、隣接)する複数マップのBGMを同じものに指定してあれば
変更後のBGMがマップ移動後もシームレスに再生されることになる。
もしイベントコマンドで同じことをやると、上述の理由でマップ移動のたびにBGMがまた最初から再生されるため
演出面では有意な改善と考えられる。
エディタ上で「マップの設定」画面にあるメモに
<mapswitch: スイッチ番号, BGMファイル(拡張子不要), ボリューム, ピッチ, パン, 位置>
を記述する(BGMを変えたいマップの設定画面に記述する)。
下図が、実際にマップ設定のメモ欄に書き加えた様子である。エディタの性質上、見えづらくなるため
事前にメモ帳等でタグを作ってからコピーすることが推奨される。
-例1) 10番のスイッチがONのとき、Battle1 をそのマップのBGMとする。(ボリューム等はデフォルト設定のまま)
<mapswitch: 10, Battle1, 90, 100, 0, 0>
-例2) 33番のスイッチがONのとき、Theme3 をそのマップのBGMとする。(ピッチが150%になっている)
<mapswitch: 33,Theme3,100,150,0,0>
上図にあるように、1つのマップに複数のタグを列挙することができる。
これを使えば、「ゲーム内時間等に応じて、朝・昼・夜と別々のBGMを再生する」といった演出も可能である。
複数のBGM変更タグが条件を満たしている場合は、メモのより上の方に書かれているタグが優先される。
- Game_Map.prototype.setup
タグの読み込み・処理をする関数呼び出しの追加。変更後BGM情報を管理する配列初期化を追加。 - Game_Map.prototype.autoplay を上書き
処理内部にBGMスイッチに関する記述を追加
- ver 1.00 (May 5, 2020) 公開