ゼニガネブログスマートフォン用の表示で見るゼニガネブログゲーム開発のための小ネタなど。現在はUnityメインでやってますこの広告は、90日以上更新していないブログに表示しています。サウンドTweet今回は使ってみると便利&面白いAudioMixerで遊んでみたいと思います。AudioSourceだけでもゲームは作れちゃいますし、AudioMixerが実装されたのがUnity5からなので実装時点で既にオレオレSoundManagerが完成していたり、オーディオミドルウェアを採用済みであったりと使用経験のない方もいるのではないでしょうか。今回はそんな方向けに導入方法とちょっとしたサンプルをご紹介したいと思います。※オレオレSoundManagerやオレオレAudioManagerを作成する記事ではないですAudioMixerとは公式よりUnityオーディオミキサーを使用すると、さまざまなオーディオソースをミキシングし、エフェクトを適用し、マスタリングを実行できます。「音をいい感じに聞こえるように調整するための機能」=「AudioMixer」ぐらいの認識でいいと思います。AudioMixerを使うとこんな事が簡単に出来る!・サウンドをグループ化したり、親子関係をもたせて扱えるSEグループだけミュートにしたいとか全てフェードアウトしたいとか。・サウンドにリアルタイムでエフェクトを掛けられる1つの音声ファイルだけで電話越し、洞窟内での鳴り方を表現できたり。・エフェクト設定を保存しておいていつでも切り替えができる通常設定、メニューを開いている時用設定(メニューSE以外音量を下げる)のスナップショットを用意しておいて状態に合わせて切り替えたり。・ある音を再生中は一時的に別の音量を下げるいわゆるダッキングというやつです。キャラの音声再生中は一時的にBGMの音量を下げるとか。現在の音量(dB)が表示されて直感的に。・プログラマ以外にもさわりやすくなる餅は餅屋、音は音屋!余談ですが、AudioMixer実装前からLPFやリバーブなどのエフェクト用コンポーネント(昔はProOnly機能)は存在していました。このコンポーネントはAudioSourceやAudioListenerに対して設定するものですが、AudioMixerのエフェクトはグループに設定します。ちなみにLPFはローパスフィルタの略で、特定周波数より低い成分を通して、高い方は減衰遮断するフィルタです。HPF(ハイパスフィルタ)はそれの逆で低域カットです。BPF(バンドパスフィルタ)は指定域外カットです。UnityにBPFは用意されていないので再現したいときにはLPFとHPFを組み合わせて使います。サウンド系のスライドを見に行くとちょくちょく出てくるので覚えておくと便利です!よし、何か作ってみよう!ゲームっぽいシチュエーションの方が作っていて楽しいと思いますのでRPGをイメージした物を作ってみましょう。・近くに小さな滝がある草原フィールド画面でエンカウントするパターン・近くに小さな滝がある洞窟フィールド画面でエンカウントするパターン・フィールド画面からメニュー画面を開くパターンUIを操作すると上記をイメージしたサウンド制御が出来るようにします。最終的にこんな感じの物を作ります。www.youtube.com見た目はちょっと残念ですが音源のクオリティが高いので音だけ聴くといい感じ!音源の用意まず今回使用する音源を用意しましょう。各サイトからそれぞれダウンロードをお願いします。ファイル名は変更せずそのままご使用いただいた方がスムーズに読み進められると思います。実際に作っていこうでは、素材も揃ったところで新しいプロジェクトを作成しましょう。プロジェクト名はなんでもOKです。私はBlogAudioMixerとして作成しました。先程ダウンロードしてきたファイルを全てインポートしておきます。Audioフォルダを作ってそこに移動しておきましょう。AudioMixerを使用するには、オーディオミキサーファイル(拡張子.mixer)が必要になります。ProjectビューからCreate→AudioMixerを選択してSample01AMという名前で作成します。このミキサーファイルはAudioフォルダ内にMixersを作ってそこに移動しておきます。AudioMixer編集ウィンドウを開きます。メニューバーのWindow→AudioMixerを選択するか、生成したSample01AMをダブルクリックやCtrl+8でも開けます。Masterグループしか存在しない状態なので、グループの追加を行います。Groupsにある+をクリックしてBGM、SE、Voice、Male、Female、Otherグループを追加します。グループ名をドラッグや右クリックで親子関係を変更したりリネームなどが行なえます。Masterグループはリネームが行なえません。画像の通りにMasterの子にBGM、SE、Voiceを設定、Voiceの子にMale、Femaleを設定します。このグループ分けは作りたいゲーム・表現によって大きく変わってくるので作品毎にあわせて設計するのがベストです。グループを細かく分けすぎると管理が複雑になりすぎて泣きたくなりますのでほどほどに...。一例としてギャルゲービジュアルノベルをイメージしたAudioMixerグループの画像を挙げておきます。キャラ単位でオンオフ出来たり音量調整できたり、モブキャラは全部オフにしちゃえみたいなイメージです。本筋に戻ってでは次にシーンを作成しましょう。ファイル名はSample01としてシーンを作成しました。Assets直下にファイルを直接置くのが気になるので、Scenesフォルダを作ってその中にSample01シーンを入れおきます。AudioSourceコンポーネントを持ったGameObjectを追加していきます。Sourceで作成します。AudioSourceコンポーネントの設定は後ほど行います。併せて親になる空のゲームオブジェクトを追加していきます。Emptyで作成します。これを画像のような親子関係にして配置して下さい。Rootとなっているものが空のゲームオブジェクトでそれ以外はAudioSourceコンポーネント持ちです。一応コピペ用にテキストもはっておきます。BGMRootFieldBattleSERootWaterVoiceRootBoyGirlOtherRootEncounterResultWinOpenMenuAudioSourceコンポーネントのAudioClipに設定を行います。先程インポートした各オーディオファイルを設定していきます。あわせてPlayOnAwakeとLoopの設定も行います。menu1ここまで出来たら一旦実行してみましょう。序盤のフィールドっぽいBGMと水の音が流れていればOKです。ここで実行中のAudioMixerウィンドウに注目して欲しいのですが、この画像のようにはなっていないと思います。実はまだ、AudioMixerを作成しただけで使うようには設定していなかったのです!ここが冒頭で書いた「AudioSourceだけでもゲームは作れちゃう」という部分になります。※正確にはAudioSource、AudioClip、AudioListenerが必要ですここからAudioMixerを使うように設定していきましょう。AudioSourceコンポーネントのOutputという項目へ設定をしていきます。Outputで選択できるものはAudioMixerのグループになります。作っておいたSample01AMを設定していきましょう。BGMRootの子供はBGMグループへと言った具合に、SERoot、OtherRootの子供たちも全て設定していきます。VoiceRootの子のBoyとGirlはVoiceではなくそれぞれMaleグループ、Femaleグループに設定しましょう。ここでもう一回実行してみましょう。音は全く変わっていませんが、画像のようにVUレベルメーターが動いていると思います。これでAudioMixer経由で音が出力されました!続いてBGMが気持ち大きいかなと思うので少し音量を下げます。AudioSourceのVolumeで調整する方法もあるのですが、今回はBGMグループのAttenuationエフェクトで調整してみましょう。AudioMixerウィンドウのBGMグループをクリックすると、Inspectorにそのグループへ追加されたエフェクトが表示されます。Attenuationは減衰という意味で、その名の通り入力された信号(音)を減衰させます。こんな感じで設定してみましょう。ちなみにゲームの実行中は、Attenuationの設定などのAudioMixerの編集が出来ないようになっています。Playmodeをクリックすると編集出来るようになります。今回のまとめ先に向けての準備もあって長くなってしまいましたが、AudioMixerを使うために一番重要な部分はこれだけです。オーディオミキサーファイルを作成し、AudioSourceコンポーネントのOutputにAudioMixerのグループを設定する。簡単!次回はAttenuation以外のエフェクトやスナップショットを使用してみたり、もう少し踏み込んだ使い方をしていきます。去年に引き続きタイムシフト配信での参加になりました。金無し...2018-02-20【Unity】AudioMixerで遊んでみよう!(3/3)今回が最終回です。»プロフィールid:zenigane138ゲーム開発のための小ネタなど。(1)はてなブログをはじめよう!zenigane138さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。