このページでは、WebGL のオーディオ機能に関する情報のみを提供しています。Unity プロジェクトでオーディオを使用する方法については、オーディオの概要 を参照してください。
Unity WebGL のオーディオ機能は限られており、基本的な機能しかサポートしていません。これは、Unity が通常、プラットフォームのオーディオ管理に FMOD を使用しているためです。ただし、FMOD はスレッドに依存しており、WebGL はこれをサポートしていません。このため、Unity では、内部の Web Audio API に基づいた実装を採用し、ブラウザーでオーディオの再生やミキシングを処理できるようにしています。
Unity WebGL は以下の API クラスをサポートしています。
| クラス | WebGL サポート状況 |
|---|---|
| AudioSouce | WebGL はいくつかの API をサポートしています。具体的なサポート内容については、AudioSource を参照してください。 |
| AudioListener | すべての API に対応しています。 |
| AudioClip | WebGL はいくつかの API をサポートしています。具体的なサポート内容については、AudioClip を参照してください。 |
| SystemInfo.supportsAudio | ブラウザーは WebGL のオーディオサポートを提供しています。このため、 SystemInfo.supportsAudio は常に true です。 |
| Microphone | 不対応。 |
AudioSource API は、以下のような基本的な位置に関するオーディオ再生をサポートしています。
Unity WebGL は、以下の AudioSource API をサポートします。
| Properties | 説明 |
|---|---|
| Clip | 次に再生するオーディオクリップを決定します。 |
| dopplerLevel | AudioSource のドップラースケールを設定します。 |
| ignoreListenerPause | AudioSource が、AudioListener.pause を無視して、オーディオの再生を継続できるようにします。 |
| ignoreListenerVolume | エンドユーザーの AudioSource の音量を無視します。 |
| isPlaying |
AudioSource.clip が再生されている場合に true を返します。 |
| loop | アプリケーションで AudioSource.clip をループさせることができます。 |
| maxDistance |
AudioSource.clip の減衰が止まる、または聞き取れなくなる最大距離を設定します。 |
| minDistance | AudioSource.clip の音量がこれ以上上がらなくなる最小距離を設定します。最小距離を超えると、音が減衰し始めます。 |
| mute | AudioSource をミュートします。 |
| pitch |
AudioSource.clip のピッチを設定します。WebGL は正のピッチ値のみをサポートしています。 |
| playOnAwake | Awakeで AudioSource を再生します。 |
| rolloffMode | 距離による AudioSource の減衰量を設定します。 |
| time | 再生位置を秒単位で設定します。 |
| timeSamples | 再生位置をパルス符号変調 (PCM) サンプルで設定します。 |
| velocityUpdateMode | AudioSource の更新を固定更新ループで行うか、動的更新ループで行うかを設定します。 |
| volume | オーディオソースの音量を設定します (0.0 - 1.0)。 |
| メソッド | 説明 |
|---|---|
| Pause |
AudioSource.clip を一時停止します。 |
| Play |
AudioSource.clip を再生します。 |
| PlayDelayed |
AudioSource.clip を、秒単位で指定した遅延時間を付けて再生します。 |
| PlayOneShot | AudioClip を再生し、AudioSource の音量を volumeScale でスケールします。 |
| PlayScheduled | 指定した時間にオーディオソースを再生します。 |
| SetScheduledEndTime | スケジュールされた AudioSource.clip が終了する時間を設定します。 |
| SetScheduledStartTime | スケジュールされた AudioSource.clip の開始時間を設定します。 |
| Stop |
AudioSource.clip の再生を停止します。 |
| UnPause | 一時停止した AudioSource.clip を解除します。 |
| PlayClipAtPoint |
AudioSource.clip をワールド空間の指定された位置で再生します。 |
Unity WebGL は、広くブラウザでサポートされている AAC 形式の AudioClip ファイルをインポートします。Unity WebGL は、以下の AudioClip API をサポートします。
| Properties | 説明 |
|---|---|
| length | オーディオの長さ (秒単位)。 |
| loadState | AudioClip に関連付けられたオーディオデータの現在の読み込み状況を返します。 |
| samples | サンプルの AudioClip の長さ。 |
| loadType | クリップのロードタイプです。AudioClip のロードタイプは、Inspector で設定できます。 |
| メソッド | 説明 | 追加情報 |
|---|---|---|
| AudioClip.Create | 指定した名前と長さの AudioClip を作成します。 | Unity WebGL は、AudioClip.Create を部分的にサポートしています。ブラウザーは動的ストリーミングをサポートしていません。そのため、AudioClip.Create を使用するには、Stream を false に設定してください。 |
| AudioClip.SetData | AudioSource.Clip のサンプルデータを設定します。 | Unity WebGL は、 AudioClip.SetData を部分的にサポートしています。このメソッドは、AudioClip のコンテンツを置き換えるためにのみ使用できます。WebGL では、Unity は offsetSample パラメーターを無視します。 |
Unity WebGL は圧縮オーディオに対応していません。
セキュリティ上の理由から、ブラウザーは、エンドユーザーがマウスのクリック、タッチイベント、キーの押下などでアプリケーションのウェブページを操作するまで、オーディオの再生を許可しません。ローディングスクリーンを使用して、エンドユーザーがアプリケーションと相互作用できるようにし、主要コンテンツが始まる前にオーディオ再生を開始します。