如何为游戏创造动态的序列音乐.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何为游戏创造动态的序列音乐 在本篇教程中我们将着眼于为游戏构造并排序动态音乐的一种技术。构造和排序是发 生在运行时间中,这让游戏开发者可以修改音乐结构而对游戏世界中所发生的一切做出反 应。 在分析技术细节前,你可能想要看看这一技术在运行过程中的示例。示例中的音乐是 源自一些音频独立组块,即在运行时间中被排序并组合在一起去形成完整的音乐歌曲。 sequencer_demo (from tutsplus ) 这一示例要求一个能够支持W3C Web Audio API 和OGG 音频的网页浏览器。谷歌 Chrome 便是是最佳选择,而Firefox Aurora 也同样适用。 综述 该技术的使用方式非常直接,如果基于创造性的话它便具有足够的潜能能够添加一些 优秀的动态音乐到游戏中。这也让我们能够通过较小的音频文件创造出无限长的音乐歌曲。 从本质上来看最初的音乐会被分解成一些组块,每个组块都有自己的长条,这些组块 被储存在一个音频文件中。音序器会加载音频文件并提取所需要的原生音频样本去改造音 乐。音乐的结构是由一些可变数组在播放音乐组块时传达音序器而诞生的。 你可以将这种技术当成是测序软件的简化版本,就像Reason,FL Studio 或Dance EJay。你也可以认为这一技术是音乐版的乐高积木。 音频文件结构 就像之前所提到的,音序器要求将最初音乐分解成一些组块,并且这些组块必须储存 在音频文件中。 audio_file_structure (from tutsplus ) 该图像演示的便是组块如何被储存在音频文件中。 在图像中你可以看到音频文件中储存了5 个独立组块,所有的这些组块都是等长。为 了保持教程的简单化,我们让组块具有条块的长度。 音频文件中组块的次序很重要,因为它将影响组快被分配到哪个音序器渠道中。第一 个组块(如鼓)将被分配到第一个音序器渠道,第二个组块(如打击乐)将被分配到第二个 音序器渠道,如此类推。 音序器渠道 一个音序器渠道代表一排组块并包含指示被分配到渠道中的组块是否应该进行演奏的 旗帜(每个音乐条块都有一面旗帜)。每面旗帜都是一个数值,有可能是0 (不能演奏组块) 也有可能是1 (演奏组块)。 audio_channels (from tutsplus ) 该图像演示的是组块和音序器渠道之间的关系。 上述图像最底部垂直对齐的数字代表的便是条块值。就像你所看到的,在第一个音乐 条块(01)中只有吉他组块开始演奏,但是在第五个条块(05)中,鼓,打击乐,贝斯和 吉他组块都开始演奏。 编程 在这一教程中,我们将不涉及完整运行的音序器代码;相反地,我们将着眼于让一个 简单的音序器运行起来的核心代码。代码将作为伪代码而尽可能保持内容与语言无关。 在我们开始前,你需要记住你最终决定使用的编程语言需要一个API ,即让你能够基 于较低水平操纵音频。JavaScript 中的Web Audio API 便是一个有效的例子。 你可以下载这篇教程所附带的源文件去学习一个基本音序器的JavaScript 执行(这是 针对于本篇教程所创造的演示内容)。 扼要概述 我们拥有一个包含音乐组块的音频文件。每个音乐组块是基于条块的长度,音频文件 中的组块顺序影响着组块被分配到怎样的音序器渠道中。 常数 在继续分析前,我们需要明确两个信息。我们需要知道音乐的拍子,每分钟几拍以及 在每个条块中的拍子数。后者可以被当成音乐的拍号。该信息将作为常数值进行储存,因为 在音序器运行期间它不会发生改变。 TEMPO = 100 // beats per

文档评论(0)

7号仓库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档