![見出し画像](https://assets.st-note.com/production/uploads/images/154423035/rectangle_large_type_2_6ff0a78a94d93cb772a665ab798b95fb.png?width=1200)
RPG Developer BAKIN用 C#プラグイン BGM・SEのフェードイン・アウト
RPG Developer BAKIN用のC#プラグインです。
イベントでBGMやSEをフェードイン、フェードアウトします。標準のイベントコマンドではできないSEのフェードイン、フェードアウトが可能になるほか、BGMをフェードアウトしつつ次のBGMのフェードイン(クロスフェード)が可能になります。
RPGの制作でフィールドマップから町や村に入る際にBGM変更をスムーズにしたい場合などにお使いください。
RPGBakin用に効果音のフェードイン・アウト機能と、BGMのクロスフェード機能のC#プラグインをつくってみましたヾ(*´∀`*)ノ
— みたくるみ☆サブアカ (@mitakurumi_2) September 14, 2024
効果音をフェードイン・アウトできないと嘆きのポストを見かけたので。BGMも標準だとできない前の曲がフェードアウトしつつ次の曲がフェードインするクロスフェードを実装 pic.twitter.com/GchcvxglkC
ダウンロード
使い方
イベントウィンドウ左下のC#プログラムの割り当てで「SoundControl.cs」を追加して選択した後にOKボタンを押下してください。
その状態でイベントのコマンド選択で「C#プログラムの呼び出し」を選ぶと下記の7つのC#メソッドが使えるようになります。
・GetSoundID 再生するBGM・SEのIDを取得します
・PlaySound BGM・SEを再生します
・StopSound BGM・SEの再生を停止します
・ChangeSoundVolume BGM・SEの音量を指定秒数で変化させます
・PlaySoundFeadin BGM・SEをフェードイン再生します
・PauseSound BGM・SEの再生を一時停止します
・ResumeSound BGM・SEの再生を再開します
BGM・SEの再生手順
再生するBGM名 あるいはSE名を文字列変数に代入
GetSoundIDで上記の文字列変数からIDを取得
PlaySoundを上記のID、音量、テンポを指定して実行
![](https://assets.st-note.com/img/1726465677-byCcWeM1NhsJY6LVuQU5fado.png?width=1200)
再生をフェードアウトする手順
本C#プラグインでBGM・SEを再生中の場合、以下の手順でフェードアウトできます
ChangeSoundVolumeを、再生中のBGM・SEのID、フェードアウト後の音量、フェードアウトにかける秒数を指定して実行
![](https://assets.st-note.com/img/1726465840-9qegmC0kGYb6vrx5HsaWu2pD.png?width=1200)
フェードインで再生する手順
再生するBGM名 あるいはSE名を文字列変数に代入
GetSoundIDで上記の文字列変数からIDを取得
PlaySoundFeadinで上記のID、フェードイン後の音量、フェードインにかける秒数、テンポを指定して実行
![](https://assets.st-note.com/img/1726488542-7gBKxQH4Lus5OoCb2I36vTMi.png?width=1200)
2つの曲をクロスフェードする手順
次に再生するBGM名 あるいはSE名を文字列変数に代入
GetSoundIDで上記の文字列変数からIDを取得
PlaySoundFeadinで上記のID、フェードイン後の音量、フェードインにかける秒数、テンポを指定して実行
ChangeSoundVolumeで先に再生されていたBGM・SEのID、フェードアウト後の音量、フェードアウトにかける秒数を指定して実行
![](https://assets.st-note.com/img/1726488682-35Z82uXoUzb6rqeKMRQTCBGY.png?width=1200)
再生を中断する手順
PauseSoundを、再生中のBGM・SEのIDを指定して実行
![](https://assets.st-note.com/img/1726491546-xd6HUpkSeQc78tzoaTy924bF.png?width=1200)
再生中断から再開する手順
ResumeSoundを、PauseSoundで中断したBGM・SEのIDを指定して実行
![](https://assets.st-note.com/img/1726491704-kSN5cCQeIrzxpJVPRL3Z4Y7i.png?width=1200)
マップ移動時のBGMクロスフェード実装例
下記のようなコモンイベントを用意し、マップ上のイベントでマップの移動を行う際に先ほどのコモンイベントを呼び出すと比較的楽に実現できると思います。
![](https://assets.st-note.com/img/1727053906-a2R8xKJB9IQG3F1nhWdSyCkf.png?width=1200)
下の動画のような動作になります。
マップ移動時にBGMをクロスフェードさせるとこんな感じです(若干ノイズが乗るのはたぶん録画のせいでゲームでは正常に鳴ってます)。マップのBGM設定を「なし」にしてC#プラグインでBGMの再生やフェードイン・アウトを制御してます。 pic.twitter.com/xqRocevSuv
— みたくるみ☆サブアカ (@mitakurumi_2) September 22, 2024
注意事項
標準の「BGMを再生」「効果音を再生」コマンドで再生したBGM、効果音を本C#プラグインでフェードイン・アウト、一時停止・再開することはできません。