以下の内容はhttps://www.karvan1230.com/entry/2023/04/04/221836より取得しました。


【Unity】AudioMixerを使った音量の一括調整

シン・仮面ライダー

事前情報を入れずに劇場にいったら入場者特典とやらで色紙サイズのサインペーパー(2枚)を配られ、鞄の中に仕舞い切れず扱いに困った皆さんこんにちは。これから観に行かれる方は大きめのバックを持っていくことをお勧めします。
映画の内容は、無駄に高いところから現れるヒーロー、ポーズを取るたびに何処からともなく鳴り響くSEや、ご都合主義&ぶった切りのストーリー展開といった70年代の昭和ヒーロー物をリスペクトする内容で、元ネタを知っている方ならニヤニヤするような小ネタが沢山仕込まれているヲタク向けの同人映画、といった感じでしょうか。
「何だこの力は?一体僕はどうしてしまったんだ!」から「僕はこの力で人類を守る」まで10分も掛からずに心変わりしますが昭和ヒーローとはそういうモノなんです。だから大きな不満はありませんが、戦闘場所は必ず山奥の採石場であちこちで爆発が起こる、といったこれも昭和ヒーローのお約束が無かった事が唯一残念だった点でしょうか。

 

unity1week

前回の更新時には制作中だったunity1week向けのゲームですが、その後無事に投稿することができました。
今回はリズムゲームで、且つ音ゲーのようなノーツが振っているタイプではないゲームにする、という事を目標にゲームデザインを考え、結果、一筆書きと組み合わせたようなゲームを作成しました。

unityroom.com

相変わらず閲覧数や評価数が少なくので結果はもう諦めているのですが、「タイミングがシビア」という感想を頂き、自身では全く気付かなかった事なのでやはり第三者から感想をもらう事は重要なことなんだなぁ、という事を改めて認識しました。
気になった方は上のリンクから飛んで遊んで見て下さい。それも面倒くさい、もしくは難しくてクリアできない、という方のためにプレイ動画を下に作成したので、ちょっとでも見てやってください。

youtu.be

 

音量調整機能

unity1weekは(基本的に)1週間でゲームを作り上げるイベントなので、個人的にはゲーム本編とそれに伴う必要な機能を作るだけで十分だと思っているのですが、unity1weekのゲームを評価する人の中には、音量調節機能の有無がゲーム評価を左右する、との考えを持っている方がいるようで、音量調節がない場合は無条件に(サウンドの)評価を一段階低くする、といった評価基準で採点されています。

この為、noteなどで見かける「unity1weekの攻略法」といった内容の記事では「音量調節機能は必須」などと書かれており、実際に最近の投稿作品の多くは音量調節機能が実装されています。
とはいえBGMやSE、ボイス等、ゲーム内で音を鳴らす箇所は様々複数存在するため、各それぞれにオプションで設定した音量の値を反映するのは非常に面倒で手間が掛かります。

Unityではこの手間を出来る限り少なくする為にAudioMixerという機能が用意されています。

AudioMixerAudioSourceの鳴らす音を一括管理する事ができ、且つ、各AudioSourceをBGM/SE/ボイスなどの音量は各カテゴリに分けて管理するといったことが実現できます。

 

作り方

最初にAudioMixerをプロジェクト内に作成します。

1.Projectで右クリックしてCreateからAudioMixerを指定します。

プロジェクト内にAudioMixerが作成されます。

 

2.AudioMixerを選択してInspectorに表示される「Open」ボタンを押します

AudioMixerのウィンドウが開きます。

 

3.Groupsの「+」を押してカテゴリ毎にグループを作成します。

 

4.AudioMixerにグループを作成したら、音量調整を行うためのパラメータを各グループ毎に追加して行きます。

各グループのInspector上から「Volume」を右クリック→「Expose 'Volume(of グループ名)' to script」を選択します。

 

5.AudioMixerウインドウの右上に「MyExporsedParam」が作成されるので、これを適切な名前に変更します。

 

6.すべてのグループにパラメータを追加するとこんな感じ。これでAudioMixer側の準備が完了しました。

 

スクリプト側の制御

スクリプトでAudioSourceとAudioGroupを紐づけます

スクリプトにAudioGroupを格納する変数とAudioSourceを格納する変数をそれぞれ用意

Inspectorからそれぞれに適用

AudioSourceのoutputAudioMixerGroupにAudioGroupを指定することで紐づけを行います。

後はAudioMixerにSetFloatで先程作成したMyExporsedParamの名前を指定し音量の値を設定します。

音量の値は-80~20となるようにします。

スライダーで設定したい場合は、スライダーのMin・Maxの値を-80,20に指定すれはスライダーの値をそのまま代入することができます。

 

注意点ですがAudioGroupのMasterは主音量を示しています。追加した他のグループの親となっているの為、Masterの音量を変更すると子である他グループもそれに追随して変更されるので注意してください。

上記までの対応によりゲーム内の各グループの音量を一括で変更できるようになります。unity1weekでも音量調整機能を実装したいと思う方は参考にして下さい。

 

「W.T.」では実装してるよ!

unity1weekでは今後も音量調整機能を実装するつもりはありませんが、先日体験版をリリースした「W.T.」ではオプション機能として音量調整機能は実装しています。

右のリリース作品欄のリンクからダウンロードすることができるので是非ダウンロードして遊んでください。(無料です。)

 




以上の内容はhttps://www.karvan1230.com/entry/2023/04/04/221836より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14