xml层级⼯具_Waapi批处理⼯具:CA_Waapi_Tools
引⼦
相信很多声⾳设计师在使⽤ Wwise设计软件进⾏⾳频整合的时候,会遇到⼀些重复性很强的⼯作,⽐如:⼤量的导⼊/替换样本,⽣成事件,设定 Switch 等等。特别是当这些重复⼯作的量堆叠上去以后,会占⽤⽐较多的⼯作时间,同时,繁复的机械操作也容易带来⼯作上失误。
我是⼀名游戏声⾳设计师,在了解到WAAPI 后, 发觉结合脚本批处理是可以明显的提升上述类型⼯作的效率的。于是,我尝试⼀边学习Python,⼀边来编写WAAPI脚本。这⾥给⼤家分享这个近期编写完成的WAAPI⼯具程序:CA_Waapi_Tools。
WAAPI,全称 Wwise Authoring API,WAAPI 可以通过编程语⾔与 Wwise 设计⼯具进⾏互动或执⾏命令。关于WAAPI, Audiokinetic 博客上已经有很多的⽂章了,前⼈珠⽟在前,我也就不重复的造轮⼦了。如果需要更多的了解WAAPI、学习WAAPI, ⾮常推荐阅读溪夜撰写的《⼈⼈都能⽤ WAAPI(⼀)概述》。
简要说明
CA_Waapi_Tools使⽤Python 3.7进⾏编写,使⽤了waapi-client 库来实现各项功能。程序已上传[GitHub],欢迎⼤家下载使⽤。
CA_Waapi_Tools 是⼀个⾯向游戏⾳频设计师的拥有可视化界⾯的Wwise批处理⼯具,可以批量化的执⾏⼀些常见的Wwise操作。说起批处理,我们很多时候会想到使⽤XML表作为批处理操作时的数据来源,但是考虑到数据表本⾝也会带来较⼤的编写和管理成本,我在设计这个⼯具设计的时候,便以⽂件的命名作为绝⼤部分的功能的数据来源,尽可能的减少复杂的步骤。
CA_Waapi_Tools功能
两种⽅式的 Events 批量⽣成,并重命名
监控 Window ⽂件夹,⾃动更新 Wwise ⼯程中的⾳频⽂件
批量⾃动导⼊⾳频并⽣成事件
新导⼊的⾳频⽂件会按照 Random Container 的⽅式进⾏组织
多语⾔的本地化样本批量导⼊
Switch的批量⾃动设置
Soundbank 批量设置或⽣成
限制
没有涉及到互动⾳乐的批量导⼊与整合
若⽂件命名不规范,会影响⼀些功能的使⽤
样本的命名不要重名,否则Auto-Update功能可能难以使⽤
Switch的⾃动设置功能在Wwise 2017.1.x 上不⽀持
准备⼯作与⼯具启动
Wwise中需开启Waapi,可在User Preferences页⾯做如下配置:
如⽆法正常连接, 请参考官⽹的相关页⾯进⾏规范的配置,Wwise 2017界⾯略有不同
对于第⼀次使⽤本⼯具的⽤户,建议使⽤前先在SVN/Git/P4v备份Wwise⼯程以防出现设想之外的⼯程修改
⼤部分较复杂功能的按钮都有Tips,请注意查看
⼯具的启动⾮常简单:先打开 Wwise ⼯程,再打开CA_Waapi_Tools,如CMD界⾯没有出现未连接等提⽰,即为正常,并会呈现主界⾯,如下图
主界⾯功能模块
① 对特定类型的Containers批量⽣成Events 并重命名
适⽤场景:在Audio Import时选择 Template, 或者选中需要⽣成Events的⽗级Hierarchy,可以⼀键⽣成⼤量 Events, 且不需要⼆次命名。
②监控某⼀Window ⽂件夹下的 Wav⽂件的新增或修改,可⼀键更新Wwise⼯程中的同名 Wav ⽂件,或新增Random Container并同步⽣成Event
适⽤场景:新建⼯程时⼤量样本的快速导⼊和创建事件;更新⼯程时⼤量样本的⾃动替换和更新;多语⾔的本地化样本批量导⼊
③对选中的Containers依据命名进⾏Switch的⾃动指配
适⽤场景:⼤量的Containers需要配置到各⾃的 Switch Container下并设置
④ 对选中的Events 批量⽣成同名Soundbanks;批量修改 Soundbanks的Inclusion
适⽤场景:Soundbanks的批量⽣成或修改
点击菜单Options –> Config 打开Config界⾯:
⑤功能②的Windows监控⽬录以及 Containers, Events⾃动导⼊/⽣成的⽬标Wwise Path⑥功能①和②
的 随机规则的⾃定义选项⑦功能①模块的Events⾃动⽣成的⽬标Wwise Path⑧功能①模块的 重命名规则的配置xml⑨功能④模块的SoundBanks ⾃动⽣成的⽬标Wwise Path
功能模块①:⾯向Container 的Event 批量⽣成
本模块可实现:
1. 选中Folder或者Actor-Mixer后,可以对其所有指定类型的⼦级Containers批量⽣成Events,并根据重命名规则进⾏重命名;
2. 开启订阅模式后,将记录下新增(包括Audio Import导⼊)的指定类型Containers。可以对这些Containers批量⽣成Events并重命
名。
1. 在红⾊区域选择好需要批量⽣成的Container类型:
如果对象类型不是Sound,下拉框请选择 Except Sound,并且勾选需要的Container类
型 ,可以多选
2. 在勾选完Container类型后可以:
1. 在Wwise的Audio⾯板中选中⼀个或多个的 Folder或者Actor-mixer, 然后点击 ,便可将其⼦级中符合
步骤1) 设定的Containers批量⽣成Events, 并重命名
2. 订阅新增Containers:
1. 点击按钮,开启订阅模式,此时会开始记录下任何新增的、在步骤1)中所设定的Containers
2. 点击 按钮,会将这些记录下来的Containers批量⽣成Events,同样会重命名
扩展选项:
1. :由于很多时候Random Container的命名不适合过长,⽽⼦级Sound 的命名往往与wav源⽂件相同,因此以
Random Container的⼦级来执⾏重命名是更优的默认选项。
2. 假如在订阅模式下需要清除已记录的Containers, 可以点击
3. 关于重命名的规则可以在Config页⾯进⾏配置
功能模块②:⾃动Update⾳频⽂件,批量⽣成相关Container, Events
步骤:
1. 点击按钮 ,开始监控Windows⽂件夹(需要⼿动建⽴默认路径D:\MonitorWavsFolder,可在Config⾯
板内修改):此时在这个⽂件夹内新增或修改的wav⽂件都会被记录
2. 点击按钮, 会将步骤1)中记录下的wav⽂件,⾃动根据随机命名的规则进⾏整理,并更新到Wwise⼯程中去,会发
⽣以下三种情况:
3.
1. 如⼯程中有相同命名的Sound SFX, 该SFX会被⾃动替换
2. 如⼯程中没有同命名Sound SFX, 但是存在符合随机命名规则的兄弟Sound SFX, 会添加到其⽗级Random Container层级下
3. 如⼯程中没有任何Sound SFX满⾜以上两种情况,则视为新增样本,将会以Random Container 的结构导⼊,并⾃动⽣成
Event
扩展选项:
a. 除了常⽤的以SFX导⼊外,也⽀持以 Voice导⼊,并可以指定导⼊的 Language(注意:Language如果⾃定义输⼊的话,命名必须与Wwise⼯程中⼀致)
b. : 对于需要多语⾔的Wwise⼯程,在导⼊Voice的时候要格外注意导⼊的 Language,在默认配置(即不启⽤这个选项)的时候需注意:
1.
1. SFX 和 Voice 最好不要⼀次 Auto-Update
2. 不同language 的Voice 也不要 ⼀次性的 Auto-Update
3. 不同language的同⼀句话,即⼀个Sound下的不同Language样本,推荐使⽤完全⼀样的名字, Auto-Update 会⾃动导⼊同
⼀个Sound内
c.启⽤选项:该模式适合所有样本,包括不同Language都没有重名的命名风格。Auto-Update时会完全根据wav⽂件的命名导⼊,⽽不受 扩展选项a) Imports As 设定的影响
d. 在Auto Update遍历Wwise⼯程时,可以选择不同的 “Inclusion Option” ⽅案来定义有效的Sound(SFX or Voice):
1.
1. Only Currently:这个模式下,仅会Update 当前平台Inclusion Enable的Sound
2. Within Unlinked: 默认模式,只要有⼀个平台的 Inclusion是 Enable的,即为有效,可以被Auto -Update
3. Ignore Inclusion: ⽆视Inclusion选项, 只要是Sound,都会 Auto -Update
e.:可以勾选新增的Containers是否要⾃动⽣成Events
python处理xml文件功能模块③:Auto Switch Assignment
假如你有⼀堆Container_X需要拖放⾄各⾃的Switch Container 下,并需要设定其绑定到Switch_ABC中的 Switch_a(⼀个Switch Group中的某个Switch), 这个功能可以帮你批量化快速完成!(注意:Wwise 2017.1.x 不⽀持该功能)
事前准备:
1. Container_X 的命名必须包含有:Switch_a 和SwitchContainer(想要指派的Switch Group及Switch)
2. 这些SwitchContainer需要放置在⼀个Actor-Mixer下
步骤:
1. 选中⼀个SwitchGroup,即例⼦中的Switch_ABC,并点击
2. 选中⼀个包含SwitchContainers的 Actor-mixer, 并点击
3. 在wwise⼯程中,选中所有Container_X后,点击
扩展选项:
1. :该模式下,在步骤3)中,也可以选中Container_X的⽗级Hierarchy后进⾏Auto Switch Assignment. 并且可以筛选
Hierarchy下特定类型的Containers
2. 假如勾选了 ,在步骤3)之后,会⾃动的将 Containers的命名成Switch_a
(例如Container名:CharactorA_Dialogue_Map002_Line015_oldman, 最后会命名成Switch_a的名字: oldman)
功能模块④:批量Soundbanks ⽣成与修改
本模块可以批量⽣成或修改Soundbanks
步骤:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论