Class: TonSound
BGMとSE(効果音)の再生を管理します。
※BGM名、SE名などのリソースキーは大文字小文字を区別しません。
Properties
現在ロードされているSE(効果音)の推定メモリ使用量(バイト)を取得します。BGMはストリーミング再生のため含まれません。
Methods
効果音(SE)を読み込みます。
path: コンテンツパス(Content/ からの相対パス、拡張子なし)name: 登録名(必須)contentId: コンテンツグループID。指定したIDごとにリソースがグループ化されます。"Default"グループは自動解放されません。(既定値 "Default")baseVolume: ベース音量(0.0~1.0)。再生時の音量に乗算されます。(既定値 1.0f)
BGMを読み込みます。
path: コンテンツパス(Content/ からの相対パス、拡張子なし)name: 登録名(必須)contentId: コンテンツグループID。指定したIDごとにリソースがグループ化されます。"Default"グループは自動解放されません。(既定値 "Default")baseVolume: ベース音量(0.0~1.0)。再生時の音量に乗算されます。(既定値 1.0f)
BGMを再生します。既に再生中のBGMは停止し、新しいBGMへ切り替わります。
直前に StopBGM(..., true) で停止されていたBGMを指定した場合、自動的に続きから再生します。
bgmName:LoadBGMで登録したBGM名(name)fadeSeconds: フェードインにかける時間(秒)volume: 再生音量(0.0~1.0)。範囲外の値は自動的にクリップされます。
現在再生中のBGMを停止します。
fadeSeconds: フェードアウトにかける時間(秒)bPause: trueの場合、現在の曲情報を一時保存します(PlayBGMでのResume用)。
効果音を再生します。
seName:LoadSoundで登録したSE名(name)volume: 再生音量(0.0~1.0)。範囲外の値は自動的にクリップされます。
指定したコンテンツグループのリソースをすべて解放します。
※"Default"グループは解放できません。
contentId: アンロード対象のコンテンツグループID
すべてのサウンドリソース(BGM/SE)を停止し、メモリから解放します。
全体の音量を設定します。
volume: マスター音量(0.0~1.0)。範囲外の値は自動的にクリップされます。
現在のマスター音量を取得します。
BGM全体の音量係数を設定/取得します(0.0~1.0)。
SE全体の音量係数を設定/取得します(0.0~1.0)。
SE(効果音)の手動ミュート状態を設定/取得します。
BGMの手動ミュート状態を設定/取得します。
ウィンドウ非アクティブ時の自動ミュート設定を変更/取得します。
ウィンドウ状態をサウンドへ反映します。通常はTonシステムから自動で呼ばれます。
現在BGMを再生中かどうかを取得します。
現在再生中のBGMの再生位置を取得します。再生中でない場合はZeroを返します。
現在再生中のBGMの長さ(Duration)を取得します。再生中でない場合はZeroを返します。
Volume Rules
最終音量は、以下の係数を乗算して決まります(最終的に 0.0~1.0 にクランプされます)。
- BGM最終音量 =
PlayBGMのvolume×Master Volume×BGM Volume×LoadBGMのbaseVolume - SE最終音量 =
PlaySEのvolume×Master Volume×SE Volume×LoadSoundのbaseVolume
補足:
Master VolumeはBGM/SEの両方に共通で効きます。BGM VolumeはBGMだけに、SE VolumeはSEだけに効きます。- ミュート状態(手動ミュート・バックグラウンド時ミュート)が有効な場合、対象系統の最終音量は 0 になります。
Sample Code
// In Initialize()
// Preload BGM into "Stage1" group
Ton.Sound.LoadBGM("sample_assets/sound/bgm/tutorial", "tutorial", "Stage1");
// Preload SE
Ton.Sound.LoadSound("sample_assets/sound/se/coin", "coin", "Stage1");
// In Update() (or Event Handler)
if (Ton.Input.IsJustPressed("A"))
{
// Play Sound Effect
Ton.Sound.PlaySE("coin");
}
if (Ton.Input.IsJustPressed("B"))
{
// Play BGM (Using registered name "tutorial")
// 1.0f volume, 2.0f seconds fade-in
Ton.Sound.PlayBGM("tutorial", 2.0f, 1.0f);
}
// Volume Control
if (Ton.Input.IsJustPressed("Up"))
{
// Adjust Master Volume (0.0 to 1.0)
Ton.Sound.SetMasterVolume(0.8f);
}
// In Scene Change or Cleanup
// Unload all resources in "Stage1" group
Ton.Sound.Unload("Stage1");
// Stop BGM with 1 second fade-out
Ton.Sound.StopBGM(1.0f);