ページ 11

【解決済み】進行ごとにBGMがシームレスで変更される仕組みを作りたい(音ハメ)

Posted: 2025年7月16日(水) 12:30
by viv1124
進行ごとにBGMがシームレスで変更される仕組みを作ろうと思っていますが、うまくいきません。
ブレスオブザワイルドの魔獣ガノン戦のイメージです。

①BGM切り替えポイントまでイベントが進行するとウェイトが発動
②再生位置が0か、22.5か45秒以上ならBGMの切り替えが行われる

現在、このように
スクリーンショット 2025-07-16 12.35.37.png
AudioManager._bgmBuffer.seek() でBGMの現在の再生位置を取得するスクリプトを入れ、BGM切り替えポイントまで行くとイベントのセルフスイッチでループ処理を入れています。
BGMのフェードはBGSと組み合わせて行おうと思っています。
スクリーンショット 2025-07-16 12.25.47.png
スクリーンショット 2025-07-16 12.28.13.png
ご存知の方がおりましたらご教示いただけますと幸いです。

Re: 進行ごとにBGMがシームレスで変更される仕組みを作りたい(音ハメ)

Posted: 2025年7月19日(土) 12:43
by DoujinRuis
こんにちは、今回の件を動画で解説しているのでよかったら見てください
https://youtube.com/live/sJvj13xoQgk


プラグイン
/*:
* @target MZ
* @plugindesc BGMのシンクロポイントでの切り替えを支援するプラグインだよ♡
* @author サラ
*
* @help
* ◆ 使用方法:
* ・スクリプトで以下を使ってねっ♪
* BgmSyncChecker.isReady() // 同期ポイントに達しているか
* BgmSyncChecker.setSyncPoints([0, 22.5, 45]) // 同期タイミングを変更
*/

(() => {
class BgmSyncChecker {
static _syncPoints = [0, 22.5, 45]; // デフォルト同期ポイント(秒)

static isReady() {
const buffer = AudioManager._bgmBuffer;
if (!buffer || typeof buffer.seek !== "function") return false;
const current = buffer.seek();
console.log("[BgmSyncChecker] 現在の再生位置: " + current.toFixed(2) + "秒");
return this._syncPoints.some(point => Math.abs(current - point) < 0.3);
}

static setSyncPoints(points) {
if (Array.isArray(points)) {
this._syncPoints = points;
const buffer = AudioManager._bgmBuffer;
if (buffer && typeof buffer.seek === "function") {
const current = buffer.seek();
console.log("[BgmSyncChecker] 同期ポイント更新:", points);
} else {
console.warn("[BgmSyncChecker] BGMがまだ再生されていないか、seekが無効です!");
}
}
}
}

window.BgmSyncChecker = BgmSyncChecker;
})();

Re: 進行ごとにBGMがシームレスで変更される仕組みを作りたい(音ハメ)

Posted: 2025年7月22日(火) 12:29
by viv1124
DoujinRuisさん
いつもありがとうございます。お返事が遅くなってしまい申し訳ございません。
プラグインの作成と、解説動画まで作成していただき本当にありがとうございます…!
無事に理想のシームレスに変更できる仕組みが作れました(TT)ずっと悩んでいたので本当に助かりました、ありがとうございます!
こちらのプラグインを使用させていただき有料ゲームを公開したいと考えているのですが、ライセンスに関して(商用利用の場合は購入必要など)教えていただけますと幸いです。

Re: 【解決済み】進行ごとにBGMがシームレスで変更される仕組みを作りたい(音ハメ)

Posted: 2025年7月22日(火) 13:53
by DoujinRuis
いえいえ、好きに使ってください

Re: 【解決済み】進行ごとにBGMがシームレスで変更される仕組みを作りたい(音ハメ)

Posted: 2025年7月22日(火) 16:06
by viv1124
そう言っていただきましてありがとうございます!
改めまして、回答と素敵なプラグインの作成ありがとうございましたm(__)m