表示テーマ
AudioSource Component
音声Assetを再生します。ループ・音量・距離減衰を制御できます。
設定する手順
- Audio Clipを設定し、必要ならPlay On Awakeを有効にします。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| クリップ | Clip | AudioClip? | 読取・変更 | {} | 再生するAssetまたはClip名です。Asset欄では対応する種類を指定します。 |
| 有効 | Enabled | bool | 読取・変更 | true | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| 開始時再生 | PlayOnAwake | bool | 読取・変更 | true | 有効化・生成時に自動再生します。 |
| ループ | Loop | bool | 読取・変更 | false | 末尾に到達したら先頭へ戻って再生します。 |
| 音量 | Volume | float | 読取・変更 | 1.0f | 再生音量の倍率です。0で無音になります。 |
| 空間ブレンド | SpatialBlend | float | 読取・変更 | 0.0f | 0は2D音声、1は3D音声です。中間値では両方を混ぜます。 |
| 最小距離 | MinDistance | float | 読取・変更 | 1.0f | 距離減衰を始める距離です。 |
| 最大距離 | MaxDistance | float | 読取・変更 | 500.0f | 距離減衰の基準になる最大距離です。 |
| 減衰 | RolloffMode | AudioRolloffMode | 読取・変更 | AudioRolloffMode::Logarithmic | 距離に対して音量を落とす方式です。 |
| ピッチ | Pitch | float | 読取・変更 | 1.0f | 音の再生速度と音程の倍率です。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| クリップ・有効・開始時再生 | Editor / C# | Clip / Enabled / PlayOnAwake | 音声Assetを指定します。PlayOnAwakeは自動再生するかのbool設定で、即座に音を鳴らす関数ではありません。今鳴らすときはPlayやPlayOneShotを使います。 |
| ループ・音量・ピッチ | Editor / C# | Loop / Volume / Pitch | Loopは繰り返し、Volumeは音量倍率、Pitchは再生速度・高さの倍率です。同じ効果音を重ねたいときはPlayOneShotを使います。 |
| 空間ブレンド・距離・減衰 | Editor / C# | SpatialBlend / MinDistance / MaxDistance / RolloffMode | 空間ブレンド0は2D、1は3D側の再生です。3DではAudioListenerとの距離による減衰を使います。最小・最大距離と減衰方式を組み合わせ、遠距離で聞こえる範囲を調整します。 |
| Inspectorの試聴 | Editorのみ | — | 編集用の再生確認です。Play中のAudioSourceの再生所有とは区別します。ゲームコードからの再生はPlay・Pause・UnPause・Stopを使います。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はAudioSourceです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
実用例:プレイヤーが範囲へ入ったときに音を鳴らす
AudioSourceへ音声を設定し、CollisionのShape.IsTriggerを有効にします。Playerタグを持つ相手との接触で一度再生します。
cs
using NEMEngine;
public sealed class TriggerSound : MonoBehaviour {
private AudioSource? source;
void Start() {
// 自動再生を止め、侵入時だけ音を鳴らす
source = GetComponent<AudioSource>();
if (source == null) return;
source.PlayOnAwake = false;
source.Loop = false;
source.Stop();
}
void OnCollisionEnter(Collision collision) {
// Playerが範囲へ入ったときだけ効果音を重ねて再生
if (source == null || collision.gameObject == null || !collision.gameObject.CompareTag("Player")) return;
AudioClip? clip = source.Clip;
if (clip != null) source.PlayOneShot(clip);
}
}選択値(Enum)
| 型・各値の詳説 | 使える値 |
|---|---|
| AudioRolloffMode | Linear / Logarithmic |
AudioSource
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public AudioClip? Clip | プロパティ(読取・変更) | 再生するAssetまたはClip名です。Asset欄では対応する種類を指定します。 |
public bool Enabled | プロパティ(読取・変更) | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
public static AudioSource FromEntity(GameObject gameObject) | 関数 | 既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。 |
public bool IsPlaying | プロパティ(読取専用) | 再生中か(pause 中は false) |
public bool Loop | プロパティ(読取・変更) | 末尾に到達したら先頭へ戻って再生します。 |
public float MaxDistance | プロパティ(読取・変更) | 距離減衰の基準になる最大距離です。 |
public float MinDistance | プロパティ(読取・変更) | 距離減衰を始める距離です。 |
public void Pause() | 関数 | 再生位置を保持して一時停止 |
public float Pitch | プロパティ(読取・変更) | 音の再生速度と音程の倍率です。 |
public void Play() | 関数 | Clipを主再生として先頭から再生 |
public bool PlayOnAwake | プロパティ(読取・変更) | 有効化・生成時に自動再生します。 |
public void PlayOneShot(AudioClip clip, float volumeScale = 1) | 関数 | 指定Clipを重ねて一度だけ再生 |
public AudioRolloffMode RolloffMode | プロパティ(読取・変更) | 距離に対して音量を落とす方式です。 |
public float SpatialBlend | プロパティ(読取・変更) | 0は2D音声、1は3D音声です。中間値では両方を混ぜます。 |
public void Stop() | 関数 | 停止(voice 破棄) |
public void UnPause() | 関数 | 一時停止中の再生を再開 |
public float Volume | プロパティ(読取・変更) | 再生音量の倍率です。0で無音になります。 |
public static int componentTypeID | プロパティ(読取専用) | 組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。 |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
3D再生にはAudioListenerが必要です。Editor Pauseと音声側のPauseを区別します。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。