|
发表于 2020-4-10
|
|阅读模式
关于游戏动态音乐设计的思考(1)设计分类学
; T e! b& R( R; r9 T% q% u9 H, Q
( [2 X/ f1 F$ r9 qPart1-设计分类学
1 a- e% q Q3 M6 e4 G引子
X5 Y% X) @ o0 g( F大概是在2015年,我得到了自己第一份在游戏公司的工作,然后偶然接触到了Wwise(当时居然是通过一位美术总监同事的介绍……)。在那之前我的职业目标还是为游戏谱写音乐,尽管对互动音乐、音乐生成与算法作曲已有兴趣,但从未想到过这些东西就存在于从小便热爱的视频游戏中……然而在我读完Wwise互动音乐相关文档后,便意识到自己可能在从事世界上最棒的工作!但由于当时国内还不存在音乐设计师这样的职位(可能现在也没多少),并且还没有多少游戏公司充分意识到互动音乐的价值(也许现在已经好多了),我只能利用业余或者自主加班的时间进行有关游戏互动音乐的“地下研究”。+ m2 j- ?: B6 L$ ] f+ n
出于对游戏互动音乐设计方法的更多可能性的好奇,我便开始了刷Google和Youtube的学习之旅……最初Youtube频道Music By Kejero给了我非常多的启发,他的系列视频中对Vertical Techniques、Horizontal Techniques、Stingers、Transition Segments、Hybrid Techniques设计方法进行了系统地介绍,其中关于不同技术在叙事中作用的讲解也使我开始思考技术与表达的关系。再之后的几年中,我刷掉了能在Youtube上找到的讨论游戏互动音乐的所有视频、读掉了Audiokinetic Blog、DesigningMusicNow、Melodrive Blog这些网站上绝大多数与游戏互动音乐相关的文章……这个过程让我回顾了游戏音乐的发展史——从蜂鸣器/Chiptune到自适应管弦乐,从硬件FM音源到算法生成打击乐(Intelligent Music Systems);让我了解到91年就存在的运用了Hybrid Techniques + Procedural Audio的天才引擎(Lucas Arts - iMuse)、了解到存在着开创性地将音频与MIDI技术混合使用的疯狂而巧妙的音乐设计(Get Even!)
0 S% K) y3 b: a1 M5 W& n现存学习材料存在的问题- b; [# y5 @: h& l" f. F; T( \6 a9 f
学习的确是快乐的,然而在试图将所学转化为实践的过程中我意识到几个问题:
0 v" k$ A2 W. Y9 y7 w% R* i许多介绍游戏互动音乐的材料,侧重点都是受游戏引擎驱动的音乐设计,在音频引擎不受游戏引擎驱动情况下的设计很少被提到;* T8 J( _/ N( O* y1 n# W
游戏中对于不同技术的使用总是“你中有我我中有你”,这也是为什么会出现Hybrid这种称呼(而Hybrid对Kejero与Olivier Deriviere来说可能指的又是极其不同的东西);
9 \0 a/ n' m+ S处理方法的称呼方式不固定——Vertical Techniques也被称为Vertical Remixing、Layering、在某些地方甚至直接以Multitrack作为“Jargon”来代表这类技术;
8 U6 q" W$ `+ i通过混音技术实现的互动音乐创作手法没有得到足够的关注,而这恰恰是Olivier Deriviere的Hybrid(Audio+MIDI)方法中的复杂性所在,也是更加复杂的音乐设计可能性得以存在的基础。# g7 | M. |/ W, Y
对策+ w- c' L2 P: N q
Michael Sweet曾说:
/ k5 w& @0 _2 X" @7 S: q3 L“…并不排除许多游戏同时利用多种自适应音乐技术这一事实。但是,如果作为作曲家的我们要更好地为游戏编写音乐,那么就应该为每种技术的使用组织一些通用准则。” 4 Q# K) ]. s9 R" Q, {+ z& B
尽管艺术创作的可能性是无穷无尽的,但就像我们在日常工作中需要Shortcuts与工程模板——归纳总结处理方法以消除迷惑也像优化工作流程一样,有助于我们降低试错成本、尽快制定出贴合游戏且可靠的音乐设计方案,并将更多的精力投入到精巧复杂的具体设计及实现当中,为此,我便尝试制定了一套处理方法的分类标准,最初目的是指导自己的音乐设计实践,在这里分享给大家。6 ~* R# i* Q) a, ]8 Z" R
User Driven方法与Game Driven方法
& }) }( m# X' J; p; R7 p/ Q首先,参考Wwise中定位及辅助发送的概念,根据音乐表现是否受游戏引擎状态的影响,我将可能存在的音乐处理方法划分为两大类:User Driven方法与Game Driven方法。如此,独立于游戏引擎运转的动态音乐机制便不会丧失该有的关注,从而能更好的被注意到和开发。
7 H$ h$ ]6 m% p( K1 O4 \% b, d( ]Static方法与Dynamic方法2 V, s! o2 ^% C
然后,根据设计实现后结果是否能够按预期执行,将音乐设计技术进一步区分为:Static方法与Dynamic方法。如此,便可对音乐设计问题中的线性与非线性进行更好的辨别,从而选择合适的处理手段。0 g+ |# H6 b% Y; p8 h3 \
注:由于绝大多数情况下我们无法预料玩家在游戏中的行为,所以采用Game Driven方法进行设计的游戏音乐都可以被描述为“动态的”(Dynamic);然而由于存在由实时过场动画驱动不同音乐片段进行线性播放的设计,因此即便音乐未被渲染成一段音频文件,这种Game Driven的设计也算是“静态的”(Static,所以Game Driven Static方法还是存在的)。然而因为这些都是游戏驱动的,区别只在于游戏驱动的过程是否是线性的,所以Game Driven方法的Static / Dynamic与否可不标明。1 M6 T1 |; S0 D6 a |" x3 c: [1 `
Mixing方法与Transition方法
) S; ]# L1 ]/ n- KMichael Sweet在他刊载于DesigningMusicNow的文章中将六种最常用的音乐设计方法分成了Vertical Remixing(Layering)与Horizontal Re-Sequencing两大类。这也是我们通常讨论游戏互动音乐时会想到的最流行的技术术语。 ) k6 y. H1 E& I6 {9 _
就如Vertical Remixing(Layering)类方法的名称及其本质一样,无论具体使用的技术如何复杂,其实都可以被归结为某种“与混音相关”的问题。
& t* G0 d0 l9 z# ]! j5 C而Horizontal Re-Sequencing类方法实际上都是在处理音乐段落的切换与切换过程中的过渡的问题。因此,根据设计所处理的问题,我将处理方法进一步划分为Mixing方法与Transition方法两类。: u. r0 {% \: _
小结0 d+ ^6 r$ V+ K8 F+ t
如此,根据上面提出的分类方法,我们将得到8种可能的音乐处理方法: ! O5 v1 ~# g$ I% A8 c
User-Driven Static Transition——不受游戏状态影响的结果可预期的音乐段落处理方法
; W0 }. w w0 D; lUser-Driven Static Remixing——不受游戏状态影响的结果可预期的音乐混音处理方法
: J. q7 I1 {* t$ e% B: \1 O; [# GUser-Driven Dynamic Transition——不受游戏状态影响的结果不可预期的音乐段落处理方法
$ [4 a: G7 E8 ?) @3 RUser-Driven Dynamic Remixing——不受游戏状态影响的结果不可预期的音乐混音处理方法
0 I9 S- A; ~' o) H- VGame-Driven (Static) Transition——受游戏状态影响的结果可预期的音乐段落处理方法
. P: k( n( K1 a# F9 v' CGame-Driven (Static) Remixing——受游戏状态影响的结果可预期的音乐混音处理方法
3 n5 y, V* X2 E# s4 AGame-Driven (Dynamic) Transition——受游戏状态影响的结果不可预期的音乐段落处理方法
! P1 T( u5 w- ], v3 z# G: N6 C x: S/ LGame-Driven (Dynamic) Remixing——受游戏状态影响的结果不可预期的音乐混音处理方法。
9 F$ V0 E, i! ~3 X3 e' a' W注:因为这些都是游戏驱动的,区别只在于游戏驱动的过程是否是线性的,所以Game Driven方法的Static / Dynamic与否可不标明。
/ D% H- K5 j2 V v解析Interactive Music Hierarchy各结构单元的功能定位
( A7 T" r0 \) v% p( z/ s& ~& d在有了新的分类标准后,便需要将其用作理论来指导设计实践,而我们进行实践的工具便是Wwise。所以在实践之前我们也需要从新的角度对工具进行理解。0 p1 Z/ G/ P; j: {" P
接下来我将展示一张思维导图,以便分享我对Wwise互动音乐系统结构的认识。. Z5 P1 d7 C& h1 M8 q+ ]4 Z2 i7 f
您可以在微云页面 ( 链接:https://share.weiyun.com/5XNv7gf ) 获取该导图的PNG文件。 v# m/ k4 x X5 }3 J
9 a4 q0 ?+ u3 p" [- l在上图中,我使用了不同的颜色来标记各结构单元在音乐设计工作中所承担的责任。
( h [3 v' \8 z) V* x+ a7 d图中红色方块代表”可用于User Driven类的处理方法“;蓝色代表”可用于Game Driven类的处理方法“;紫色代表” 可用于User Driven与Game Driven两类处理方法“。黄色代表Transition Manager(即Property-Transitions选项卡),由于其可被用于于各种类型的设计当中,与所采用的处理方法是User Driven还是Game Driven无关,故单独列出。而绿色则代表自2019.1.0引入的Music Event功能,由于其为音乐设计的可能性带来了极大的扩充,因此也单独列出,下文中会对其进行详述。
- U3 }* M6 h& Z) F$ f注:在进行标记前,我将要考虑使用的技术限制在各个结构单元的核心功能范围内,这样可以暂时避免引入过多的复杂性(通常这样的复杂性都是与混音相关的)。您可以看到图中存在一些包含Mixing字段的很小的紫色方块,它们都处于未展开的状态,代表的便是引入对非Interactive Music Hierarchy核心功能的技术(如State/RTPC/Positioning/HDR等)考量后可能引出的处理方法。6 R% v1 {: e, M# i9 U9 L
宏观区域; e" B% o. z; a* y7 J" p
Music Switch Container
+ y' o9 M! I! _3 M$ S0 U ]/ X8 t5 ~
4 W; k+ D! x8 ^( x5 w7 {
首先,我们可以看到Music Switch Container的角色非常清晰:由于Music Switch Container Association Editor是Music Switch Container独有的编辑窗口,加上其作用便是将单独或组合的Game Sync——Switch / State与对应的音乐播放目标连接起来(而Transition Manager则可被用于为可能存在的过渡设置具体的表现方式),所以若要处理Game Driven Transition设计,首选结构单元便是Music Switch Container。
7 S1 p+ e; o& f! X6 e% G注:您可以看到, Music Switch Container可用的Game Sync——State与Switch尽管(在不考虑Scope问题的情况下)可用以实现相同的切换,但与State不同的是Switch的切换可由Game Parameter驱动(由此可引出不同的互动方式)。
( j c" j1 d: s- kMusic Playlist Container' C' w" b; n1 K3 f( ?# f" e
. r5 h0 s5 _5 K# ]' S, P7 \$ o: d Z, F
接下来来看Music Playlist Container,可以发现其角色也十分清晰:由于Music Playlist Container控制的是Playlist下Music Segment的播放次序,除了支持顺序播放也支持随机播放。所以我们可得出结论——Music Playlist Container的职责便是处理User Driven Static/Dynamic Transition的首选结构单元。 ! r% ?+ L+ { {$ U
注:Sequence Continuous/Step用于线性的User Driven Static Transition设计,Random Continuous/Step用于非线性的User Driven Dynamic Transition设计。
) e7 X9 p# m0 x1 V小结
/ b0 M$ {3 _5 L& J* ]
1 G; Z+ \) m3 |; l. y! z4 I至此我们总结一下——可以说,Wwise互动音乐系统当中两个比较大的结构单元都与解决Transition问题有关。有效利用Music Switch Container与Music Playlist Container,我们便已可以运用好User Driven Static/Dynamic Transition类及Game Driven (Static / Dynamic) Transition类处理方法。然而由于他们是互动音乐系统中最大的单元,这意味着不存在更上层的结构单元(硬说有的话大概是Bus)来将他们用作Remixing类处理方法中的某一个Layer,因此某些时候可能我们将不得不利用同一事件来同时播放多个此类单元来实现我们的设计。在本系列博客第二部分当中我将介绍如何使用Wwise实现Terry Riley的 In C的音乐生成(其中便会用到这里提到的处理方法)。. s' a" W) v$ U% N$ \ q4 R+ J1 o5 n0 N
微观区域
7 o9 A, S9 B6 Z" ^* C! N
- G; R% d% B" ]9 p+ S- r9 p) P
接下来我们将注意力转向更微观的区域,您可以看到结构单元——Music Segment、Music Track与Clip都被标记成了紫色,代表他们可以被用于User driven与Game Driven两类处理方法;同时您可以看到,与Music Switch Container及Music Playlist Container不同,图中使用红色与蓝色方框标记出的处理方法都归属于Remixing类处理方法而不是Transition类处理方法。由此我们可以直观的看出,可能存在的音乐设计的复杂性不存在于上层结构单元而存在于细部,且都与混音问题相关。 |
|