本教程将介绍如何使用 find_objects 函数来批量获取多个对象。
前面的教程中介绍了用于操作CRI Atom Craft的各种函数,这些函数都是调用一次后可获取一个对象的函数。
find_objects 函数非常方便,只需调用一次就能获取多个对象。
以下将编写在工作单元内的所有波形区域上设置Voice限数组的脚本。
本教程使用了 项目的创建和在Cue上注册波形文件 教程中创建的项目。
没有打开项目时,请打开项目,或执行 项目的创建和在Cue上注册波形文件 所创建的脚本后开始此教程。
选择脚本菜单上的“脚本列表...”显示脚本列表窗口。
按脚本列表窗口的“新建”按钮,使用以下名称创建脚本文件。
脚本的保存目标 | 脚本文件名 |
---|---|
tutorials [CRI] | tutorial05-2_use_find_objects.py |
双击已创建的脚本,用 从脚本编辑器运行脚本 打开。
要通过脚本列表窗口确认脚本概要,按照以下脚本说明来编写。
编写脚本说明后,导入以下模块来用脚本操作CRI Atom Craft。
导入 Project模块 以进行项目操作,同时导入 debug模块 以输出日志。
获取要在波形区域中设置的Voice限数组。
要获取Voice限数组时,与在 游戏数据(ACF, ACB)的输出 教程中获取目标配置相同,使用以下函数。
函数名 | 说明 |
---|---|
get_global_folder | 获取总体设置正下方的各对象文件夹 |
get_child_object | 指定父对象后获取子对象 |
使用以上函数获取Voice限数组可以如下编写脚本。
用于管理同时发声数的Voice限数组是使用 get_global_folder 函数,从总体设置中的Voice限数组中进行获取。
获取了Voice限数组后,使用 get_child_object 函数, 获取Voice限数组文件夹正下方的Voice限数组“VoiceLimitGroup_0”,保存在voicelimit_group变量中。
接下来,使用以下函数获取工作单元下方的所有波形区域。
函数名 | 说明 |
---|---|
get_workunit | 获取工作单元 |
find_objects | 执行递归搜索并以列表格式获取匹配的对象 |
使用以上函数进行波形区域的获取可以如下编写脚本。
使用 find_objects 函数,以列表形式获取工作单元下方的所有波形区域。
在 find_objects 函数中指定“作为搜索根的对象”和“要获取的对象类型”。
由于是获取工作单元下方的所有波形区域,因此是指定workunit变量、"WaveformRegion" (波形区域的类型名),将获取的列表保存在waveform_regions变量中。
从刚才获取的波形区域列表的中逐个提取出波形区域,然后设置Voice限数组。
使用for控制语句从波形区域的列表中提取波形区域。
本教程的脚本编写到此为止。
请保存并执行脚本。
正常运行脚本后,会在工作单元内的所有波形区域中设置Voice限数组“VoiceLimitGroup_0”,显示如下。