threejs-audio について
three.js のオーディオ機能を実装する開発者やコーディングエージェント向けのスキルです。リスナーの配置、空間再生、距離減衰、アナライザーの利用、ブラウザーでの音声開始に必要な操作を説明します。
主な機能
- 01AudioListener をカメラに追加
- 02空間オーディオの設定
- 03距離減衰パラメーター
- 04AudioAnalyser の利用
- 05AudioContext のユーザー操作要件
活用シーン
- 01three.js シーンへの空間オーディオ追加
- 02距離に応じた音量減衰の設定
- 03アナライザーデータを使った音声可視化
- 04ブラウザーで停止状態の AudioContext に対処
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ full-stack-skills/ threejs-skills --skill threejs-audioインストール後、Claude Code で/threejs-audioを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/workflow-positional-audio.mdreferences/official-sections.md詳細
このスキルを使用する場面
ユーザーが次の内容に言及した場合は、必ずこのスキルを使用してください。
Camera上のAudioListener、AudioとPositionalAudioの違い、距離モデル、refDistance/maxDistance/rolloff- 可視化バー/スペクトラム用の
AudioAnalyser - ブラウザーの自動再生ポリシーによって音声の再生開始がブロックされる場合
重要:音声とローダーの使い分け
| 手順 | スキル |
|---|---|
| mp3/ogg バッファーをデコードする | threejs-loaders(AudioLoader) |
| 空間再生 API | threejs-audio |
トリガーとなる語句の例:
- 「PositionalAudio」「AudioListener」「AudioAnalyser」「panner」
- 「空間音声」「音量減衰」「スペクトラム」
このスキルの使用方法
- リスナーをアタッチして、視点に合わせて頭部に関連する音声が追従するよう、カメラオブジェクトに設定します。
- コンテキストを作成し、ブラウザーでユーザー操作を利用してロックを解除するパターンに対応させます。
- PositionalAudio:ドキュメントに従って
refDistance、maxDistance、rolloffFactor、distanceModelを設定します。 - バッファーを読み込むには
AudioLoader(threejs-loaders)を使用し、その後positionalAudio.setBufferを呼び出します。 - アナライザー:例に従って
listener.context.createAnalyser()の経路をオーディオグラフに接続し、パフォーマンスに注意します。 - 更新:移動する音源に手動で追従させる場合を除き、通常、オーディオノードをフレームごとに更新する必要はありません。
examples/workflow-positional-audio.md を参照してください。
ドキュメントマップ(公式)
拡張リスト:references/official-sections.md。
対象範囲
- 対象範囲内: コアの Audio クラス、空間化パラメーター、アナライザーの使用概要。
- 対象範囲外: FMOD/Wwise のようなオーサリングツール。
よくある落とし穴とベストプラクティス
- 自動再生の制限を解除して AudioContext を再開するには、ユーザー操作が必要です。
- ポジショナル音源が多すぎると CPU に負荷がかかるため、音源のプール化またはオーディオの LOD を使用してください。
- ワールド単位が距離モデルの想定と一致していることを確認してください。
ドキュメントとバージョン
オーディオクラスは three.js ドキュメントの Audio にあります。バッファーのデコードには AudioLoader を使用します。threejs-loaders を参照してください。ブラウザーの Web Audio ポリシーは外部仕様ですが、AudioContext が一時停止されている場合は必ず言及してください。
エージェント回答チェックリスト
このスキルに基づいて回答する際は、次の点を優先してください。
- 該当する場合は
AudioListener、PositionalAudio、またはAudioAnalyserへのリンクを提示します。 - サウンドバッファーのファイル読み込みは threejs-loaders(
AudioLoader)に委ねます。 - コンテキストを再開するために、自動再生やユーザー操作が必要であることを説明します。
- 距離減衰をワールド単位および threejs-objects での配置と関連付けます。
- DAW レベルのミキシングを約束せず、three.js のオーディオの範囲内にとどめます。
参考資料
- https://threejs.org/docs/#Audio
- https://threejs.org/docs/AudioListener.html
- https://threejs.org/docs/PositionalAudio.html
キーワード
英語: audio, positional audio, listener, analyser, spatial sound, web audio, three.js
中国語: 音声、空間音声、AudioListener、PositionalAudio、Web Audio、three.js
コメント
Markdown 対応