多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
之前在武将一览里面,我们的新技能"美王"配音是灰色的: ![](https://img.kancloud.cn/93/49/93494caabfc0aad0443c93da16fd9495_253x114.png) </br>就是因为没有对应的配音文件嘛。这就去给它补上! </br>从网上找一段孙悟空的音频,下载之。用格式工厂转换成wma格式,扔到MovieMaker里面裁剪成我们需要的样子,"保存到我的计算机",这样得到了处理后的wma格式的音频。再用格式工厂把处理后的这段音频转换成ogg格式,得到了我们需要的技能配音文件。(编者:其实我们是来炫耀肺活量的……) </br>不管怎么说吧,反正现在是得到了ogg的配音文件,但是!文件的名字还没改嘛。先想想技能的名字叫什么来着?嗯,是LuaMeihouWang,所以配音文件的名字也就可以确定了,同样是:LuaMeihouWang。(编者:团结一致向前看!) ![](https://img.kancloud.cn/a4/aa/a4aa966fa11e81700085a00444d32f6f_180x67.png) </br>给技能配音文件起名字的通用方法是: 1. 技能名字(非常不建议用这个方法,容易和武将名重叠) 2. 技能名字+编号 </br>比如刚刚我们就是用的第一个方法。LuaMeihouWang.ogg。 </br>至于第二个方法,是当我们觉得这个技能需要分情况说台词的时候,也就是有多个配音文件的时候,为了统一管理才用的。 </br>想一想曹丕同学的技能行殇吧?行殇对象是男性时可用xingshang1,行殇对象是女性时可用xingshang2,行殇对象是曹操(虽然他算男的)时用的就是xingshang3了。 </br>当使用第二个方法在技能名字后面添加编号的时候,在界面上相应地也会显示一个编号: ![](https://img.kancloud.cn/34/17/3417808b171ab09c8a9dd8e1370e352b_261x177.png) </br>很霸气是不是? </br>所以知道了命名的规则,现在一个偷懒的方法出现了。如果技能配音与之前已有的配音相同的话,直接复制一份,改个名字就可以了。 </br>接下来要做的就是把配音文件放到audio文件夹里面去了。但是!可不是直接放到audio文件夹下,而是放到里面那个skill文件夹下,因为我们现在做的是技能配音文件。 </br>audio文件夹里面的情况,总共有四个文件夹: 1. card文件夹:存放卡牌的音效,比如“不怕你哦~” 2. ~~death文件夹:存放武将阵亡的音效,比如“我还是太年轻了……”~~ 3. skill文件夹:存放武将技能的音效和武将阵亡的音效,就是这里! *PS:由于版本的变更death已经被skill文件夹吞了* 4. system文件夹:存放系统音效,比如“救一下嘛~” </br>把LuaMeihouWang.ogg放到audio\skill\文件夹中,工作就完成了! ![](https://img.kancloud.cn/3c/b1/3cb1922e9ff0216d895f9fb20e77c987_226x154.png) </br>到游戏里面体验一下吧~ </br>等等,这是什么东西? ![](https://img.kancloud.cn/6c/f4/6cf4e733baa39735cc3a14ceb0bae883_268x148.png) </br>原来是忘记翻译了。 </br>打开我们的扩展包study.lua,在翻译表中添上几句台词: ``` ["$LuaMeihouWang"] = "燕人张飞在此!",(孙悟空:&¥%@#%…………) ``` </br>算了,还是按照实际的台词写吧~ ![](https://img.kancloud.cn/01/43/0143569b8027f2cfdf977b0b4ee44cf3_572x66.png) </br>台词的通用写法就是这样,用美元的那个符号引导: `["$技能名称"] = "台词译文",` </br>或者说是: `["$技能名称与编号"] = "台词译文",` </br>用于翻译那类带编号的技能配音。(孙悟空:有什么了不起的啊?不就是用配音文件的文件名嘛……) </br>写好后重新启动游戏,这下终于看到亲切的台词了: ![](https://img.kancloud.cn/4b/a7/4ba7ffe20df97b46aa267f10b790ed42_267x155.png) </br>搞定?*并没有,是不是发现发动技能后并没有播放配音,因为你少了`broadcastSkillInvoke`这个函数,所以在`if room:askForSkillInvoke(player, "LuaMeihouWang", data) then`后面加上`room:broadcastSkillInvoke("LuaMeihouWang")`就行了。*