menu
 

《巫师之昆特牌》和《流浪法师》| 我们如何同时开发两款游戏

游戏音频

简介

大家好!在深入探讨《巫师之昆特牌》和《巫师之昆特牌:流浪法师》(以下简称《流浪法师》)之前,我们先来介绍一下自己以及在 CD PROJEKT RED 的经历。

马切伊 – 我是一名声音设计师。在最初加入 CD PROJEKT RED 的时候,我负责的是《巫师之昆特牌》的音频 QA。在做了几个月的母带制作 QA 之后,我获得了在《巫师之昆特牌》音频团队担任声音设计师的机会。在马特乌什和其他同事开发《流浪法师》时,我主要专注于《巫师之昆特牌》,同时向他们学习各种专业知识并为其主要项目提供支持。在那之后,我开始更多地参与到《流浪法师》项目中并协助完成了游戏的开发。目前,我全面负责《巫师之昆特牌》及所有衍生项目。

马特乌什 – 我目前担任首席声音设计师。在最初加入 CD PROJEKT RED 的时候,我负责的是《巫师之昆特牌》的音频 QA。后来,我成为了《巫师之昆特牌》音频团队的声音设计师。在公司决定启动《流浪法师》项目时,声音设计团队委派我主导这个全新《巫师之昆特牌》扩展包的开发并为此构建声景和解决方案,同时负责《流浪法师》开发团队的所有音频相关事务。

我们在即时服务游戏的开发当中学到了什么?

首先,先向大家简要介绍一下《巫师之昆特牌》项目是如何运作的以及在这当中我们学到了什么。

《巫师之昆特牌》是一款关于选择和后果的卡牌游戏。牌技是您最强大的武器。您可以选择一个阵营,组建一支军队,在丰富多样的游戏模式中向其他玩家宣战。这里有各具魅力的英雄、强大的法术和奇妙的技能 – 数百张卡牌等待您收集。开动脑筋创新战术,才是决胜之道。敌我双方各有近战、远程两排,分别具有不同的战略意义。战力高于对手,即可赢得小局。三局获得两胜,即可赢下战斗。起始手牌为 10 张,对局开始后即可随意打出。用纯粹的蛮力碾压敌人,或是用精巧的计谋智取胜利 –《巫师之昆特牌》独特的回合制游戏方式拥有无限战略可能,等待您来发掘。

公平而有趣的进度系统,让收集竞技卡牌的过程变成纯粹的乐趣 – 在《巫师之昆特牌》中,您只需专心打牌,不用有任何负担。精美的手绘画面、震撼的视觉特效,让每一张卡牌、每一个战场和每一次战斗都栩栩如生。《巫师之昆特牌》不仅好玩,而且好看。您可以在 PC 端通过 GOG.COM 和 Steam 免费下载《巫师之昆特牌》。另外,也可在运行 macOS 的 Apple M1 Mac 以及 Android 和 iOS 平台上游玩。

《巫师之昆特牌》的开发团队经历了相当大的演变。从最初一个很小的团队,发展到现在将近 100 人。在这当中,我们尝试了各种规划和履行职责的方法。有些细心的玩家可能也发现了,项目层面时不时会有一些变动。不过有一点没有改变,我们的目标只有一个:制作一款好玩又好看的竞技卡牌游戏。为此,我们必须为新发布的内容提供足够的支持。有鉴于此,作为音频团队,我们必须建立相应的流程和管线,以便尽可能地节省时间,同时避免被过多的技术任务牵累。

我们每隔一段时间就会推出一个扩展包,其中包含不定数量的新卡牌和可供玩家使用的装饰品(如硬币、卡背、牌桌和新的 3D 领袖模型)。同时我们还引入了新的玩法机制,而且大部分都要配以相应的音效。

为此,我们想了好几个解决方案来为自身管线提供支持并尽可能提高其执行效率。比如:

  • 标准化的素材响度 – LUFS 积分响度
    我们发现,在响度标准不明确的情况下添加新的素材会给后续工作带来不便。除此之外,还会大大增加需要的混音次数。为此,我们最初的技术音频设计师安东尼•布雷斯林 (Anthony Breslin) 做了大量的工作。他将游戏音频分成了不同的类别,并为其指定了 LUFS 积分响度标准。通过创建素材并详细了解应当达到的响度级,我们可以轻松制作素材并据此做出创作决策。那有没有减少需要的混音次数呢?显然没有。目前,我们还在做这方面的工作。不过在上层,游戏会自行混音。另外,Wwise 中音量滑杆的调节步幅为 +/- 3dB 而非 +/- 12dB。该系统与音乐和旁白相结合,在响度方面也有统一的标准。这让《巫师之昆特牌》和《流浪法师》的混音更轻松,而且还能为所有支持的平台提供所需的品质。
  • SoundBank 组织和 .PCK 文件使用
    作为重点负责《巫师之昆特牌》视觉效果和音频技术的程序员,托马什•迪特里希 (Tomasz Dietrich) 将 Wwise 集成到了我们的 Unity 工程中。鉴于游戏本身的特点和美学设计,我们面临着这样一个挑战,即在谨慎使用存储空间和内存的同时尽可能提供优质的音频。为此,我们基于 SoundBank 管理将 .PCK 文件用在了工程中。牌桌或音乐等素材的数据包包含素材的 SoundBank 以及与素材关联的所有流播放文件。卡牌、装饰或玩法效果的数据包则几乎全部由 .bnk 文件组成。这种结构跟美术团队在 Unity 引擎中采用的素材包逻辑对应,提高了存储空间的使用效率。另外,鉴于引擎中对美术素材和玩法逻辑的处理方式,我们选择了由系统自动完成诸多音频包的指派。这让我们的工作更加轻松,游戏的内存管理也更高效。借助 .PCK 文件,我们可以为所有支持的平台(尤其是 Android 和 iOS)提供绝佳品质的游戏音效。
  • 为各个扩展包创建有关音频要素的文档
    试想一下这种情况:新的扩展包即将推出。你大概知道自己要制作什么类型的卡牌,了解扩展包要讲的故事、会出现的角色,以及即将推出的扩展包采用的艺术风格。当然,音频也要融入其中。对此,我们创建了一份有关音频要素的文档。它不仅包含了前面说的各种信息,还给我们提供了一个思考的空间。在创建素材时,我们可以商定要实现怎样的声音效果和声音氛围,确保参与到项目中的所有人朝着同一个方向努力。这样不同人员创建的素材之间就不会出现大的出入,项目之外的人也能轻松参与其中并提供相应的帮助。同时,也能确保素材在更大范围内的一致性(即给定阵营的卡牌具有相似的设计)。
  • 利用自定义工具在工程中创建卡牌和装饰层级结构
    随着游戏的不断扩展,Wwise 工程不仅纳入了新的内容,还引入了新的解决方案。我们发现,手动设置每张卡牌非常耗时。所以,我们必须想办法解决这个问题。为此,我们团队的另一位技术音频设计师巴勃罗•巴兹 (Pablo Baz) 专门构建了一个工具。藉此,我们可以使用 Wwise Authoring API 在几分钟内为卡牌以至整个扩展包创建相应的结构。这样可以把流程缩短好几天的时间。后来,马切伊对这一工具进行了扩展,以便对硬币和卡背做相应设置(同样要设定 RTPC 曲线)。有些素材不在此设置的处理范围之内(如游戏牌桌和音乐装饰)。它们的结构更为复杂,要做更加精细的处理。对此,我们构建了空白的结构以便在创建新的素材时复制。

我们确实取得了很大进步,不过也给自己留出了空间,确保不会被素材制作牵累,也不必顾虑哪里需要改进。另外,我们也在开发《巫师之昆特牌:王权的陨落》并对《巫师之昆特牌》从测试到发布的重构当中学到了很多。

《巫师之昆特牌》– 封测版

《巫师之昆特牌》– 发布版

gwent-closed-beta

gwent-release-version

这个过程让我们明白了很多事情:要调整心态,要更加务实,抓住机会不断改进,不要怕回头。这个过程充满了困难和挑战,但也让我们积累了专业技能,帮助我们确立了更好的做法。而且,我们可以把这些做法推广应用到更大的项目中。 

下面我们来看看 Wwise 工程吧!

对于《巫师之昆特牌》和《流浪法师》,Wwise 工程的内容被分为了九个部分(工程中有 Default Work Unit,但它是空的):

1. boards – 每副牌桌都有与之对应的 Actor-Mixer。我们在其中存放了两个牌桌声音分层:

    1. blanket – 该基础分层在整场对战中循环播放,其强度会基于对战阶段变化。
    2. reactables – 该分层主要由一次性声音组成。在玩家点击牌桌上的特定元素或区域时会触发这些声音。

对于每副牌桌,我们使用两个基础事件 – 一个用于开始,一个用于停止。而且,每个可反应物都有与之对应的事件。在特定可反应物被激活时,事件就会被触发。
每副牌桌都有自己的 SoundBank 和数据包,并会通过几个 RTPC 值进行实时调整。其中最重要的是 game_intensity 值。

2. cards – 它们是工程的主要部分。我们所有的卡牌素材都存放在这,并分组存放在了不同的扩展包下。每张卡牌都有对应的 Work Unit 和 Actor-Mixer,相应容器包含用于所含卡牌的标准素材(对于《巫师之昆特牌》,还有付费素材)。卡牌的 Event 和 SoundBank 结构大同小异。每张卡牌都有对应的 Event 和 SoundBank(《流浪法师》有一个,《巫师之昆特牌》有两个)。

3. gameplay_vfx – 这部分包含与游戏阶段视效对应的音效。所有这些都是对玩法机制的视听再现。

这些音效由引擎中的视效系统使用音频团队提供的 Event 名称自动触发。每个音效都有相应的视效,其中大部分分为三个元素: 

    1. direct – 该声音直接在游戏素材上触发。
    2. projectile – 该声音在抛出投掷物时触发。
    3. status – 该声音在目标素材上触发。

另外,gameplay_vfx 素材还根据效果的目标(卡牌、战排、桌边或牌桌)进一步分为了不同的版本。
音效的所有元素单独存放在与音效对应的 SoundBank 中。

4. leaders – 跟卡牌一样,领袖也分组存放在了不同的扩展包下。对于所有的领袖,我们都做了完全动画化的 3D 模型。每个领袖都有独特的咕哝声,有的还配有拟音。各个领袖通用的声音(如大部分拟音、脚步声和武器声)存放在单独的 Work Unit 中。就算有些领袖的装饰不一样,也会存放在共用 Work Unit 中,因为触发领袖声音的引擎系统对所有领袖来说都是通用的。领袖系统基于通用素材共用的 Event 和 Switch 以及特定领袖特有素材的单独 Event。

5. Ornaments – 跟领袖一样,卡背和硬币纯粹是游戏的装饰元素。它们存放在通用 Work Unit 中:一个用于卡背,一个用于硬币。除此之外,其还为同一类别的各种素材设置了单独的 Event 和 SoundBank。游戏会根据 Switch 值选择正确的声音。这些 Switch 值沿用游戏引擎中设置的条目 ID。 

6. cutscenes – 技术上来说,游戏有一段展示游戏流程的过场动画。不过,它不包含任何特定的音乐或旁白。所以,结构非常简单。

7. global_vo – 这部分包含用于对游戏中的旁白实施混音的素材。它将整个声部结构分为 normal、important 和 shop 并据此实施混音。台词本身由 Unity 引擎处理,Wwise 会将其作为外部源加入到混音中。

8. gui – 所有与游戏 UI 元素对应的素材都存放在这。它们按游戏阶段做了划分(如 shop、deck builder 或 gameplay)。另外,还有用于存放多个阶段使用的声音的全局 Work Unit。 

另外,我们还在 Wwise 工程中为《流浪法师》做了专门的设置:

1. cutscenes – 这部分跟《巫师之昆特牌》一样,不过包含的元素更多,因为游戏中有更多过场动画。每段过场动画都由音乐、音效和旁白组成。所有过场动画的启动和停止都是通过为其创建的相应 Event 实现的。所有与特定过场动画对应的素材全部放在其专用的 SoundBank 中。

2. lab – 这部分包含与实验室(游戏中心)关联的所有声音。它被分成了包含 UI 音效的文件夹和包含实验室氛围的 Actor-Mixer。实验室的每个互动元素都有独特的 UI 音效。这样方便将实验室的不同部分区分开来。地图、魔法书以及 UI 中可见的其他元素都配有自定义音效。氛围部分包含实验室的更多剧情声分层 – 整体的基础分层、发声体的声音以及用于突显 UI 元素的音效。前面两种让实验室的画面听起来很好玩,让玩家想要探索实验室,并避免在实验室呆一段时间后感到无聊。后面一种使得实验室的特定元素更加突出,可以在玩家逐步解锁新的实验室部分时给其以成就感。当然,所有这些都在信息分层之上。

3. map – 地图是游戏中很重要的一个部分,所以它的 Wwise 结构也相当复杂。它被分成了与地图各个部分对应的 Actor-Mixer:

    1. battle transitions – 所有过渡到战斗和从战斗过渡的声音都存放在这。
    2. card actions – 这里的声音与玩家在造访 Place of Power 时可对自己的卡牌采取的操作对应。
    3. events – 所有地图事件都存放在这。在游戏当中,玩家会遇到不同类型的事件。这些事件会给玩家带来优势或劣势(取决于玩家的选择)。
    4. nodes – 这是地图 UI 最上面的分层。它包含玩家点亮或进入地图上显示的节点时触发的各种声音。
    5. pop panel – 当玩家走在地图上并出现可以弹出的面板时,就会触发存放在这里的声音。
    6. rewards – 这里存放有所有与地图上的奖励对应的声音。宝箱声音也存放在这。

除了地图事件,所有声音的对应事件都存放在一个文件夹中。这是因为地图事件的 UI 流程要比其他事件复杂得多。地图事件被放在了单独的文件夹中,并分成了相应的 Work Unit。每个地图事件对应一个 Work Unit。

《流浪法师》与《巫师之昆特牌》有何不同?我们做了哪些调整?

就玩法来说,《流浪法师》跟《巫师之昆特牌》并没有太大区别。它在一定程度上采用了与《巫师之昆特牌》相同的玩法机制。同时,我们决定回归到之前的《巫师之昆特牌》衍生作品 –《巫师之昆特牌:王权的陨落》(以下简称《王权的陨落》),并尝试融入我们的一项叙事功能(即为叙事事件构建声景)。

既然从玩法说起的,那就接着说玩法吧。那么,跟《巫师之昆特牌》相比玩法流程有什么变化呢?

在《巫师之昆特牌》中,最多有 3 个小局;在《流浪法师》中,只有 1 个小局 – 如果输掉,就结束了。这一变化产生的影响已经很大了。牌桌的氛围和音乐还会根据玩家当前所处的回合改变强度。因此,我们不得不问自己一个问题:如果在最大强度下玩游戏,几场战斗下来会不会感到无聊?

还有一个变化是出牌流程。通常,在《巫师之昆特牌》中,玩家开局要从牌组中抽出两张牌,并可选择将手牌中的两张牌换成牌组中的随机牌。在《流浪法师》中,每一回合都要选一张牌,总共有六个回合。如此一来,之前只会偶尔听到很突出的抽牌声,现在听到的次数变多了。

《巫师之昆特牌》

gwentgameplay

《流浪法师》

roguemagegameplay

发现规律了吗?很好。简单来说,混音的动态发生了很大变化 – 原本只是偶尔听到的游戏 UI 音效,现在听到的次数变多了。所以,我们既要跟《巫师之昆特牌》的声音设计和艺术决策保持一致,又要让其听起来像个单独的游戏。这并不是件简单的事情。

哪里的改变最大?UI!
对于《流浪法师》,我们对 UI 画面做了重新设计。考虑到画面上的改变,我们必须对声音效果进行调整。为此,我们从沉重的木质音效转向了更有电影感的奇幻音效(因为主角是位法师,我们将随他踏上创造第一个巫师的旅程)。

除此之外,整个 UI 流程也发生了很大变化。比如,添加了新的中心和菜单,基础版《巫师之昆特牌》中的一些 UI 音效变得多余了。为此,我们必须删掉 Wwise 中的大部分内容,并对工程中的 UI 处理方式进行调整。

《巫师之昆特牌》

GWUI_1

GWUI_2

《流浪法师》

RMUI

三项全新功能
除了前面说的改变,《流浪法师》还添加了三项全新的功能。确切地说,其中两个是全新的,还有一个基于《王权的陨落》的叙事方案。

地图和实验室
这项功能的工作量比较大。为此,我们计划了很长时间,中间做过很多次迭代。之前我们有个宏大的计划,想把地图打造得身临其境,用特定生物群落和声音来反映画面上展示的昼夜循环。最后我们发现,这样很容易被各种任务牵累。为此,我们不得不退后几步,决定哪些事项需要优先处理(注意,就音频而言,《巫师之昆特牌》的更新和《流浪法师》的开发都是由一个团队做的)。 

map

因此,我们决定尽量缩小地图音效的范围。这是个艰难的决定。不过我们一致认为,如果只是某些区域缺少精妙的氛围,并不会影响游戏整体的美感和体验。而且,这样可以帮助我们节省一定的内存和 CPU 处理资源。对于移动设备,内存和 CPU 更是游戏流畅运行的关键。况且,玩家也不会在地图上花太多的时间。

img_rep_v2

实验室的情况则完全不同。它是玩家尽情探索的地方。我们要尽可能把它做得好一点,要给玩家一种身临其境的感觉 – 就好像自己真的置身其中一样。
基于为牌桌制作氛围音效的经验,我们创建了一系列氛围循环和发声体,以便把实验室打造得更加鲜活。之后,我们又把氛围跟 UI 结合了起来。每次玩家把鼠标放在子菜单上,都会触发对之做出反应的声音,以确保各种元素之间协调一致。

RMlab

叙事事件和静态过场
这项功能是在很久以前设计的,那时还在开发《王权的陨落》。我们知道要利用 Unity 的 Flowcharts 功能创建在地图上跳出的叙事事件。那么,它们是如何运作的呢?在进入地图后,会看到对状况的描述和书面解说。在做出决定后,玩家还会听到为事件中的场景添加的音频描述以及音效。

游戏中的事件

roguemageevent (1)

Wwise 结构

RMevent

静态过场的处理方式也是如此,采用了更有电影感的口语解说。不过,动画序列中的旁白部分跟游戏当中触发卡牌台词的方式略有不同。对于后一种情况,我们使用了跟《巫师之昆特牌》卡牌一样基于本地化工具的系统。虽然决定只为《流浪法师》配英语旁白,但是系统已经有了,所以没有必要加入新的东西。不过,过场动画却是另一回事。

《王权的陨落》的系统过于复杂,《巫师之昆特牌》中则根本没有。我们必须找出为《流浪法师》的过场触发音乐、音效和旁白的最佳方法。在做了不同的尝试之后,最后发现最好直接把各个分层作为音效放在 Wwise 层级结构下。这样我们可以轻松设置并完全掌控过场动画的推进。考虑到只有一种语言,我们也就没必要做得太过复杂。另外,有些过场动画在引擎中的处理方式稍有不同。为此,我们决定通过 Unity 而非 Wwise 来为其制作旁白。

过场片段

roguemagecutscene (1)

两段过场的 Wwise 结构

RMcutscene_1RMcutscene_2

UI 音效的 Unity 时间线
这只是游戏制作的最后做的一点收尾,但却给整个工作流程带来了很大改进。起因是我们要设法在中心和菜单之间构建电影式的过渡(尤其是在进入战斗时)。在基础版《巫师之昆特牌》中,我们 VS Screen 的 PVP 风格更明显:目的是给玩家一个简短的介绍,让双方都了解自己将跟谁对战。在《流浪法师》中,它的用途有一些变化。所以,在视觉和听觉上都要重新设计。

对我们来说,算是向前迈出的重要一步。因为在通过动画触发声音方面,基础版《巫师之昆特牌》采用的技术并没有那么精细。 

RMtimeline

小结

因为这篇文章是由两个人共同撰写的,而且两个人对游戏的理解也不尽相同,所以我们决定把这部分内容分成两段。

马特乌什的小结:
在 Audiokinetic 联系我们时,主要谈的是《流浪法师》这款游戏。不过,最终我们决定把两款游戏放在一起说,这样大家可能会有更深入一点的了解。原因很简单:没有《巫师之昆特牌》就没有《流浪法师》。不过,还有一个更深层的理由。在 AAA 游戏开发公司制作规模较小的游戏可能会面临很多挑战。要鞭策自己,要成长为一名专业人士,还要注重作品品质。我深信,在行业内分享自己好的做法非常有必要。在大多数情况下,我们都是不怎么交际的技术宅,希望能打造出最好的电子游戏。在此只是做一点简单的分享,希望能给大家带来一些启发!

马切伊的小结:
在《巫师之昆特牌》和《流浪法师》的开发当中,我学到了很多。首先,能否灵活扩展非常关键。这些年来,我们构建了很多新功能和新工具。这些功能和工具让我们的工作更加轻松,同时也方便对游戏的声景做进一步扩展。如此一来,我们就可以专注于设计,而不用花大把时间去琢磨如何实现。当然,《流浪法师》给我们带来了《巫师之昆特牌》中不曾面对的新挑战。不过,《巫师之昆特牌》为我们打下了坚实的基础。正因如此,我们才得以轻松为新游戏打造独特的音效。

借此机会,我们要特别感谢所有参与制作这两部游戏的音频同僚。同时,还要感谢 Paula Karbowniczek、Tomasz Dietrich、Anthony Breslin、Pablo Baz、Rajmund Krakowski、Krzysztof Kowal 和 Maksymilian Lubiński – 你们真是太棒了!

MaciejTatarynowicz (1)

MACIEJ TATARYNOWICZ
声音设计师
CD PROJEKT RED

马切伊•塔塔雷诺维奇 (Maciej Tatarynowicz) 目前供职于 CD PROJEKT RED 的 Polaris 团队,负责开发全新巫师传奇的第一部。
在此之前,马切伊曾参与开发广受好评的《Cyberpunk 2077: Phantom Liberty》扩展包(已于 9 月发布)。除此之外,他还参与开发过《Cyberpunk 2077》、《巫师之昆特牌》和《流浪法师》。其中涵盖音效制作、技术音频设计、旁白录制和预告片音频。
马切伊于 2019 年加入 CD PROJEKT RED。
除了本职工作,他还在波兰比得哥什 Feliks Nowowiejski 音乐学院教授电子游戏音频。

马特乌什•希曼斯基

首席声音设计师

CD PROJEKT RED

马特乌什•希曼斯基

首席声音设计师

CD PROJEKT RED

马特乌什•希曼斯基 (Mateusz Szymański) 于 2016 年加入业界领先的波兰游戏开发工作室 CD PROJEKT RED 并担任音频 QA 分析师。在不到两年的时间里,他成为了一名声音设计师,并在 2022 年中升任首席职位。目前,由他主导全新巫师传奇 Polaris Project 的声音设计工作。

在此之前,马特乌什参与开发过《Cyberpunk 2077》、《Cyberpunk 2077: Phantom Liberty》扩展包(已于 9 月发布)以及《巫师之昆特牌》、《流浪法师》和《王权的陨落》。

在加入 CD PROJEKT RED 之前,马特乌什曾在 Lionbridge 波兰分公司担任游戏测试主管和高级专员。在更早之前,他还在 QLOC 担任过初级游戏测试员。

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

使用Wwise的MIDI功能制作游戏互动音乐

25.11.2019 - 作者:胡岩鹏

EBP管线概述

EBP是什么? 前不久Wwise 2019.2版本的UE4 Integration推出了一条新的管线,叫做Event-Based...

10.12.2020 - 作者:范润鹏

使用Wwise制作拟真且泛用的多普勒效应

前言...

11.8.2021 - 作者:徐巍

游戏音频存档 | 第 1 部分:基本情况

在电子游戏行业,音频的档案保存是件需要审慎处理的事情。无论是钟情于Demo...

9.11.2021 - 作者:范妮•雷比拉德 (Fanny Rebillard)

《遍体鳞伤(Scars Above)》中的音频优化实践

简介 在本文中,我会试着阐释团队在对《Scars...

14.10.2024 - 作者:Milan Antić

《Alan Wake 2》背后的声音设计 | 第 1 部分 – 区分对白

《<Alan Wake 2>背后的声音设计》系列博文 《<Alan Wake...

19.3.2025 - 作者:Arthur Tisseront & Taneli Suoranta

更多文章

使用Wwise的MIDI功能制作游戏互动音乐

EBP管线概述

EBP是什么? 前不久Wwise 2019.2版本的UE4 Integration推出了一条新的管线,叫做Event-Based...

使用Wwise制作拟真且泛用的多普勒效应

前言...