Project1

标题: 让你的文字有音效!对话音效系统(基于RMVA开发,也许可通用 [打印本页]

作者: MonsterJohnCN    时间: 2015-9-24 16:20
标题: 让你的文字有音效!对话音效系统(基于RMVA开发,也许可通用
本帖最后由 MonsterJohnCN 于 2015-9-27 21:36 编辑



TextSoundSystem.rar (1.42 MB, 下载次数: 728)

(PS:不用在意截图内的内容,日常黑基友← ←)

RUBY 代码复制
  1. # 使用方式
  2. # 1.将这里的脚本全部复制到插件脚本里
  3. # 2.在事件中调用本系统提供的自定义脚本即可修改本系统的属性
  4.  
  5. # 系统属性
  6. # 1.文字显示时播放的音效
  7. # 2.每显示多少个文字播放一次音效
  8.  
  9. # 自定义脚本
  10. # mjsys_set_text_se("Sound_Effect_Name")  -  Audio\\SE目录下的指定音效的名字(不含后缀名)
  11. # mjsys_set_text_se_interval(interval)  -  每多少个字播放一次音效,必须为大于等于1的整数
  12.  
  13. # 脚本使用示例
  14. # mjsys_set_text_se("bell3") : 作用,将文字显示时播放的音效设置为bell3
  15. # mjsys_set_text_se(3) : 作用,设置每显示3个文字时才会播放一次音效
  16.  
  17. # 其它说明
  18. # 1.系统的属性一旦被修改,则会在后续的逻辑中一直生效,除非你再次手动修改了它
  19. # 2.无论文字音效间隔是多少,对话内容的第一个文字永远会发声
  20.  
  21. # ------------------------------------------------------------------------------------------------------
  22.  
  23. # 默认参数
  24.  
  25.   $mjsys_text_interval = 1 # 每多少个字播放一次音效,默认为1
  26.   $mjsys_text_se = nil # 文字的音效,默认没有音效
  27.  
  28. # ------------------------------------------------------------------------------------------------------
  29.  
  30. # 内部逻辑
  31. # 如果没有特殊需求,就不要修改这里了。
  32. # 如果你想要修改本系统或者添加一些别的功能,那请继续吧。
  33.  
  34. $mjsys_text_current_frame = 0
  35.  
  36.  
  37.  
  38. class Window_Message < Window_Base
  39.  
  40.   alias mjsys_fiber_main fiber_main
  41.   def fiber_main
  42.     mjsys_fiber_main
  43.     $mjsys_text_current_frame = $mjsys_text_interval
  44.   end
  45.  
  46.   alias mjsys_wait_for_one_character wait_for_one_character
  47.   def wait_for_one_character
  48.     mjsys_wait_for_one_character
  49.     if $mjsys_text_se != nil then
  50.       if $mjsys_text_current_frame == $mjsys_text_interval then
  51.         $mjsys_text_current_frame = 1
  52.         Audio.se_play($mjsys_text_se)
  53.       else
  54.         $mjsys_text_current_frame = $mjsys_text_current_frame + 1
  55.       end
  56.     end
  57.   end
  58.  
  59. end
  60.  
  61.  
  62.  
  63. class Game_Interpreter
  64.  
  65.   def mjsys_set_text_se(text)
  66.     if text == "" or text == nil then
  67.       $mjsys_text_se = nil
  68.     else
  69.       $mjsys_text_se = "Audio\\SE\\"+text
  70.     end
  71.   end
  72.  
  73.   def mjsys_set_text_se_interval(interval)
  74.     $mjsys_text_interval = interval
  75.   end
  76.  
  77. end
  78.  
  79. # ------------------------------------------------------------------------------------------------------
(ノ゚∀゚)ノ
作者: 1597446162    时间: 2016-5-8 17:42
666……可惜大部分游戏都没有配音
作者: shitake    时间: 2016-5-8 22:19
为什么不考虑直接扩充【显示文字】里的控制符呢
例如 \M[1] 表示开始播放第一号的音效什么的
作者: 超级霹雳粉    时间: 2016-9-20 21:22
本帖最后由 超级霹雳粉 于 2016-9-20 21:26 编辑

楼主?这貌似没啥软用,除非能人工智能转语音
作者: jgbaqua    时间: 2020-5-7 12:07
好像会用到,谢谢分享。
作者: 暴走杀神    时间: 2020-5-7 13:31
XP能用吗?




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