音源と聞き手の位置関係に応じて自動的に音量・位相を調節します – AudioSource.js

タイトル
音源と聞き手の位置関係に応じて自動的に音量・位相を調節します
作者名
ヘルプ
「ある特定の場所から音が聞こえてくる」という演出を可能にするプラグインです。
具体的には特定のマップイベントを音源(音の発し手)として音声を演奏でき、
音の聞き手(初期設定では画面の中央)との距離感によって音量などが変化します。
音源と聞き手の距離が縮まるほど音量が大きくなりますし、
音源が聞き手よりも右の方にあれば、音が右から聞こえてくる(位相が増える)ようになります。


---RPGツクールMZでの使い方---
プラグインコマンドの「音源から音声を演奏」を用いて、
音声を特定の場所(音源)から聞こえるように演奏することができます。

※BGM,BGSについては、音源から演奏したまま別のマップへ移動すると
 音源が行方不明になるため、聞こえ方がおかしくなります。
 移動前に演奏を止めるか、移動後にプラグインコマンドを再設定しましょう。

この他にも、音の聞き手を特定のマップイベントに変更するコマンドや
「移動ルートの設定」「アニメーションの表示」におけるSEを自動で音源化するコマンドもあります。
慣れたらそちらも使ってみてください。



---RPGツクールMVでの使い方---
マップイベントの「ルート設定」内で効果音を鳴らすと、プラグインの効果が発動します。
※イベントコマンドの「SEの演奏」では自動調節しません。うまく使い分けましょう。
また、「アニメーションの表示」の効果音も対象の位置から聞こえるようになります。

さらに、プラグインコマンドによりBGMやBGSを特定の位置から鳴らすことができます。
トリアコンタンさんのBGS並行演奏プラグインとも連携可能にしてみました。
詳しくは下の方の「プラグインコマンド」を見てください。

なお基準となる音量は効果音(,BGM,BGS)の演奏を指定した時の音量です。
音源と聞き手が同じかすぐ隣のマスに居る時は基準音量で鳴らされ、
そこから一歩離れるたびに音が小さくなっていきます。


プラグインパラメータ:
listener : 発信される音の「聞き手」を設定します。
 screen 「画面の中央マス」が聞き手になります。
 player 「プレイヤー」が聞き手になります。
decay : 音源と聞き手との間の距離が「一歩」広がるたびに音量がdecay%倍されます。
 基本的には0から100までの値を想定しています。100以上の値を入れると
 遠ざかるほど音が大きくなる、というすこし不思議な演出もできます。
pan : 音源が「一歩」右に移動すると、位相がpanだけ変化します。
 逆に音源が一歩左へ移動すると位相が-pan変化します。
cutoff : 音を鳴らすことを許可する最小の音量(%)です。
 計算後の音量がこの値を下回ると強制的に音量0%になります。


プラグインコマンド:
audiosource listener 1
指定したID(この場合は1)のマップイベントを聞き手にします。
(ちなみに0を指定すると「このイベント」を聞き手にします)
聞き手は常に一つですので、スクリーンorプレイヤーは聞き手ではなくなります。

audiosource listener reset
マップイベントの聞き手化を解除し、スクリーンかプレイヤーに聞き手を戻します。


audiosource bgm 1
audiosource bgs 1
現在流れているBGM/BGSの音量と位相を、
「指定したIDのマップイベントから鳴っている」風に聞こえるように調節します。
(0を指定すると「このイベント」から鳴らします)
設置されたラジオから曲が流れている演出などにお使いください。

また、BGS並行演奏プラグインと連携する場合は、
BGSライン変更→audiosourceの順番で指定すれば
それぞれのBGSに音源を指定できます。

◆プラグインコマンド:PB_BGSライン変更 2
◆プラグインコマンド:audiosource bgs 1

audiosource bgm reset
audiosource bgs reset
BGM/BGSの音源化を解除し、通常通りの演奏に戻します。


audiosource se on
audiosource se off
「ルート設定」や「アニメーションの表示」では自動的に効果音が
対象キャラの位置から音が鳴っているように調節されますが、
調節してほしくない時はこのプラグインコマンドでoffにしましょう。
初期値はonです。


ライセンス:
このプラグインの利用法に制限はありません。お好きなようにどうぞ。

パラメータ
target MZ
param listener
type select
text 音の聞き手
option 画面の中央
value screen
option プレイヤー
value player
default screen

param decay
type number
text 音の減衰率
desc 音源と聞き手の距離が一歩広がった時の音量変化倍率(%)。小さくするほど、一歩ごとに極端に音量が減ります。
default 85

param pan
type number
text 音の左右移動率
desc 音源が聞き手の一歩右に居る時の変化位相。大きくするほど、一歩ごとに極端に左右に音が振られます。
default 10

param cutoff
type number
text 最小再生音量
desc 音を鳴らすことを許可する最小の音量(%)
default 1

command play
text 音源から音声を演奏
desc 音源(音の発し手)と聞き手の位置関係を計算し、音声を音源から聞こえてくるように演奏します。

arg path
type file
dir audio
text 音声ファイル

arg volume
type number
default 90
text 音量(%)

arg pitch
type number
default 100
text ピッチ(%)

arg source
type number
default 0
text 音源イベント
desc 音源にするマップイベントをIDで指定します。0のときは「このイベント」になります。

command listener
text 音の聞き手の変更
desc 音の聞き手にするマップイベントをIDで指定します。0で解除(聞き手が画面の中央/プレイヤーに戻る)します。

arg listener
type number
default 0
text 聞き手イベント

command adjustRouteSe
text 移動ルートのSEを音源化
desc 「移動ルートの設定」の内部に「SEの演奏」があるとき、自動的に対象のイベントから音が聞こえるようにします。

arg value
type boolean

command adjustAnimationSe
text アニメーションのSEを音源化
desc 「アニメーションの表示」でアニメにSEが含まれるとき、自動的に対象のイベントから音が聞こえるようにします。

arg value
type boolean
ライセンス表記
ライセンス:

紹介ページ https://github.com/krmbn0576/rpgmakermv/blob/master/js/plugins/AudioSource.js