System4.0でボリュームバランサ
昇龍志さんからボリュームバランサの設定方法の報告を受けました。ありがとうございます。
WavLinkerでリンクする内容を指定するファイル(.HED)の、二番目の引数で指定する「分類」の番号がボリュームバランサの順番の番号に一致します。
"A", 1,"SE\","wav", 0, 0
"A", 2,"VOICE\","wav", 0, 0
とやると、ボリュームバランサの2番目が効果音、3番目がボイスなどというようにできます。
以下は古い記事です。何かの役に立つかもしれないので、残しておきます。
ボリュームバランサが何かっていうと、つまり、
です。
System4.0のメニューの設定-サウンドで出てきます。
この画面に書かれている項目を変更するのは簡単です。
System40.iniファイルを変更すればテキストが変わります。
しかしながら、それぞれの設定項目を変更したときに、
「BGM」、「効果音」、「ボイス」を分けて音量変更ができませんでした。
(少なくとも、2004年12月24日付SDKでは、見つけることができませんでした)
(0番を変更すれば、全てのサウンドの音量は変更されますが…)
そこで今回は、これらの設定項目が有効に動作するような
コードを作成してみました。
注意事項:
-
SACT本体の改変は行っていませんが、SACT外部から使用すべきではない、一部のグローバル変数を使用しています。そのため、予期せぬバグが存在する可能性があります。
-
当然のごとく、その他いかなる事が起きようとも自己責任です。
仕様です:
-
設定で、非アクティブ時のCPU不可を下げるが有効になっている場合は、リアルタイムで音量変化が起こりません。
-
バックログ時や、エフェクト時などの時は、リアルタイムで音量変化しません。(数行SACT内部を変更すれば可能です)
-
ミュートや音量ゼロの時でも、先頭の音が多少再生されることがあります。
-
バックログでのボイスは、バランサマスタのボリュームが適用されます。
説明:
-
バランサマスタ 全部に共通な音量です。
-
使い方 ダウンロードファイルのソースを参照してください。(自動改行も用いています)
Developed using Alicesoft System4.0
サンプルをダウンロード
Ogg Vorbis is Copyright(c)2001,xiphophorus.
All right reserved.
画像/BGM Alicesoft
声 音の社
効果音 ザ・マッチメイカァズ
仕様説明
(※ 詳細な説明は、VolumeVarancerEasy.jaf の説明を参照してください)
基本動作: ボリュームバランサに対応します。準備 : [REGISTER_MSG_KEY_WAIT_CALLBACK]で登録した関数から、[VOLUMEVARANCE_CHECK]関数を呼び出します。
初期化時に[VOLUMEVARANCE_INIT]を呼びます。
[$$VVV=10001;]などと、ボイス初期値を指定しておきます。実装 : BGM,効果音は、それぞれ[VV_BGM]/[VV_SE]命令で開始します。終了などはMSC_などで行えます。
ボイスは、[VVChara(◆Aさん);]などとして、ボイスの番号のキャラを指定(これはお使いのADV関数に含められるようなら含めた方が良いです)し、[$VVV;]で実行(引数増加マクロを使用しています)します。注意 : 動作に異常が生じても責任は取れません。
感想
Alicesoftさんでは、DLL内部で音量変更まで行っているような気がします。
、、しかし…、案外どこかに、ボリュームバランサを扱う関数が転がってるような気もします。
訂正...
main.cppのReleaseで[delete this;]を行うべきな気がします。
配列の解放に気を取られて忘れてしまいました。
しないと、たぶんちょこっとだけ漏れてます。
使う方、各自で修正してくださーい。忙しいんだー。