audio-setup-mixers について
Unity 向けのオーディオミキサー設定スキルです。起動中の Editor でミキサーと Audio Source を調査し、ユーザーが確認した分類に基づいて既存グループへルーティングします。ミキサーやグループは作成せず、不足分は UI で作成する必要があります。
主な機能
- 01ミキサーとグループ名の一覧化
- 02シーン内の Audio Source の調査
- 03割り当てられたアセット名による分類
- 04計画の確認後に出力先を設定
- 05ルーティングを一括で取り消し可能にする
活用シーン
- 01効果音、音声、音楽を各グループへ割り当て
- 02既存グループの確認とルーティング計画
- 03不足グループや未分類のソースの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ unity-technologies/ skills --skill audio-setup-mixersインストール後、Claude Code で/audio-setup-mixersを入力して読み込まれたか確認します。
同梱ファイルreferences/api.mdSECURITY.md
詳細
オーディオミキサーのセットアップ
オーディオソースをミキサーグループにルーティングするには、実行中のエディターでシーンを編集する必要があります。そのため、このスキルを実行するには、C# を実行できるライブエディターが必要です。まずステップ 0 でその条件を確認します。
このスキルが自動化することと、お客様にお任せすること。 ミキサーの調査や、オーディオソースをグループにルーティングする作業は、すべて公開されている Unity API で行えます。何十ものソースを調べて、再生する内容ごとに分類する手間のかかる部分です。一方、ミキサーやグループの作成に公開 API はなく、Unity が安定性を保証していない型でのみ実行できます。そのため、このスキルがお客様に無断でグループを作成することはありません。既存の内容を一覧にし、ルーティング案を提示し、不足しているグループは Audio Mixer ウィンドウで追加していただいたうえで、ルーティングはすべてスキルが行います。
これは回避すべき不備ではなく、意図的な制限です。グループの作成にリフレクションを使わないでください。また、.mixer ファイルを手動で編集しないでください。ミキサーの構造を把握せずに安全に編集することはできません。
ステップ 0:エディターで C# を実行できることを確認する
以下の C# の各ステップは、Unity CLI を通じてライブエディター内で実行します。エディターに接続するまでの手順は unity-cli スキルが担当します。CLI のインストール、接続済みエディターの確認、プロジェクトへの com.unity.pipeline パッケージの追加、エディターが本当に存在しない場合と Safe Mode で停止している場合の判別、エディターのコマンドカタログの確認は、すべてそのスキルに従ってください。ここで同じ手順をやり直さないでください。
そのスキルでは判断できない点が 2 つあります。
- 接続可能なエディターだけでなく、特に
evalが必要です。 カタログに表示されることを確認してください。evalの有無は CLI ではなく Pipeline パッケージのバージョンによって決まるため、インストールが正常でも利用できない場合があります。見つからなければ、その旨を伝えて終了してください。 .mixerファイルの手動編集に切り替えないでください。 ミキサーのルーティングは把握せずに安全に編集できないため、エディターに接続できない場合は作業を中止してください。独自の方法を試す合図ではありません。
eval が利用できる場合は、以下の C# の各ステップをその方法で実行します。
接続済みエディターで eval コマンドを使って C# を実行します。パラメーターの形式を推測せず、unity command --format json で確認してください。インライン形式は unity command eval --code '<snippet>' です。また、Pipeline のバージョンによっては、ファイルからスニペットを実行する eval_file が登録されていることもあります。eval_file を使う前に、必ずカタログを確認してください。利用できないことがよくあります。 unity command のタイムアウトはデフォルトで 30 秒です。
eval に C# を渡す
eval がコンパイルするのはファイルではなくステートメントブロックです。このため、次の 2 点はいずれも警告ではなくコンパイルエラーになります。
usingディレクティブは使えません。 コンパイラーはusing UnityEngine;をリソース破棄ステートメントとして読み取り、拒否します(CS0210)。- 型名は完全修飾する必要があります。
AssetDatabaseやVolumeだけでは解決できず(CS0246/CS0103)、Objectだけではobjectと曖昧になります(CS0104)。
以下のスニペットが、読みやすさのため、またはプロジェクトに保存する目的で using を含むファイルとして記述されている場合は、eval に渡す前に型名を完全修飾してください。
ステップ 1:事前確認
ユーザーが Audio Mixer のセットアップを明示的に依頼していない場合は、セットアップを進めてよいか確認します。
次に、references/api.md にあるミキサー一覧取得用スニペットを使い、ステップ 0 の説明に従ってエディター経由で実行し、既存の内容を確認します。これにより、プロジェクト内のすべてのミキサーと、それぞれのグループ名を取得できます。
返されるのは親子関係のツリーではなく、グループのフラットな一覧です。ルーティング先を選ぶにはこれで十分であり、公開 API で取得できるのはこの情報までです。階層構造が必要な場合は、Audio Mixer ウィンドウを見て説明してもらうようユーザーに依頼してください。確認のために非公開のツリー API を使わないでください。
プロジェクトにミキサーが 1 つもない場合は、 独自に作成せず、その旨を伝えて終了してください。ミキサーを作成する公開 API はありません。ユーザーにミキサーの作成を依頼し(Window → Audio → Audio Mixer を開き、Mixers の横にある + をクリック)、作成されたらここから作業を再開してください。
ステップ 2:シーン内の参照を確認する
すべての Audio Source コンポーネントを確認し、割り当てられている Generator アセット名を調べて、音の名前に合ったクラスまたはカテゴリを一般化してください。できれば、すでに存在するものを使います。 Audio Clip アセット名の例:
- "FootStep4_Sound" -> Foley
- "Dialogue_Female_Scene4" -> Vox/Voice/Dialogue
- "GunShot" -> SFX
- "Menu_Theme_Variation" -> Music
割り当てられたアセットの名前から内容を判断できない場合や、アセットが存在しない場合は、GameObject の名前や、隣接する可能性のある MonoBehaviour 名を確認してください。 Audio Source の用途の分類が難しい場合や、確信が持てない場合は、Uncategorized グループを作成するようユーザーに依頼してください。
ステップ 3:グループのリストを合意し、不足しているグループを作成してもらう
ステップ 2 の分類をルーティング案として提示します。各 Audio Source と、割り当て先として想定するグループを示し、ユーザーと調整してください。
先に進む前に、ユーザーの返答を待ってください。
カテゴリに本当に合致する既存のグループがあれば、名前を付けるとしたら別の名前にする場合でも、そちらを優先してください。ただし、ミキシングエンジニアが分けて扱うカテゴリをまとめないでください。Foley は SFX の一部であり、別の呼び方ではありません。そのため、Foley グループが存在するからといって、銃声をそこに割り当ててはいけません。既存のグループがカテゴリの一部にしか対応していない場合は、どれが適合し、どれに新しいグループが必要なのかを伝え、ユーザーに判断してもらってください。
該当するグループがないカテゴリについては、グループを作成できません。そのためのパブリック API はありません。references/api.md の末尾に示されているとおり、ミキサー名と正確なグループ名を指定して、作成をユーザーに依頼してください。その後、インベントリ用のスニペットを再実行して、グループが存在することと、名前の綴りが正しいことを確認してからルーティングしてください。ユーザーが作成したはずだと決めつけず、依頼どおりの名前で作成したと決めつけないでください。
ステップ 4:Audio Source をルーティングする
グループのリストが確定し、必要なグループが存在することを確認したら、references/api.md のルーティング用スニペットを使って、各 Audio Source の出力グループを設定してください。全体がパブリック API で構成されており、処理全体を 1 回の Undo ステップで実行するため、ユーザーはすべての変更を一括で取り消せます。
分類に使った識別子をキーにしてマッピングを作成してください。 ステップ 2 では、まずクリップアセット名を確認し、該当しなければ GameObject 名を使います。そのため、マッピングではどちらの名前も使用できますが、これらは異なる識別子です。誤った方をキーにすると、一部のソースがルーティングされません。
次の 3 点は、推測せず報告してください。
- スニペットが返した
NO SUCH GROUPの項目。 これは、存在すると思っていたグループがミキサー内にないことを意味し、通常は名前の綴りが異なっています。ユーザーと解決し、ソースを黙ってスキップしないでください。 NOT IN THE MAPPINGの項目。 これらは分類時に見落とした Audio Source です。ソースがルーティングされずに残っているのに、それを伏せてルーティングに成功したと報告するのは、ここで最悪の結果です。成功したように見えてしまうためです。- 変更されたのはシーンであり、ミキサーアセットではありません。 ルーティング設定は Audio Source に保存されるため、シーンを保存して初めて変更が保持されます。ユーザーに伝え、同意を得た場合にのみ保存してください。
音量、エフェクト、親子関係の変更は対象外です。 これらはパブリック API では扱えません。ユーザーから依頼された場合は、ルーティングは完了していることを伝え、ミックスそのものについては Audio Mixer ウィンドウを案内してください。
参考資料
references/api.md を参照してください。