ゲームこもごも

RPGツクールMVやゲームなどこもごも

【ツクールMV】聞こえる…奴はそばにいる!こんな風に作ってみた

こんにちは、シマです。

皆様もお体にはお気を付けください。

 

さて、「聞こえる……奴はすぐそばにいる!」な処理の

中身や考え方について書いてみようかと思います。

 

とはいえ、すごいことをしているわけではないです。

やはり、スクリプトで「AudioManager.playBgm」を活用しました。

 

f:id:shima888shima:20160130143733p:plain

 

plicy.net

↑上記をお試しいただいた方はご覧いただきましたこのシーン。

 

1.歌姫の声が聞こえる

2.歌姫に近づくと声が大きく聞こえる&歌姫の方向から聞こえる

3.歌姫救出

4.入り口から火の手が上がる…閉じ込められる

5.すきま風の音を頼りに、もろくなった壁を発見

6.もろい壁を破壊して脱出

 

という、(ベタな)流れになっています。

 

メインの処理のコアな部分はこんな感じで書いています。

------------------------------------------------------------------

AudioManager.playBgm({"name":"Canon","volume":$gameVariables.value(8),"pitch":0,"pan":$gameVariables.value(11)})

------------------------------------------------------------------

ボリュームと位相に変数を入れています。

変数の中身は下記のような感じです。

 

変数#0008

主人公と対象(歌姫)の位置の値から、双方の距離が短くなるほど数値が大きくなるように計算した値

 

変数#0011

主人公から見て、対象(歌姫)がどの位置にいるのか計算した値

 

そしてトリガーを「並列処理」にして、

常に主人公と対象の位置から、ボリュームと位相を計算して

BGMを再生するようにしてみました。

 

f:id:shima888shima:20160130150732p:plain

こちらのシーンは、「ボス」が近くに来るほどBGMが大きくなります。

上記と同様に、主人公とボスとの距離を常に計算して、

BGMと位相を調整しているという感じです。

なかなか臨場感のある演出例としてうまくいったと思っています。

----

160325追記

下記で少しだけ距離の考え方についてメモしてみました。

よろしければこちらも参照くださいませ。

 

shima888.hateblo.jp

-----

 

ただ、並列処理で、常時そこそこの計算をしてしまっているので、

ちょっと処理が重いかもしれません。

主人公が移動した場合に計算するなど、

もっとエレガントな作り方ができそうです。

 

このスクリプトの書き方と変数の計算を応用すると

いろんなことができそうですね。

 

お読みいただきましてありがとうございました。