Project1
标题:
如何在游戏中修改音效
[打印本页]
作者:
喵呜喵5
时间:
2012-9-14 21:19
标题:
如何在游戏中修改音效
我希望在游戏中修改战斗音效、确定音效之类的,请问如何实现……
啊啊,不是说打开数据库最后一页来修改,是说游戏进行到一半的时候修改确定键、光标移动的音效 dsu_plus_rewardpost_czw
作者:
fxwd
时间:
2012-9-14 22:11
用脚本就可以了不过我家VA卸了。。。
作者:
喵呜喵5
时间:
2012-9-14 22:14
fxwd 发表于 2012-9-14 22:11
用脚本就可以了不过我家VA卸了。。。
请问使用什么脚本呢?
作者:
紫苍焰
时间:
2012-9-15 17:44
本帖最后由 紫苍焰 于 2012-9-15 17:52 编辑
……
不行,研制失败……
作者:
xfx510061635
时间:
2012-9-15 18:18
貌似纯事件只能更改ME,SE,BGM。
不能更改光标音效。
脚本应该可以实现吧。
但是我是脚本盲。
只会事件。。
作者:
喵呜喵5
时间:
2015-12-28 17:44
本帖最后由 喵呜喵5 于 2015-12-28 17:54 编辑
时隔三年后重新回来扫自己的旧帖子:
基本上,在游戏中播放音效的功能主要都定义在 module Sound 中
例如,播放确定音效的定义:
# 确定
def self.play_ok
play_system_sound(1)
end
复制代码
而脚本中通过这个指令进行调用:
Sound.play_ok
复制代码
因此,要在游戏中修改这块的音效,只要像这样写代码:
class << Sound
def play_ok
if 条件
play_system_sound(2)
else
play_system_sound(1)
end
end
end
复制代码
在满足条件的情况下,原本播放的确定音效(play_system_sound(1))在满足条件时就变成取消音效了(play_system_sound(2))
之后要修改音效时,只要修改对应的条件即可
更进一步深究代码,我们可以研究一下 play_system_sound 的定义:
def self.play_system_sound(n)
$data_system.sounds[n].play
end
复制代码
$data_system.sounds 是一个由音效文件组成的数组, $data_system.sounds[n].play 在做的事情可以看成这个: RPG::SE.new('数据库中设置的音效文件名').play
因此,更加自由的修改方式是把代码改成这样:
class << Sound
def play_ok
if 条件
RPG::SE.new('要修改的音效文件名').play
else
play_system_sound(1)
end
end
end
复制代码
当然,比较激进的修改方法是这么做:
$data_system.sounds[n] = RPG::SE.new('音效文件')
复制代码
这么做的优点在于,只要在事件脚本中执行了这句代码以后就能立刻生效,不像上面的方法那样需要再额外修改原生脚本,缺点则是这样的修改并不会保存进游戏的存档中,并且,由于刷新 $data_system 数据的 DataManager.init 只会在游戏开始时执行一次,对于 $data_system.sounds 是全局通用的,因此,在读取存档时,这里的修改会被同时带进到其他的存档中,只要游戏窗口没有关闭,这么做对于任何存档都会生效。
作者:
sq333333
时间:
2015-12-29 09:21
大神在玩耍{:2_270:}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1