exorcist-evangeline/www/js/plugins/Ricon_TweakVolume.js
2025-10-08 13:42:52 -05:00

361 lines
No EOL
11 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// Ricon_TweakVolume.js
// Version: 1.0.0
//----------------------------------------------------------------------------
// Copyright (c) 2019 RiceConstruction
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
//----------------------------------------------------------------------------
// Versions
// 1.0.0 2019/10/12 初版
//----------------------------------------------------------------------------
// [ホームページ] https://riceconstruction.weebly.com/
// [GitHub] https://github.com/RiceConstruction/
// [Twitter] https://twitter.com/riceconstr/
// [Fantia] https://fantia.jp/rice-construction/
//=============================================================================
/*:
* @plugindesc 音量微調整プラグイン
* @author べるろ*(Ricon)
*
* @help オプション画面での細かい音量調節を可能とします。
*
* 出来ること
* ・オプション画面での音量変化量の設定
* ・オプション画面で音量を変更するときに再生する音源の設定
*
* ----------------------------------------------------------------------------
* このプラグインにプラグインコマンドはありません。
*
* @param BGM Scale
* @type number
* @min 1
* @max 100
* @default 20
* @desc BGM音量変更単位デフォルト 20
*
* @param BGM Test File
* @type file
* @require 1
* @dir audio/bgm
* @default
* @desc BGM音量変更時に再生するBGMファイル空白なら再生中のBGM
*
* @param BGM Test Volume
* @parent BGM Test File
* @type number
* @min 1
* @max 100
* @default 90
* @desc BGM音量変更時に再生するBGMの基本音量
*
* @param BGM Test Pitch
* @parent BGM Test File
* @type number
* @min 50
* @max 150
* @default 100
* @desc BGM音量変更時に再生するBGMのピッチ
*
* @param BGM Test Pan
* @parent BGM Test File
* @type number
* @min -100
* @max 100
* @default 0
* @desc BGM音量変更時に再生するBGMの位相
*
* @param BGM Test Offset
* @parent BGM Test File
* @type number
* @min 0
* @default 0
* @desc BGM音量変更時に再生するBGMの再生開始秒数
*
* @param BGS Scale
* @type number
* @min 1
* @max 100
* @default 20
* @desc BGS音量変更単位デフォルト 20)
*
* @param BGS Test File
* @type file
* @require 1
* @dir audio/bgs
* @default
* @desc BGS音量変更時に再生するBGSファイル空白なら再生中のBGS
*
* @param BGS Test Volume
* @parent BGS Test File
* @type number
* @min 1
* @max 100
* @default 90
* @desc BGS音量変更時に再生するBGSの基本音量
*
* @param BGS Test Pitch
* @parent BGS Test File
* @type number
* @min 50
* @max 150
* @default 100
* @desc BGS音量変更時に再生するBGSのピッチ
*
* @param BGS Test Pan
* @parent BGS Test File
* @type number
* @min -100
* @max 100
* @default 0
* @desc BGS音量変更時に再生するBGSの位相
*
* @param BGS Test Offset
* @parent BGS Test File
* @type number
* @min 0
* @default 0
* @desc BGS音量変更時に再生するBGSの再生開始秒数
*
* @param ME Scale
* @type number
* @min 1
* @max 100
* @default 20
* @desc ME音量変更単位デフォルト 20
*
* @param ME Test File
* @type file
* @require 1
* @dir audio/me
* @default
* @desc ME音量変更時に再生するMEファイル空白ならカーソルSEのみ再生
*
* @param ME Test Volume
* @parent ME Test File
* @type number
* @min 1
* @max 100
* @default 90
* @desc ME音量変更時に再生するMEの基本音量
*
* @param ME Test Pitch
* @parent ME Test File
* @type number
* @min 50
* @max 150
* @default 100
* @desc ME音量変更時に再生するMEのピッチ
*
* @param ME Test Pan
* @parent ME Test File
* @type number
* @min -100
* @max 100
* @default 0
* @desc ME音量変更時に再生するMEの位相
*
* @param SE Scale
* @type number
* @min 1
* @max 100
* @default 20
* @desc SE音量変更単位デフォルト 20
*
* @param SE Test File
* @type file
* @require 1
* @dir audio/se
* @default
* @desc SE音量変更時に再生するSEファイル空白ならカーソルSEのみ再生
*
* @param SE Test Volume
* @parent SE Test File
* @type number
* @min 1
* @max 100
* @default 90
* @desc SE音量変更時に再生するSEの基本音量
*
* @param SE Test Pitch
* @parent SE Test File
* @type number
* @min 50
* @max 150
* @default 100
* @desc SE音量変更時に再生するSEのピッチ
*
* @param SE Test Pan
* @parent SE Test File
* @type number
* @min -100
* @max 100
* @default 0
* @desc SE音量変更時に再生するSEの位相
*
*/
var Ricon_TweakVolume = Ricon_TweakVolume || {};
(function() {
'use strict';
//=============================================================================
// プラグインパラメータ
//=============================================================================
var parameters = PluginManager.parameters('Ricon_TweakVolume');
function getNumber(paramName) {
return (parseInt(parameters[paramName], 10) || 0).clamp(-Infinity, Infinity);
}
function getString(paramName) {
return String(parameters[paramName]) || '';
}
Ricon_TweakVolume.params = {
get bgmScale() { return getNumber('BGM Scale'); },
get bgmFile() { return getString('BGM Test File'); },
get bgmVolume() { return getNumber('BGM Test Volume'); },
get bgmPitch() { return getNumber('BGM Test Pitch'); },
get bgmPan() { return getNumber('BGM Test Pan'); },
get bgmOffset() { return getNumber('BGM Test Offset'); },
get bgsScale() { return getNumber('BGS Scale'); },
get bgsFile() { return getString('BGS Test File'); },
get bgsVolume() { return getNumber('BGS Test Volume'); },
get bgsPitch() { return getNumber('BGS Test Pitch'); },
get bgsPan() { return getNumber('BGS Test Pan'); },
get bgsOffset() { return getNumber('BGS Test Offset'); },
get meScale() { return getNumber('ME Scale'); },
get meFile() { return getString('ME Test File'); },
get meVolume() { return getNumber('ME Test Volume'); },
get mePitch() { return getNumber('ME Test Pitch'); },
get mePan() { return getNumber('ME Test Pan'); },
get seScale() { return getNumber('SE Scale'); },
get seFile() { return getString('SE Test File'); },
get seVolume() { return getNumber('SE Test Volume'); },
get sePitch() { return getNumber('SE Test Pitch'); },
get sePan() { return getNumber('SE Test Pan'); }
};
//=============================================================================
// Window_Options
//=============================================================================
var _Window_Options_initialize = Window_Options.prototype.initialize;
Window_Options.prototype.initialize = function() {
_Window_Options_initialize.call(this);
this._currentBgm = {};
this._currentBgs = {};
};
Window_Options.prototype.saveBgm = function() {
this._currentBgm = AudioManager._currentBgm;
};
Window_Options.prototype.saveBgs = function() {
this._currentBgs = AudioManager._currentBgs;
};
Window_Options.prototype.loadBgm = function() {
if (!!this._currentBgm) {
AudioManager.playBgm(this._currentBgm);
this._currentBgm = {};
}
};
Window_Options.prototype.loadBgs = function() {
if (!!this._currentBgs) {
AudioManager.playBgs(this._currentBgs);
this._currentBgs = {};
}
};
var _Window_Options_volumeOffset = Window_Options.prototype.volumeOffset;
Window_Options.prototype.volumeOffset = function() {
var index = this.index();
var symbol = this.commandSymbol(index);
switch (symbol) {
case 'bgmVolume':
return Ricon_TweakVolume.params.bgmScale;
case 'bgsVolume':
return Ricon_TweakVolume.params.meScale;
case 'meVolume':
return Ricon_TweakVolume.params.bgsScale;
case 'seVolume':
return Ricon_TweakVolume.params.seScale;
default:
return _Window_Options_volumeOffset.call(this);
}
};
var _Window_Options_changeValue = Window_Options.prototype.changeValue;
Window_Options.prototype.changeValue = function(symbol, value) {
if (symbol !== 'bgmVolume') {
this.loadBgm();
}
if (symbol !== 'bgsVolume') {
this.loadBgs();
}
if (symbol === 'seVolume' && !!Ricon_TweakVolume.params.seFile) {
var lastValue = this.getConfigValue(symbol);
if (lastValue !== value) {
this.setConfigValue(symbol, value);
this.redrawItem(this.findSymbol(symbol));
var se = {
'name': Ricon_TweakVolume.params.seFile,
'volume': Ricon_TweakVolume.params.seVolume,
'pitch': Ricon_TweakVolume.params.sePitch,
'pan': Ricon_TweakVolume.params.sePan
};
AudioManager.playSe(se);
}
} else if (symbol === 'meVolume' && !!Ricon_TweakVolume.params.meFile) {
var lastValue = this.getConfigValue(symbol);
if (lastValue !== value) {
this.setConfigValue(symbol, value);
this.redrawItem(this.findSymbol(symbol));
var me = {
'name': Ricon_TweakVolume.params.meFile,
'volume': Ricon_TweakVolume.params.meVolume,
'pitch': Ricon_TweakVolume.params.mePitch,
'pan': Ricon_TweakVolume.params.mePan
};
AudioManager.playMe(me);
}
} else {
_Window_Options_changeValue.call(this, symbol, value);
if (symbol === 'bgmVolume' && !!Ricon_TweakVolume.params.bgmFile) {
this.saveBgm();
var bgm = {
'name': Ricon_TweakVolume.params.bgmFile,
'volume': Ricon_TweakVolume.params.bgmVolume,
'pitch': Ricon_TweakVolume.params.bgmPitch,
'pan': Ricon_TweakVolume.params.bgmPan
};
AudioManager.playBgm(bgm, Ricon_TweakVolume.params.bgmOffset);
} else if (symbol === 'bgsVolume' && !!Ricon_TweakVolume.params.bgsFile) {
this.saveBgs();
var bgs = {
'name': Ricon_TweakVolume.params.bgsFile,
'volume': Ricon_TweakVolume.params.bgsVolume,
'pitch': Ricon_TweakVolume.params.bgsPitch,
'pan': Ricon_TweakVolume.params.bgsPan
};
AudioManager.playBgs(bgs, Ricon_TweakVolume.params.bgsOffset);
}
}
};
var _Window_Options_prototype_processCancel = Window_Options.prototype.processCancel;
Window_Options.prototype.processCancel = function() {
this.loadBgm();
this.loadBgs();
_Window_Options_prototype_processCancel.call(this);
};
})();