特定の位置から音を鳴らすプラグイン

フォーラムルール
素材の利用規約を決めたいけど、どんなことを書けばいいのか分からない場合は、
素材のテンプレートをご利用下さい。
アバター
くらむぼん
記事: 59
登録日時: 2016年6月26日(日) 12:22

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by くらむぼん » 2018年7月31日(火) 01:58

おいきゅう さんが書きました:くらむぼん様、ご連絡ありがとうございます!

Stormはそもそもノイズっぽい音なので、一瞬だけ別の場所でなると「ノイズが混じる違和感」と勘違いする可能性があります。
もう一度、先入観を捨てて「一瞬音が中央で鳴る現象」でないか再確認してください。


再確認しました。
ここで感じたノイズは、StormやWindなど、その場で鳴らしているBGSの音が一瞬だけ強くなるような音だと思います。

Stormをセットした場合、ロード直後StormのBGSが一瞬強く(途切れて?)なった後、通常通り流れる
Windをセットした場合、ロード直後WindのBGSが一瞬強く(途切れて?)なった後、通常通り流れる
というような感じです。

これがくらむぼん様のおっしゃっている「一瞬音が中央で鳴る現象」なのでしょうか…?


おいきゅうさん、ご回答ありがとうございます!
うーん、そういったことですと同じ現象が起きているとは断定できなくなってしまいます・・・が、
とりあえず私の手元で起こった方の現象は直してみました。
一番上のリンクを修正版にしましたので、これに差し替えて現象が起こらなくなったか試してみてください!

おいきゅう
記事: 13
登録日時: 2018年6月03日(日) 23:27

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by おいきゅう » 2018年8月01日(水) 01:34

ご返信ありがとうございます!

修正後のプラグインを試してみたところ、ロード時のノイズがなくなりました!
ありがとうございます!
ノイズだけでなく、BGSの入りも優しくなった気がします。
うまく現象を伝えられずお手数おかけしました…

色々ご対応いただきありがとうございました!
sirotezza
記事: 19
登録日時: 2018年5月10日(木) 23:13

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by sirotezza » 2018年9月11日(火) 17:24

くらむぼんさん、素敵なプラグインをありがとうございます!
ゲームに導入してみて、この素晴らしい演出効果のおかげでとてもワクワクしています。

ところで、2点ほど気になることがあったのでご相談させてください…。


当方の環境は
・MacBook Air……OS:10.13.6 High Sierra
・RPGツクールMV……Ver.1.5.2
・AudioSourceプラグイン……昨日ダウンロードしたのでおそらく最新版 
です。

一つは、音のPANが左右から中央に戻ったとき、わずかに「プツッ」というノイズが発生するというものです。 
プラグインパラメータの「listener」を「player」「screen」どちらにしても同様に発生します。
イヤホンとパソコンのスピーカー、どちらからも同様です。
これは当方の環境によるものなのでしょうか?


もう一つは、
あるマップにBGMの自動演奏で曲を指定し、自動再生のイベントでプラグインコマンド「AudioSource bgm ◯◯」を適用した上で、
BGMなしの別マップに移動する際、そのための場所移動イベントの中で「AudioSource bgm reset」をしてから「BGMのフェードアウト」を挟むと、BGMフェードアウトが適用されない、というものです。

ボス直前の部屋に「AudioSource」を設置して、
部屋に近づくほど音が大きくなり緊張感を与え、ボス部屋の扉を開くと画面の暗転と共にBGMがフェードアウトし、無音のままボス部屋でのイベントが始まる……という、緊迫感のある演出をしたいのですが、
どのようにすれば可能なのでしょうか?

具体的には、BGMの自動演奏ありにしたマップAの中で

トリガー:自動実行
◆プラグインコマンド:AudioSource bgm 14
◆イベントの一時消去

のように設定したイベントをボス扉の近くに置いています。

そこから、「BGMの自動演奏なし」にしたマップBに移動する際、扉のイベントの中に

◆プラグインコマンド「AudioSource bgm reset」
◆BGMのフェードアウト
◆場所移動:マップBへ

という風にイベントを組んでいます。
これでは、BGMのフェードアウトが適用されないのです……。
どのように解決すればいいでしょうか?


以上、もし当方に至らないところがあればぜひご指摘いただけると幸いです!
アバター
くらむぼん
記事: 59
登録日時: 2016年6月26日(日) 12:22

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by くらむぼん » 2018年9月13日(木) 00:43

sirotezza さんが書きました:くらむぼんさん、素敵なプラグインをありがとうございます!
ゲームに導入してみて、この素晴らしい演出効果のおかげでとてもワクワクしています。

ところで、2点ほど気になることがあったのでご相談させてください…。


当方の環境は
・MacBook Air……OS:10.13.6 High Sierra
・RPGツクールMV……Ver.1.5.2
・AudioSourceプラグイン……昨日ダウンロードしたのでおそらく最新版 
です。

一つは、音のPANが左右から中央に戻ったとき、わずかに「プツッ」というノイズが発生するというものです。 
プラグインパラメータの「listener」を「player」「screen」どちらにしても同様に発生します。
イヤホンとパソコンのスピーカー、どちらからも同様です。
これは当方の環境によるものなのでしょうか?


もう一つは、
あるマップにBGMの自動演奏で曲を指定し、自動再生のイベントでプラグインコマンド「AudioSource bgm ◯◯」を適用した上で、
BGMなしの別マップに移動する際、そのための場所移動イベントの中で「AudioSource bgm reset」をしてから「BGMのフェードアウト」を挟むと、BGMフェードアウトが適用されない、というものです。

ボス直前の部屋に「AudioSource」を設置して、
部屋に近づくほど音が大きくなり緊張感を与え、ボス部屋の扉を開くと画面の暗転と共にBGMがフェードアウトし、無音のままボス部屋でのイベントが始まる……という、緊迫感のある演出をしたいのですが、
どのようにすれば可能なのでしょうか?

具体的には、BGMの自動演奏ありにしたマップAの中で

トリガー:自動実行
◆プラグインコマンド:AudioSource bgm 14
◆イベントの一時消去

のように設定したイベントをボス扉の近くに置いています。

そこから、「BGMの自動演奏なし」にしたマップBに移動する際、扉のイベントの中に

◆プラグインコマンド「AudioSource bgm reset」
◆BGMのフェードアウト
◆場所移動:マップBへ

という風にイベントを組んでいます。
これでは、BGMのフェードアウトが適用されないのです……。
どのように解決すればいいでしょうか?


以上、もし当方に至らないところがあればぜひご指摘いただけると幸いです!



sirotezzaさん、ご連絡ありがとうございます!
本件については対策を…(記事を読み返す)
えっ(絶句)

おいきゅう さんが書きました:更新ありがとうございます!
再現できないという環境で頼んでしまいすみません…
音の演出面では是非使いたいプラグインなのでとても嬉しいです。

最新版を確認いたしました。
結論から申し上げますと
対応していただいた方法ではノイズは直らず、対応前と特に目立った違いも見られませんでした…が
ノイズの修正はできてしまいました。

プログラミング知識がほぼ0で申し訳ないのですが、
修正対応していただいた個所を確認してあれこれと試してみました。

audio.pan = (dx * pan).clamp(-100, 100) || Number.MIN_VALUE;

298行目です。
こちらが修正対応していただいた個所だと思います。

上記を
audio.pan = pan.clamp(-100, 100);
このようにするとなぜかノイズが消えました。
|| Number.MIN_VALUE; のありなしでは変化はありませんでした。

ちなみに
audio.pan = (dy * pan).clamp(-100, 100) || Number.MIN_VALUE;
とすると
以前ノイズの入るマスのイメージでこのように記述した部分が
   □□
   □□
   ■
   □□
   □□ 

以下のようになりました。イベントのX軸上をY移動すると例のノイズが聞こえます。

 □ □
 □■□
  
もしかしたら当たり前だよ、ということを言っているのかもしれないのですが…
進行中のプロジェクトで
audio.pan = pan.clamp(-100, 100);
を試してみてもオーディオ関係で特に問題がなさそうでしたので
こちらで進めようと思っておりますが
もしなにか問題が起こる可能性がある場合にはご教示いただけますと助かります…
他に必要な情報があれば提供いたします。
長々とすみません…よろしくお願いいたします…!



ああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!
おいきゅうさんすみません!この書き込みに気づいていませんでした!!
そしてさらに申し訳ないのは、こちらのご対応、大変問題が発生しております!!!
何故かと言うと、dxは音の発信者と聞き手の横位置のズレを計算する変数です。
ですからここを抜いてしまうとステレオスピーカーとかで音源の位置に応じて音を左右にずらす演出が消えてしまっています!
どうりでその次のノイズのご相談の時に話が噛み合わなかったわけだ><

というわけでsirotezzaさん、おいきゅうさん。お二人に申し訳ないのですが、試していただきたいことがあります。
audio.pan = (dy * pan).clamp(-100, 100) || Number.MIN_VALUE;
プラグインの以上の行を、以下のように書き換えてください。
audio.pan = (dy * pan).clamp(-100, 100) || 0.0000000001
これが対策です。これで直らなかったら、数字の0を一つずつ減らして(例えば、次の値は0.000000001になります)、もう一回確かめてください。
直ったらそこでストップすれば、バグ修正は完成です!できればその値を教えてくださればプラグインに反映できてとても助かります~。
私のパソコンはこのバグが起こらないので、自分でこの実験をすることができないのです…すみませんがどうぞよろしくお願いします!

sirotezzaさんのフェードアウトの件は、引き続き調査します。もう少しお待ち下さい~
アバター
くらむぼん
記事: 59
登録日時: 2016年6月26日(日) 12:22

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by くらむぼん » 2018年9月13日(木) 00:56

sirotezzaさん、フェードアウトについてもとりあえず調査しました。

私が同じコマンドを並べて実験したところ、
「AudioSourceプラグインがONでもOFFでも」フェードアウトは起こりませんでした。
そちらのゲームでプラグインをOFFにした場合ではいかがでしょうか。

もしOFFでも改善しないなら、プラグインの問題というよりツクールのシステムがそうなっているんだと思います。
予想ですが、マップBを「BGMの自動演奏なし」にするんじゃなくて、「マップAと同じ曲を自動演奏」にして

◆場所移動:マップBへ
◆プラグインコマンド:AudioSource bgm reset
◆BGMのフェードアウト

の順番に入れ替えればうまくいくんじゃないでしょうか。
よろしければこれをお試しください~
sirotezza
記事: 19
登録日時: 2018年5月10日(木) 23:13

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by sirotezza » 2018年9月13日(木) 05:25

くらむぼんさん、ご返信ありがとうございます!
早速検証してみたのでご報告させていただきます。


まずフェードアウトの件ですが、無事解決しました!
改めてイベント内容を見直してみると、なんともくだらないミスをしていたことに気付きました……。

「BGMのフェードアウト」というコマンドの時間指定の単位を、「秒」ではなく「フレーム」のつもりで設定していたのが間違いでした。
つまり、BGMを3秒でフェードアウトさせたいところを、私がなぜかフレーム単位だと勘違いしており、数値を「180」と指定していました。
そのため、BGMは180秒もかけてゆっくりとフェードアウトするという設定になっていたのです……。
ウェイト処理なんかはフレーム単位なので、そのつもりで入力していたのでしょうか……。そりゃあ気が付かないわけですね。
気付いた時は思わず失笑してしまいました。

というわけでフェードアウトの件については、私の間抜けなミスというオチでした。
お手数おかけしてすみません……。


続いて位相変化によるノイズについてですが、

くらむぼんさんのご指示通り、
プラグインの
audio.pan = (dy * pan).clamp(-100, 100) || Number.MIN_VALUE;

audio.pan = (dy * pan).clamp(-100, 100) || 0.0000000001
に書き換えました。

すると、おかげさまで無事ノイズは消え、聴感上の位相変化も滑らかになりました!

……が、新たに問題点が発生しました。

発生したのは、「音源とプレイヤーの位置関係に関わらず、音源から離れれば離れるほどPANが左に移動する」というものです。
プラグインパラメータの「listener」を「player」「screen」のどちらにしても同様で、
音源に対してプレイヤーが右にいようが左にいようが、距離が離れるほどPANが左に移動します。
上記コードから0の数を減らしても同様です。

これはどのようにすればいいのでしょうか……。

お手数おかけしますが、よろしくお願いいたします!
アバター
くらむぼん
記事: 59
登録日時: 2016年6月26日(日) 12:22

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by くらむぼん » 2018年9月14日(金) 00:51

sirotezza さんが書きました:くらむぼんさん、ご返信ありがとうございます!
早速検証してみたのでご報告させていただきます。


まずフェードアウトの件ですが、無事解決しました!
改めてイベント内容を見直してみると、なんともくだらないミスをしていたことに気付きました……。

「BGMのフェードアウト」というコマンドの時間指定の単位を、「秒」ではなく「フレーム」のつもりで設定していたのが間違いでした。
つまり、BGMを3秒でフェードアウトさせたいところを、私がなぜかフレーム単位だと勘違いしており、数値を「180」と指定していました。
そのため、BGMは180秒もかけてゆっくりとフェードアウトするという設定になっていたのです……。
ウェイト処理なんかはフレーム単位なので、そのつもりで入力していたのでしょうか……。そりゃあ気が付かないわけですね。
気付いた時は思わず失笑してしまいました。

というわけでフェードアウトの件については、私の間抜けなミスというオチでした。
お手数おかけしてすみません……。


続いて位相変化によるノイズについてですが、

くらむぼんさんのご指示通り、
プラグインの
audio.pan = (dy * pan).clamp(-100, 100) || Number.MIN_VALUE;

audio.pan = (dy * pan).clamp(-100, 100) || 0.0000000001
に書き換えました。

すると、おかげさまで無事ノイズは消え、聴感上の位相変化も滑らかになりました!

……が、新たに問題点が発生しました。

発生したのは、「音源とプレイヤーの位置関係に関わらず、音源から離れれば離れるほどPANが左に移動する」というものです。
プラグインパラメータの「listener」を「player」「screen」のどちらにしても同様で、
音源に対してプレイヤーが右にいようが左にいようが、距離が離れるほどPANが左に移動します。
上記コードから0の数を減らしても同様です。

これはどのようにすればいいのでしょうか……。

お手数おかけしますが、よろしくお願いいたします!



あ ごめんなさい、書き換え内容の「dy」とあるところ、正しくは「dx」でした!すみません><
これでノイズとPANの位置が正確になるかどうぞお試しください~
sirotezza
記事: 19
登録日時: 2018年5月10日(木) 23:13

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by sirotezza » 2018年9月15日(土) 19:17

くらむぼんさん、

audio.pan = (dx * pan).clamp(-100, 100) || 0.0000000001
に書き換えて試してみました。

元通りPANはちゃんと左右に振れるようになったのですが、
問題の「プツッ」というノイズは相変わらず聞こえます……。

上記から0を減らしても変わらずです。

些細な音なんですが、プレイヤーにとってこういう演出があると
耳を凝らしてBGMを聴く人も多いだろうし、この音が気になる人も少なくないと思います……。

どうにかならないものでしょうか……。
おいきゅう
記事: 13
登録日時: 2018年6月03日(日) 23:27

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by おいきゅう » 2018年9月15日(土) 21:07

くらむぼん様、お世話になっております!

そしてさらに申し訳ないのは、こちらのご対応、大変問題が発生しております!!!
何故かと言うと、dxは音の発信者と聞き手の横位置のズレを計算する変数です。
ですからここを抜いてしまうとステレオスピーカーとかで音源の位置に応じて音を左右にずらす演出が消えてしまっています!


ご返信ありがとうございます。
こちらの左右の演出ですが、返信した後に左右の違いがなくなっていることに気づきました…
が、まず第一に欲しかった機能が、音源に近づくと大きく、離れると小さく、というものでしたので
くらむぼん様の本来のプラグインの設計を省略する形になってしまい申し訳ありませんが…
左右にずれる演出よりもノイズが消えたことを優先していました。


上記方法を試してみましたが、やはり変化はありませんでした。

ですが、こちらでも改めて原因が分からないかと調べてみたところ、
MVのバージョンを1.6.1にすると、例のノイズを消すことができました。
ので、MV本体に原因があるのではないかと…
アバター
くらむぼん
記事: 59
登録日時: 2016年6月26日(日) 12:22

Re: 特定の位置から音を鳴らすプラグイン

投稿記事by くらむぼん » 2018年9月16日(日) 13:04

おいきゅう さんが書きました:くらむぼん様、お世話になっております!

ご返信ありがとうございます。
こちらの左右の演出ですが、返信した後に左右の違いがなくなっていることに気づきました…
が、まず第一に欲しかった機能が、音源に近づくと大きく、離れると小さく、というものでしたので
くらむぼん様の本来のプラグインの設計を省略する形になってしまい申し訳ありませんが…
左右にずれる演出よりもノイズが消えたことを優先していました。


上記方法を試してみましたが、やはり変化はありませんでした。

ですが、こちらでも改めて原因が分からないかと調べてみたところ、
MVのバージョンを1.6.1にすると、例のノイズを消すことができました。
ので、MV本体に原因があるのではないかと…


おいきゅうさん、返信ありがとうございます!
な、なるほど…ノイズ退治の特効薬が本体バージョンだとは思いもよりませんでした。
となると、そもそも本体のバグだった可能性がありますね…><
貴重な情報、ありがとうございました!

sirotezza さんが書きました:くらむぼんさん、

audio.pan = (dx * pan).clamp(-100, 100) || 0.0000000001
に書き換えて試してみました。

元通りPANはちゃんと左右に振れるようになったのですが、
問題の「プツッ」というノイズは相変わらず聞こえます……。

上記から0を減らしても変わらずです。

些細な音なんですが、プレイヤーにとってこういう演出があると
耳を凝らしてBGMを聴く人も多いだろうし、この音が気になる人も少なくないと思います……。

どうにかならないものでしょうか……。


sirotezzaさん
0を減らすと、最終的には

audio.pan = (dx * pan).clamp(-100, 100) || 1

ここまで行き着くはずですが、これでもノイズは直りませんか?
…そういうことでしたら、上記のおいきゅうさんが発見された特効薬をお試しください。

つまり、RPGツクールMVのバージョンを1.5.2から最新の1.6.1に上げるとノイズが消えるようです。
これらを試してもらって、ノイズが消えれば幸いです…!

“MV:プラグイン素材” へ戻る