Project1

标题: 如何在游戏中随时更改BGM音量 [打印本页]

作者: qknight    时间: 2014-7-6 03:18
标题: 如何在游戏中随时更改BGM音量
本帖最后由 qknight 于 2014-7-6 18:24 编辑

求教随机性质的BGM(无法确定具体是哪一首),如何在游戏中仅调整BGM的音量而不是在扬声器那里整体调节音量

目前使用3楼的方法在事件里写入脚本获得成功,最后再追问一下,如果脚本中音量那里不是100这类的数字而是100号变量,要如何写?

已经解决
作者: taroxd    时间: 2014-7-6 06:21
变量x取1~10的随机数
如果变量x为1,则播放第一个BGM。注意播放BGM的选项,右侧就可以直接调音量
...

作者: D-雨    时间: 2014-7-6 10:22
范例: Project3.7z (4.34 MB, 下载次数: 127)

随机播放bgm:
1.随机播放一个目录中的bgm
    在下面这个脚本指定目录名,随机播放这个目录中的bgm
       注意:由于编码问题,不能使用中文路径
                  这个脚本可以直接在事件中插入
RUBY 代码复制
  1. dir_name = "r1/"
  2. fary = Dir.entries("Audio/BGM/"+dir_name)
  3. fary.delete(".");fary.delete("..")
  4. fary.delete("...")
  5. f_name = fary[rand(fary.size)]
  6. bgm = RPG::BGM.new(dir_name+f_name, 100,
  7. 100)
  8. bgm.play


2.指定播放列表播放
      在第一行指定播放列表,填写格式自行参考
      
RUBY 代码复制
  1. fary = '028-Town06','029-Town07',
  2. '030-Town08','031-Castle01'
  3. f_name = fary[rand(fary.size)]
  4. bgm = RPG::BGM.new(f_name, 100,
  5. 100)
  6. bgm.play



更改bgm音量
  只要重新播放bgm且只改变音量,那么bgm不会从头播放而只改变音量
  如果是由于随机指定bgm播放,不能确定bgm文件名
  就用脚本获取
  这个脚本同样可以用在事件页中
  
RUBY 代码复制
  1. bgm = RPG::BGM.last
  2. bgm.volume = 100  #指定bgm新的音量
  3. bgm.play





作者: fux2    时间: 2014-7-6 14:10
更改BGM音量不是什么难事。
RM的BGM播放有个奇怪的特点,这是我在用事件播放同一首BGM的时候发现的。
播放同一首BGM的指令并不会导致BGM从头播放,而是改变音量继续播放……
这样你可以重定义bgm_play方法
放下伪代码
RUBY 代码复制
  1. class << Audio
  2.   alias _f_bp bgm_play unless $@
  3.   def bgm_play(*arg)
  4.     $rem_bgm = arg[0]
  5.     arg[1] = arg[1] * $vol / 100
  6.     _f_bp(*arg)
  7.   end
  8. end


改变音量的时候播放一次$rem_bgm就行了,音量是$vol
作者: 3106345123    时间: 2014-7-6 19:49
Yanfly Engine Ace - System Options v1.00:这个系统取代主菜单中的游戏结束选项,而是开啟一个设定窗口,玩家可以在这窗口中调整菜单窗口的顏色,对话框文字显示方式,速度,是否自动跑步,BGM、BGS、SFX 等声音音量大小,是否隐藏战斗动画以加快战斗节奏等等基本功能设定,还可以自行新增设定项目,开关和变量的定义,也提供了直接以脚本语法来达到设定的作用,是很不错的系统设置脚本。

Yanfly Engine Ace - System Options v1.00(有墙)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1