MENU

 LvMixerVolumeManagerの使い方ガイド(Unity PlayMaker)

AudioMixer

概要

Unity PlayMaker用カスタムアクションの紹介です。
LvMixerVolumeManager は、オーディオミキサーを操作するアクションです。


1. インデックスによる「横並び」のデータ管理

このアクションの最大の特徴は、3つの配列(リスト)をインデックス番号で紐付けて管理している点です。インデックスとは、リストの各項目に振られた [0], [1], [2]… という番号のことです。

設定のルール

リストの数は揃える: Parameter Names、Volume Variables、Save Keys の Size(要素数) は必ず同じ数字に設定してください。
同じ番号(Index)はひとつのセット: Index [0] に設定した項目は、すべて「セット0」として連動します。

2. 具体的な設定例(Master / BGM / SE の場合)

設定画面のFSMにアクションを追加し、各リストの Size を 3 に設定した際の入力イメージです。

IndexParameter Name (ミキサー側)Volume Variable (FSM変数)Save Key (保存名)
[0]MasterVolvol_masterCONF_MASTER
[1]BGMVolvol_bgmCONF_BGM
[2]SEVolvol_seCONF_SE

動作の仕組み: プレイヤーがSEのスライダーを動かして vol_se (Index 2) が変化すると、アクションは自動的に Index 2 のセットだけを処理し、ミキサーの SEVol を書き換え、CONF_SE という名前で保存します。


3. 導入の手順

ステップ1:Audio Mixerの準備

Audio Mixer内の各グループ(Master, BGM等)の Volume を右クリックし、Expose to script を選択。
Exposed Parameters パネルで、名前を MasterVol などに変更(これが Parameter Name になります)。

ステップ2:FSMの構築

設定画面のステートに LvMixerVolumeManager を配置。
同じステートに UI Slider Get Value などのアクションを配置し、各スライダーの値を vol_master などの変数にリアルタイムで格納するようにします。
LvMixerVolumeManager の Every Frame を ON にします。

4. この設計のメリット

  • 「迷子」にならない: 「BGMの設定を変えたのにMasterが保存された」といったミスが、インデックスで管理することで防げます。
  • 一括ロード: ゲーム起動時にこのアクションが実行されると、すべての Index を一気にスキャンし、保存された値を読み込んでミキサーに反映します。
  • 保守性: 音の種類を増やしたい時(例:ボイス音量)、リストの Size を増やして Index [3] を追加するだけで完了します。

5. 注意点

  • 0(無音)の扱い: スライダーを最小にしてもエラーが出ないよう、内部で $0.0001$ に補正してからデシベル計算($\log_{10}$)を行っています。
  • セーブのタイミング: Auto Save が ON の場合、スライダーを動かしている間、常に PlayerPrefs.Save() が走ります。負荷が気になる場合は、設定画面を閉じるタイミングで一度だけセーブする等のカスタマイズも可能ですが、現在の PC/モバイル性能であればこのままで問題ありません。

ダウンロード

Zipファイルに入っているスクリプトをPlayMakerのActionフォルダー内に適当なフォルダーを作って入れてください。
このスクリプトで何か問題があっても責任は取れませんので、ご理解の上で使用願います。
このアクションが気に入ったら、何か私の作ったゲームを買っていただけると助かります!

プログラマーじゃなくてもゲーム作れるよ!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次