查看: 1740|回复: 5

[已经解决] 关于动画播放的音量问题

[复制链接]
梦石
0
星屑
55
在线时间
191 小时
注册时间
2011-1-30
回帖
105
发表于 2013-9-9 00:04:37 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×

我用了一个变量$vol来代表设定的音量值,
然后我在Game_System中将def se_play修改了,
后来测试时发现,当$vol=0时,在菜单中没有音效的声音,但只要一用事件播放动画或者在战斗中播放任然有se的声音。

我查了帮助但没有具体说明,所以请教一下各位高手,如何解决?谢谢。

原来的代码:
  1.   #--------------------------------------------------------------------------
  2.   # ● SE 的演奏
  3.   #     se : 演奏的 SE
  4.   #--------------------------------------------------------------------------
  5.   def se_play(se)
  6.     if se != nil and se.name != ""
  7.       Audio.se_play("Audio/SE/" + se.name, se.volume, se.pitch)
  8.     end
  9.   end
复制代码
修改后的代码:
  1.   #--------------------------------------------------------------------------
  2.   # ● SE 的演奏
  3.   #     se : 演奏的 SE
  4.   #--------------------------------------------------------------------------
  5.   def se_play(se)
  6.     if se != nil and se.name != ""
  7.       Audio.se_play("Audio/SE/" + se.name, se.volume*$vol10, se.pitch)
  8.     end
  9.   end
复制代码

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2013-9-9 21:22:48 | 显示全部楼层
这个问题好像一直也没有人去解决,其实也不算难,既然你自己知道如何修改音量,俺直接告诉你方法好了。
首先动画中的音效不通过game_system,所以修改game_system中的音量不生效的,应该直接修改audio模块,但是这个模块RGSS又不开源,只能另辟蹊径,咱们找到RPG::Sprite, 里面有个def animation_process_timing(timing,hit)的方法,下面就有动画中播放音效的语句了。
接下来你懂的。
另外站内某些外挂脚本有修改过animation相关的内容,比如彩虹神剑就将animation_process_timing中的audio.se_play移到了update_animation
修改的时候留意一下就可以了。

俺不想动脚本,实在不会修改再@俺吧
回复

使用道具 举报

梦石
0
星屑
50
在线时间
34 小时
注册时间
2013-5-16
回帖
1
发表于 2013-9-9 22:12:04 | 显示全部楼层
0.0不懂,我新手,路过

评分

参与人数 1星屑 -50 收起 理由
弗雷德 -50 提问区灌水是要扣税的

查看全部评分

回复

使用道具 举报

梦石
0
星屑
55
在线时间
191 小时
注册时间
2011-1-30
回帖
105
 楼主| 发表于 2013-9-9 23:07:47 | 显示全部楼层
弗雷德 发表于 2013-9-9 21:22
这个问题好像一直也没有人去解决,其实也不算难,既然你自己知道如何修改音量,俺直接告诉你方法好了。
首 ...

按照你的指导,我把整个“model RPG”复制到工程里,这样成功了,
不过在model RPG外部重新定义 def animation_process_timing 就无效了,
所以还想再请教一下如何在 model 外部重定义“animation_process_timing”?
谢谢,:-) !
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2013-9-9 23:44:38 | 显示全部楼层
本帖最后由 弗雷德 于 2013-9-9 23:45 编辑

@Person
这里只对动画音效起效,系统SE无效。
  1. module RPG
  2.   class Sprite < ::Sprite
  3.     def animation_process_timing(timing, hit)
  4.       if (timing.condition == 0) or
  5.          (timing.condition == 1 and hit == true) or
  6.          (timing.condition == 2 and hit == false)
  7.         if timing.se.name != ""
  8.           se = timing.se
  9.           Audio.se_play("Audio/SE/" + se.name, XXXXXXXXX, se.pitch)
  10.         end
  11.         case timing.flash_scope
  12.         when 1
  13.           self.flash(timing.flash_color, timing.flash_duration * 2)
  14.         when 2
  15.           if self.viewport != nil
  16.             self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
  17.           end
  18.         when 3
  19.           self.flash(nil, timing.flash_duration * 2)
  20.         end
  21.       end
  22.     end
  23.   end  
  24. end
复制代码
回复

使用道具 举报

梦石
0
星屑
55
在线时间
191 小时
注册时间
2011-1-30
回帖
105
 楼主| 发表于 2013-9-10 23:26:11 | 显示全部楼层
弗雷德 发表于 2013-9-9 23:44
@Person
这里只对动画音效起效,系统SE无效。

已经弄好了,顺便还可以调整动画播放,真是非常感谢版主的帮忙!
谢谢!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部