Audioの機能を少し拡張します。
基本情報
前提スクリプト
挿入位置
説明
概要
RGSS組み込みの Audio モジュールを拡張するスクリプト。下記の2つの機能を追加します。
◆ マスターボリューム
BGM, BGS, ME, SE を演奏する際、個々に指定する音量とは別に、それら全体の音量も設定できるようにします。実際に演奏される音量は、指定された音量に全体音量を掛けた値となります。デフォルトでは全体音量の値は変更できません。ゲームプレイ中に変更できるようにしたい場合は
LNS022a 拡張オプション を導入してください。
◆ 連続再生
同じグループ内のBGMが再生されるとき、直前まで鳴っていたBGMのちょうど続きから再生されるようになります。グループ化されたBGMを最初から再生したい場合、一旦BGMを止めてから改めて再生してください。
グループの定義は BGM_Groups(Hash) で行います。キーにファイル名、値にグループ番号(同じグループで同じ値なら値の内容はなんでもいい)を指定します。
例えば、以下のように設定します。
BGM_Groups["samplemusic_a"] = :sample
BGM_Groups["samplemusic_b"] = :sample
下記の [別名ファイル] と併用する場合、このハッシュには置換後の名前を指定します。
※Audio の仕様上、BGMの切替時には一時的に音量が下がります。フィールドBGMと戦闘BGMを対応させるなど、切替え時に不自然さが目立たない用法をお勧めします。
◆ 別名ファイル
ファイル名の先頭に"#alias_"を付けることで、そのファイルを別名扱いにします。Audio_Alias_List に別名と同じ名前のキーがあった場合、その値に応じたファイル名に変換されて再生されます。同じ曲や効果音を使うことは決まっているが曲の内容は確定していないなどの場合、再生するファイルには別名を指定しておき、あとで使う音が決まってから一括で変更するなどの用途に使えます。
例えば、以下のように使います。
設定 : Audio_Alias_List["通常戦闘"] = ["Battle1", 90, 110]
使用 : [BGMの再生] 名前:"#alias_通常戦闘", 音量:90, ピッチ:100
=> 実際に再生されるのは ["Battle1", 81, 110]
Audio_Alias_List のキーには"#alias_***"の *** の部分を指定します。値は文字列または配列で、以下の規則で設定します。
- 文字列
- 配列
- [置換後のファイル名, 音量, ピッチ]
- 「音量」と「ピッチ」はそれぞれ省略(音量だけ省略したい場合は nil )できます。
- 「音量」は元々の指定値に対する割合として表記し、例えば上記の例であれば、指定された音量が 90、配列で定められた音量が 90 のため、実際に再生される音量はこの2つが掛け合わされて 81 になります。さらにマスターボリュームのぶんが乗算されます。
- 「ピッチ」に値が指定された場合、元々の指定値を無視してこの値に固定します。
別名のファイルが実在している必要はありませんが、ツクールのエディタ上で設定する際には実体が必要となるため、空のファイルを作り命名してください。
音量の自動調節などを挟むためにオーディオの再生メソッドを再定義しているため、他のスクリプト素材と競合する可能性があります。また、エイリアスを使って機能の拡張をするスクリプトは基本的にこれより後ろに入れてください。
備考
再定義されるメソッド
- RPG::BGM#play
- RPG::BGS#play
- RPG::ME#play
- RPG::SE#play
再生時の挙動を変更
上記のメソッドを拡張するスクリプトはこれよりも後ろに入れてください。
- BGM_Groups<初期値:{}>
- [連続再生] を適用するグループの定義。
- Audio_Alias_List<初期値:{}>
- [別名ファイル] を適用するファイル名の一覧。フォルダの区別なく定義される。例えばBGMとしての"#alias_Battle1"とSEとしての"#alias_Battle1"は同じ名前に変換される(参照するフォルダは異なる)ので注意。
最終更新:2019年04月07日 13:05