【ツクールMV】聞こえる…奴はそばにいる!こんな風に作ってみた
こんにちは、シマです。
皆様もお体にはお気を付けください。
さて、「聞こえる……奴はすぐそばにいる!」な処理の
中身や考え方について書いてみようかと思います。
とはいえ、すごいことをしているわけではないです。
やはり、スクリプトで「AudioManager.playBgm」を活用しました。
↑上記をお試しいただいた方はご覧いただきましたこのシーン。
1.歌姫の声が聞こえる
2.歌姫に近づくと声が大きく聞こえる&歌姫の方向から聞こえる
3.歌姫救出
4.入り口から火の手が上がる…閉じ込められる
5.すきま風の音を頼りに、もろくなった壁を発見
6.もろい壁を破壊して脱出
という、(ベタな)流れになっています。
メインの処理のコアな部分はこんな感じで書いています。
------------------------------------------------------------------
AudioManager.playBgm({"name":"Canon","volume":$gameVariables.value(8),"pitch":0,"pan":$gameVariables.value(11)})
------------------------------------------------------------------
ボリュームと位相に変数を入れています。
変数の中身は下記のような感じです。
変数#0008
主人公と対象(歌姫)の位置の値から、双方の距離が短くなるほど数値が大きくなるように計算した値
変数#0011
主人公から見て、対象(歌姫)がどの位置にいるのか計算した値
そしてトリガーを「並列処理」にして、
常に主人公と対象の位置から、ボリュームと位相を計算して
BGMを再生するようにしてみました。
こちらのシーンは、「ボス」が近くに来るほどBGMが大きくなります。
上記と同様に、主人公とボスとの距離を常に計算して、
BGMと位相を調整しているという感じです。
なかなか臨場感のある演出例としてうまくいったと思っています。
----
160325追記
下記で少しだけ距離の考え方についてメモしてみました。
よろしければこちらも参照くださいませ。
-----
ただ、並列処理で、常時そこそこの計算をしてしまっているので、
ちょっと処理が重いかもしれません。
主人公が移動した場合に計算するなど、
もっとエレガントな作り方ができそうです。
このスクリプトの書き方と変数の計算を応用すると
いろんなことができそうですね。
お読みいただきましてありがとうございました。