CriAtomExAcb クラス

ACB、AWBデータ [詳解]

CriAtomExAcb の継承関係図

公開メンバ関数

override void Dispose ()
 ACBファイルのアンロード [詳解]
 
bool Exists (string cueName)
 キューの存在確認(キュー名指定) [詳解]
 
bool Exists (int cueId)
 キューの存在確認(キューID指定) [詳解]
 
bool GetCueInfo (string cueName, out CriAtomEx.CueInfo info)
 キュー情報の取得(キュー名指定) [詳解]
 
bool GetCueInfo (int cueId, out CriAtomEx.CueInfo info)
 キュー情報の取得(キューID指定) [詳解]
 
bool GetCueInfoByIndex (int index, out CriAtomEx.CueInfo info)
 キュー情報の取得(キューインデックス指定) [詳解]
 
CriAtomEx.CueInfo[] GetCueInfoList ()
 
bool GetWaveFormInfo (string cueName, out CriAtomEx.WaveformInfo info)
 音声波形情報の取得(キュー名指定) [詳解]
 
bool GetWaveFormInfo (int cueId, out CriAtomEx.WaveformInfo info)
 音声波形情報の取得(キューID指定) [詳解]
 
int GetNumCuePlaying (string name)
 キューリミットが設定されているキューの発音数の取得(キュー名指定) [詳解]
 
int GetNumCuePlaying (int id)
 キューリミットが設定されているキューの発音数の取得(キューID指定) [詳解]
 
int GetBlockIndex (string cueName, string blockName)
 ブロックインデックスの取得(キュー名指定) [詳解]
 
int GetBlockIndex (int cueId, string blockName)
 ブロックインデックスの取得(キューID指定) [詳解]
 
int GetNumUsableAisacControls (string cueName)
 キューでコントロール可能なAISAC Controlの個数の取得(キュー名指定) [詳解]
 
int GetNumUsableAisacControls (int cueId)
 キューでコントロール可能なAISAC Controlの個数の取得(キューID指定) [詳解]
 
bool GetUsableAisacControl (string cueName, int index, out CriAtomEx.AisacControlInfo info)
 キューでコントロール可能なAISAC Controlの取得(キュー名指定) [詳解]
 
bool GetUsableAisacControl (int cueId, int index, out CriAtomEx.AisacControlInfo info)
 キューでコントロール可能なAISAC Controlの取得(キューID指定) [詳解]
 
CriAtomEx.AisacControlInfo[] GetUsableAisacControlList (string cueName)
 
CriAtomEx.AisacControlInfo[] GetUsableAisacControlList (int cueId)
 
void ResetCueTypeState (string cueName)
 キュータイプステートのリセット(キュー名指定) [詳解]
 
void ResetCueTypeState (int cueId)
 キュータイプステートのリセット(キューID指定) [詳解]
 
void AttachAwbFile (CriFsBinder awb_binder, string awb_path, string awb_name)
 ストリーム用AWBファイルのアタッチ [詳解]
 
void DetachAwbFile (string awb_name)
 ストリーム用AWBファイルのデタッチ [詳解]
 
bool IsReadyToRelease ()
 ACBハンドルの即時解放状態の取得 [詳解]
 
float GetLoadProgress ()
 ロード進捗状況の取得 [詳解]
 
void Decrypt (ulong key, ulong nonce)
 復号キーの設定 [詳解]
 

静的公開メンバ関数

static CriAtomExAcb LoadAcbFile (CriFsBinder binder, string acbPath, string awbPath)
 ACBファイルのロード [詳解]
 
static CriAtomExAcb LoadAcbData (byte[] acbData, CriFsBinder awbBinder, string awbPath)
 ACBデータのロード [詳解]
 

プロパティ

IntPtr nativeHandle [get]
 
bool isAvailable [get]
 

詳解

ACB、AWBデータ

説明:
キュー情報を管理するクラスです。
ACB、AWBファイルのロード、アンロードやキュー情報等を取得します。

関数詳解

static CriAtomExAcb CriAtomExAcb.LoadAcbFile ( CriFsBinder  binder,
string  acbPath,
string  awbPath 
)
inlinestatic

ACBファイルのロード

引数
binderバインダオブジェクト
acbPathACBファイルのパス
awbPathAWBファイルのパス
戻り値
CriAtomExAcbオブジェクト
説明:
ACBファイルをロードし、キュー再生に必要な情報を取り込みます。

第2引数の acbPath にはオンメモリ再生用のACBファイルのパスを、 第3引数の awbPath にはストリーム再生用のAWBファイルのパスを、それぞれ指定します。
(オンメモリ再生のみのACBデータをロードする場合、 awbPath にセットした値は無視されます。)

ACBファイルとAWBファイルを一つのCPKファイルにパッキングしている場合、 第1引数( binder )にCPKファイルをバインドしたCriFsBinderオブジェクトを指定する必要があります。

ACBファイルをロードすると、ACBデータにアクセスするためのCriAtomExAcbオブジェクト ( CriAtomExAcb )が返されます。
AtomExプレーヤに対し、 CriAtomExPlayer::SetCue 関数でACBハンドル、 および再生するキュー名を指定することで、 ACBファイル内のキューを再生することが可能です。

リードエラー等によりACBファイルのロードに失敗した場合、 本関数は戻り値として null を返します。
注意
本関数を実行する前に、ライブラリを初期化しておく必要があります。

ACBハンドルは内部的にバインダ( CriFsBinder )を確保します。
ACBファイルをロードする場合、 ACBファイル数分のバインダが確保できる設定でライブラリを初期化する必要があります。

本関数は完了復帰型の関数です。
ACBファイルのロードにかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
ACBファイルのロードは、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
参照
criAtomExAcb_CalculateWorkSizeForLoadAcbFile, CriAtomExAcbHn, criAtomExPlayer_SetCueId

参照先 CriWare.CheckBinaryVersionCompatibility().

static CriAtomExAcb CriAtomExAcb.LoadAcbData ( byte[]  acbData,
CriFsBinder  awbBinder,
string  awbPath 
)
inlinestatic

ACBデータのロード

引数
acbDataACBデータのバイト配列
awbBinderAWB用バインダオブジェクト
awbPathAWBファイルのパス
戻り値
CriAtomExAcbオブジェクト
説明:
メモリ上に配置されたACBデータをロードし、キュー再生に必要な情報を取り込みます。

第2引数の awbPath にはストリーム再生用のAWBファイルのパスを、それぞれ指定します。
(オンメモリ再生のみのACBデータをロードする場合、 awbPath にセットした値は無視されます。)

AWBファイルをCPKファイルにパッキングしている場合、 第2引数( binder )にCPKファイルをバインドしたCriFsBinderオブジェクトを指定する必要があります。

ACBデータをロードすると、ACBデータにアクセスするためのCriAtomExAcbオブジェクト ( CriAtomExAcb )が返されます。
AtomExプレーヤに対し、 CriAtomExPlayer::SetCue 関数でACBハンドル、 および再生するキュー名を指定することで、 ACBファイル内のキューを再生することが可能です。

リードエラー等によりACBファイルのロードに失敗した場合、 本関数は戻り値として null を返します。
注意
本関数を実行する前に、ライブラリを初期化しておく必要があります。

ACBハンドルは内部的にバインダ( CriFsBinder )を確保します。
ACBファイルをロードする場合、 ACBファイル数分のバインダが確保できる設定でライブラリを初期化する必要があります。

本関数は完了復帰型の関数です。
ACBファイルのロードにかかる時間は、プラットフォームによって異なります。
ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。
ACBファイルのロードは、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
参照
criAtomExAcb_CalculateWorkSizeForLoadAcbFile, CriAtomExAcbHn, criAtomExPlayer_SetCueId

参照先 CriWare.CheckBinaryVersionCompatibility().

override void CriAtomExAcb.Dispose ( )
inline

ACBファイルのアンロード

説明:
ロード済みのACBファイルをアンロードします。
備考:
本関数を実行すると、 アンロードするACBファイルを参照しているキューは全て停止されます。
(本関数実行後に、ACBハンドルの作成に使用したワーク領域や、 ACBデータが配置されていた領域が参照されることはありません。)
注意
本関数を実行すると、破棄しようとしているACBデータを参照している Atomプレーヤが存在しないか、ライブラリ内で検索処理が行われます。
そのため、本関数実行中に他スレッドでAtomプレーヤの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。
参照
criAtomExAcb_LoadAcbData, criAtomExAcb_LoadAcbFile
bool CriAtomExAcb.Exists ( string  cueName)
inline

キューの存在確認(キュー名指定)

引数
cueNameキュー名
戻り値
キューが存在するかどうか(存在する:true、存在しない:false)
説明:
指定した名前のキューが存在するかどうかを取得します。
存在した場合にはtrueを返します。
bool CriAtomExAcb.Exists ( int  cueId)
inline

キューの存在確認(キューID指定)

引数
cueIdキューID
戻り値
キューが存在するかどうか(存在する:true、存在しない:false)
説明:
指定したIDのキューが存在するかどうかを取得します。
存在した場合にはtrueを返します。
bool CriAtomExAcb.GetCueInfo ( string  cueName,
out CriAtomEx.CueInfo  info 
)
inline

キュー情報の取得(キュー名指定)

引数
cueNameキュー名
infoキュー情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キュー名を指定して、キュー情報を取得します。
指定した名前のキューが存在しない場合、falseが返ります。
参照
criAtomExAcb_GetCueInfoById, criAtomExAcb_GetCueInfoByIndex
bool CriAtomExAcb.GetCueInfo ( int  cueId,
out CriAtomEx.CueInfo  info 
)
inline

キュー情報の取得(キューID指定)

引数
cueIdキューID
infoキュー情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キューIDを指定して、キュー情報を取得します。
指定したIDのキューが存在しない場合、falseが返ります。
参照
criAtomExAcb_GetCueInfoById, criAtomExAcb_GetCueInfoByIndex
bool CriAtomExAcb.GetCueInfoByIndex ( int  index,
out CriAtomEx.CueInfo  info 
)
inline

キュー情報の取得(キューインデックス指定)

引数
indexキューインデックス
infoキュー情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キューインデックスを指定して、キュー情報を取得します。
指定したインデックスのキューが存在しない場合、falseが返ります。
参照
criAtomExAcb_GetCueInfoById, criAtomExAcb_GetCueInfoByIndex
bool CriAtomExAcb.GetWaveFormInfo ( string  cueName,
out CriAtomEx.WaveformInfo  info 
)
inline

音声波形情報の取得(キュー名指定)

引数
cueNameキュー名
info音声波形情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キュー名を指定して、そのキューで再生される音声波形の情報を取得します。
そのキューで再生される音声波形が複数ある場合、 初めのトラックで初めに再生される音声波形の情報が取得されます。 指定した名前のキューが存在しない場合、falseが返ります。
bool CriAtomExAcb.GetWaveFormInfo ( int  cueId,
out CriAtomEx.WaveformInfo  info 
)
inline

音声波形情報の取得(キューID指定)

引数
cueIdキューID
info音声波形情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キューIDを指定して、そのキューで再生される音声波形の情報を取得します。
そのキューで再生される音声波形が複数ある場合、 初めのトラックで初めに再生される音声波形の情報が取得されます。 指定したIDのキューが存在しない場合、falseが返ります。
int CriAtomExAcb.GetNumCuePlaying ( string  name)
inline

キューリミットが設定されているキューの発音数の取得(キュー名指定)

引数
nameキュー名
戻り値
発音数(キューリミットが設定されていないキューを指定した場合-1が帰ります)
説明:
キュー名を指定して、キューリミットが設定されているキューの発音数を取得します。
指定した名前のキューが存在しない場合や、キューリミットが設定されていないキューを指定した場合は-1が返ります。
int CriAtomExAcb.GetNumCuePlaying ( int  id)
inline

キューリミットが設定されているキューの発音数の取得(キューID指定)

引数
idキューID
戻り値
発音数(キューリミットが設定されていないキューを指定した場合-1が帰ります)
説明:
キューIDを指定して、キューリミットが設定されているキューの発音数を取得します。
指定したIDのキューが存在しない場合や、キューリミットが設定されていないキューを指定した場合は-1が返ります。
int CriAtomExAcb.GetBlockIndex ( string  cueName,
string  blockName 
)
inline

ブロックインデックスの取得(キュー名指定)

引数
cueNameキュー名
blockNameブロック名
戻り値
ブロックインデックス
説明:
キュー名とブロック名からブロックインデックスを取得します。
指定した名前のキューが存在しない場合やブロック名が存在しない場合は、 0xFFFFFFFF が返ります。
int CriAtomExAcb.GetBlockIndex ( int  cueId,
string  blockName 
)
inline

ブロックインデックスの取得(キューID指定)

引数
cueIdキューID
blockNameブロック名
戻り値
ブロックインデックス
説明:
キューIDとブロック名からブロックインデックスを取得します。
指定したIDのキューが存在しない場合やブロック名が存在しない場合は、 0xFFFFFFFF が返ります。
int CriAtomExAcb.GetNumUsableAisacControls ( string  cueName)
inline

キューでコントロール可能なAISAC Controlの個数の取得(キュー名指定)

引数
cueNameキュー名
戻り値
AISAC Controlの個数
説明:
キュー名を指定して、キューでコントロール可能なAISAC Controlの個数を取得します。
指定した名前のキューが存在しない場合は、-1が返ります。
参照
CriAtomExAcb::GetUsableAisacControl
int CriAtomExAcb.GetNumUsableAisacControls ( int  cueId)
inline

キューでコントロール可能なAISAC Controlの個数の取得(キューID指定)

引数
cueIdキューID
戻り値
AISAC Controlの個数
説明:
キューIDを指定して、キューでコントロール可能なAISAC Controlの個数を取得します。
指定したIDのキューが存在しない場合は、-1が返ります。
参照
CriAtomExAcb::GetUsableAisacControl
bool CriAtomExAcb.GetUsableAisacControl ( string  cueName,
int  index,
out CriAtomEx.AisacControlInfo  info 
)
inline

キューでコントロール可能なAISAC Controlの取得(キュー名指定)

引数
cueNameキュー名
indexAISAC Controlインデックス
infoAISAC Control情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キュー名とAISAC Controlインデックスを指定して、AISAC Control情報を取得します。
指定した名前のキューが存在しない場合は、falseが返ります。
参照
CriAtomExAcb::GetNumUsableAisacControls
bool CriAtomExAcb.GetUsableAisacControl ( int  cueId,
int  index,
out CriAtomEx.AisacControlInfo  info 
)
inline

キューでコントロール可能なAISAC Controlの取得(キューID指定)

引数
cueIdキューID
indexAISAC Controlインデックス
infoAISAC Control情報
戻り値
取得に成功したかどうか(成功:true、失敗:false)
説明:
キューIDとAISAC Controlインデックスを指定して、AISAC Control情報を取得します。
指定したIDのキューが存在しない場合は、falseが返ります。
参照
CriAtomExAcb::GetNumUsableAisacControls
void CriAtomExAcb.ResetCueTypeState ( string  cueName)
inline

キュータイプステートのリセット(キュー名指定)

引数
cueNameキュー名
説明:
キュー名を指定して、キュータイプステートをリセットします。
注意
リセット対象は指定したキューのステートのみです。キューに含まれるサブシンセやキューリンク先の ステートはリセットされません。
備考:
キュータイプステートは、ポリフォニックタイプキュー以外のキュー再生時の前回再生トラックを ステートとして管理する仕組みです。
本関数は、ステート管理領域をリセットしACBロード直後の状態に戻します。
void CriAtomExAcb.ResetCueTypeState ( int  cueId)
inline

キュータイプステートのリセット(キューID指定)

引数
cueIdキュー名
説明:
キュー名を指定して、キュータイプステートをリセットします。
注意
リセット対象は指定したキューのステートのみです。キューに含まれるサブシンセやキューリンク先の ステートはリセットされません。
備考:
キュータイプステートは、ポリフォニックタイプキュー以外のキュー再生時の前回再生トラックを ステートとして管理する仕組みです。
本関数は、ステート管理領域をリセットしACBロード直後の状態に戻します。
void CriAtomExAcb.AttachAwbFile ( CriFsBinder  awb_binder,
string  awb_path,
string  awb_name 
)
inline

ストリーム用AWBファイルのアタッチ

引数
awb_binderAWBファイルを含むバインダのハンドル
awb_pathAWBファイルのパス
awb_nameAWB名
説明:
ACBハンドルに対してストリーム用のAWBファイルをアタッチします。 第1引数の awb_binder 、および第2引数の awb_path には、ストリーム再生用 のAWBファイルを指定します。
第3引数の awb_name はAWBをアタッチするスロットを指定するために使用します。 このため、AtomCraftが出力したAWB名(ファイル名から拡張子を取り除いた部分)を変更している場合 はオリジナルのAWB名を指定してください。
AWBファイルのアタッチに失敗した場合、エラーコールバックが発生します。
失敗の理由については、エラーコールバックのメッセージで確認可能です。
備考:
AWBファイルをアタッチするとライブラリ内部的にバインダ( CriFsBinderHn )とローダ( CriFsLoaderHn ) を確保します。
追加でAWBファイルをアタッチする場合、追加数分のバインダとローダが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。
void CriAtomExAcb.DetachAwbFile ( string  awb_name)
inline

ストリーム用AWBファイルのデタッチ

引数
awb_nameAWB名
説明:
ACBハンドルにアタッチされているストリーム用のAWBファイルをデタッチします。 第1引数の awb_name はAWBをアタッチ時に指定したものと同じAWB名を指定指定ください。
bool CriAtomExAcb.IsReadyToRelease ( )
inline

ACBハンドルの即時解放状態の取得

戻り値
ACBの状態(true = 即時解放可能、false = 再生中のプレーヤあり)
説明:
ACBハンドルを即座に解放可能かどうかをチェックします。
本関数が false を返すタイミングで criAtomExAcb.Dispose 関数を実行すると、 ACBハンドルを参照しているプレーヤに対する停止処理が行われます。
(ストリーム再生用のACBハンドルの場合、ファイル読み込み完了を待つため、 criAtomExAcb.Dispose 関数内で長時間処理がブロックされる可能性があります。)
float CriAtomExAcb.GetLoadProgress ( )
inline

ロード進捗状況の取得

説明:
WebGLプラットフォームでACBに含まれているAACデータのロード状況を取得します。 0.0f~1.0fの値が返ります。1.0fが返ればロード完了です。
void CriAtomExAcb.Decrypt ( ulong  key,
ulong  nonce 
)
inline

復号キーの設定

引数
key復号キー
nonceノンス(必ず 0 を指定してください)
説明:
ACBデータの暗号を解除するための復号キーを指定します。
ACBファイルをロードした後に本関数を実行することで、ACBハンドルごとに 異なる復号キーを使用することが可能です。
(デクリプタによる設定を無視して、当該ACBファイルについては本関数で指定 した復号キーが使用されます。)