mcpField
S
sound-engineer

sound-engineer

github.com/curiositechクリエイティブ・メディア257349 回インストール2 日前に更新
リポジトリ

sound-engineer について

sound-engineer は、ゲーム、VR/AR、モバイルアプリのサウンドを制作するオーディオエンジニア向けのスキルです。空間・プロシージャルオーディオ、ミドルウェアのワークフロー、アプリのサウンド設計を扱い、性能とプラットフォームのオーディオセッションにも配慮します。

主な機能

  1. 01空間オーディオの手法
  2. 02プロシージャルサウンド生成
  3. 03Wwise と FMOD のワークフロー
  4. 04インタラクティブ音楽と UX サウンド設計
  5. 05モバイルのオーディオセッション指針
  6. 06リアルタイム DSP 技術

活用シーン

  1. 01VR シーンの空間オーディオ設計
  2. 02表面に応じた変化のある足音の制作
  3. 03ミドルウェアで適応型ゲームオーディオを構築
  4. 04アプリにアクセシブルなフィードバック音を追加

MCP 対応

音響効果の生成に ElevenLabs MCP、オーディオ文書の調査に Firecrawl、プラットフォームの音声ガイド取得に WebFetch を挙げています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/curiositech/some_claude_skills --skill sound-engineer

インストール後、Claude Code で/sound-engineerを入力して読み込まれたか確認します。

同梱ファイル.claude-plugin/plugin.jsonreferences/implementations.md

詳細

サウンドエンジニア:空間オーディオ、プロシージャルサウンド、アプリのUXオーディオ

ゲーム、VR/AR、モバイルアプリなどのインタラクティブメディアを専門とするエキスパートのオーディオエンジニアです。空間オーディオ、プロシージャルサウンド生成、ミドルウェア統合、UXサウンドデザインを専門としています。

このスキルを使うタイミング

✅ 次の場合に使用します:

  • 空間オーディオ(HRTF、バイノーラル、アンビソニックス)
  • プロシージャルサウンド(足音、風、環境音)
  • ゲームオーディオミドルウェア(Wwise、FMOD)
  • アダプティブ/インタラクティブな音楽システム
  • UI/UXサウンドデザイン(クリック音、通知音、フィードバック音)
  • サウンドブランディング(オーディオロゴ、ブランドサウンド)
  • iOS/Androidのオーディオセッション処理
  • ハプティクスとオーディオの連携
  • リアルタイムDSP(リバーブ、EQ、コンプレッション)

❌ 次の場合は使用しないでください:

  • 作曲/音楽制作 → DAWツール(Logic、Ableton)
  • 音声合成/クローン → voice-audio-engineer
  • 映画の音声ポストプロダクション → リニア編集のワークフロー
  • ポッドキャスト編集 → 標準的なオーディオエディター
  • ハードウェアのマイク設定 → 専門分野

MCP 統合

MCP目的
ElevenLabstext_to_sound_effects - UIサウンド、通知音、衝撃音を生成
FirecrawlWwise/FMODのドキュメント、DSPアルゴリズム、プラットフォームのガイドラインを調査
WebFetchApple/Androidのオーディオセッションに関するドキュメントを取得

エキスパートと初心者を見分けるポイント

トピック初心者エキスパート
空間オーディオ「左右にパンするだけ」HRTF畳み込みで真の3D音響を実現し、VRの頭部トラッキングにはアンビソニックスを使用します
足音「10~20個のサンプルを使う」プロシージャル合成により、無限のバリエーション、小さなメモリ使用量、パラメーター制御を実現します
ミドルウェア「サウンドを再生するだけ」連続的なパラメーターにはRTPC、素材にはSwitches、音楽にはStatesを使用します
アダプティブミュージック「トラックをクロスフェードする」水平方向の再オーケストレーション(レイヤー)と垂直方向のリミックス(ステム)を組み合わせます
UIサウンド「どんなクリック音でもよい」ブランドの一貫性、アクセシビリティ、ハプティクスとの連携を考慮して設計します
iOSオーディオ「AVAudioPlayerで動く」AVAudioSessionのカテゴリ、中断処理、出力先の変更を把握しています
距離による減衰線形減衰基準距離を用いた逆二乗則を使い、リアルさには対数減衰を用います
CPU予算「オーディオの負荷は軽い」予算の5~10%を把握しており、HRTF畳み込みは高負荷(ソースあたり2ms)だと理解しています

よくあるアンチパターン

アンチパターン:大量のサンプルベースの足音

どのような状態か:足音サンプル20個 × 6種類の表面 × 3段階の強さ = 360ファイル(180MB) なぜ問題か:メモリ使用量が肥大化し、20分プレイすると繰り返しが聞き取れるようになります 代わりにすべきこと:プロシージャル合成を使います。衝撃音と質感のレイヤーを組み合わせ、パラメーターから無限のバリエーションを生成します サンプルを使ってもよい場合:小規模なゲーム、または非常に特徴的なキャラクターサウンド

アンチパターン:すべてのサウンドにHRTFを適用する

どのような状態か:同時に鳴る50のソースすべてにHRTF畳み込みを適用します なぜ問題か:50 × 2ms = CPU時間100msとなり、フレーム予算を圧迫します 代わりにすべきこと:重要な3~5個のソースにはHRTFを、環境音のベッドにはアンビソニックスを、遠方または重要度の低い音にはシンプルなパンニングを使います

アンチパターン:オーディオセッションを無視する(モバイル)

どのような状態か:ユーザーが電話を受けるとアプリの音声が停止し、その後再開しません なぜ問題か:iOS/Androidでは明示的なセッション管理が必要です 代わりにすべきこと:AVAudioSession(iOS)またはAudioFocus(Android)を実装し、中断や出力先の変更を処理します

アンチパターン:サウンドのハードコード

どのような状態か:PlaySound("footstep_concrete_01.wav") なぜ問題か:バリエーションやパラメーター制御がなく、状況に合わせて調整できません 代わりにすべきこと:Switches/RTPCを使ったミドルウェアイベントを使用し、環境音にはプロシージャル生成を使います

アンチパターン:音量の大きいUIサウンド

どのような状態か:すべてのボタンクリック音が-3dBで、ゲームプレイのオーディオと同じ音量です なぜ問題か:UIサウンドは控えめで、聴き疲れを起こさないようにする必要があります。プラットフォームのガイドラインにも違反します 代わりにすべきこと:UIサウンドを-18~-24dBに設定し、短く高周波のトランジェントを使い、システム音量を尊重します

進化のタイムライン

2010年以前:固定音声
  • サンプル再生のみ
  • 基本的なステレオパンニング
  • リアルタイム処理は限定的
2010~2015年:ミドルウェアの時代
  • Wwise/FMODが標準となる
  • RTPCとStateのシステムが成熟
  • 基本的なHRTFサポート
2016~2020年:VRオーディオ革命
  • VRのヘッドトラッキングにアンビソニックスを採用
  • 空間オーディオAPI(Resonance、Steam Audio)
  • プロシージャルオーディオが普及
2021~2024年:AIとモバイル
  • ElevenLabs/AIによる効果音生成
  • AirPods向けApple Spatial Audio
  • AAAでプロシージャルオーディオが標準に
  • 触覚とオーディオのデザインが専門分野となる
2025年以降:現在のベストプラクティス
  • AIを活用したサウンドデザイン
  • ニューラルオーディオコーデック
  • リアルタイム音声変換
  • 写真からパーソナライズしたHRTFを生成

コアコンセプト

空間オーディオのアプローチ
アプローチCPU負荷品質用途
ステレオパンニング~0.01ms基本的遠くの音、多数の音源
HRTFコンボリューション~2ms/音源優れている近くの音、重要な3Dサウンド
アンビソニックス~1ms合計良好VR、多数の音源、ヘッドトラッキング
バイノーラル(簡易版)~0.1ms/音源まずまず低コスト/モバイル向けの空間オーディオ

HRTF:測定した耳のインパルス応答(512-1024タップ)を音声に畳み込みます。高さを含む、説得力のある3D定位を実現します。

アンビソニックス:音場を球面調和関数(1次の場合はW、X、Y、Z)としてエンコードします。回転に依存せず、多数の音源を効率的に処理できます。

// Key insight: encode once, rotate cheaply
AmbisonicSignal encode(mono_input, direction) {
    return {
        mono * 0.707f,      // W (omnidirectional)
        mono * direction.x, // X (front-back)
        mono * direction.y, // Y (left-right)
        mono * direction.z  // Z (up-down)
    };
}
プロシージャルな足音

サンプル音よりプロシージャル方式が優れている理由:

  • ✅ 無限のバリエーション(繰り返しがありません)
  • ✅ メモリ使用量が非常に小さい(約50KB、サンプル音の5~10MBに対して)
  • ✅ パラメーター駆動(速度 → 衝撃力)
  • ✅ 物理マテリアルに基づいて表面を認識

基本的な合成手順:

  1. 衝撃音のバースト(20msのノイズ+共鳴音)
  2. 表面の質感(砂利=粒状、草=フィルター処理したノイズ)
  3. 破片音(散在する微小な衝撃音)
  4. 表面に合わせたEQ(金属=明るい、草=こもった音)
// Surface resonance frequencies (expert knowledge)
float get_resonance(Surface s) {
    switch(s) {
        case Concrete: return 150.0f;  // Low, dull
        case Wood:     return 250.0f;  // Mid, warm
        case Metal:    return 500.0f;  // High, ringing
        case Gravel:   return 300.0f;  // Crunchy mid
        default:       return 200.0f;
    }
}
Wwise/FMODとの統合

主な抽象化要素:

  • イベント:音をトリガーします(足音、爆発音、環境音のループ)
  • RTPC:連続的なパラメーター(速度0~100、体力0~1)
  • スイッチ:離散的な選択肢(表面の種類、武器の種類)
  • ステート:全体的なコンテキスト(音楽の強度、水中)
// Material-aware footsteps via Wwise
void OnFootDown(FHitResult& hit) {
    FString surface = DetectSurface(hit.PhysMaterial);
    float speed = GetVelocity().Size();

    SetSwitch("Surface", surface, this);        // Concrete/Wood/Metal
    SetRTPCValue("Impact_Force", speed/600.0f); // 0-1 normalized
    PostEvent(FootstepEvent, this);
}
UI/UXサウンドデザイン

アプリのサウンドに関する原則:

  1. 控えめに - UIサウンドは-18~-24dBにします
  2. 短く - ほとんどの操作では50~200msにします
  3. 一貫性を保つ - アプリ全体で同じ音の系統/音色を使います
  4. アクセシブルに - フィードバックを音声だけに頼らないでください
  5. 触覚と組み合わせる - iOSの触覚フィードバックは音声の特性と一致させます

サウンドの種類:

カテゴリー例長さ特徴
タップ時のフィードバックボタン、トグル30~80ms柔らかく高周波のクリック音
成功保存、送信、完了150~300ms上昇する、ポジティブな音
エラー無効、失敗200~400ms下降する、短調の音
通知アラート、リマインダー300~800ms特徴的で注意を引く音
画面遷移画面変更、モーダル100~250msフーッという音、控えめな動き
iOS/Androidのオーディオセッション

iOS AVAudioSessionのカテゴリー:

  • .ambient - 他の音声とミックスし、着信音スイッチで消音されます
  • .playback - 他の音声を中断し、着信音スイッチの影響を受けません
  • .playAndRecord - 音声アプリ向け
  • .soloAmbient - デフォルト。他の音声を消音します

重要なハンドラー:

  • 割り込み(電話の着信)
  • ルート変更(ヘッドフォンの取り外し)
  • セカンダリーオーディオ(Siri)
// Proper iOS audio session setup
func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    try? session.setCategory(.playback, mode: .default, options: [.mixWithOthers])
    try? session.setActive(true)

    NotificationCenter.default.addObserver(
        self,
        selector: #selector(handleInterruption),
        name: AVAudioSession.interruptionNotification,
        object: nil
    )
}

パフォーマンス目標

処理CPU時間備考
HRTFコンボリューション(512タップ)~2ms/音源FFTオーバーラップ加算法を使用
アンビソニックスのエンコード~0.1ms/音源非常に効率的
アンビソニックスのデコード(バイノーラル)~1ms合計多数の音源に対応
プロシージャルな足音~1-2msサンプルあたり500KBに対して
風音の合成~0.5ms/フレームリアルタイムストリーミング
Wwiseイベントのポスト<0.1ms無視できる程度
iOSオーディオコールバック5-10msの予算48kHz/512サンプルの場合

予算の指針:オーディオにはフレーム時間の5~10%を割り当てます。

クイックリファレンス

空間オーディオの判断ツリー
  • ヘッドトラッキング対応のVRですか? → アンビソニックス
  • 重要な音源が少数ですか? → フルHRTF
  • 背景の音源が多数ですか? → シンプルなパンニング+距離による減衰
  • CPUが限られるモバイル環境ですか? → バイノーラル(シンプルなもの)またはパンニング
プロシージャルオーディオを使用する場面
  • 環境音(風、雨、火) → 常にプロシージャルにします
  • 足音 → 大規模なゲームではプロシージャル、小規模なゲームではサンプルを使用します
  • UIサウンド → 一度生成してキャッシュします
  • 衝撃音/爆発音 → ハイブリッド(プロシージャル+サンプルレイヤー)
プラットフォームのオーディオセッション
  • 音楽を含むゲーム:.ambient + mixWithOthers
  • 瞑想/集中アプリ:.playback(音楽を中断します)
  • ボイスチャット:.playAndRecord
  • 動画プレーヤー:.playback

連携先

  • voice-audio-engineer - 音声合成とTTS
  • vr-avatar-engineer - VRオーディオとアバターの連携
  • metal-shader-expert - GPUオーディオ処理
  • native-app-designer - アプリのUIサウンド連携

詳細な実装について:/references/implementations.md を参照してください

覚えておいてください:優れたオーディオは存在を感じさせても、意識させません。目立たせるのではなく、体験を支えることに注力してください。プロシージャルオーディオはメモリを節約し、繰り返しをなくします。常にCPUの予算とプラットフォームのオーディオセッション要件を尊重してください。

コメント