[前へ] [目次へ] [次へ]

Sound (ネイティブネームクラス)


このクラスはサウンドを扱うクラスです。
サウンドデバイスはゲームプロセス全体で共有されるリソースです。
シーンなどの制御に関わらず独立して動作しています。

サウンドの更新は最優先で行われます。
ゲームシステムスレッドが動作し続けても、スクリプトをデバッガで停止していてもサウンドの再生は続行されます。

このクラスはネームクラスです。
ネームクラスは全てがクラスメソッドとクラス共有変数で構成され、 using でグローバル名前空間に展開できます。
また、原則としてインスタンスを作成する必要はありません。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

名前概要
public設定メソッド SetBGMLoopMapBGMファイル名別のループ情報を設定します
public操作メソッド PlayBGMBGMの再生または停止を行います
public操作メソッド CrossFadeBGM指定したBGMへクロスフェードします
public操作メソッド PrepareBGM指定したBGMを再生待機します
public操作メソッド ActivateBGM再生待機したBGMをBGMチャンネルに割り当てます
public操作メソッド ResetBackgroundBGM再生待機したBGMの待機を解除します
public操作メソッド SetBGMVolumeBGMの音量を設定します
public取得メソッド GetBGMVolumeBGMの音量を取得します
public操作メソッド SetBGMSpeedBGMの再生速度を設定します
public取得メソッド GetBGMSpeedBGMの再生速度を取得します
public操作メソッド SetBGMPosBGMの再生位置を設定します
public操作メソッド CrossFadeBGMSeekBGMの再生位置をクロスフェードで設定します
public操作メソッド CrossFadeBGMSeekRelativeBGMの再生位置をクロスフェードで設定します
public取得メソッド GetBGMPosBGMの再生位置を取得します
public操作メソッド PauseBGMBGMを一時停止/再開します
public操作メソッド SetBGMFadeBGMのフェードを設定します
public操作メソッド ResetBGMFadeBGMのフェードを解除します
public設定メソッド SetBGMJumpPointBGMのジャンプポイントを設定します
public取得メソッド GetBGMJumpPointBGMのジャンプポイントを取得します
public取得メソッド GetBGMLoopInfoBGMのループ情報を取得します
public取得メソッド GetBGMLengthBGMの長さを取得します
public取得メソッド GetBGMNameBGMのファイル名を取得します
public比較・判定メソッド IsBGMPlaying現在BGMを再生しているかを取得します
public操作メソッド PlayMIDIMIDIの再生または停止を行います
public操作メソッド SetMIDIVolumeMIDIの再生音量を設定します
public取得メソッド GetMIDIVolumeMIDIの再生音量を取得します
public操作メソッド SetMIDISpeedMIDIの再生速度を設定します
public取得メソッド GetMIDISpeedMIDIの再生速度を取得します
public取得メソッド GetMIDITickMIDIの再生位置(Tick)を取得します
public取得メソッド GetMIDIPosMIDIの再生位置(ミリ秒)を取得します
public取得メソッド GetMIDINameMIDIのファイル名を取得します
public比較・判定メソッド IsMIDIPlaying現在MIDIを再生しているかを取得します
public操作メソッド LoadSE効果音をメモリ上に読み込みます
public操作メソッド PlaySE効果音を再生します
public操作メソッド PlayChainSE効果音を連続再生します
public操作メソッド PrepareSE指定した効果音を再生待機します
public操作メソッド UnLockPrepareSE再生待機中の効果音の待機を解除します
public操作メソッド StopSE指定した効果音を停止します
public操作メソッド StopAllSE全ての効果音を停止します
public比較・判定メソッド IsSEPlaying現在指定した効果音を再生しているかを取得します
public取得メソッド GetSELength指定した効果音の長さを取得します
public設定メソッド SetIntensivelySELock効果音の多重再生ロックを設定します

●クラスメンバメソッド

   このクラスはクラスメンバメソッドを持っていません。

●クラス共有変数

名前概要
readable LOOPファイル全体のループ再生
readable SAMPLEサンプル単位指定のループ再生
readable MILSECミリ秒単位指定のループ再生
readable PAUSE一時停止状態でBGMを開きます
readable MAINメインBGMチャンネル
readable SUBサブBGMチャンネル
readable SYNC再生位置を同期してクロスフェードする

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_SOUND
クラス名: FGESNC_Sound



Sound::SetBGMLoopMap

public static Integer SetBGMLoopMap( INativeString loopmap_data)

   BGMファイル名ごとのループ情報を文字列から設定します。
   このメソッドで設定したループ情報は PlayBGM および PrepareBGM メソッドで
   ファイル全体ループ設定を使用した時に使用されます。
   
   このメソッドは呼び出すたびにループ情報を完全に上書きします。
   
   このメソッドが使用するループ情報は以下の書式で、1行単位で解釈されます。

      [ファイル名]=[指定方法][ループ始点位置],[ループ終点位置]
項目概要
ファイル名設定するBGMファイル名。BGMフォルダ基準でサブフォルダのパスは含むことができます。
指定方法サンプル単位の場合は S 、ミリ秒単位の場合は  M を半角で指定します。
ループ始点位置ループジャンプ先の位置。
ループ終点位置ループジャンプする位置。
   
   例: test.ogg を100000サンプル〜2000000サンプルの範囲でループさせる場合
      test.ogg=S100000,2000000
   
戻り値:読み込まれたループ情報の数を返します。

INativeString loopmap_data :設定するループ情報文字列。

先頭へ


Sound::PlayBGM

public static Bool PlayBGM( INativeInteger ch, INativeString? filename=NULL,
             INativeFloat? volume=NULL, INativeFloat? speed=NULL, INativeInteger? option=NULL,
             INativeInteger? pos=NULL, INativeInteger? looptrigger=NULL, INativeInteger? loopdst=NULL)


   指定したBGMチャンネルにBGMを読み込み、再生を開始します。
   BGMチャンネルはそれぞれ独立しており、同時に別々のBGMを再生することができます。
   ファイル名に空参照または空文字列を指定すると対象のBGMチャンネルのBGMを停止します。
   このメソッドでは Wav/MP3/Ogg Vorbis のファイルを読み込むことができますが、
   MP3ファイルのデコードはOSの機能を使用するため、PCによっては失敗する可能性があります。
   
   このメソッドは対象のBGMチャンネルで再生中のファイルと同じファイルを指定した場合、
   ファイルの再生位置を維持したまま、音量、再生速度、ループ設定を上書きします。
   
   このメソッドは対象のBGMチャンネルで再生中のファイルと異なるファイルを指定した場合、
   対象のBGMチャンネルのフェード設定を解除します。
   
   読み込んだBGMファイルからループ情報が検出された場合、ループを設定しなくてもループ再生します。
   ファイルからループ情報が検出されていて、さらにループ設定した場合、両方の指定が多重して適用されます。
   
   「ファイル全体をループする」オプションが指定された場合、
   SetBGMLoopMap メソッドで設定したループ情報を確認し、存在する場合は自動的に適用されます。
   
   音量を上げる場合、音割れを起こす場合があります。原則として100%以下を指定してください。
   再生速度は1〜1000%の範囲が指定できます。
   
戻り値:処理に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeString? filename=NULL :再生するBGMファイル名。BGMフォルダ基準でサブフォルダのパスは含むことができます。
         空参照または空文字列を指定すると再生を停止します。
INativeFloat? volume=NULL :再生音量を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeFloat? speed=NULL :再生速度を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeInteger? option=NULL :再生オプションを指定します。以下の各グループのOR結合。
ループ指定グループ:
識別子意味
0終端まで再生したら停止します(再生終了後は終端で一時停止している扱いです)
Sound::LOOPファイル全体をループ再生します(デフォルト)
Sound::SAMPLEサンプル単位でループ範囲を指定します
Sound::MILSECミリ秒単位でループ範囲を指定します
再生オプション:
識別子意味
0指定したBGMの再生を即座に開始します(デフォルト)
Sound::PAUSE再生中と異なるBGMを指定した場合、一時停止状態にします。
指定したBGMが再生中のBGMと同じ場合は再生を続行します。
INativeInteger? pos=NULL :再生開始位置をミリ秒単位で指定します。
         空参照を指定すると0(最初から)として扱います。
         指定したBGMが再生中のBGMと同じ場合は無視されます。
INativeInteger? looptrigger=NULL :ループのジャンプする位置(ループ終点)を指定します。
         指定値の解釈はオプションに依存し、ループ範囲を指定しないオプションではこの引数は無視されます。
INativeInteger? loopdst=NULL :ループのジャンプ先の位置(ループ始点)を指定します。
         指定値の解釈はオプションに依存し、ループ範囲を指定しないオプションではこの引数は無視されます。

先頭へ


Sound::CrossFadeBGM

public static Bool CrossFadeBGM( INativeString filename, INativeInteger fade_milsec,
             INativeFloat? volume=NULL, INativeFloat? speed=NULL, INativeInteger? option=NULL,
             INativeInteger? pos=NULL, INativeInteger? looptrigger=NULL, INativeInteger? loopdst=NULL)


   メインBGMチャンネルとバックグラウンドBGMチャンネルを使用してBGMをクロスフェードします。
   バックグラウンドBGMチャンネルは非同期処理専用のBGMチャンネルで、
   クロスフェードの完了までバックグラウンドBGMチャンネルを使用する処理は新たに開始できません。
   クロスフェード処理中に新たにバックグラウンドBGMチャンネルを使用する可能性がある場合、
   使用前に ResetBackgroundBGM メソッドでクロスフェードを中止してください。
   
   このメソッドによるロードはバックグラウンドロードスレッド(ネイティブスレッド)で非同期に行われるため、
   ロード処理の完了を待たずにこのメソッドから処理が戻ります。
   
   バックグラウンドロードスレッドが動作している間、
   本線での画像および効果音のロード処理速度は低下します。
   
   バックグラウンドBGMチャンネルで開始した非同期ロードは完了後直ちにクロスフェード処理に移行します。

   このメソッドはバックグラウンドBGMチャンネルが使用中の場合、失敗します。
   
   BGMチャンネルはそれぞれ独立しており、同時に別々のBGMを再生することができます。
   このメソッドでは Wav/MP3/Ogg Vorbis のファイルを読み込むことができますが、
   MP3ファイルのデコードはOSの機能を使用するため、PCによっては失敗する可能性があります。
   
   読み込んだBGMファイルからループ情報が検出された場合、ループを設定しなくてもループ再生します。
   ファイルからループ情報が検出されていて、さらにループ設定した場合、両方の指定が多重して適用されます。
   
   「ファイル全体をループする」オプションが指定された場合、
   SetBGMLoopMap メソッドで設定したループ情報を確認し、存在する場合は自動的に適用されます。
   
   音量を上げる場合、音割れを起こす場合があります。原則として100%以下を指定してください。
   再生速度は1〜1000%の範囲が指定できます。
   
戻り値:非同期ロードの予約に成功すると真を返します。

INativeString filename :非同期ロードするBGMファイル名。BGMフォルダ基準でサブフォルダのパスは含むことができます。
INativeInteger fade_milsec :クロスフェードに掛ける時間をミリ秒単位で指定します(100〜60000)。
INativeFloat? volume=NULL :再生音量を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeFloat? speed=NULL :再生速度を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeInteger? option=NULL :再生オプションを指定します。以下の各グループのOR結合。
ループ指定グループ:
識別子意味
0終端まで再生したら停止します(再生終了後は終端で一時停止している扱いです)
Sound::LOOPファイル全体をループ再生します(デフォルト)
Sound::SAMPLEサンプル単位でループ範囲を指定します
Sound::MILSECミリ秒単位でループ範囲を指定します
INativeInteger? pos=NULL :再生開始位置をミリ秒単位で指定します。
         空参照を指定すると0(最初から)として扱います。
         Sound::SYNC を指定した場合は現在の再生位置を引き継ぎます。
INativeInteger? looptrigger=NULL :ループのジャンプする位置(ループ終点)を指定します。
         指定値の解釈はオプションに依存し、ループ範囲を指定しないオプションではこの引数は無視されます。
INativeInteger? loopdst=NULL :ループのジャンプ先の位置(ループ始点)を指定します。
         指定値の解釈はオプションに依存し、ループ範囲を指定しないオプションではこの引数は無視されます。

先頭へ


Sound::PrepareBGM

public static Bool PrepareBGM( INativeString filename,
             INativeFloat? volume=NULL, INativeFloat? speed=NULL, INativeInteger? option=NULL,
             INativeInteger? pos=NULL, INativeInteger? looptrigger=NULL, INativeInteger? loopdst=NULL)


   バックグラウンドBGMチャンネルにBGMを読み込み、再生を待機します。
   バックグラウンドBGMチャンネルは非同期処理専用のBGMチャンネルで、
   再生を行うためには ActivateBGM メソッドで通常のBGMチャンネルに割り当てる必要があります。
   
   このメソッドによるロードはバックグラウンドロードスレッド(ネイティブスレッド)で非同期に行われるため、
   ロード処理の完了を待たずにこのメソッドから処理が戻ります。
   
   バックグラウンドロードスレッドが動作している間、
   本線での画像および効果音のロード処理速度は低下します。
   
   バックグラウンドBGMチャンネルで開始した非同期ロードは完了後も待機状態になり、
   非同期ロードを完了させるためには ActivateBGM メソッドを呼び出さなければいけません。

   このメソッドはバックグラウンドBGMチャンネルが使用中の場合、失敗します。
   
   BGMチャンネルはそれぞれ独立しており、同時に別々のBGMを再生することができます。
   このメソッドでは Wav/MP3/Ogg Vorbis のファイルを読み込むことができますが、
   MP3ファイルのデコードはOSの機能を使用するため、PCによっては失敗する可能性があります。
   
   読み込んだBGMファイルからループ情報が検出された場合、ループを設定しなくてもループ再生します。
   ファイルからループ情報が検出されていて、さらにループ設定した場合、両方の指定が多重して適用されます。
   
   「ファイル全体をループする」オプションが指定された場合、
   SetBGMLoopMap メソッドで設定したループ情報を確認し、存在する場合は自動的に適用されます。
   
   音量を上げる場合、音割れを起こす場合があります。原則として100%以下を指定してください。
   再生速度は1〜1000%の範囲が指定できます。
   
戻り値:非同期ロードの予約に成功すると真を返します。

INativeString filename :非同期ロードするBGMファイル名。BGMフォルダ基準でサブフォルダのパスは含むことができます。
INativeFloat? volume=NULL :再生音量を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeFloat? speed=NULL :再生速度を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeInteger? option=NULL :再生オプションを指定します。以下の各グループのOR結合。
ループ指定グループ:
識別子意味
0終端まで再生したら停止します(再生終了後は終端で一時停止している扱いです)
Sound::LOOPファイル全体をループ再生します(デフォルト)
Sound::SAMPLEサンプル単位でループ範囲を指定します
Sound::MILSECミリ秒単位でループ範囲を指定します
再生オプション:
識別子意味
0通常BGMチャンネルに割り当て後、BGMの再生を即座に開始します(デフォルト)
Sound::PAUSE通常BGMチャンネルに割り当て後も、一時停止状態にします。
INativeInteger? pos=NULL :再生開始位置をミリ秒単位で指定します。
         空参照を指定すると0(最初から)として扱います。
INativeInteger? looptrigger=NULL :ループのジャンプする位置(ループ終点)を指定します。
         指定値の解釈はオプションに依存し、ループ範囲を指定しないオプションではこの引数は無視されます。
INativeInteger? loopdst=NULL :ループのジャンプ先の位置(ループ始点)を指定します。
         指定値の解釈はオプションに依存し、ループ範囲を指定しないオプションではこの引数は無視されます。

先頭へ


Sound::ActivateBGM

public static Bool ActivateBGM( INativeInteger ch)

   バックグラウンドBGMチャンネルを通常BGMチャンネルに割り当てます。
   対象のBGMチャンネルが再生中であった場合、自動的に停止されます。
   
   このメソッドは PrepareBGM メソッドによる非同期ロード処理を完了させます。
   このメソッドは非同期ロードが行われていなかった場合、失敗します。
   このメソッドは非同期ロードが完了していなかった場合、ロード完了まで待機した後処理を行います。
   
   非同期ロード中にエラーが発生した場合、このメソッドの呼び出し中に報告されます。
   
戻り値:処理に成功すると真を返します。

INativeInteger ch :割り当てるBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::ResetBackgroundBGM

public static Bool ResetBackgroundBGM()

   バックグラウンドBGMチャンネルで実行中の非同期ロードをリセットします。
   
   このメソッドは PrepareBGM メソッドによる非同期ロード処理を中止します。
   また CrossFadeBGM メソッドによるクロスフェード処理を実行中だった場合、クロスフェード処理を中止します。
   このメソッドは非同期ロードが行われていなかった場合、失敗します。
   このメソッドは非同期ロードが完了していなかった場合、ロード完了まで待機した後処理を行います。
   
戻り値:処理に成功すると真を返します。

先頭へ


Sound::SetBGMVolume

public static Bool SetBGMVolume( INativeInteger ch, INativeFloat? volume=NULL)

   指定したBGMチャンネルの音量を設定します。
   音量を上げる場合、音割れを起こす場合があります。原則として100%以下を指定してください。
   
   この音量設定は PlayBGM メソッドを呼び出すと上書きされます。
   
戻り値:設定に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeFloat? volume=NULL :再生音量を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。

先頭へ


Sound::GetBGMVolume

public static Float GetBGMVolume( INativeInteger ch)

   指定したBGMチャンネルの音量を取得します。
   
戻り値:指定したBGMチャンネルの音量(%単位)。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::SetBGMSpeed

public static Bool SetBGMSpeed( INativeInteger ch, INativeFloat? speed=NULL)

   指定したBGMチャンネルの再生速度を設定します。
   再生速度は1〜1000%の範囲が指定できます。
   
   この速度設定は PlayBGM メソッドを呼び出すと上書きされます。
   
戻り値:設定に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeFloat? speed=NULL :再生速度を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。

先頭へ


Sound::GetBGMSpeed

public static Float GetBGMSpeed( INativeInteger ch)

   指定したBGMチャンネルの再生速度を取得します。
   
戻り値:指定したBGMチャンネルの再生速度(%単位)。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::SetBGMPos

public static Bool SetBGMPos( INativeInteger ch, INativeInteger milsec)

   指定したBGMチャンネルの再生位置を設定します。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeInteger milsec :ジャンプする再生位置をミリ秒単位で指定します。

先頭へ


Sound::CrossFadeBGMSeek

public static Bool CrossFadeBGMSeek( INativeInteger ch, INativeInteger sample, INativeInteger fade_milsec)

   指定したBGMチャンネルの再生位置を設定します。
   このメソッドは現在位置の音と移動先の音を指定時間でクロスフェードさせます。
   
   このシーク処理は一部非同期処理されます。
   処理が戻ってから実際にクロスフェードが始まるまで110ミリ秒程度掛かります。
   フェードが完了する前に同BGMチャンネルを追加操作すると意図しない結果になる場合があります。
   
   このメソッドは位置の指定がサンプル単位になっています。
   ミリ秒単位ではないことに注意してください。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeInteger sample :ジャンプする再生位置をサンプル単位で指定します。
INativeInteger fade_milsec :クロスフェード時間をミリ秒単位で指定します。
      クロスフェード時間は1〜2500ミリ秒の範囲のみ指定できます。

先頭へ


Sound::CrossFadeBGMSeekRelative

public static Bool CrossFadeBGMSeekRelative( INativeInteger ch, INativeInteger sample, INativeInteger fade_milsec)

   指定したBGMチャンネルの再生位置を現在位置との相対値で設定します。
   このメソッドは現在位置の音と移動先の音を指定時間でクロスフェードさせます。
   
   このシーク処理は一部非同期処理されます。
   処理が戻ってから実際にクロスフェードが始まるまで110ミリ秒程度掛かります。
   フェードが完了する前に同BGMチャンネルを追加操作すると意図しない結果になる場合があります。
   
   このメソッドは位置の指定がサンプル単位になっています。
   ミリ秒単位ではないことに注意してください。
   
   このメソッドは指定された移動先が無効である場合、有効値への補正を試みます。
   補正に失敗した場合、該当の再生チャンネルは一時停止されます。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeInteger sample :ジャンプする再生位置をサンプル単位で指定します。
      この指定は現在位置からの相対値で、負値を指定した場合は先頭側に向かって移動します。
INativeInteger fade_milsec :クロスフェード時間をミリ秒単位で指定します。
      クロスフェード時間は1〜2500ミリ秒の範囲のみ指定できます。

先頭へ


Sound::GetBGMPos

public static Integer GetBGMPos( INativeInteger ch)

   指定したBGMチャンネルの再生位置をミリ秒単位で取得します。
   
戻り値:指定したBGMチャンネルのミリ秒単位の再生位置。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::PauseBGM

public static Bool PauseBGM( INativeInteger ch)

   指定したBGMチャンネルが再生中の場合、一時停止します。
   指定したBGMチャンネルが一時停止中の場合、再生を再開します。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::SetBGMFade

public static Bool SetBGMFade( INativeInteger ch,
                INativeFloat? start_vol, INativeFloat dst_vol, INativeInteger fade_milsec)


   指定したBGMチャンネルのフェードを設定します。
   音量は0〜100%の範囲でのみ指定できます。
   このメソッドは start_vol>dst_vol にするとフェードアウト、 start_vol<dst_vol にするとフェードインします。
   フェード処理の完了後も解除するまで dst_vol の設定音量は維持され、他の音量設定とは独立して管理されます。
   
   既にフェードが設定されている場合、設定は上書きされます。
   フェード開始音量が現在のフェード音量と異なる場合、即座に音量が変更されます。
   急な音量変化が発生しないように注意してください。
   
   フェード処理時間は100ms〜60000msの範囲で指定できます。
   
   フェード設定は PlayBGM メソッドで異なるBGMを指定すると解除されます。
   
戻り値:設定に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeFloat? start_vol :フェード開始音量を%単位で指定します。
         空参照を指定した場合は現在のフェード音量を指定したものとして扱います。
INativeFloat dst_vol :フェード完了時の音量を%単位で指定します。
INativeInteger fade_milsec :フェードに掛ける時間をミリ秒単位で指定します。

先頭へ


Sound::ResetBGMFade

public static Bool ResetBGMFade( INativeInteger ch)

   指定したBGMチャンネルのフェードを解除します。
   フェードによって音量が下げられている場合、解除すると即座に元の音量に戻ります。
   急な音量変化が発生しないように注意してください。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::SetBGMJumpPoint

public static Bool SetBGMJumpPoint( INativeInteger ch, INativeString name,
             INativeInteger trigger, INativeInteger dst)


   指定したBGMチャンネルのジャンプポイントを設定します。
   このメソッドは同名のジャンプポイントが既に存在した場合、設定を上書きします。
   
   BGMのジャンプ処理はバッファリングされているため、
   再生位置に近い位置のジャンプポイントを操作した場合は変更が反映されない場合があります。
   確実に反映させるためには実再生時間で5秒分以上離れた状態で操作してください。
   
   このメソッドで設定したジャンプポイントはBGMファイルを開きなおすとリセットされます。
   
   ジャンプポイントは主にループ処理に使用されています。
   BGMファイルを開く時、ファイルから検出されたループポイントは CMMP_FILELOOP 、
   引数やループマップから指定したループポイントは FGLIS_LOOP_POINT の名前で登録されます。
   
   このメソッドは位置の指定がサンプル単位になっています。
   ミリ秒単位ではないことに注意してください。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeString name :設定するジャンプポイント名で指定します。
INativeInteger trigger :ジャンプする位置(通常、ループ終点)を指定します。
INativeInteger dst :ジャンプ先の位置(通常、ループ始点)を指定します。

先頭へ


Sound::RemoveBGMJumpPoint

public static Bool RemoveBGMJumpPoint( INativeInteger ch, INativeString name)

   指定したBGMチャンネルのジャンプポイントを削除します。
   このメソッドで操作したジャンプポイントはBGMファイルを開きなおすとリセットされます。
   
   BGMのジャンプ処理はバッファリングされているため、
   再生位置に近い位置のジャンプポイントを操作した場合は変更が反映されない場合があります。
   確実に反映させるためには実再生時間で5秒分以上離れた状態で操作してください。
   
   ジャンプポイントは主にループ処理に使用されています。
   BGMファイルを開く時、ファイルから検出されたループポイントは CMMP_FILELOOP 、
   引数やループマップから指定したループポイントは FGLIS_LOOP_POINT の名前で登録されます。
   
戻り値:操作に成功すると真を返します。

INativeInteger ch :操作するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
INativeString name :削除するジャンプポイント名で指定します。

先頭へ


Sound::GetBGMLoopInfo

public static Bool GetBGMLoopInfo( INativeInteger ch,editable INativeInteger? trigger,editable INativeInteger? dst)

   指定したBGMチャンネルの次に発動するループジャンプ情報を取得します。
   このメソッドは興味がない項目の引数を空参照にすることができます。

戻り値:ループジャンプ情報の取得に成功すると真を返します。
      ループジャンプ情報が存在しない場合、偽を返します。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル
editable INativeInteger? trigger :[出力]ループジャンプする位置(ミリ秒単位)を出力するオブジェクト。
         空参照を指定した場合は無視します。
editable INativeInteger? dst :[出力]ループジャンプ先の位置(ミリ秒単位)を出力するオブジェクト。
         空参照を指定した場合は無視します。

先頭へ


Sound::GetBGMLength

public static Integer GetBGMLength( INativeInteger ch)

   指定したBGMチャンネルで開いているファイルの長さを取得します。
   
戻り値:指定したBGMチャンネルで開いているファイルの長さ(ミリ秒単位)。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::GetBGMName

public static String GetBGMName( INativeInteger ch)

   指定したBGMチャンネルで開いているファイル名を取得します。
   取得したファイル名はBGMフォルダ基準で、拡張子を含みます。
   
戻り値:指定したBGMチャンネルで開いているファイル名。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::IsBGMPlaying

public static Bool IsBGMPlaying( INativeInteger ch)

   指定したBGMチャンネルで現在BGMを再生しているかを取得します。
   
戻り値:指定したBGMチャンネルが再生中であれば真を返します。

INativeInteger ch :取得するBGMチャンネルを指定します。以下のいずれか。
識別子チャンネル
Sound::MAINメインBGMチャンネル
Sound::SUBサブBGMチャンネル

先頭へ


Sound::PlayMIDI

public static Bool PlayMIDI( INativeString? filename=NULL,
             INativeInteger? volume=NULL, INativeInteger? speed=NULL)


   MIDIレーンにMIDIファイルを読み込み、再生を開始します。
   
   MIDIレーンはSMF Type0/1形式のMIDIファイルを基本ノートのみ再生できます。
   特定の音源を必要とするMIDIファイルは正常に再生できない可能性があります。
   また、コントロールチェンジ111をループマーカとして使用し、ループ再生します。

   音量、再生速度は1%単位で、100が100%になります。
   音量は0〜100%の範囲、再生速度は10〜1000%の範囲が指定できます。
   
戻り値:処理に成功すると真を返します。

INativeString? filename=NULL :再生するMIDIファイル名。BGMフォルダ基準でサブフォルダのパスは含むことができます。
         空参照または空文字列を指定すると再生を停止します。
INativeInteger? volume=NULL :再生音量を1%単位で指定します。
         空参照を指定すると100(100%)として扱います。
INativeInteger? speed=NULL :再生速度を1%単位で指定します。
         空参照を指定すると100(100%)として扱います。

先頭へ


Sound::SetMIDIVolume

public static Bool SetMIDIVolume( Integer vol)

   MIDIチャンネルの音量を設定します。
   音量は0〜100%の範囲が指定できます。
   
   この音量設定は PlayMIDI メソッドを呼び出すと上書きされます。
   
戻り値:設定に成功すると真を返します。

Integer vol :再生音量を%単位で指定します。

先頭へ


Sound::GetMIDIVolume

public static Integer GetMIDIVolume()

   MIDIチャンネルの音量を取得します。
   
戻り値:MIDIチャンネルの音量(%単位)。

先頭へ


Sound::SetMIDISpeed

public static Bool SetMIDISpeed( Integer speed)

   MIDIチャンネルの再生速度を設定します。
   再生速度は1〜1000%の範囲が指定できます。
   
   この音量設定は PlayMIDI メソッドを呼び出すと上書きされます。
   
戻り値:設定に成功すると真を返します。

Integer speed :再生速度を%単位で指定します。

先頭へ


Sound::GetMIDISpeed

public static Integer GetMIDISpeed()

   MIDIチャンネルの再生速度を取得します。
   
戻り値:MIDIチャンネルの再生速度(%単位)。

先頭へ


Sound::GetMIDITick

public static Integer GetMIDITick()

   MIDIレーンで開いているファイルの再生位置(Tick)を取得します。
   MIDIレーンを再生している限り、Tickの値は無制限に増え続けます。
   
戻り値:MIDIレーンで開いているファイルの再生位置(Tick)。

先頭へ


Sound::GetMIDIPos

public static Integer GetMIDIPos()

   MIDIレーンで開いているファイルの再生位置(ミリ秒)を取得します。
   MIDIレーンを再生している限り、再生位置の値は無制限に増え続けます。
   
戻り値:MIDIレーンで開いているファイルの再生位置(ミリ秒単位)。

先頭へ


Sound::GetMIDIName

public static String GetMIDIName()

   MIDIレーンで開いているファイル名を取得します。
   取得したファイル名はBGMフォルダ基準で、拡張子を含みます。
   
戻り値:MIDIレーンで開いているファイル名。

先頭へ


Sound::IsMIDIPlaying

public static Bool IsMIDIPlaying()

   現在MIDIを再生しているかを取得します。
   
   注意:MIDIレーンは非同期動作であるため、
      再生要求を出してからこのメソッドで再生中状態が更新されるまで若干のラグがあります。
   
戻り値:現在MIDIレーンが再生中であれば真を返します。

先頭へ


Sound::LoadSE

public static Bool LoadSE( INativeString filename, INativeInteger? release_time=NULL)

   効果音ファイルをメモリ上に読み込みます。
   既に読み込み済みのファイルに対して呼び出した場合、解放までの時間を上書きします。
   このメソッドで指定した効果音は少なくとも一度再生するまでメモリ上から解放されません。
   
   このメソッドは即座に再生する必要のある効果音を事前にロードするために使用します。
   このメソッドによるロードはバックグラウンドロードスレッド(ネイティブスレッド)で非同期に行われるため、
   ロード処理の完了を待たずにこのメソッドから処理が戻ります。
   
   バックグラウンドロードスレッドが動作している間、
   本線での画像および効果音のロード処理速度は低下します。
   実際に使うまでの時間が2フレームに満たない場合や本線でロード処理を行う必要がある場合は、
   このメソッドを使用しない方が実際の処理速度が速くなる可能性があります。
   
   ロードした効果音データは圧縮されている場合はデコードした状態でメモリ上に保持されます。
   効果音データを一度再生した後、同じ効果音データが一定時間使用されなかった場合、
   メモリ上のデータは解放され、次の再生時に自動的にリロードされます。
   
   このメソッドでは Wav/MP3/Ogg Vorbis のファイルを読み込むことができますが、
   MP3ファイルのデコードはOSの機能を使用するため、PCによっては失敗する可能性があります。
   
   ミキシング処理の都合上、全ての効果音ファイルは44100Hzが推奨されます。
   ファイルが44100Hzでなくても概ね再生可能ですが、簡易的な周波数変換が行われるため、音質が低下します。
   事前に変換済みのファイルを用いた方がロード時間の短縮や音質の面で有利です。
   また、ミキシング時に音割れの原因になるため、効果音ファイルの音量はある程度小さめにすべきです。
   
戻り値:ロードの予約に成功すると真を返します。

INativeString filename :ロードする効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。
INativeInteger? release_time=NULL :効果音が使用されなかった時、解放するまでの時間(約10ms単位)。
         空参照を指定した場合は現在値を維持します。現在値が設定されていない場合、18000(約3分)として扱います。

先頭へ


Sound::PlaySE

public static Bool PlaySE( INativeString filename, INativeFloat? volume=NULL,
             INativeFloat? speed=NULL, INativeInteger? pan=NULL, INativeFloat? delay=NULL)


   効果音を再生します。
   メモリ上にロードされていない効果音が指定された場合、自動的にロードしてから再生します。
   
   ファイル名の先頭に # を指定した場合、「排他再生フラグ」として扱われ、 # を除いた部分をファイル名として使用します。
   排他再生を行う場合、同じ効果音が再生中だった場合に再生を中止してから改めて再生します。
   排他再生しない場合、同じ効果音が再生中でも多重して再生されます。
   
   このメソッドでは Wav/MP3/Ogg Vorbis のファイルを再生することができますが、
   MP3ファイルのデコードはOSの機能を使用するため、PCによっては失敗する可能性があります。
   
   ミキシング処理の都合上、全ての効果音ファイルは44100Hzが推奨されます。
   ファイルが44100Hzでなくても概ね再生可能ですが、簡易的な周波数変換が行われるため、音質が低下します。
   事前に変換済みのファイルを用いた方がロード時間の短縮や音質の面で有利です。
   また、ミキシング時に音割れの原因になるため、効果音ファイルの音量はある程度小さめにすべきです。
   
戻り値:処理に成功すると真を返します。

INativeString filename :再生する効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。
         ファイル名の先頭に # がある場合、 # を除いた部分をファイル名として使用し排他再生します。
INativeFloat? volume=NULL :再生音量を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeFloat? speed=NULL :再生速度を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeInteger? pan=NULL :パンを-64〜64で指定します。中央は0です。
         空参照を指定すると0として扱います。
INativeFloat? delay=NULL :再生開始までの遅延時間をミリ秒単位で指定します。
         空参照を指定すると0.0(即座)として扱います。

先頭へ


Sound::PlayChainSE

public static Bool PlayChainSE( PStringArray filelist, INativeFloat? volume=NULL,
             INativeFloat? speed=NULL, INativeInteger? pan=NULL, INativeFloat? delay=NULL)


   効果音を連続再生します。
   メモリ上にロードされていない効果音が指定された場合、自動的にロードしてから再生します。
   指定した効果音は即座に全て再生待機され、直前の効果音の終了後に隙間なく次の効果音が再生開始されるように処理されます。
   
   ファイル名の先頭に # を指定した場合、「排他再生フラグ」として扱われ、 # を除いた部分をファイル名として使用します。
   排他再生を行う場合、同じ効果音が再生中だった場合に再生を中止してから改めて再生します。
   排他再生しない場合、同じ効果音が再生中でも多重して再生されます。
   
   このメソッドでは Wav/MP3/Ogg Vorbis のファイルを再生することができますが、
   MP3ファイルのデコードはOSの機能を使用するため、PCによっては失敗する可能性があります。
   
   ミキシング処理の都合上、全ての効果音ファイルは44100Hzが推奨されます。
   ファイルが44100Hzでなくても概ね再生可能ですが、簡易的な周波数変換が行われるため、音質が低下します。
   事前に変換済みのファイルを用いた方がロード時間の短縮や音質の面で有利です。
   また、ミキシング時に音割れの原因になるため、効果音ファイルの音量はある程度小さめにすべきです。
   
戻り値:処理に成功すると真を返します。

PStringArray filelist :連続再生する効果音ファイル名のリスト。SEフォルダ基準でサブフォルダのパスは含むことができます。
         ファイル名の先頭に # がある場合、 # を除いた部分をファイル名として使用し排他再生します。
INativeFloat? volume=NULL :再生音量を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeFloat? speed=NULL :再生速度を%単位で指定します。
         空参照を指定すると100.0(100%)として扱います。
INativeInteger? pan=NULL :パンを-64〜64で指定します。中央は0です。
         空参照を指定すると0として扱います。
INativeFloat? delay=NULL :再生開始までの遅延時間をミリ秒単位で指定します。
         空参照を指定すると0.0(即座)として扱います。

先頭へ


Sound::PrepareSE

public static Bool PrepareSE( INativeString filename)

   指定した効果音を即座に再生できるように準備します。
   このメソッドはしばらく再生されず、メモリ上から解放されている効果音データをリロードさせます。
   このメソッドで準備した効果音は少なくとも一度再生するまでメモリ上から解放されません。
   
   このメソッドはリロードが必要な場合、本線でロードを行います。
   バックグラウンドでリロードさせたい場合は LoadSE を使用してください。
   
戻り値:処理に成功すると真を返します。

INativeString filename :準備する効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。

先頭へ


Sound::UnLockPrepareSE

public static Bool UnLockPrepareSE( INativeString? filename=NULL)

   再生待機中の効果音を再生せずに待機解除します。
   
戻り値:処理に成功すると真を返します。

INativeString? filename=NULL :待機解除する効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。
         空参照を指定した場合は全ての効果音の待機を解除します。

先頭へ


Sound::StopSE

public static Bool StopSE( INativeString filename)

   再生中の指定した効果音を停止します。
   
戻り値:処理に成功すると真を返します。

INativeString filename :停止する効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。

先頭へ


Sound::StopAllSE

public static void StopAllSE()

   再生中の全ての効果音を停止します。
   
先頭へ


Sound::IsSEPlaying

public static Integer IsSEPlaying( INativeString filename)

   指定した効果音の再生状態を取得します。
   このメソッドは指定した効果音が多重再生されている場合、その多重度を返します。
   指定した効果音が現在再生されていない場合、0を返します。
   
戻り値:指定した効果音を再生している多重度を返します。

INativeString filename :取得する効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。

先頭へ


Sound::GetSELength

public static Integer GetSELength( INativeString filename)

   指定した効果音の長さを取得します。
   
戻り値:指定した効果音の長さ(ミリ秒単位)。

INativeString filename :取得する効果音ファイル名。SEフォルダ基準でサブフォルダのパスは含むことができます。

先頭へ


Sound::SetIntensivelySELock

public static Bool SetIntensivelySELock( INativeBool new_mode)

   効果音の多重再生ロックを設定します。
   効果音の多重再生をロックすると、同じ効果音ファイルを同じフレームで多重再生することができなくなります。
   再生中の効果音ファイルであっても異なるフレームで開始する場合は多重再生することができます。
   
   また、このメソッドを呼び出すと現在のフレームでの効果音ファイルの再生済みフラグがクリアされます。
   この設定はデフォルトでは偽に設定されています。
   
戻り値:設定に成功すると真を返します。

INativeBool new_mode :設定するロックモード。真を指定すると多重再生をロックします。

先頭へ


Sound::LOOP

readable readonly Integer LOOP

   BGM全体をループ再生することを示す定数。

先頭へ


Sound::SAMPLE

readable readonly Integer SAMPLE

   サンプル単位で指定した範囲をループ再生することを示す定数。

先頭へ


Sound::MILSEC

readable readonly Integer MILSEC

   ミリ秒単位で指定した範囲をループ再生することを示す定数。

先頭へ


Sound::PAUSE

readable readonly Integer PAUSE

   一時停止状態でファイルを開くことを示す定数。

先頭へ


Sound::MAIN

readable readonly Integer MAIN

   メインBGMチャンネルを示す定数。

先頭へ


Sound::SUB

readable readonly Integer SUB

   サブBGMチャンネルを示す定数。

先頭へ


Sound::SYNC

readable readonly Integer SYNC

   再生位置を同期してクロスフェードすることを示す定数。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2021/09/16