大家好,第二篇博文出炉了!在此,我将进一步探讨本人即将推出的塔罗牌音乐生成游戏《Divinuet》。如尚未阅读第 1 部分,建议先点击此处查看。
正如我在第 1 部分中所说,该游戏大致分为 2 个环节:占卜和生成。在占卜环节,会以牌面朝下的形式发 3 张牌。在翻开每张牌时都会揭示牌面含义,并针对这张牌播放一小段主题音乐。在生成环节,游戏将依据牌面组合及顺序生成不同的音乐和画面。上篇博文探讨了占卜环节,下面我们来说说生成环节。
音乐 |
塔罗牌占卜当中会抽取 3 张牌,其牌面组合及顺序将决定构成生成音乐的 4 个声部。为便于理解,我直接将这些声部命名为 Bass(最下层)、Tenor(中下层)、Alto(中上层)和 Soprano(最上层)。
其中 Bass 声部取决于占卜当中哪种花色占多数——整副塔罗牌共 5 种花色:Major Arcana、Swords、Wands、Cups 和 Pentacles。考虑到 3 张牌花色组合的各种可能性(包括三张牌各属不同花色的情况),我们将需要 6 种不同的 Bass 声部。每种花色都有与之对应的情绪,对此我想在 Bass 声部中予以反映。下面贴出了三种花色对应的 Bass 声部的音频:Pentacles(朴实、率真)、Swords(智慧、冲突)和 Null(尽量不带倾向性)。让我们来试听一下。
对于其余声部,我按照牌面含义将 78 张牌分成了 26 个不同的分组(3 张一组)。并为每个分组都创作了包含 Tenor、Alto 和 Soprano声部的音乐内容。比如,我让占卜当中的第一张牌决定 Tenor 声部播放的内容,第二张牌决定 Alto 声部,第三张牌决定 Soprano 声部。为了理清、记录各个分组需要的情绪、规划创作手法,我特地制作了下面的表格。
就拿 Group 2 来说。该分组都是跟痛苦、不幸有关的牌,对此我决定选用激动、悲伤的弦乐。其中的 Tenor、Alto 和 Soprano 声部分别由大提琴、中提琴和小提琴演奏。下面是三个声部合在一起演奏的效果(不含 Bass 声部)。让我们来试听一下。注意,除非恰好抽到该分组的 3 张牌,否则不会同时听到这三个声部一起演奏。通常情况下可能是某个声部来自该分组,而其余声部则来自与此不同的分组。
再拿 Group 5 来说,其牌面寓意为休整和等待。我们来听听三个声部合在一起的效果。
如果你是一名音乐家,可能会想“等等,不对。这两组音乐的调不一样啊!这怎么能合在一起演奏呢?”问得好!下面我们就来看看这种情况该如何处理。
规则 |
由于这样设计导致不同分组声部之间的组合方式实在太多,我不可能全都通过试听来检验。为此,我在创作每段乐曲之前就为自己制定了严格的规则——第一条最基本的规则就是所有声部必须采用相同的曲速和拍号,对此,我将BPM设为 80 ,拍号为 4/4。
如此一来,步调一不一致的问题算是解决了。可是,音符/和弦怎么处理呢?牌面蕴含了各种各样的寓意和心境,而我并不想全部沿用同一和弦进行来表现。
为此,我选择了将乐曲分为若干 4 小节乐句。在每段乐句当中,Bass 声部只能播放一个特定的音符(通常是和弦的根音,不过节奏没有限制)。其余带旋律的声部则非常自由,只要不跟 Bass 声部在调性上有冲突就行(除非是刻意为之——有些分组便是如此)。其余要演奏伴奏声部的声部音符选择必须与 Bass 声部相同,但要在与其对应的音域中演奏。这样,不同声部的音符之间就不会发生冲突了。
伴奏声部在节奏设定上各不相同。有些很有节奏感,有些略微多一些装饰音,还有些则是持续音。具体要看其所在分组的情绪。
下面的表格显示了声部和音符之间的对应关系。我们来看一下。
仔细看的话不难发现,我将 Phrase 5 和 Phrase 9 分成了两个部分,并允许声部在 Phrase 5b 和 Phrase 9b 当中同时播放 F 和 C 音符。这是因为我希望音乐可以在开放的五和弦上结束,以避免乐曲在情绪上呈现出太明显的倾向性。
另外我还发现,若在第一次切入新的声部时正好落在强拍上,感觉就会很突兀。所以,我基本上都是直接在切入新的声部之前插入起奏音符。当然,这里也要遵循我们已经设定的规则——比方说,我想让 Soprano 声部通过起奏音符过渡到 Phrase 4 当中的旋律,那么我们就要在 Phrase 3 当中予以实现。这样的话起奏音符就必须为 Bb。
说完上面这些如果您还觉得不够直观,不如试听下实际效果。假设,我们进行占卜,结果如下(牌面图案由 Sarah Seekins 设计):
第一张牌为 Four Of Swords、第二张为Five Of Cups ,第三张为 Queen Of Swords。那么,我们会听到 Swords 版本的 Bass、Group 5 版本的 Tenor(平静)、Group 2 版本的 Alto(悲伤)和 Group 25 版本的 Soprano(渴望)(建议参看前文中出现的表格)。
接下来我们来稍微调换一下牌面顺序。
这次,我让第 1 张牌(Four Of Swords)保持不变。第 2 张牌改为 Ace Of Pentacles。它来自 Group 26,情绪为朴实/务实。然后,把 Five Of Cups 移到第 3 张牌所在的位置。这时,我们会听到“没有花色占多数(Null)”版本的 Bass 声部、跟上次相同版本(Four Of Swords)的 Tenor 声部、来自全新分组的 Alto 声部,以及 Soprano 声部的悲伤的小提琴(替换之前 Alto 声部的悲伤的中提琴)。
由此可见,即便牌面变化不大,生成的音乐也会产生很大的不同。这里只是随便列举了 2 个例子,实际游戏中将会有无穷无尽的组合。
实现 |
生成环节的实现其实要比占卜环节(第一部分中有详述)简单很多。对此,我只创建了一个包含四个音轨的 Music Segment。这四个音轨会同时播放,每个声部对应一个音轨。
然后,我为声部设置了跟 State 绑定的 Switch Subtrack,并由游戏根据开牌结果自动进行设定。目前我只构建了 Bass 声部,不过也不妨来看一下。
事实上,我专门跟来自 Audiokinetic 的戴米安 (Damian) 就此做过 Twitch 直播。有兴趣的话可以点击此处观看录播视频!
按说到此应该展示一下各种系统在游戏中的实际运行效果,只是生成环节当中所要展示的画面都还没做,而且Tenor、Alto 和 Soprano 声部的集成也还没完成。最多只能看着空白屏幕听单独的 Bass 乐曲,所以可能还不是时候。不过整个游戏完成之后,每次占卜都将有迥然不同的视听效果。
如果你想关注《Divinuet》的开发进度,不妨在 Twitter 上 @divinuetgame。除此之外,我还会在 Twitch 上直播并展示《Divinuet》的音乐和编程工作。如果你想预订这款游戏或解锁一些特色功能,请点击此处。
感谢各位抽空阅读我写的博文!
评论