BGMをクロスフェード – HTN_CrossFadeBgm.js

タイトル
BGMをクロスフェード
作者名
ヘルプ

【もっともシンプルな使い方】
プラグインコマンドで「CrossFadeBgm start _,Ship1,90,0,100」と書いたイベントを置いてみてください
「Ship1」の部分を流したい曲名にします

【プラグインコマンド詳細】
CrossFadeBgm set bgm_name # 次に流す曲を指定します
CrossFadeBgm set bgm_name,60,0,100 # 曲名のほかに音量などの指定が可能です。詳細は下の【setコマンドの詳細】をご覧ください
CrossFadeBgm start # クロスフェードを開始します
CrossFadeBgm start 2.5 # フェード時間(この例では2.5秒)を指定しつつクロスフェードを開始します。デフォルトのフェード時間は変わりません
CrossFadeBgm start 2.5,bgm_name,90 # フェード時間の後ろにsetコマンドで扱うオプションを指定しつつ、クロスフェードを開始します
CrossFadeBgm setDuration 8.41 # デフォルトのフェード時間を新たに定義します(この例では8.41秒)
CrossFadeBgm resetDuration # デフォルトのフェード時間を、プラグイン管理ウィンドウで指定している値に戻します

【setコマンドの詳細】
CrossFadeBgm set bgm_name,volume,pan,pitch,position # setコマンドでは最大 5 つのオプションを指定できます

<options>
bgm_name: BGM名です。空白を含んではいけません。空白文字や日本語を含むファイル名を使うのは避けましょう
volume: 音量です。0 ~ 100、ツクールの「BGMの演奏」のデフォルトだと 90
pan: 音が左右のどちらに寄っているかです。-100 ~ 100、中心は 0 です
pitch: 音の高さです。スピードも変わってしまうようです。50 ~ 200 程度にしましょう。デフォルトは 100
position: 次の曲の再生開始位置(秒)です。0 以上の値を入力してください。デフォルトは前の曲の現在の再生位置です

<example>
CrossFadeBgm set Ship1,90,0,100,0 # 例えばこのように指定できます。カンマのあとにスペースを入れてはいけません
CrossFadeBgm set Ship1,,,100 # 途中の値を省略することが可能です。ただし、BGM名は最低限指定してください
# 省略された音量などの値は、現在流れているBGMの値が使われます
CrossFadeBgm set Ship1,_,_,100,_ # カンマだけが並ぶのは見づらいなと感じる場合は、アンダーバーを使うのがよいかもしれません

【注意事項】
ツクールでの「デプロイメント」でゲームを出力するとき、「未使用ファイルを含まない」のチェックをONにした場合、
ツクールはプラグインコマンドでどのBGMが使われてるのかまでは見ませんので、
本当は使っているのに、使ってないとみなされて必要なBGMファイルが出力されない場合があります。

これではそのBGMを再生しようとしたときにエラーが発生してしまいます。

対策としては、「未使用ファイルを含まない」のチェックをOFFでデプロイメントするか、
ダミーの(ゲームでは実際通らない)マップを用意して、出力されないBGMを演奏するイベントをそこに置くとよいかと思います。

パラメータ
param Default Fade Duration Sec
desc デフォルトのフェード時間(秒)
default 3.0

param Start From Zero
desc trueの場合、次の曲の再生開始位置を必ず0秒からにします(setコマンドを無視します)
type boolean
on 0秒から再生
off デフォルト
default false

ライセンス表記
Copyright (c) 2016 hatonekoe
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
2016/09/13 ver0.2.0 配布jsにbabelをかまし、Internet Explorerでも動作するように

紹介ページ https://github.com/nekonenene/RPG-Maker-MV_CrossFadeBgm/blob/master/HTN_CrossFadeBgm.js