版本
Wwise的动态对白系统的核心是对白事件,它是一套规则或条件,用于决定播放哪一条对白。Dialogue Event 可用于表现游戏中存在的各种场景、条件或结果。为了确保涵盖所有情形,Wwise 还可以创建默认或后备条件。
所有这些条件是通过使用一系列状态组和状态来定义的。这些状态组和状态可进行组合以创建路径,这些路径可定义游戏中的特定条件或结果。各条路径于是可以与 Wwise 中的特定声音对象进行关联。在游戏进行过程中,随着各个对白事件被调用,游戏会用对白事件中定义的路径来验证当前的条件。与游戏中当前情况以及各条路径的模式、概率和权重匹配的路径可确定播放哪段对话(如果有的话)。
例如,以下对白事件包含与体育游戏中各个玩家名称相关的状态组。各个状态组里的各个值可组合起来以创建可能存在的不同路径或条件。在本例中,解说员可使用玩家的姓氏或全名。
当没有状态与游戏中的当前情形相匹配时,用户可以创建一条由默认或后备状态构成的路径。这些“后备”路径包含若干个状态组而非状态,并且通常与一个更一般化的声音对象相关联。在前例中,后备路径被关联到声音对象“he(他)”上,而不是某个运动员的名字上。
在 Dialogue Event 中重现了所有条件后,即可将其集成到游戏引擎。当对白事件被游戏调用时,声音引擎返回与匹配路径相对应的音频对象,从而解决这个对白事件。声音引擎随后可以决定是否把这个音频对象插入到一个动态序列中用于播放。“返回一个音频对象”与“将其插入到一个动态序列中”的比例关系不必为1:1。这意味着对于各个被解决的对白事件(Resolved Dialogue Event),被返回的音频对象可以根据需要被多次加入到动态序列中。
注意 | |
---|---|
在创建动态对话时,您与音频程序员紧密合作至关重要,因为许多功能都仅在 Wwise SDK 中可用,包括将单词或短语连接在一起形成句子的能力。 |
由于游戏引擎使用的是对白事件的名称,因此用户可以先创建事件并把它们整合到游戏中,然后再对各个事件的内容进行构建和精雕细琢,此时就无需再把它们重新整合到游戏中了。这给了您极大的灵活性,您可以添加或移除状态,并且能够对不同的声音进行试验,所有这些都无需额外的编程。
小心 | |
---|---|
添加、删除和移动对白事件内的状态组将自动修改路径。虽然此类更改可在 Wwise 中轻松完成,但还是需要程序员介入,因为代码将需要相应更新。 |
为了帮助您轻松识别界面中的对白事件,对白事件由以下图标来代表。
图标 |
代表 |
|
---|---|---|
|
对白事件 |
假定您正在创建一款有现场解说评论的冰球游戏。在玩家射门得分时,您希望现场解说对应游戏中的此动作。
为了设置 Wwise 中不同的可能性和结果,您将需要为玩家、动作、过渡等创建对白事件。每个事件都包含一组您已创建好的相应状态组和状态。您必须为每个条件和结果创建一条路径,然后将适当的语音对象指派给各条路径。玩游戏期间,游戏将依据您在 Wwise 中定义的路径匹配当前状态,以确定要播放哪个语音对象。
下图说明了在 Wwise 中创建的对白事件如何能够生成现场解说“克劳斯(Cross,人名)射门,球进了”。
上图经过简化,以说明状态组和对白事件如何能够用于您的游戏。但是,在大多数情况下,游戏将需要更多包含多种不同状态组和状态的复杂对白事件。Wwise 使您能够建立各种更复杂的情景,可使游戏中的动态对话更真实。
下面展示玩家对白事件的一个复杂一点的例子。注意这个对白事件是如何包含多个状态组的。在您有多个状态组时,选中的状态会创建该路径。您可以为状态组和状态的每个组合创建一条路径,然后为每条路径指派一个对象。在游戏中符合特定路径内的每个状态时,指派给该路径的语音对象将会播放。