Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

FMODでグローバル・パラメータをIDでコントロールする [PARAMETER_ID]

FMOD_Global Parameter

 Unityで使うことのできるオーディオ・エンジンのひとつとしてFMODがあります。FMODでは『パラメータ』を使って、臨機応変サウンドを変化させることが可能ですが、プロジェクト全体に作用させることの出来る『グローバル・パラメータ』がver 2.00から導入されました。

 

 FMODUnity.RuntimeManager.StudioSystem.setParameterByNameを使えば、スクリプト上のどこからでも、グローバル・パラメータを変化させることが出来ます。

 しかし、このメソッドは文字列を使っているため、ID(int)を使うことで処理の負荷を下げたいです。

 

 というわけで今回の記事はグローバル・パラメータのIDを取得する方法について書きます。

 

PARAMETER_DESCRIPTIONの取得

 まずはPARAMETER_ID private変数を用意します。今回は_progressID_sceneIDの二つ。取得したIDをキャッシュしておくために必要です。

FMOD_getParameterDescriptionByName

PARAMETER_DESCRIPTION一時変数を二つのパラメータに使いまわしてます

そして、AwakeかStartメソッドで

FMODUnity.RuntimeManager.StudioSystem.getParameterDescriptionByName

を使ってPARAMETER_DESCRIPTIONを取得、id変数からPARAMETER_IDを獲得します。

FMOD_setParameterByID

Update内でゲームを制御するメソッドの一部分

FMODUnity.RuntimeManager.StudioSystem.setParameterByID

を使って、グローバル・パラメータを効率良く変更することが出来るようになります。

 

 グローバル・パラメータを上手く使えばパラメータ管理がかなり楽になるので、上手く活用していきたいですね!