每次单击鼠标都会生成具有不同外形、姿态和构成的行走角色,这对拟音师来说既是求之不得的机会又是困难重重的挑战。
不管怎么说,接了活总得做。之前,本杰明·维德恩 (Benjamin Vedrenne) 创建了可以生成 3 亿多个角色的 Random Access Character (RAC) 生成器组件。现在,我需要为这些角色制作拟音。然而,我只有 12 天的时间。为此,我赶紧给本杰明发了一封求助邮件,遗憾的是他这段时间怕是无暇分身。这篇博文将展示我如何运用 Wwise 和 Unity 完成了该设计项目,希望能给对游戏拟音制作感兴趣的诸位带来些许启发和帮助。当然,这里的设计方案并非完美无缺,所以欢迎各位提出宝贵的改进意见。
第 1、2 天:开动脑筋,思考对策,制定方案
从一开始,我就把 RAC 看成一个用来随机生成微观叙事的小组件。每次它都会在特定情境下生成一个迥然不同的角色:一名从森林仓皇逃跑的乔木男人、一位在雨中欢欣雀跃的树莓少女、一个在体育场入口跌跌撞撞的可乐小伙、一群从巢窠离家出走的鸟蛋…等等。
我的第一要务是考虑如何尽量减少所需录音素材的数量,同时最大限度地保证整体叙事的表现力和音色变化的多样性。为此,先得理解 Unity 中生成脚本的工作原理:每次生成新的角色时都会从 50 段行走动画中挑选一段,并从 52 种不同物体中选用 1 ~ 4 种来组成角色。然后,再随机缩放被选中的物体。按照一位数学家朋友的说法,这样最多能生成 331,651,200 个不同的角色,而且还没算上重复项,也没考虑颜色和质地。
在对这个小组件进行一番探究之后,我记下了得用多少种脚步声才能满足大部分动画的音频需求。为此,我保留了以下几种脚步声:轻盈、正常、沉重、小幅拖脚、大幅拖脚以及踮脚。我最初打算录制“醉酒”状态下的脚步声,但很快发现只需把上述几种脚步声打乱重组即可。然而,只有脚步声素材是不够的。我还要加入身体摇摆的声音。刚开始我打算制作三个不同的循环来更加生动地反映不同的行走速度,但最终发现把这种额外的效果做好实在太耗时了。于是,我决定只为每种物体设计一个循环。
然后,又出现了新的问题:是否要设置不同的地面?是否要区分左脚和右脚?是否要区别脚尖和脚跟?通常在这个时候,我们会以为自己对项目有了更深的理解,然后便开始把东西做得愈发复杂精细。但是,所有这些问题都要兼顾现实的交期限制以及项目本身的性质和范围。其实,RAC 比看起来要简单很多。不过,还是把最终设计方案做得简单一些比较好,这样就会有更多的时间来进行优化。
目前的情况如下:
52 种物体 * 6 种脚步声 * 7 种变化版本 = 2,184 种不同的脚步声
+
52 种物体 * 1 个循环 = 52 个循环
= = 需要 2,236 个素材。
为了进一步减少所需素材数量,我发现有些物体其实可以直接通过在 Wwise 中调节播放时的 Pitch(音高)参数来进行模仿。比如,小塑料盒的录音可同时用于共振频率相对较低的大塑料盒,只需复制 Wwise 中的层级结构并将其音高调低即可。最终,我估计大概需要 35 种不同物体的录音,总共会生成 1,560 个素材。
然后,我开始试着在纸上绘制 Wwise 层级结构,看看如何将其绑定到 Unity。最终,我决定采用下面的层级结构来让 Unity 直接按照如下方式拼接 Event(事件)的字符串名称:
由动画上标记的每个脚步事件依据脚步声类型来触发一个特定的函数。然后,我便可汇集随机挑选的物体的名称并将其用于生成当前的角色。
我提取了几行负责 Wwise 和 Unity 之间通信的代码
第 2 天结束:我在组件的主脚本中添加了必要的代码行,并使用小鼓声音样本对系统进行了测试 – 居然成功了!
第 3、4、5、6 天:搜集用来制作拟音的道具,在巴黎临时搭建录音棚,简单地做一些尝试
商用脚步声素材库没几个收录有长脚会跑的鸟蛋、蹦蹦跳跳的树莓或叮叮当当的可乐瓶,所以在这没什么用处。作为一名彻头彻尾的互动拟音爱好者,我决定不参考 RAC 中的视频或图像,完全凭着自己的直觉来制作拟音。而且,我很期待到底会在 Unity 中整合成什么样。结果在初次听到一起实时播放的拟音素材时,效果好得完全超出了我的想象!
第 3 天:我准备了第一组拟音道具
在制作拟音时,我使用了双单声道录音设备,并将超心型指向话筒和全指向话筒设成了同相。我有 4 整天时间把树叶、空啤酒罐、壶铃、水果、树枝等各种道具拿来上摇下晃、前敲后打、左摩右擦。
其中一半时间用来录音,剩下时间在 Reaper 中剪辑。
所有拟音剪辑全部在 Reaper 中完成
第 7、8、9、10 天:完成音频设计师的例行工作,运用简单的动态技巧增强叙事的表现力
行走角色在 Unity 中慢慢变得鲜活起来,每一种新的道具都会融入不同的叙事表达和声音特质。
为了让声音在整体上更有活力和节奏,我在 Wwise 中为脊柱运动总线适当应用了闪避压缩,这样的话每次迈出脚步都会马上减弱躯干声音循环。在有些动画中,我还专门使用了其他一些事件来让脊柱运动声音在某个瞬间听起来更响亮或更轻柔(比如在醉酒动画中角色差点摔倒的时候)。其他动画也会专门调节双脚和躯干声音的相对音量,以此更加生动地反映角色不同的行走速度。
第 11、12 天:兼顾用户的一般体验时长,并以此设置环境声、时区
在第 11 天,内容已经基本处于完成状态。接下来,我需要利用环境声来进一步加强组件的随机叙事。
为此,必须综合考量用户的体验时长,因为它将直接影响到内容本身以及环境声的设计。比如,应将体验时间设为多长?最终需要多少种环境声?如何在用户生成的不同角色之间建立关联?
游戏中的环境声一般不会引起太多注意,否则会出现重复的风险(在微观层面上,WAV 文件会反复循环;在宏观层面上,系统自身性能也有限)。因此,倘若能以更加简单的方式来设计环境声音轨,通常可以将内容制作得较为扁平,以此来剪掉文件中的大部分突兀元素。考虑到一般用户并不会在 RAC 中体验几个小时,所以我可以利用一些重要事件来在几分钟之内“给出”所有内容(就像法国火车站的广播语音一样),从而进一步增强叙事的表现力。
我的想法是创建在同一时间平行发生的故事,有点像吉姆·贾木许 (Jim Jarmusch) 执导的电影《Night On Earth》:处在不同时区的 5 名夜班出租车司机在同一时间遭遇着不同的事情。这些环境声会由系统随机挑选,在切换回已经播过的环境声时,会像从未停止一样继续进行播放。这最终赋予了 RAC 以魔幻体验感和现实时间感,就好像发生了什么事情,然后所有这些生物在不同地方一下子全都活了过来。
***
这 12 天可以说非常紧张。我到现在都很惊讶自己居然可以运用现有的技术完成如此大量的工作。可以说,这个项目将最原始的拟音设计工作与一些最新的互动工具完美地结合到了一起。最后,我希望各位也能像我一样喜爱 RAC 中各种稀奇古怪的动物造型,并期待将来可以看到有越来越多的互动项目推动拟音技术的发展。
Random Access Character 最初由本杰明·维德恩为 ProcJam 2017 设计。
在 2018 年,它作为一种互动组件于柏林的 Pictoplasma 艺术节展出。
如需查看更多信息和项目,请访问本杰明的个人网站 (http://glkitty.com/)。
评论