CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
CRIWARE Library Initializer
通过使用此组件,可以在指定条件下,对各种句柄的最大数设置等进行初始化。
注意
使用插件功能时,请务必将CRIWARE Library Initializer组件配置在场景中。
不使用此组件时,插件可能无法正常动作。


adx2u_initializer_float.png


[备注]
(*1) CRIWARE Library Initializer也可以从[GameObject]->[CRIWARE]->[Create CRIWARE Library Initializer]菜单中创建。这时会作为GameObject进行创建。

关于如何设置每个初始化参数的信息,请参照以下章节。

各初始化参数的详细信息

[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值。
16
Number of Binders 使用的 CriWare.CriFsBinder 句柄数量。
CriFsBinder用于从文件夹和CPK文件(专用打包文件)读取文件。
此外,请在加载每个AWB文件时,增加一个Binder数。(因为在内部会消耗一个Binder)
8
Number of Installers 使用的 CriWare.CriFsInstaller 句柄数量。
CriFsInstaller用于向可写入的外部设备(HDD等)等复制文件。
每增加一个Number of Installers,内存分配量会增加2KB左右。
2
Install Buffer Size CriWare.CriFsInstaller 的设置。
以KiB为单位指定复制文件时的缓冲区大小。
4096 [KiB]
Max Length of Path 指定读取和安装时指定的路径最大长度。
HTTP请求时的URL的最大长度也取决于此数值。
由于包含终端文字,因此实际可使用文字数是"此数值-1"。
256 [byte]
User Agent String HTTP请求时的UserAgent字符串。最大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 最大虚拟Voice数量。
同时执行发声控制的Voice数量。
如果使用了Mana播放,并且同时播放的视频的音频轨道超过4,则必须将此值增加超出的音频轨道的数目。
32
Max Voice Limit Groups 最大Voice限数组数。
在创建工具上创建的Voice限制组数超过设置值时,ACF文件的加载将失败。
32
Max Parameter Blocks 最大参数块数量。
播放音频时进行参数管理的区域数量。数量不足时,针对播放的Cue,将有部分参数不会被设置。
1024
Max Buses 最大总线数量。
可进行音频处理的最大总线数量。请设置为大于在数据中设置的总线数量的值。
8
Max Categories 最大类别数量。
在创建工具上创建的Voice限制组数超过设置值时,ACF文件的加载将失败。
32
Max Aisacs 最大AISAC数。
单个Cue可以关联的最大AISAC数量。
可设定的上限是55。
8
Max Bus Sends 最大总线发送数。
单个Voice可以同时发送的最大总线数。
可设定的上限是32。
8
Max Sequence Events Per Frame 处理一帧的序列事件的最大数量。仅处理相当于设置值数量的处理序列事件回调等。
如同时发生多个事件等,出现来不及处理的情况时,请增加设置值。
2
Max Beat Sync Callbacks Per Frame 处理一帧的节拍同步回调的最大数量。仅处理相当于设置值数量的节拍同步回调。
如果有多个回调同时发生等情况导致丢失回调,请增大此设置值。
1
Max Cue Link Callbacks Per Frame 在一帧中处理的最大Cue链接回调数。最大只有所设置数量的Cue链接回调会被处理。
如果有多个回调同时发生等情况导致丢失回调,请增大此设置值。
1
Categories per Playback 播放单位的类别引用数量。
数据侧设置的Cue的参照类别数超过设置值时,ACF的加载将失败。
4
Max Faders 最大Fader数。
设置 Atom 库中可使用的Fader的最大数量。
播放 TrackTransitionBySelector 数据时,Atom 库会使用在此处设置并在初始化期间被分配的Fader。
4
Sampling Rate 输出采样率。
使用 HCA-MX 数据时,需要指定与数据相同的采样率。
如果指定为0(预设值),则在大部分平台上都会使用48kHz。
0
Server Frequency CRI Atom的Server处理的执行频率。
Server处理执行发声请求处理、参数更新、音频数据的解码和输出。
60 [Hz]
ASR Output Mode [Default]时,以平台支持的最大声数量输出。
选择了[Stereo]时,以双声道输出至设备。
还可以选择其他声道,如[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句柄消耗一个。
因此,请设置一个大于同时使用的ACB数量的值。
200
Communication Buffer Size 通讯缓冲大小
指定monitor运行库和创作工具之间用于通信的缓冲大小。
缓冲区有两个,一个用于发送,另一个用于接收,分别会另外添加相当于设定值一半大小的扩展容量。
因此,实际所需的缓冲区大小是设置值的3倍。
2048[KiB]
Update Interval 播放位置信息更新间隔
指定执行Server处理时发送播放位置信息的间隔。
通过更改该值,可以在不改变Server处理频率的情况下降低位置信息的发送频率。
例如,如果将Update Interval设置为2,则每两次Server处理仅发送一次位置信息。
(即位置信息的发送频率减半)
8[counts of server process]
Disable
Use Spatializer 是否初始化Spatializer
启用时,将通过Binauralizer从ASR的输出以双声道输出。
禁用
Keep Playing Sound On Pause 指定Unity转换到暂停状态(例如运行Unity编辑器时点击Pause按钮等)时,是否暂停Atom音频输出。 不暂停
Enable SonicSYNC 是否启用 SonicSYNC (平台共通)
在iOS, Android中使用机型专用的标记管理SonicSYNC的启用。
请确认每个机型专用的初始化配置。
启用
Standard Voice Pool Config 用于标准Voice池的配置:
标准Voice可以播放ADX数据和HCA数据。
参数 说明 预设值
Memory Voices 标准Voice的内存播放数量 16
Streaming Voices 标准Voice的串流播放数量。
针对每个播放数量,需要一个CriFsLoader句柄。
每增加一个Streaming Voices值,请也同时增加一个[File System Config]组的Nubmer of Loaders值。
8
HCA-MX Voice Pool Config 用于HCA-MX Voice池的配置:
HCA-MX Voice可播放HCA-MX数据。
参数 说明 预设值
Memory Voices HCA-MX Voice的内存播放数量 0
Streaming Voices HCA-MX Voice的串流播放数量
每次播放都需要一个CriFsLoader句柄。
每增加一个Streaming Voices值,请也同时增加一个[File System Config]组的Nubmer of Loaders值。
0
Editor Config Unity编辑器用配置 预设值
Enable User PCM Out Mode 是否初始化为用户PCM输出模式。
如果启用此标记,Atom 库将不会输出声音。
在内部,PCM 数据将定期从输出缓冲区中丢弃。
如果需要同时在输出缓冲区时控制音频输出流率(例如录音),则请启用此选项。
禁用
PCM Buffer Length 启用用户 PCM 输出模式时的输出缓冲区长度。 4096 [采样]
Linux Config Linux专用设置 预设值
Sound Output 决定音频输出使用哪个系统。
从预设(PulseAudio)/PulseAudio/ALSA中选择。
PulseAudio
PulseAudio Latency 输出PulseAudio時的延迟设置(单位:微秒)。
执行时发生音频中断时,可以通过增加此设置值来避免此问题。
预设是假设Server频率为60Hz的值。
以较低的Server频率初始化时,则需要增加此设置值。
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 用于低延迟播放的标准Voice池设置
参数 说明 预设值
Memory Voices 用于低延迟播放的标准Voice池的内存播放数量 0
Streaming Voices 用于低延迟播放的标准Voice池的串流播放数量
每次播放都需要一个CriFsLoader句柄。
每增加一个Streaming Voices值,请也同时增加一个[File System Config]组的Nubmer of Loaders值。
0
Use Android Fast Mixer 是否启用Android Fast Mixer。
启用时,通过在内部执行重采样,实现更低延迟的音频播放。
启用
Use Asr For Default Playback 是否以非低延迟播放方式来执行预设的音频播放。
启用时,在低延迟播放未设为启用的Player上,执行明确的非低延迟播放。
启用
[Beta] Use AAudio 是否在Android 8或更高版本的设备上启用AAudio的音频播放。
启用后,兼容设备将能够以较低的延迟播放音频。
此功能是beta版本,音频播放时可能导致意外动作。
禁用
Stream Type 输出音频流类型。
指定安卓系统中的输出音频流类型。
该设置仅在启用 SonicSYNC 时有效。
Music(Default)
[Initializes Mana]复选框
“CRI Mana库”执行(CRI Sofdec用运行库)的初始化。

[Mana Config]组
设置CRI Mana库的初始化参数。
CRI Mana库的初始化参数
参数 说明 预设值
Number Of Decoders 同时使用的Player句柄的最大数量
对每个视频播放数量,分别需要一个Player句柄和一个CriFsLoader句柄。
每增加一个Number Of Decoders值,请也同时增加一个[File System Config]组的Nubmer of Loaders值。
这里应注意的是播放alpha视频时,使用两个解码器。
8
Number Of Max Entries 使用连接播放功能时,可在Player句柄中同时注册的视频总数。
在所有Player句柄中共享。
4
[Don't Initialize On Awake]复选框
此复选框为启用状态时,将不会自动执行Awake内的插件初始化。
想要从脚本动态更改初始化参数时,请将此复选框设为启用。
设为启用时,必须用 CriWare.CriWareInitializer::Initialize 函数手动进行初始化。
Do Not Destroy On Load复选框
此复选框为无效状态时,在切换场景时,将执行程序库结束处理。
想要跨越场景执行音频控制时,或者无需更改初始化设置时,请将此复选框设为启用。
CRIWARE Library Initializer在整个应用程序中只能同时存在一个。
在多个场景中设置了CRIWARE Library Initializer,切换场景后,Hierarchy窗口可能会显示兩个CRIWARE Library Initializer,但第兩个CRIWARE Library Initializer为没有内容的无效对象。而此第兩个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 Asset的加载将不会消耗FileSystem资源。
详细信息,请同时参照 Deploy Type的设置

Number of Loaders

最小所需值可由下述内容之和得出。
  • 使用普通Atom功能进行音频播放(主要为ACB文件的读取)
    • 1(即使读取多个ACB文件时,也是用一个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] / [Memory Voices] 设为内存播放的同时播放数量
    • 将 [Standard VoicePoolConfig] / [Streaming Voices] 设为流媒体播放的同时播放数量
  • 对 [Initialize FileSystem] / [Number of Loaders] 增加上述 [Standard VoicePoolConfig] / [Streaming Voices] 中增加的数量
  • 如果需要进行串流播放,则对 [Initialize FileSystem] / [Number of Binders] 增加AWB文件的“同时最大加载数”
  • 设置 [Initialize Atom] / [Max Virtual Voices] 使其大于 [Initialize Atom] 下面所有 VoicePool 数量的总和

Mana

  • 如果在应用程序中同时播放的视频的音频轨道数超过4,则需用超过部分的数量提高 [Initialize Atom] / [Max Virtual Voices] 的值
  • 将 [Initialize FileSystem] / [Number of Binders] 设置为应用程序中同时加载的Cue Sheet数量
  • 将可以在应用程序中同时播放的最大视频数设置为 [Initialize Mana] / [Number Of Decoders]
  • Alpha视频会使用两个解码器播放。因此在下面的示例中,播放的视频个数相同,但是使用的解码器数量不同。
    • 非Alpha视频 x 6 = 6 (Number Of Decoders)
    • Alpha视频 x 5 + 非Alpha视频 x 1 = 11 (Number Of Decoders)
注意事项:
  • 即使每个参数项都被额外设置,性能也不会有差异,基本上只会增加内存消耗。
  • 根据Cue配置,单个Cue也有可能使用多个Voice。
    • 这是因为Voice消耗数量为Cue中放置的波形数。
    • 例如,在以下情况下,在进度条所示瞬间多个波形重叠,会消耗4个Voice。
      cri4u_component_initalizer_setting_voicecount.png