骑马与砍杀2背景音乐替换方法 背景音乐修改教程

时间:2022-11-17 04:52

骑马与砍杀2中玩家可以自行替换背景音乐,部分玩家可能不清楚怎么操作,下面一起来看看背景音乐修改教程吧。

骑马与砍杀2背景音乐替换方法 背景音乐修改教程

骑马与砍杀2背景音乐替换方法

关键词索引:背景音乐修改,bgm修改,背景音乐,bgm,修改,背景音乐替换,bgm替换,替换。

骑马与砍杀2有很多好听的背景音乐,有的是大地图的音乐,有的是战斗时的背景音乐,这个教程就是教你如何修改背景音乐。

首先先介绍一下相关文件路径,本次教程需要用到的路径在游戏目录下的Mount & Blade II Bannerlordmusic文件夹里,(图一)

骑马与砍杀2背景音乐替换方法 背景音乐修改教程


而音乐的音频文件则在图二所示的位置,也就是图一里的PC文件夹里,(图二)

骑马与砍杀2背景音乐替换方法 背景音乐修改教程


这些ogg格式的文件就是游戏的音频文件,可以用酷狗或者qq音乐之类的音乐播放器打开试听一下。个人超级喜欢战斗中bgm有combat_a和PaganCombatA,超赞!比较讨厌且出现的最多的bgm就是“battle_medium”,本文就介绍如何把原本多次出现的battle_medium换成我超喜欢的combat_a。

如果你问我为什么有的bgm会拆成这么多小片段,我只能说你对游戏的bgm了解的还是比较少的,除了像开头曲那样无论怎么打都不会变的固定bgm,像战斗时的bgm,你如果仔细聆听,你会发现,bgm有时候会反复重复某片段,有的时候会直接跃向高潮,为什么会有这个现象?仔细聆听的话,不难发现,战斗的bgm变化是根据战斗进行的程度和气势比进行变化的,这就导致了战斗中的音频文件需要拆成很多部分,根据当前的程度和气势比播放或者重复播放对应的bgm片段,这是很多游戏都采用的bgm机制。

介绍完了相关知识,来说说原理吧。一场战斗,需要经历以下的步骤:先由某游戏系统文件判断当前开战局势,选出适合的bgm(比如我讨厌的battle_medium就是一种初级的开站局势,应用范围极广,自然出现的多;小战场则会选择small_battle_a之类的),然后系统拿着选出的bgm进入某个类似于“指挥数据库”功能的文件寻找对应的bgm,读取此bgm的相关的播放参数,然后拿着相关参数根据战斗时的战况播放参数相符的bgm。这就是bgm播放的全过程。

接下来介绍一下相关的文件。按照流程来看,首先就是判断开战局势的“游戏系统文件”,很遗憾,楼主能力有限,未能找到此文件,但是并不妨碍我们修改替换播放的bgm。既然这系统文件找不到,那我们从下一步来行动,那个类似于“指挥数据库”的文件,这个文件我找到了,就是music文件夹里的那个“soundtrack.xml”,我们就从这里入手。xml文件可以用记事本打开与编辑,打开后密密麻麻的英文可能会劝退一部分人,但是难不倒楼主,我们来看看长什么样(图三)

骑马与砍杀2背景音乐替换方法 背景音乐修改教程


本次教程就拿我最讨厌的battle_medium换成combat_a来说事。先找到combat_a的部分,(图四)

骑马与砍杀2背景音乐替换方法 背景音乐修改教程


我们来介绍一下关键的代码。combat_a的bgm参数部分开头起始于“(主题)”,结尾结束于“”,不难发现,所有的代码都是“有始有终”的,由<***>开头,必定以结尾,两边之间的就是***的内容。开头的theme就是各个bgm的大主题团体,theme间的所有内容都是此bgm的指挥参数内容。接着往下看,ID内容是36,这是主题的编号为36,。ThemeTypeInt是主题类型定义为3类,什么意思我们不需要知道,别乱动就行了。下面的吧啦吧啦都是不重要的一些配置,一样不用动,直到次重点“Group(团)”。group是theme的下属分类,group囊括的内容全是分割成许多部分的bgm片段。在group的name后面,就是重要的segment部分了,从这里开始都是对各个片段的参数数据库了。图里可以看见combat_a_01_10prc这个片段的ID是35,也就是片段ID为35。之后就是强度参数Intensity,这就是我之前说的程度与气势比所参考对照的一个参数。下面又是吧啦吧啦的,直到下一个重点是ThemeId,(图五)

骑马与砍杀2背景音乐替换方法 背景音乐修改教程


这表示此片段是属于ID为36的主题的,而主题编号为36的正是前面说的。接下来是Serialization_ManuallyBlockedSegmentIds,这一大串的什么意思?可以去百度一下,大致意思就是阻隔的意思,这怎么理解?可以这么理解,播放过此片段后,禁止跳往下列ID的片段,下面的一堆数字就是禁止跳往的对象ID列表。再下一个就是Serialization_ManuallyLinkedSegmentIds,(图六)

骑马与砍杀2背景音乐替换方法 背景音乐修改教程


意思大概就是引导跳往目标片段,也就是接下来可以跳往的对象片段的ID列表。系统拿到这些数据后,就会结合当前的进程与气势比进行选择跳往的片段。

相关关键代码已经介绍完毕,我们来看看如何实现把所有播放battle_medium的场合全部换成播放combat_a。

在开始之前,郑重提醒各位,切记!!!不要忘记备份原始文件!!!

首先,我们可以新建一个txt记事本文件,把combat_a的相关内容复制进去,从theme前的开头空格处一直到/theme结尾处(注意,尽量一个空格也不要少!),这算是获取了参数。之后我们找到要替换的对象battle_medium的部分,在新建文本文档里复制的内容,从后的36开始到主题结尾,全部复制,替换battle_medium中10到的内容。为什么不替换后的Battle Medium?因为要保留这个主题的名字,系统在判定使用Battle Medium时,需要从这里找到对应的对象,自然要留着名字给系统找。

这算是把大致内容生搬硬套过去了。如果这时候打开游戏,你会发现游戏打开直接崩溃闪退。原因出在哪里?我们直接把一个东西的所有参数生搬硬套过去了,也就是说,同样的ID有的出现了2次,产生了冲突,游戏启动时检查游戏完整性时发现了冲突。之后我们打开备份的原始文件,找到被替换的battle_medium的内容,将冲突的ID改成替换前原来的ID,需要改后的**,每个片段后的,每个片段的前的,以及接近结尾的**(这是序列代码,就是排个序,也改一下)。除了第一个后的**和接近结尾的**,中间两项每个片段都要改一下,改的时候会发现,Battle Medium的片段数量比combat_a片段数量要多,这样会空出来一些ID没有使用,这样没关系,不影响正常使用。

改完以后进游戏,发现没有启动就闪退了,是不是以为这就结束啦?事情没有那么简单。进入游戏后找势均力敌的敌人开打,如果原本开始播放Battle Medium的场合,的确开始播放combat_a了,但是播放了一段以后就没有背景音乐的声音了,这是怎么回事呢?想想我开头介绍的,里面是不是有“禁止跳往下列ID的片段”和“引导跳往目标片段”?想到这里,一下子明白了,生搬硬套导致播放被替换的片段(battle_medium)时引导跳往另一个原型theme里的片段(combat_a),跨theme播放片段了。知道了原因,我们去调整引导的ID列表。打开记事本的“编辑”-“替换”,输入***(是原来的combat_a的每个片段的ID)替换为***(上一步我们修改后的每个片段的ID),例如前者combat_a_01_10prc片段的ID是35,后者Battle_Medium_01的片段ID为163,然后把数字代入前面的***,点全部替换,接着替换36-164,37-165……直到最后一个50-178。为什么要输入***而不是直接换数字?因为直接换数字会误换所有含有此数字的对象。全部替换完以后,再次进入游戏,打架,发现这次终于完全没问题了!事情到这里总算告一段落了。

当然,我是用我替换的过程来阐述原理与思路,各位可以自行体会与发挥,替换游戏内的bgm,甚至可以自己配bgm,这里就不一一叙述了。无论怎么替换与修改,切记!记得备份!!!

标签:
随便看看
本类推荐
本类排行
热门标签

我国国家通讯社行不行啊细狗新年贺词祝福语2023年祝福语新年新年贺词新年贺词祝福语居家抗病毒小药箱除夕高速免费吗2022年除夕高速免费吗春联春联句子大全春联句子大全七字年夜饭十二道菜年夜饭十二道菜单年夜饭吃什么年夜饭吃什么菜吃年夜饭的寓意年夜饭黑芝麻菊花茶晒菊花茶腌腊肉送妈妈生日礼物汉白玉送闺蜜水钻送女人礼物爸爸生日送礼物送老公