Struct CriAtomEx.Config
Atomライブラリ初期化用コンフィグ構造体
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
[Serializable]
public struct CriAtomEx.Config
Remarks
備考: デフォルト設定を使用する場合、 SetDefaultConfig(out Config) メソッドで構造体にデフォルト パラメーターをセットした後、 Initialize(in Config, IntPtr, int) 関数に構造体を指定してください。
注意: 将来的にメンバが増える可能性があるため、 SetDefaultConfig(out Config) メソッドを使用しない 場合には、使用前に必ず構造体をゼロクリアしてください。 (構造体のメンバに不定値が入らないようご注意ください。)
Fields
acfInfo
ACF情報へのポインタ
Declaration
public NativeReference<CriAtomExAcf.RegistrationInfo> acfInfo
Field Value
Type | Description |
---|---|
NativeReference<CriAtomExAcf.RegistrationInfo> |
Remarks
説明: 初期化時にACFの登録を行う際にACF情報へのポインタを指定します。 nullを指定した場合、初期化時にACFの登録は行われません。 本メンバを設定して初期化処理内でACFの登録を行う場合、 CriAtomEx.Config 構造体の max_voice_limit_groups, max_categories, categories_per_playbackの各メンバ値は ACF設定値と比較して大きい方の値が初期化用設定値として使用されます。 CriAtomEx初期化時にACFの登録を行った場合、環境によっては CriAtomExAsr, CriAtomExHcaMx 等のモジュール初期化にも一部ACF内の設定値が使用されます。 ACF内の設定値を使用せずにこれらのモジュールを初期化したい場合は、本メンバを使用せずに ライブラリの初期化を行い、その後ACFの登録を行ってください。
注意: 本メンバを設定する場合、初期化処理内でのACFデータの登録とACFデータを元に初期化に 必要なワークを動的に確保するため、初期化関数呼び出し前にメモリアロケーター関数の登録と エラーコールバック関数の登録が必要になります。 本メンバを使用する場合、ワーク領域の確保は登録されたメモリアロケーター関数を使用して行います。 取得済みメモリ領域を使用しての初期化は行えません。
See Also
categoriesPerPlayback
再生単位でのカテゴリ参照数
Declaration
public int categoriesPerPlayback
Field Value
Type | Description |
---|---|
int |
Remarks
説明: 再生単位で参照可能なカテゴリの数です。 Atomライブラリは、初期化時に categories_per_playback で指定された数分 のカテゴリを参照できるリソースを確保します。 指定可能な最大値は MaxCategoriesPerPlayback です。
注意: categories_per_playback で指定された数以上のカテゴリをキューやプレーヤーから参照することはできません。 オーサリングツール上で作成したキューの参照カテゴリ数が categories_per_playback を超える場合、ACFファイルのロードに失敗します。
context
プラットフォーム固有の初期化パラメーターへのポインタ
Declaration
public IntPtr context
Field Value
Type | Description |
---|---|
IntPtr |
Remarks
説明: CRI Atomライブラリを動作させるために必要な、 プラットフォーム固有の初期化パラメーターへのポインタを指定します。 nullを指定した場合、デフォルトパラメーターでプラットフォーム毎に必要な初期化を行います。 パラメーター構造体は各プラットフォーム固有ヘッダーに定義されています。 パラメーター構造体が定義されていないプラットフォームでは、常にnullを指定してください。
See Also
coordinateSystem
3Dポジション計算を行う際の座標系
Declaration
public CriAtomEx.CoordinateSystem coordinateSystem
Field Value
Type | Description |
---|---|
CriAtomEx.CoordinateSystem |
Remarks
説明: Atomライブラリが3Dポジション計算を行う際、どの座標系を使用するかを設定します。
enableAtomSoundDisabledMode
CRI Atom Library以外を使った音声出力を行うことを指定するフラグ
Declaration
public NativeBool enableAtomSoundDisabledMode
Field Value
Type | Description |
---|---|
NativeBool |
Remarks
説明: CRI Atom Libraryを使用せずに音声出力する際にtrueを指定します。 SetDefaultConfig(out Config) メソッドでは、CRI Atom Libraryを指定するため、falseが指定されます。 CRI Atom Library以外の音声出力ライブラリを用いる場合は、本フラグにtrueを指定してから、Initialize(in Config, IntPtr, int)を 実行するようにしてください。
注意: 本フラグを切り替える際には、AtomライブラリをFinalize()で終了してから、フラグの内容を変更し、再度 Initialize(in Config, IntPtr, int)にて初期化処理を行うようにしてください。
enableAutoMatchingInPanTypeAuto
パンタイプがオートの場合における、リスナーのオートマッチング機能の有効化
Declaration
public NativeBool enableAutoMatchingInPanTypeAuto
Field Value
Type | Description |
---|---|
NativeBool |
Remarks
説明: パンタイプがオートの場合、リスナーのオートマッチング機能を有効化するかを設定します。
備考: パンタイプが3Dポジショニングの場合はリスナーのオートマッチング機能は常に有効です。
enableCategoryOverrideByExPlayer
AtomExPlayerによるカテゴリの上書きの有効化
Declaration
public NativeBool enableCategoryOverrideByExPlayer
Field Value
Type | Description |
---|---|
NativeBool |
Remarks
説明: AtomExPlayerにSetCategoryById(uint)関数やSetCategoryByName(ArgString)関数 を用いてカテゴリをセットした場合にキューのカテゴリ設定を上書きする機能を有効化します。
備考: CRI Atom Ver.2.20.31未満のライブラリは、プレーヤーに対してカテゴリ設定を行うと、 キューに設定されていたカテゴリが上書きにより無効になっていました。 Ver.2.20.31未満の挙動に戻す必要がある場合には本フラグにfalseを設定してください。
fsConfig
CRI File System の初期化パラメーターへのポインタ
Declaration
public NativeReference<CriFs.Config> fsConfig
Field Value
Type | Description |
---|---|
NativeReference<CriFs.Config> |
Remarks
説明: CRI File Systemの初期化パラメーターへのポインタを指定します。 nullを指定した場合、デフォルトパラメーターでCRI File Systemを初期化します。
See Also
maxAisacAutoModulations
最大AISACオートモジュレーション数(使用停止)
Declaration
public uint maxAisacAutoModulations
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: Ver.2.00.00以降のライブラリでは使用停止となりました。 ライブラリ内部での本メンバへの参照は行われません。
maxAisacs
最大AISAC数
Declaration
public byte maxAisacs
Field Value
Type | Description |
---|---|
byte |
Remarks
説明: 一つのキューに紐づけることができるAISACの最大数です。 Atomライブラリは、初期化時と AtomExPlayer 作成時に max_aisacs で指定された数分のAISACを参照できるリソースを確保します。 max_aisacs に指定する値の上限は55です。 キュー、トラック、カテゴリの AISAC が対象となります。 ミキサー AISAC は本設定値の対象ではありません。
maxBusSends
最大バスセンド数
Declaration
public byte maxBusSends
Field Value
Type | Description |
---|---|
byte |
Remarks
説明: 一つのボイスが同時にセンドすることができるバス数の最大数です。 max_bus_sends に指定する値の上限は32です。
maxCategories
最大カテゴリ数
Declaration
public int maxCategories
Field Value
Type | Description |
---|---|
int |
Remarks
説明: アプリケーションで作成するカテゴリの数です。 Atomライブラリは、初期化時に max_categories で指定された数分 のカテゴリを作成できるリソースを確保します。
注意: max_categories で指定された数以上のカテゴリを作成することはできません。 オーサリングツール上で作成したカテゴリの数が max_categories を超える場合、ACFファイルのロードに失敗します。
maxFaders
最大フェーダー数
Declaration
public uint maxFaders
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: Atomライブラリ内で使用するフェーダーの上限値を設定します。 ここで設定し、初期化時に確保したフェーダーはTrackTransitionBySelectorデータ再生時にライブラリ内部で使用します。
maxParameterBlocks
最大パラメーターブロック数
Declaration
public int maxParameterBlocks
Field Value
Type | Description |
---|---|
int |
Remarks
説明: 音声再生時にパラメーター管理を行うための領域の数です。 Atomライブラリは、初期化時に max_parameter_blocks で指定された数分だけ パラメーター管理に必要なリソースを確保します。
備考: 1つのキューを再生するのに必要なパラメーターブロック数は、 再生するキューの内容によって変化します。 (操作するパラメーターの数に比例して必要なパラメーターブロック数は増加します。) パラメーターブロック数が不足した場合、再生するキューに対して 一部のパラメーターが設定されないことになります。 (ボリュームやピッチ、フィルター等が意図した値にならない可能性があります。) アプリケーション実行中にパラメーターブロック数不足のエラーが発生した場合、 max_parameter_blocks の値を増やしてください。
maxPitch
ピッチ変更の上限値
Declaration
public float maxPitch
Field Value
Type | Description |
---|---|
float |
Remarks
説明: Atomライブラリ内で適用されるピッチ変更の上限値を設定します。 max_pitchに設定された値以上のピッチ変更が、ライブラリ内でクリップされます。 ピッチはセント単位で指定します。 1セントは1オクターブの1/1200です。半音は100セントです。 例えば、 max_pitch に 1200.0f を設定した場合、 1200セントを超えるピッチが設定されたキューを再生したとしても、 ピッチが1200セントに抑えられて再生されます。
備考: キューに設定されたピッチに、AISACによるピッチ変更やドップラー効果が追加適用された場合、 予期せぬレベルまでピッチが上がる恐れがあります。 (ピッチに比例して単位時間当たりのデコード量が増加するため、 ピッチが高すぎる音を大量に鳴らした場合、処理負荷が急増する恐れがあります。) 本パラメーターであらかじめピッチ上限を設定しておくことで、 想定外の負荷変動を回避することが可能となります。 例えば、 max_pitch に 1200.0f を設定した場合、 アプリケーション中でどのような操作を行ったとしてもピッチが1200セント (=2倍速再生)までに抑えられるため、 単位時間あたりのデコード量は最大でも通常時の2倍までに制限されます。
注意: max_pitchには 0.0f 以上の値を設定する必要があります。 ( 0.0f を指定した場合、ピッチの変更は一切行われなくなります。)
maxSequences
最大再生シーケンス数
Declaration
public int maxSequences
Field Value
Type | Description |
---|---|
int |
Remarks
説明: アプリケーションで同時に再生するシーケンスの数です。 Atomライブラリは、初期化時に max_sequences で指定された数と max_virtual_voices で指定された数の総和分 のシーケンスを再生できるリソースを確保します。
注意: Ver.2.00以降のライブラリでは全てのキューがシーケンスとして再生されるため、 max_sequences に加えて max_virtual_voices 数分のリソースが確保されます。 max_sequences で指定された数以上のシーケンスを再生することはできません。 エラーコールバックが発生した場合、この値を大きくしてください。
maxTrackItems
最大トラックアイテム数
Declaration
public uint maxTrackItems
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: アプリケーションで同時再生するシーケンス内のイベントの総数です。 Atomライブラリは、初期化時に max_track_items で指定された数と max_virtual_voices で指定された数の総和分 のトラックアイテムを作成できるリソースを確保します。
注意: Ver.2.00以降のライブラリでは全てのキューがシーケンスとして再生されるため、 max_track_items に加えて max_virtual_voices 数分のリソースが確保されます。 max_track_items で指定された数以上のトラックアイテムを 作成することはできません。 トラックアイテムは波形や、ループイベント等のシーケンストラック再生時に 管理が必要なイベントです。 エラーコールバックが発生した場合、この値を大きくしてください。
maxTracks
最大再生トラック数
Declaration
public uint maxTracks
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: アプリケーションで同時再生するシーケンス内のトラック総数です。 Atomライブラリは、初期化時に max_tracks で指定された数と max_virtual_voices で指定された数の総和分 のトラックを再生できるリソースを確保します。
注意: Ver.2.00以降のライブラリでは全てのキューがシーケンスとして再生されるため、 max_tracks に加えて max_virtual_voices 数分のリソースが確保されます。 max_tracks で指定された数以上のトラックを再生することはできません。 エラーコールバックが発生した場合、この値を大きくしてください。
maxVirtualVoices
最大バーチャルボイス数
Declaration
public int maxVirtualVoices
Field Value
Type | Description |
---|---|
int |
Remarks
説明: アプリケーションで同時に発音制御を行うボイスの数です。 Atomライブラリは、初期化時に max_virtual_voices で指定された数分だけ 発音管理に必要なリソースを確保します。
備考: max_virtual_voices で指定された数以上の音声を同時に発音することはできません。 また、 max_virtual_voices 分の発音リクエストを行ったとしても、実際に 発音される音声の数は、必ずしも max_virtual_voices に一致するとは限りません。 実際に発音可能な音声の数は、ボイスプールで確保されたボイス数や、 ターゲット機で利用可能なハードウェアボイスの数に依存します。 バーチャルボイス数の目安は、「最大同時発音数+1V当たりの発音リクエスト数」です。 バーチャルボイス数が最大同時発音数より少ない場合や、 発音数とリクエスト数の合計が最大バーチャルボイスを超える場合、 エラーコールバック関数に警告が返される可能性があります。 RetryVoiceAllocation を指定して AtomEx プレーヤーを作成する場合、 上記よりもさらに多くのバーチャルボイスを必要とする可能性があります。
maxVoiceLimitGroups
最大ボイスリミットグループ数
Declaration
public int maxVoiceLimitGroups
Field Value
Type | Description |
---|---|
int |
Remarks
説明: アプリケーションで作成するボイスリミットグループの数です。 Atomライブラリは、初期化時に max_voice_limit_groups で指定された数分 のボイスリミットグループを作成できるリソースを確保します。
注意: max_voice_limit_groups で指定された数以上のボイスリミットグループを 作成することはできません。 オーサリングツール上で作成したボイスリミットグループの数が max_voice_limit_groups を超える場合、ACFファイルのロードに失敗します。
parameterUpdateInterval
パラメーター更新間隔
Declaration
public int parameterUpdateInterval
Field Value
Type | Description |
---|---|
int |
Remarks
説明: サーバー処理実行時にパラメーターの更新処理を行う間隔を指定します。 parameter_update_interval の値を変更することで、 サーバー処理の実行回数を変えることなくパラメーター更新頻度を下げることが可能です。 例えば、 parameter_update_interval を 2 に設定すると、 サーバー処理 2 回に対し、 1 回だけパラメーターの変更が行われます。 (パラメーターの更新頻度が 1/2 になります。)
備考: サーバー処理周波数( server_frequency )を下げると、 サーバー処理の実行回数が減るため、アプリケーション全体の処理負荷は下がりますが、 サーバー処理同士の間隔が開くため、バッファリングすべきデータの量が増加します。 その結果、バッファリングのために必要なメモリのサイズは増加します。 これに対し、サーバー処理周波数を変更せずにパラメーター更新間隔( parameter_update_interval ) の値を上げた場合、メモリサイズを増加させずに負荷を下げることが可能となります。 ただし、サーバー処理の駆動に伴う処理のオーバーヘッド(スレッドの起床負荷等) は削減されないため、サーバー処理の回数を減らす場合に比べ、負荷削減の効果は薄いです。
注意: parameter_update_interval の値を変更した場合、 発音リクエストの処理頻度も少なくなります。 そのため、 parameter_update_interval の値を変更すると、 発音リクエストから音声出力開始までにかかる時間が長くなります。
rngIf
疑似乱数生成器インターフェース
Declaration
public NativeReference<CriAtomEx.RngInterface> rngIf
Field Value
Type | Description |
---|---|
NativeReference<CriAtomEx.RngInterface> |
Remarks
説明: CRI Atomライブラリで使用する疑似乱数生成器インターフェースを指定します。 nullを指定した場合は、デフォルトの疑似乱数生成器を使用します。
sequencePrepareRatio
シーケンス先読み割合の指定
Declaration
public float sequencePrepareRatio
Field Value
Type | Description |
---|---|
float |
Remarks
説明: シーケンサーが1サーバー処理で読み込む量の割合を指定します。 1.5fを指定すると次のサーバー処理が行われる予想時刻からさらに0.5サーバー分を先読みします。 最大で3.0f、最小で1.1fが指定可能です。範囲を超える場合はクリップされます。
備考: サーバー周期の揺れによって発生する発音タイミングのずれが発生しづらくなります。
serverFrequency
サーバー処理の実行頻度
Declaration
public float serverFrequency
Field Value
Type | Description |
---|---|
float |
Remarks
説明: サーバー処理を実行する頻度を指定します。 通常、アプリケーションのフレームレートと同じ値を指定します。 CRI Atomライブラリは、ファイル読み込みの管理や、音声データのデコード、音声の出力、 ステータスの更新等、ライブラリ内部で行う処理のほとんどを1つの関数でまとめて 行います。 CRIミドルウェアでは、こういったライブラリ内の処理を一括して行う関数のことを "サーバー処理"と呼んでいます。 スレッドモデルが Multi の場合、サーバー処理は CRI Atomライブラリが作成するスレッドで、定期的に実行されます。 スレッドモデルが Single や UserMulti の場合、サーバー処理は ExecuteMain() 関数内で実行されます。 server_frequency には、サーバー処理を実行する頻度を指定します。 スレッドモデルが Multi の場合、CRI Atomライブラリは指定された 頻度でサーバー処理が実行されるよう、サーバー処理の呼び出し間隔を調節します。 スレッドモデルが Single や UserMulti の場合、ユーザは ExecuteMain() 関数を server_frequency で指定した頻度以上 で実行する必要があります。 アプリケーションのフレームレートの変動が大きく、サーバー処理を実行する頻度にバラツキ ができてしまう場合には、最悪のフレームレートを想定して server_frequency の値を指定 するか、またはスレッドモデルに Multi を指定してください。
備考: Atomライブラリのサーバー処理では、以下のような処理が行われます。 - 発音リクエストの処理(ボイスの取得等) - パラメーターの更新(ボリュームやパン、ピッチ等の変更の適用) - 音声データのデコードと出力 サーバー処理の実行頻度を多くすると、単位サーバー処理当たりの音声データデコード量が少なくなります。 その結果、単位サーバー当たりの処理負荷は小さくなります(負荷が分散されます)が、 サーバー処理の実行に伴うオーバーヘッドは大きくなります。 (スレッドの起床回数やパラメーターの更新回数が多くなります。) サーバー処理の実行頻度を少なくすると、スレッドの起床や発音リクエストの処理、 パラメーターの更新処理の回数が減り、アプリケーション全体の処理負荷は下がります。 反面、データをリロードする頻度が下がるため、単位サーバー処理当たりデコード量は増え、 デコード結果を保持するためのバッファーサイズが余分に必要になります。 また、発音リクエストを処理する頻度が下がるため、 発音リクエストから音声出力開始までにかかる時間は長くなります。
注意: スレッドモデルに Single や UserMulti を指定したにもかかわらず、 ExecuteMain() 関数が server_frequency で 指定した値以下の頻度でしか実行されなかった場合、再生中の音が途切れる等の問題が 発生する可能性がありますので、ご注意ください。
See Also
threadModel
スレッドモデル
Declaration
public CriAtomEx.ThreadModel threadModel
Field Value
Type | Description |
---|---|
CriAtomEx.ThreadModel |
Remarks
説明: CRI Atomライブラリのスレッドモデルを指定します。
See Also
version
ライブラリバージョン番号
Declaration
public uint version
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: CRI Atom ライブラリのバージョン番号です。 SetDefaultConfig(out Config) メソッドにより、 cri_atom.h ヘッダーに定義されているバージョン番号が設定されます。
注意: アプリケーションでは、この値を変更しないでください。
versionEx
モジュールバージョン番号
Declaration
public uint versionEx
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: CRI Atom Ex のバージョン番号です。 SetDefaultConfig(out Config) メソッドにより、本ヘッダーに定義されているバージョン番号が設定されます。
注意: アプリケーションでは、この値を変更しないでください。
versionExString
モジュールバージョン文字列
Declaration
public NativeString versionExString
Field Value
Type | Description |
---|---|
NativeString |
Remarks
説明: CRI Atom Ex のバージョン文字列です。 SetDefaultConfig(out Config) メソッドにより、本ヘッダーに定義されているバージョン文字列が設定されます。
注意: アプリケーションでは、この値を変更しないでください。
versionString
ライブラリバージョン文字列
Declaration
public NativeString versionString
Field Value
Type | Description |
---|---|
NativeString |
Remarks
説明: CRI Atom ライブラリのバージョン文字列です。 SetDefaultConfig(out Config) メソッドにより、 cri_atom.h ヘッダーに定義されているバージョン文字列が設定されます。
注意: アプリケーションでは、この値を変更しないでください。