CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
CRIWARE Library Initializer
このコンポーネントを利用すると、各種ハンドルの最大数の設定など、指定した条件での初期化を行うことができます。
注意
プラグインの機能を使う場合、CRIWARE Library Initializerコンポーネントは必ずシーンに配置してください。
本コンポーネントを使わないとプラグインが正常動作しない可能性があります。


adx2u_initializer_float.png


[備考]
(*1) CRIWARE Library Initializerは[GameObject]->[CRIWARE]->[Create CRIWARE Library Initializer]メニューからも作成できます。
この場合は、ゲームオブジェクトとして作成することになります。

各初期化パラメータの設定方法については以下のセクションをご参照ください。

各初期化パラメータの詳細

[Initializes File System]チェックボックス
CRIWARE共通のファイルシステムである「CRI File Systemライブラリ」の初期化を行います。

[File System Config]グループ
CRI File Systemライブラリの初期化パラメータを設定します。

CRI File Systemライブラリの初期化パラメータ
パラメータ 説明 デフォルト値
Number of Loaders 使用する CriWare.CriFsLoader ハンドルの数。
CriFsLoaderは通常のファイル読み込みに使います。
CRI Atomの機能を使用する場合は、Number of Loadersの値を最低でも1つ増やす必要があります。
16
Number of Binders 使用する CriWare.CriFsBinder ハンドルの数。
CriFsBinderはフォルダやCPKファイル(専用パッキングファイル) からのファイル読み込みに使います。
また、一つのAWBファイルのロードにつき、一つバインダ数を増やしてください。(内部でバインダを一つ消費するため)
8
Number of Installers 使用する CriWare.CriFsInstaller ハンドルの数。
CriFsInstallerは書き込み可能な外部デバイス(HDDなど)へファイルをコピーするために使います。
Number of Installersを1増やす度に、メモリ確保量が 2KB程度増えます。
2
Install Buffer Size CriWare.CriFsInstaller の設定です。
ファイルコピー時のバッファサイズをKiB単位で指定します。
4096 [KiB]
Max Length of Path 読み込みやインストール時に指定するパスの最大の長さを指定します。
HTTPリクエスト時のURLの最大長もこの数値に依存します。
終端文字も含めるため、実際に使用できる文字数は"本数値-1"となります。
256 [byte]
User Agent String HTTPリクエスト時のUser-Agent文字列です。最大255文字(255バイト)です。
なし
Minimize FD Usage このチェックが有効な場合、プラグイン側でのファイルディスクリプタの使用を最小限で行うようになります。
ファイルディスクリプタの節約を行いたい場合に有効にしてください。ただし、有効にするとファイル読み込み性能が若干落ちる恐れがあります。
無効
Enable CRC Check このチェックが有効な場合、CPKファイルのCRCチェックを行うようになります。
無効
Android Config Android用コンフィグ デフォルト値
Device Read Bitrate Androidのデバイス読み込み速度設定です。 50000000 [bps]
[Initializes Atom]チェックボックス
「CRI Atomライブラリ」(CRI ADX用ライブラリ)の初期化を行います。

[Atom Config]グループ
CRI Atomライブラリの初期化パラメータを設定します。
CRI Atomライブラリの初期化パラメータ
パラメータ 説明 デフォルト値
ACF File Name デフォルトのACFファイルを指定します。 なし
Max Virtual Voices 最大バーチャルボイス数。
同時に発音制御を行うボイス数です。
Manaによる動画再生を行い同時に再生する動画の音声トラックが4を超える場合は、超えた音声トラック数分だけ本値を増やす必要があります。
32
Max Voice Limit Groups 最大ボイスリミットグループ数。
オーサリングツール上で作成したボイスリミットグループの数が、設定値を超える場合、ACFファイルのロードに失敗します。
32
Max Parameter Blocks 最大パラメータブロック数。
音声再生時にパラメータ管理を行うための領域の数です。不足した場合、再生するキューに対して 一部のパラメータが設定されないことになります。
1024
Max Buses 最大バス数。
音声処理で利用可能な最大バス数です。データで設定したバス数以上の値を設定してください。
8
Max Categories 最大カテゴリ数。
オーサリングツール上で作成したボイスリミットグループの数が、設定値を超える場合、ACFファイルのロードに失敗します。
32
Max Aisacs 最大AISAC数。
一つのキューに紐づけることができるAISACの最大数です。
指定可能な上限は55です。
8
Max Bus Sends 最大バスセンド数。
一つのボイスが同時にセンドすることができるバス数の最大数です。
指定可能な上限は32です。
8
Max Sequence Events Per Frame 1フレームに扱うシーケンスイベントの最大数。シーケンスコールバックイベントなどを、設定値分だけ扱います。
同時に複数のイベントが発生するなどして取りこぼしが発生する場合は、設定値を増やしてください。
2
Max Beat Sync Callbacks Per Frame 1フレームに扱うビート同期コールバックの最大数。ビート同期コールバックなどを、設定値分だけ扱います。
同時に複数のコールバックが発生するなどして取りこぼしが発生する場合は、設定値を増やしてください。
1
Max Cue Link Callbacks Per Frame 1フレームに扱うキューリンクコールバックの最大数。キューリンクコールバックなどを、設定値分だけ扱います。
同時に複数のコールバックが発生するなどして取りこぼしが発生する場合は、設定値を増やしてください。
1
Categories per Playback 再生単位でのカテゴリ参照数。
データ側で設定したキューの参照カテゴリ数が設定値を超える場合、ACFのロードに失敗します。
4
Max Faders 最大フェーダー数。
Atomライブラリ内で使用するフェーダーの上限値を設定します。
ここで設定し、初期化時に確保したフェーダーはTrackTransitionBySelectorデータ再生時にライブラリ内部で使用します。
4
Sampling Rate 出力サンプリングレート。
HCA-MXデータ使用時は、データのサンプリングレートと同じレートを指定する必要があります。
0(デフォルト値)の場合、ほぼすべてのプラットフォームで48kHzとなります。
0
Server Frequency CRI Atomのサーバ処理の動作周波数。
サーバ処理では、発音リクエスト処理、パラメータ更新、音声データのデコードと出力を行います。
60 [Hz]
ASR Output Mode [Default]の場合、プラットフォームがサポートする最大チャンネル数で出力を行います。
[Stereo]を選択した場合は、2chにミキシングしてデバイスに出力します。
その他、[4ch][5.1ch][7.1ch][7.1.4ch]を選択できます。
Default
Use Time For Seed 音声の各種ランダム再生時に使用する乱数種に時刻を使用するかどうかを指定します。
使用しない場合、乱数種は固定になります。
使用する
In Game Preview インゲームプレビュー機能を使用するかどうかを指定します。
Disable, Enable, Follow Build Setting のいずれかから選択します。
Follow Build Setting の場合はエディタービルド設定が Development Build のときのみインゲームプレビューを有効にします。
※一部の機種では非対応です。
パラメータ 説明 デフォルト値
Max Preview Objects インゲームプレビュー用管理リソースの最大値
ここで指定する管理リソースはインゲームプレビュー時に ACB ハンドル1つに対し1つ消費されます。
したがって、同時に使用する ACB 数より大きな値を設定ください。
200
Communication Buffer Size 通信用バッファサイズ
モニタライブラリとオーサリングツール間で行う通信に使用するバッファサイズを指定します。
バッファは送信用、受信用の2つがあり、それぞれ設定値の半分の拡張領域がさらに付加されます。
このため実際に必要なバッファサイズは設定値の3倍となります。
2048[KiB]
Update Interval 再生位置情報更新間隔
サーバ処理実行時に再生位置情報の送信処理を行う間隔を指定します。
本値を変更することで、サーバ処理の実行回数を変えることなく再生位置情報の送信頻度を下げることが可能です。
例えばUpdate Intervalを2に設定すると、サーバ処理2回に対し1回だけ再生位置情報の送信が行われます。
(再生位置情報の送信頻度が 1/2 になります。)
8[counts of server process]
Disable
Use Spatializer Spatializerの初期化を行うか
有効化するとASRからの出力をバイノーライザに通してステレオとして出力します。
無効
Keep Playing Sound On Pause Editor 実行中に Pause を押した時などで Unity がポーズ状態へ遷移した際、Atom の音声出力も一時停止させるか。 一時停止しない
Enable SonicSYNC SonicSYNC を有効にするか(プラットフォーム共通)
iOS, Androidでは機種固有のフラグでSonicSYNCの有効化を管理します。
各機種固有の初期化コンフィグを確認してください。
有効
Standard Voice Pool Config 標準ボイスプール用コンフィグ:
標準ボイスはADXデータとHCAデータを再生することができます。
パラメータ 説明 デフォルト値
Memory Voices 標準ボイスのメモリ再生数 16
Streaming Voices 標準ボイスのストリーム再生数。
再生数1つにつき、CriFsLoaderハンドルが1つ必要です。
Streaming Voicesの値を1つ増やす場合、[File System Config]グループのNumber of Loadersの値も1つ増やしてください。
8
HCA-MX Voice Pool Config HCA-MXボイスプール用コンフィグ:
HCA-MXボイスはHCA-MXデータを再生することができます。
パラメータ 説明 デフォルト値
Memory Voices HCA-MXボイスのメモリ再生数 0
Streaming Voices HCA-MXボイスのストリーム再生数
再生数1つにつき、CriFsLoaderハンドルを1つ必要です。
Streaming Voicesの値を1つ増やす場合、[File System Config]グループのNumber of Loadersの値も1つ増やしてください。
0
Editor Config Unity Editor用コンフィグ デフォルト値
Enable User PCM Out Mode ユーザPCM出力モードえで初期化を行うか。
本フラグを有効にした場合、Atomライブラリは音声出力を行いません。
内部で定期的にPCMデータを出力バッファから捨てるようになります。
録音など、音声出力の流量を制御しつつバッファを出力したい場合に有効にしてください。
無効
PCM Buffer Length ユーザーPCM出力モード有効時の出力バッファ長です。 4096 [サンプル]
Linux Config Linux用コンフィグ デフォルト値
Sound Output サウンド出力としてどのシステムを利用するか。
デフォルト(PluseAudio)/PulseAudio/ALSAから選択します。
PulseAudio
PulseAudio Latency PulseAudio出力時のレイテンシー設定(単位:マイクロ秒)です。
実行時に音途切れが発生する場合、本設定値を大きくすることで回避できます。
デフォルト設定はサーバー周波数が60Hzの場合を想定した値になっています。
低いサーバー周波数で初期化する場合、本設定値を大きくする必要があります。
60000(60ミリ秒)
iOS Config iOS用コンフィグ デフォルト値
Enable SonicSYNC SonicSYNC を有効にします。 有効
Buffering Time バッファサイズ (msec単位での指定)
iOS端末で音声が途切れる場合このサイズを増やします。また、レイテンシを短くする場合にこのサイズを減らします。
50 [msec]
Override iPod Music iPodで音が再生されている場合に、iPodを停止するかを制御。
同様の設定がUnityのiOS固有設定にありますが、Atomライブラリを使用する場合は常にAtomライブラリの設定が使用されます。
停止させない
Android Config Android用コンフィグ デフォルト値
Enable SonicSYNC SonicSYNC を有効にします。 有効
Buffering Time ASR(通常再生)のバッファサイズ (msec単位での指定) 133 [msec]
Start Buf Time NSR(低遅延再生)の再生開始バッファサイズ (msec単位での指定) 100 [msec]
Low Latency Standard Voice Pool Config 低遅延再生用の標準ボイスプール設定
パラメータ 説明 デフォルト値
Memory Voices 低遅延再生用の標準ボイスプールのメモリ再生数 0
Streaming Voices 低遅延再生用の標準ボイスプールのストリーム再生数
再生数1つにつき、CriFsLoaderハンドルを1つ必要です。
Streaming Voicesの値を1つ増やす場合、[File System Config]グループのNumber of Loadersの値も1つ増やしてください。
0
Use Android Fast Mixer Android Fast Mixerを有効化するか。
有効な場合、内部でのリサンプリングにより、より低遅延な音声再生を行います。
有効
Use Asr For Default Playback デフォルトの音声再生を非低遅延再生で行うか。
有効な場合、低遅延再生を有効にしていないプレーヤでは、明示的に非低遅延再生を行います。
有効
[Beta] Use AAudio Android 8以降の端末でAAudioによる音声再生を有効化するか。
有効な場合、対応端末ではより低遅延な音声再生が可能になります。
本機能はベータ版で、音声再生に関連して意図しない挙動が発生する可能性があります。
無効
Stream Type 出力音声ストリームタイプ。
Android OSにおける出力音声ストリームタイプを指定します。
SonicSYNCが有効な場合のみ、設定が有効となります。
Music(Default)
[Initializes Mana]チェックボックス
「CRI Manaライブラリ」(CRI Sofdec用ライブラリ)の初期化を行います。

[Mana Config]グループ
CRI Manaライブラリの初期化パラメータを設定します。
CRI Manaライブラリの初期化パラメータ
パラメータ 説明 デフォルト値
Number Of Decoders 同時に使用するプレーヤーハンドルの最大数
ムービ再生数1つにつき、プレーヤーハンドルとCriFsLoaderハンドルが各々一つ必要です。
Number Of Decodersの値を1つ増やす場合、[File System Config]グループのNumber of Loadersの値も1つ増やしてください。
ここで注意すべきなのは、アルファムービを再生する場合には、デコーダーを2つ使用するということです。
8
Number Of Max Entries 連結再生機能を使用する場合、プレーヤーハンドルに同時に登録できるムービの総数。
すべてのプレーヤハンドルで共有されます。
4
[Don't Initialize On Awake]チェックボックス
このチェックが有効な場合、Awake内でのプラグインの自動初期化を行いません。
初期化パラメタをスクリプトから動的に変更したい場合にチェックを有効にしてください。
有効にした場合、必ず CriWare.CriWareInitializer::Initialize 関数で手動初期化を行う必要があります。
[Don't Destroy On Load]チェックボックス
このチェックが無効な場合は、シーン切り替えを行った際にライブラリの終了処理を行います。
シーンを越えてサウンド制御を行いたい場合や、初期化設定を変更する必要がない場合はこのチェックボックスを有効にしてください。
CRIWARE Library Initializer はアプリケーション全体を通して同時に1つしか存在しません。
複数のシーンにCRIWARE Library Initializer が設定されていてシーン切り替えを行った場合、Hierarchyウインドウに CRIWARE Library Initializer が2個表示される事がありますが、2個目 CRIWARE Library Initializer は中身のない無効なオブジェクトです。2個目の CRIWARE Library Initializer はシーン破棄時に一緒に破棄されますので実害はありません。

注意
CriWareInitializerが作成される前に他のCRIWAREコンポーネントを操作すると、そのタイミングでライブラリがデフォルトパラメータで初期化されてしまい、CriWareInitializerに指定したパラメータが反映されない可能性があります。
CriWareInitializerに指定したパラメータで確実に初期化処理を行いたい場合には、以下の操作を行ってください。
  • アプリケーション起動後、最初に実行されるシーンにCriWareInitializerコンポーネントを配置する。
  • [Execution Order]でCriWareInitializer.csが他のスクリプトよりも先に実行されるよう設定する。
  • [Don't Destroy On Load]チェックボックスを有効にし、シーンチェンジ後も初期化状態を維持する。


FileSystem初期化パラメータの必要数について

[Initialize FileSystem] 以下の各初期化パラメータに最低限必要な値はAtom/Manaの利用状況によって変化します。
覚え書き:
CRI Assetsの利用時、DeployTypeを"OnMemory"としているCRIアセットのロードはFileSystemのリソースを消費しません。
Deploy Typeの設定 」も併せてご確認ください。

Number of Loaders

以下の内容の合計で最低限必要な値が求められます。
  • 通常の Atom 機能による音声再生(主にACBファイルの読み込み)
    • 1つ(複数個ACBファイルを読み込む場合でも1つの CriFsLoader で順番に読み込むため)
  • 最大同時ストリーミング再生数
    • 使用する StreamingVoice と同じ数
  • 同時に再生するムービー数
    • Number of Decoders と同じ数

Number of Binders

Number of Binders はAWBファイルの最大同時ロード数必要です。

Number of Installers

CriWare.CriFsUtility.Install 等のインストール処理を並列に行う数だけ必要です。

各初期化パラメータの設定方法について

上述のパラメータは数が多いためどの項目から設定すればよいか迷われるかと思います。大まかな設定について以下のフローをおすすめしています。

Atom

  • アプリケーション中で同時に再生する音声の最大数を [Initialize Atom] / [Voice Pool Config] へ設定
    • メモリ再生の同時再生数を [Standard VoicePoolConfig] / [MemoryVoices] へ
    • ストリーミング再生の同時再生数を [Standard VoicePoolConfig] / [StreamingVoices] へ
  • 上記 [Standard VoicePoolConfig] / [StreamingVoices] を増やした分だけ、[Initialize FileSystem] / [Number of Loaders] を増やす
  • ストリーミング再生を行う場合、AWBファイルの最大同時ロード数だけ [Initialize FileSystem] / [Number of Binders] を増やす
  • [Initialize Atom] 以下のすべての VoicePool の合計値より多くなるように、[Initialize Atom] / [Max Virtual Voices] を設定する

Mana

  • アプリケーション中で同時に再生する動画の音声トラック数が4を超える場合、超えた分だけ [Initialize Atom] / [Max Virtual Voices] を増やす
  • アプリケーション中で同時に再生する動画の最大数だけ [Initialize FileSystem] / [Number of Loaders] を増やす。
  • アプリケーション中で同時に再生する動画の最大数を [Initialize Mana] / [Number Of Decoders] へ設定
  • アルファムービーを再生する場合はデコーダーを2つ使用します。したがって以下の例ですと動画再生数は同じですが、使用するデコーダーの数が異なります。
    • アルファなし動画 x 6 => Number Of Decoders: 6, Number of Loaders: (FileSystem/Atom での設定値) + 6
    • アルファあり動画 x 5 + アルファなし動画 x 1 => Number Of Decoders: 11, Number of Loaders: (FileSystem/Atom での設定値) + 6
覚え書き:
  • 各パラメータ項目を余分に確保した場合でもパフォーマンスに差が出ることがなく、基本的にメモリの消費量が増えるのみとなります。
  • キューの構成によっては、1キューに対して複数のボイスを使用する場合があります。
    • ボイスはキューに配置されたウェーブフォームの数分だけ消費するためです。
    • 例えば以下のようなケースではシークバーの瞬間では波形が複数重なっており、ボイスを4つ消費します。
      cri4u_component_initalizer_setting_voicecount.png