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

Project1

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

轩辕剑菜单的“音效大小”改不了动画音效|||||||

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

跳转到指定楼层
1
发表于 2009-1-10 21:16:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是,假如我把音效大小设置为0%,战斗时播放动画还是有音效……
于是研究了一下doranikofu大人的《惑》横板工程,发现他在“彩虹神剑+动画修正”那里加了这么一句

#=======================================
   # 修改:敌人跳跃的功能 + 添加返回数值
   #=======================================
    def animation_process_timing(timing, hit,dontflash=false)
      if (timing.condition == 0) or
         (timing.condition == 1 and hit == true) or
         (timing.condition == 2 and hit == false)
       unless dontflash
          if timing.se.name != ""
            se = timing.se
            $game_system.se_play(se)
          end
        end

       case timing.flash_scope
        when 1
          unless dontflash
            self.flash(timing.flash_color, timing.flash_duration * 2)
            if @_total_damage >0
              @flash_shake_switch = true
              @flash_shake = 10
            end
          end
          return timing.flash_color.alpha * timing.flash_duration
        when 2
          unless dontflash
            if self.viewport != nil
              self.viewport.flash(timing.flash_color, timing.flash_duration * 2)
              return timing.flash_color.alpha * timing.flash_duration
            end
          end
        when 3
          unless dontflash
            self.flash(nil, timing.flash_duration * 2)
          end
          return timing.flash_color.alpha * timing.flash_duration
        end
      end      
      return 0
    end

据说彩虹神剑是根据RTAB改的?那么放在6饭的RTAB整合版应该怎么修改动画音效,让它全部归属于系统音效的范畴?
版务信息:本贴由楼主自主结贴~
填坑填坑填坑填坑填坑填坑填坑填坑填坑
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-5-1
帖子
364
2
发表于 2009-1-10 21:27:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

3
 楼主| 发表于 2009-1-10 22:07:57 | 只看该作者
轩辕剑菜单重新定义的BGM和SE
  1. #==============================================================================
  2. # ■ Game_System
  3. #==============================================================================

  4. class Game_System
  5.   attr_accessor :bgm_volume
  6.   attr_accessor :se_volume
  7.   
  8.   alias ini initialize
  9.   def initialize
  10.     ini
  11.     @bgm_volume = 100
  12.     @se_volume = 100
  13.   end
  14.   
  15.   def bgm_play(bgm)
  16.     @playing_bgm = bgm
  17.     if bgm != nil and bgm.name != ""
  18.       Audio.bgm_play("Audio/BGM/" + bgm.name , bgm.volume * bgm_volume / 100, bgm.pitch)
  19.     else
  20.       Audio.bgm_stop
  21.     end
  22.     Graphics.frame_reset
  23.   end
  24.   
  25.   def bgs_play(bgs)
  26.     @playing_bgs = bgs
  27.     if bgs != nil and bgs.name != ""
  28.       Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume * se_volume / 100, bgs.pitch)
  29.     else
  30.       Audio.bgs_stop
  31.     end
  32.     Graphics.frame_reset
  33.   end
  34.   
  35.   def me_play(me)
  36.     if me != nil and me.name != ""
  37.       Audio.me_play("Audio/ME/" + me.name, me.volume * se_volume / 100, me.pitch)
  38.     else
  39.       Audio.me_stop
  40.     end
  41.     Graphics.frame_reset
  42.   end
  43.    
  44.   def se_play(se)
  45.     if se != nil and se.name != ""
  46.       Audio.se_play("Audio/SE/" + se.name, se.volume * se_volume / 100, se.pitch)
  47.     end
  48.   end
复制代码

执行命令的
  1. when 0
  2.         @bgm_window = Window_BGM_Volume.new(80, ["0%", "17%", "34%", "50%", "67%", "84%", "100%"])
  3.         @currentbgm_window = Window_CurrentBGM_Volume.new
  4.         @system_window.active = false
  5.       when 1
  6.         @sfx_window = Window_SFX_Volume.new(80, ["0%", "17%", "34%", "50%", "67%", "84%", "100%"])
  7.         @currentsfx_window = Window_CurrentSFX_Volume.new
  8.         @system_window.active = false
复制代码
填坑填坑填坑填坑填坑填坑填坑填坑填坑
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2009-1-11 01:13:21 | 只看该作者
动画的音效直接获取的是动画中设定的音效大小,你可以在动画播放部分音效控制里增加一个Game_System的控制变量
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

5
发表于 2009-1-11 01:50:43 | 只看该作者
好久不见亿万了……话说1012人气高么?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

6
 楼主| 发表于 2009-1-11 05:29:28 | 只看该作者
惊现亿万大神!{/se}
话说不知道脚本里哪里是控制动画播放的||||
RTAB战斗系统的后面倒是有一大堆判断动画闪烁的脚本,就是不知道哪里是音效控制||||
填坑填坑填坑填坑填坑填坑填坑填坑填坑
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

7
发表于 2009-1-11 17:15:23 | 只看该作者
以下引用玄月于2009-1-10 17:50:43的发言:

好久不见亿万了……话说1012人气高么?

我自己都好久没去了   一 一|||

以下引用君迁子于2009-1-10 21:29:28的发言:

惊现亿万大神!
话说不知道脚本里哪里是控制动画播放的||||
RTAB战斗系统的后面倒是有一大堆判断动画闪烁的脚本,就是不知道哪里是音效控制||||

你可以直接重新定义一下Audio这个模块的相关方法,或者你在F1里搜索一下se,可以看到有RPG::Sprite类的,里面肯定有关于se的相关操作。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

8
 楼主| 发表于 2009-1-11 20:43:21 | 只看该作者
RPG::Sprite下的只有Sprite_Character和Sprite_Battler这两个,里面没se(只有演奏逃跑之类的系统音效||)
RTAB系统脚本对动画重新定义的那块是
module RPG
  class Sprite < ::Sprite

里面也没找到se之类的东西|||||||||

这是RTAB里面动画的那段{/pz}
  1. #==============================================================================
  2. # ■ Spriteモジュール
  3. #------------------------------------------------------------------------------
  4. #  アニメーションの管理を行うモジュールです。
  5. #==============================================================================

  6. module RPG
  7.   class Sprite < ::Sprite
  8.     def initialize(viewport = nil)
  9.       super(viewport)
  10.       @_whiten_duration = 0
  11.       @_appear_duration = 0
  12.       @_escape_duration = 0
  13.       @_collapse_duration = 0
  14.       @_damage = []
  15.       @_animation = []
  16.       @_animation_duration = 0
  17.       @_blink = false
  18.     end
  19.     def damage(value, critical, type = 0)
  20.       if value.is_a?(Numeric)
  21.         damage_string = value.abs.to_s
  22.       else
  23.         damage_string = value.to_s
  24.       end
  25.       bitmap = Bitmap.new(160, 48)
  26.       bitmap.font.name = "Arial Black"
  27.       bitmap.font.size = 32
  28.       bitmap.font.color.set(0, 0, 0)
  29.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  30.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  31.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  32.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  33.       if value.is_a?(Numeric) and value < 0
  34.         if type == 0
  35.           bitmap.font.color.set(176, 255, 144)
  36.         else
  37.           bitmap.font.color.set(176, 144, 255)
  38.         end
  39.       else
  40.         if type == 0
  41.           bitmap.font.color.set(255, 255, 255)
  42.         else
  43.           bitmap.font.color.set(255, 176, 144)
  44.         end
  45.       end
  46.       if type == 2
  47.         bitmap.font.color.set(255, 224, 128)
  48.       end
  49.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  50.       if critical
  51.         string = "CRITICAL"
  52.         bitmap.font.size = 20
  53.         bitmap.font.color.set(0, 0, 0)
  54.         bitmap.draw_text(-1, -1, 160, 20, string, 1)
  55.         bitmap.draw_text(+1, -1, 160, 20, string, 1)
  56.         bitmap.draw_text(-1, +1, 160, 20, string, 1)
  57.         bitmap.draw_text(+1, +1, 160, 20, string, 1)
  58.         bitmap.font.color.set(255, 255, 255)
  59.         bitmap.draw_text(0, 0, 160, 20, string, 1)
  60.       end
  61.       num = @_damage.size
  62.       if type != 2
  63.         @_damage.push([::Sprite.new, 40, 0, rand(40) - 20, rand(30) + 50])
  64.       else
  65.         @_damage.push([::Sprite.new, 40, 0, rand(20) - 10, rand(20) + 60])
  66.       end
  67.       @_damage[num][0].bitmap = bitmap
  68.       @_damage[num][0].ox = 80 + self.viewport.ox
  69.       @_damage[num][0].oy = 20 + self.viewport.oy
  70.       if self.battler.is_a?(Game_Actor)
  71.         @_damage[num][0].x = self.x
  72.         @_damage[num][0].y = self.y - self.oy / 2
  73.       else
  74.         @_damage[num][0].x = self.x + self.viewport.rect.x -
  75.                             self.ox + self.src_rect.width / 2
  76.         @_damage[num][0].y = self.y - self.oy * self.zoom_y / 2 +
  77.                             self.viewport.rect.y
  78.         @_damage[num][0].zoom_x = self.zoom_x
  79.         @_damage[num][0].zoom_y = self.zoom_y
  80.         @_damage[num][0].z = 3000
  81.       end
  82.     end
  83.     def animation(animation, hit)
  84.       return if animation == nil
  85.       num = @_animation.size
  86.       @_animation.push([animation, hit, animation.frame_max, []])
  87.       bitmap = RPG::Cache.animation(animation.animation_name,
  88.                                     animation.animation_hue)
  89.       if @@_reference_count.include?(bitmap)
  90.         @@_reference_count[bitmap] += 1
  91.       else
  92.         @@_reference_count[bitmap] = 1
  93.       end
  94.       if @_animation[num][0].position != 3 or
  95.           not @@_animations.include?(animation)
  96.         for i in 0..15
  97.           sprite = ::Sprite.new
  98.           sprite.bitmap = bitmap
  99.           sprite.visible = false
  100.           @_animation[num][3].push(sprite)
  101.         end
  102.         unless @@_animations.include?(animation)
  103.           @@_animations.push(animation)
  104.         end
  105.       end
  106.       update_animation(@_animation[num])
  107.     end
  108.     def loop_animation(animation)
  109.       return if animation == @_loop_animation
  110.       dispose_loop_animation
  111.       @_loop_animation = animation
  112.       return if @_loop_animation == nil
  113.       @_loop_animation_index = 0
  114.       animation_name = @_loop_animation.animation_name
  115.       animation_hue = @_loop_animation.animation_hue
  116.       bitmap = RPG::Cache.animation(animation_name, animation_hue)
  117.       if @@_reference_count.include?(bitmap)
  118.         @@_reference_count[bitmap] += 1
  119.       else
  120.         @@_reference_count[bitmap] = 1
  121.       end
  122.       @_loop_animation_sprites = []
  123.       for i in 0..15
  124.         sprite = ::Sprite.new
  125.         sprite.bitmap = bitmap
  126.         sprite.visible = false
  127.         @_loop_animation_sprites.push(sprite)
  128.       end
  129.       # update_loop_animation
  130.     end
  131.     def dispose_damage
  132.       for damage in @_damage.reverse
  133.         damage[0].bitmap.dispose
  134.         damage[0].dispose
  135.         @_damage.delete(damage)
  136.       end
  137.     end
  138.     def dispose_animation
  139.       for anime in @_animation.reverse
  140.         sprite = anime[3][0]
  141.         if sprite != nil
  142.           @@_reference_count[sprite.bitmap] -= 1
  143.           if @@_reference_count[sprite.bitmap] == 0
  144.             sprite.bitmap.dispose
  145.           end
  146.         end
  147.         for sprite in anime[3]
  148.           sprite.dispose
  149.         end
  150.         @_animation.delete(anime)
  151.       end
  152.     end
  153.     def effect?
  154.       @_whiten_duration > 0 or
  155.       @_appear_duration > 0 or
  156.       @_escape_duration > 0 or
  157.       @_collapse_duration > 0 or
  158.       @_damage.size == 0 or
  159.       @_animation.size == 0
  160.     end
  161.     def update
  162.       super
  163.       if @_whiten_duration > 0
  164.         @_whiten_duration -= 1
  165.         self.color.alpha = 128 - (16 - @_whiten_duration) * 10
  166.       end
  167.       if @_appear_duration > 0
  168.         @_appear_duration -= 1
  169.         self.opacity = (16 - @_appear_duration) * 16
  170.       end
  171.       if @_escape_duration > 0
  172.         @_escape_duration -= 1
  173.         self.opacity = 256 - (32 - @_escape_duration) * 10
  174.       end
  175.       if @_collapse_duration > 0
  176.         @_collapse_duration -= 1
  177.         self.opacity = 256 - (48 - @_collapse_duration) * 6
  178.       end
  179.       for damage in @_damage
  180.         if damage[1] > 0
  181.           damage[1] -= 1
  182.           damage[4] -= 3
  183.           damage[2] -= damage[4]
  184.           if self.battler.is_a?(Game_Actor)
  185.             damage[0].x = self.x + (40 - damage[1]) * damage[3] / 10
  186.             damage[0].y = self.y - self.oy / 2 + damage[2] / 10
  187.           else
  188.             damage[0].x = self.x + self.viewport.rect.x -
  189.                           self.ox + self.src_rect.width / 2 +
  190.                           (40 - damage[1]) * damage[3] / 10
  191.             damage[0].y = self.y - self.oy * self.zoom_y / 2 +
  192.                           self.viewport.rect.y + damage[2] / 10
  193.             damage[0].zoom_x = self.zoom_x
  194.             damage[0].zoom_y = self.zoom_y
  195.           end
  196.           damage[0].z = 2960 + damage[1]
  197.           damage[0].opacity = 256 - (12 - damage[1]) * 32
  198.           if damage[1] == 0
  199.             damage[0].bitmap.dispose
  200.             damage[0].dispose
  201.             @_damage.delete(damage)
  202.           end
  203.         end
  204.       end
  205.       for anime in @_animation
  206.         if (Graphics.frame_count % 2 == 0)
  207.           anime[2] -= 1
  208.           update_animation(anime)
  209.         end
  210.       end
  211.       if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
  212.         update_loop_animation
  213.         @_loop_animation_index += 1
  214.         @_loop_animation_index %= @_loop_animation.frame_max
  215.       end
  216.       if @_blink
  217.         @_blink_count = (@_blink_count + 1) % 32
  218.         if @_blink_count < 16
  219.           alpha = (16 - @_blink_count) * 6
  220.         else
  221.           alpha = (@_blink_count - 16) * 6
  222.         end
  223.         self.color.set(255, 255, 255, alpha)
  224.       end
  225.       @@_animations.clear
  226.     end
  227.     def update_animation(anime)
  228.       if anime[2] > 0
  229.         frame_index = anime[0].frame_max - anime[2]
  230.         cell_data = anime[0].frames[frame_index].cell_data
  231.         position = anime[0].position
  232.         animation_set_sprites(anime[3], cell_data, position)
  233.         for timing in anime[0].timings
  234.           if timing.frame == frame_index
  235.             animation_process_timing(timing, anime[1])
  236.           end
  237.         end
  238.       else
  239.         @@_reference_count[anime[3][0].bitmap] -= 1
  240.         if @@_reference_count[anime[3][0].bitmap] == 0
  241.             anime[3][0].bitmap.dispose
  242.         end
  243.         for sprite in anime[3]
  244.           sprite.dispose
  245.         end
  246.         @_animation.delete(anime)
  247.       end
  248.     end
  249.     def animation_set_sprites(sprites, cell_data, position)
  250.       for i in 0..15
  251.         sprite = sprites[i]
  252.         pattern = cell_data[i, 0]
  253.         if sprite == nil or pattern == nil or pattern == -1
  254.           sprite.visible = false if sprite != nil
  255.           next
  256.         end
  257.         sprite.visible = true
  258.         sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  259.         if position == 3
  260.           if self.viewport != nil
  261.             sprite.x = self.viewport.rect.width / 2
  262.             if $game_temp.in_battle and self.battler.is_a?(Game_Enemy)
  263.               sprite.y = self.viewport.rect.height - 300
  264.             else
  265.               sprite.y = self.viewport.rect.height - 300
  266.             end
  267.           else
  268.             sprite.x = 320
  269.             sprite.y = 240
  270.           end
  271.         else
  272.           sprite.x = self.x + self.viewport.rect.x -
  273.                       self.ox + self.src_rect.width / 2
  274.           if $game_temp.in_battle and self.battler.is_a?(Game_Enemy)
  275.             sprite.y = self.y - self.oy * self.zoom_y / 2 +
  276.                         self.viewport.rect.y
  277.             if position == 0
  278.               sprite.y -= self.src_rect.height * self.zoom_y / 4
  279.             elsif position == 2
  280.               sprite.y += self.src_rect.height * self.zoom_y / 4
  281.             end
  282.           else
  283.             sprite.y = self.y + self.viewport.rect.y -
  284.                         self.oy + self.src_rect.height / 2
  285.             sprite.y -= self.src_rect.height / 4 if position == 0
  286.             sprite.y += self.src_rect.height / 4 if position == 2
  287.           end
  288.         end
  289.         sprite.x += cell_data[i, 1]
  290.         sprite.y += cell_data[i, 2]
  291.         sprite.z = 150#2000
  292.         sprite.ox = 96
  293.         sprite.oy = 96
  294.         sprite.zoom_x = cell_data[i, 3] / 100.0
  295.         sprite.zoom_y = cell_data[i, 3] / 100.0
  296.         if position != 3
  297.           sprite.zoom_x *= self.zoom_x
  298.           sprite.zoom_y *= self.zoom_y
  299.         end
  300.         sprite.angle = cell_data[i, 4]
  301.         sprite.mirror = (cell_data[i, 5] == 1)
  302.         sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  303.         sprite.blend_type = cell_data[i, 7]
  304.       end
  305.     end
  306.     def x=(x)
  307.       sx = x - self.x
  308.       if sx != 0
  309.         for anime in @_animation
  310.           if anime[3] != nil
  311.             for i in 0..15
  312.               anime[3][i].x += sx
  313.             end
  314.           end
  315.         end
  316.         if @_loop_animation_sprites != nil
  317.           for i in 0..15
  318.             @_loop_animation_sprites[i].x += sx
  319.           end
  320.         end
  321.       end
  322.       super
  323.     end
  324.     def y=(y)
  325.       sy = y - self.y
  326.       if sy != 0
  327.         for anime in @_animation
  328.           if anime[3] != nil
  329.             for i in 0..15
  330.               anime[3][i].y += sy
  331.             end
  332.           end
  333.         end
  334.         if @_loop_animation_sprites != nil
  335.           for i in 0..15
  336.             @_loop_animation_sprites[i].y += sy
  337.           end
  338.         end
  339.       end
  340.       super
  341.     end
  342.   end
  343. end
复制代码
填坑填坑填坑填坑填坑填坑填坑填坑填坑
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

9
发表于 2009-1-11 21:43:25 | 只看该作者
我的意思是你去F1里找
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

10
 楼主| 发表于 2009-1-13 08:12:24 | 只看该作者
RPG::AudioFile里面好像不包括动画里的SE,我将音量改成0动画还是有声音……
RPG::Animation::Timing这个不知道怎么改||||||||{/pz}
填坑填坑填坑填坑填坑填坑填坑填坑填坑
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-19 16:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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