设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3871|回复: 6
打印 上一主题 下一主题

[已经解决] 如何在游戏中修改音效

[复制链接]

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

跳转到指定楼层
1
发表于 2012-9-14 21:19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我希望在游戏中修改战斗音效、确定音效之类的,请问如何实现……

啊啊,不是说打开数据库最后一页来修改,是说游戏进行到一半的时候修改确定键、光标移动的音效

Lv1.梦旅人

哆啦菌

梦石
0
星屑
46
在线时间
795 小时
注册时间
2010-7-24
帖子
3800
2
发表于 2012-9-14 22:11:02 | 只看该作者
用脚本就可以了不过我家VA卸了。。。
随便看看
回复

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

3
 楼主| 发表于 2012-9-14 22:14:30 | 只看该作者
fxwd 发表于 2012-9-14 22:11
用脚本就可以了不过我家VA卸了。。。

请问使用什么脚本呢?

点评

事件脚本,我对这方面不懂。。  发表于 2012-9-14 22:15
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
486 小时
注册时间
2007-5-27
帖子
807
4
发表于 2012-9-15 17:44:41 | 只看该作者
本帖最后由 紫苍焰 于 2012-9-15 17:52 编辑

……
不行,研制失败……

评分

参与人数 1星屑 -10 收起 理由
Mic_洛洛 -10 麻烦认真回复,请勿灌水!谢谢!.

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2012-7-28
帖子
118
5
发表于 2012-9-15 18:18:01 | 只看该作者
貌似纯事件只能更改ME,SE,BGM。
不能更改光标音效。
脚本应该可以实现吧。
但是我是脚本盲。
只会事件。。

评分

参与人数 1星屑 +1 收起 理由
VIPArcher + 1 删错帖子了2333.请无视

查看全部评分

<
回复

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

6
 楼主| 发表于 2015-12-28 17:44:50 | 只看该作者
本帖最后由 喵呜喵5 于 2015-12-28 17:54 编辑

时隔三年后重新回来扫自己的旧帖子:




基本上,在游戏中播放音效的功能主要都定义在 module Sound 中

例如,播放确定音效的定义:
  1.   # 确定
  2.   def self.play_ok
  3.     play_system_sound(1)
  4.   end
复制代码
而脚本中通过这个指令进行调用:
  1. Sound.play_ok
复制代码
因此,要在游戏中修改这块的音效,只要像这样写代码:
  1. class << Sound  
  2.   def play_ok
  3.     if 条件
  4.       play_system_sound(2)
  5.     else
  6.       play_system_sound(1)
  7.     end
  8.   end
  9. end
复制代码
在满足条件的情况下,原本播放的确定音效(play_system_sound(1))在满足条件时就变成取消音效了(play_system_sound(2))
之后要修改音效时,只要修改对应的条件即可

更进一步深究代码,我们可以研究一下 play_system_sound 的定义:
  1.   def self.play_system_sound(n)
  2.     $data_system.sounds[n].play
  3.   end
复制代码
$data_system.sounds 是一个由音效文件组成的数组, $data_system.sounds[n].play 在做的事情可以看成这个: RPG::SE.new('数据库中设置的音效文件名').play

因此,更加自由的修改方式是把代码改成这样:
  1. class << Sound  
  2.   def play_ok
  3.     if 条件
  4.       RPG::SE.new('要修改的音效文件名').play
  5.     else
  6.       play_system_sound(1)
  7.     end
  8.   end
  9. end
复制代码
当然,比较激进的修改方法是这么做:
  1. $data_system.sounds[n] = RPG::SE.new('音效文件')
复制代码
这么做的优点在于,只要在事件脚本中执行了这句代码以后就能立刻生效,不像上面的方法那样需要再额外修改原生脚本,缺点则是这样的修改并不会保存进游戏的存档中,并且,由于刷新 $data_system 数据的 DataManager.init 只会在游戏开始时执行一次,对于 $data_system.sounds 是全局通用的,因此,在读取存档时,这里的修改会被同时带进到其他的存档中,只要游戏窗口没有关闭,这么做对于任何存档都会生效。

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 听说喵呜今天下午很闲

查看全部评分

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
7
发表于 2015-12-29 09:21:41 | 只看该作者
大神在玩耍{:2_270:}

点评

灌水请用点评功能  发表于 2015-12-29 09:38

评分

参与人数 1星屑 -1 收起 理由
VIPArcher -1 灌水请用点评功能

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-21 10:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表