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

Project1

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

足音系统 求扩展与小修正

[复制链接]

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
跳转到指定楼层
1
发表于 2017-7-31 09:22:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 89444640 于 2019-8-23 10:12 编辑

该系统如下
https://rpg.blue/forum.php?mod=v ... amp;_dsign=f1606fb7
咨询原作者一周未有回话。因此发帖求各位帮忙。

此脚本效后果可以接受,但是有个潜在隐患
1.
只能定义地图标记1~7的音效,在外网购买了音效库使用权以后,我可以找到有使用权的对应音效,因此,此脚本对我来说具有实际意义。
但是只有7种地形的情况下,小品级游戏尚可,对于中大型游戏,只有7个地形效果肯定不够用
因此造成的后果是有的地方有音效有的地方没有,比全都没音效还难受。

因此求修改此脚本为,能定义至少30种音效为方便使用,标记方式同为地形标记
0~7后面编号扩展可以为为A~Z或者双位数实现。
尽量以直观易操作的方式来实现,尽量不要以xx地图XX编号图块XX音效这样的方式来实现。不直观 不易操作,有错误不易修改,修改地图后全部编号都得调。超级不实用。

2.
该脚本只适合行走速度为3时候的情况,行走音效与实际移动位移声音较为对应
若行走速度加快,该脚本的效果是减少播放间隔,但是这样会显得闹得慌,因此可否修改为加快移动速度后为4或5时,播放的脚步声音与实际迈步对应?


以商业游戏大多数都有地形音效的,加一个肯定会提升品质,但是没有程序员大师的帮忙,此效果无法实现。

恳请各位在百忙之中抽出一点点时间帮忙修改。

若修改复杂,可以为您的劳动付出,按照您的认为的劳动价值现金支付报酬。

提供四组环境音效以供测试
Footsound.rar (300.97 KB, 下载次数: 138)
编号1 劣质轻足音 基本听不见 也不是我在外国网站支付报酬购买的,不建议使用
编号2 高跟鞋石地板大厅
编号3 沙地
编号4 沼泽水路
以上仅供脚本测试使用,擅自挪用,后果自负。

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41081
在线时间
7566 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

来自 4楼
发表于 2017-8-1 01:50:37 | 只看该作者
我这边魔改了RM,让编辑器可以编辑最多64种不同的地形标记。
但因为代码容量分配问题,会导致以下问题:
1.图块优先级的显示不再是 【·】【★1】【★2】【★3】【★4】【★5】,而变成了012345(腾出代码空间供需求功能)
2.地形标记会以2位数8进制显示,因为资源图片只有0-7八个数字,所以会有00-77这64种不同的地形标记。

如果有需要,我可以帮你在脚本内也改成八进制读取,以保证视觉同步。

如果楼主需要可以在本层点评。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

来自 7楼
发表于 2017-8-1 11:26:11 | 只看该作者
本帖最后由 RyanBern 于 2017-8-1 12:00 编辑

脚本部分已经改好。使用时需要配合黄鸡的修改版 RPGXP 1.03 进行使用。
修改版地址:https://rpg.blue/forum.php?mod=viewthread&tid=402059
设置地形标志的时候,编辑器只显示 8 进制。实际素材命名的时候和编辑器中保持一致。如果是个位数需要去掉首位的0。

例如编辑器中某图快的标志是 10,那么素材就是 Step10_[1-4].ogg
RUBY 代码复制
  1. #==============================================================================
  2. # +++ 足音(for XP) v1.0 +++
  3. #==============================================================================
  4. # 原版 By:VIPArcher
  5. # XP移植 :RyanBern
  6. #
  7. #  -- 本脚本来自 [url]https://rpg.blue[/url] 使用或转载请保留以上信息。
  8. #
  9. #==============================================================================
  10. #
  11. # 设定玩家在不同地形标志移动时不同的脚步声
  12. #
  13. # 脚步声的素材名称命名是有一定规则的。例如Step0_0
  14. # "Step"+地形标志ID+"_"+随机编号(0-3)
  15. # 脚步声素材每组4枚。例如地形标志为2的脚步声
  16. # 就命名为[Step2_0.ogg;Step2_1.ogg;Step2_2.ogg;Step2_3.ogg]
  17. # 也可以设置一些区域是没有脚步声的。
  18. # 效果的开关可以通过控制设置的开关进行控制
  19. #
  20. #==============================================================================
  21. #==============================================================================
  22. # ★ 设定部分 ★
  23. #==============================================================================
  24. module VIPArcher;end
  25. module VIPArcher::FOOTSOUND
  26.   #开启脚步声开关编号
  27.   FootSoundEnabled = 95
  28.  
  29.   #没有脚步声的地形标志
  30.   NoSoundTerrains = [0]
  31.  
  32.   #脚本声素材路径
  33.   SoundDir = "Audio/SE/Footsound"
  34.  
  35.   #音量
  36.   Volume =100
  37.  
  38.   #音调
  39.   Pitch = 100
  40. end
  41.  
  42. class Game_Player < Game_Character
  43.   include VIPArcher::FOOTSOUND
  44.  
  45.   alias rb_update_move_20170801 update_move
  46.   def update_move
  47.     rb_update_move_20170801
  48.     foot_sound_play
  49.   end
  50.  
  51.   def play_sound?
  52.     @anime_count > 18 - @move_speed * 2 && @pattern % 2 == 0
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 播放脚步声
  56.   #--------------------------------------------------------------------------
  57.   def foot_sound_play
  58.     tag = $game_player.terrain_tag
  59.     return if !$game_switches[FootSoundEnabled]
  60.     return if NoSoundTerrains.include?(tag)
  61.     filename = "#{SoundDir}/Step#{tag}_#{rand(4)}"
  62.     #filename = sprintf("%s/Step%o_%d}", SoundDir, tag, rand(4))
  63.  
  64.     begin
  65.       Audio.se_play(filename, Volume, Pitch) if play_sound?
  66.     rescue Errno::ENOENT
  67.     end
  68.   end
  69. end

点评

您好 脚本出现未知故障,请看一下,谢谢。  发表于 2017-8-3 17:18
非常感谢,目前测试未见问题,回家进行加入多种地形se测试。  发表于 2017-8-1 16:39
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

来自 17楼
发表于 2017-8-13 12:36:30 | 只看该作者
本帖最后由 RyanBern 于 2017-8-13 12:40 编辑

脚本被人改的很乱。控制脚本生效应该用常量+开关绑定的方式,不应该用全局变量。

两个脚本刷新机制不同,没必要放在一起使用。启动的方式已经写在前面注释里,启动重力脚本将禁用脚步声脚本。

注意:有些地方因为没有素材所以我把换素材的地方注释掉了,请将这些注释还原回正常的代码。代码太长所以放在附件里了,7zip解压之后记事本打开即可。
Gravity.7z (6.69 KB, 下载次数: 146)

点评

$airjump = X 为空中连跳次数,开始设置为0,后来才改成的1,现在只要开启重力脚本就两段跳了,请问怎么处理让开始时候只能跳跃一次?  发表于 2017-8-13 14:35
--b抱歉,忘了单位没装7zip了能读取了  发表于 2017-8-13 14:06
抱歉txt打不开,似乎需要专门的软件,我先找一下,还请您帮我转换成txt吧  发表于 2017-8-13 14:01
辛苦了,这个脚本改过太多次了确实很乱,我这就去测试。  发表于 2017-8-13 13:52
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
19
 楼主| 发表于 2017-8-13 18:40:52 | 只看该作者
本帖最后由 89444640 于 2017-8-13 18:42 编辑

发现新的bug,原脚本是上下方向键失效的,现在重力启动后,上下方向键依然有效,按上会在原地小幅度抖动播放跳跃落地时的音效,但不能向上移动,跳跃中按下方向键或者在下落过程中按下方向键,角色会消失并且加速下落,加速下落这个我倒是挺喜欢,因为我有对应下踩图像配合,但是碍于脚本功能未使用,就是这个。

请问是否可以去掉向上移动的bug,且保留按下方向加速下落,因为效果非常像恶魔城两段跳后下踩。如果有能做出的话,可能还需要考虑一个角色当前朝向的问题,虽然说是下落,实际上因为是横版,会有左右朝向的区别。

而且如果可以的话,能否做出过高高落,高度大于32*10落下,落地时会有短暂硬直的效果,否则这个加速下落效果会显得很硬。(这个非必须因为很可能出别的问题,况且估计也很难模拟不出恶魔城高跳到顶端撞顶的硬直--b我就不就结了。)
若不可请修正上下依然有效问题。

点评

好的我去继续测试~  发表于 2017-8-13 18:58
注释掉121和132行即可。  发表于 2017-8-13 18:53
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

18
发表于 2017-8-13 14:41:53 | 只看该作者
89444640 发表于 2017-8-7 09:11
因为横版只需要左右,因此 只加了左右移动的情况。
def update
    update_move if Input.press?(Input: ...

我更改脚本中的21行,AIRJUMP = 1 指的是连跳次数。如果需要改成别的直接修改数字即可。

如果不想要常量,请进行如下操作:
将 228 行的 AIRJUMP 替换为
RUBY 代码复制
  1. $game_variables[AIRJUMP]

此后 AIRJUMP 的含义变为控制连跳次数的变量的编号,即将连跳次数与变量绑定。例如此时设置 AIRJUMP = 93 的含义就是 93 号变量控制连跳次数。

点评

发现新的bug,重力启动后,上下方向键依然有效,详情见回复。  发表于 2017-8-13 18:42
太好了,非常感谢,这回事件跳跃打烛台的操作可以简化好多,以前得分清什么时候获得两段跳的,事件写的麻烦死--b我继续测试~  发表于 2017-8-13 15:12
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
16
 楼主| 发表于 2017-8-7 09:11:13 | 只看该作者
soulsaga 发表于 2017-8-6 09:58
或且用开关代替也行..不要用全局变量..

3试试这样


因为横版只需要左右,因此 只加了左右移动的情况。
def update
    update_move if Input.press?(Input::RIGHT)
    update_move if Input.press?(Input::LEFT)
    @data_count -= 1 if @data_count and @data_count > 0

足音有是有了,但是走路变成超快速的抖动。se也是超快速的播放
跑动那里加上更重--b

是不是需要整合素材做出测试版才容易调脚本?

点评

果然系统之间不是那么好整合的--b除非找人全体定制,否则我还是别老惦记加脚本了--b周末调了两整天地图,足音总时间绝对过24小时,纯苦力活。  发表于 2017-8-7 11:55
还是等大神帮你弄吧..我弄不来..  发表于 2017-8-7 11:52
应该说是一直返回FALSE..  发表于 2017-8-7 11:51
那就无解了..用了重力脚本..判断是否移动中的脚本就会失效..  发表于 2017-8-7 11:38
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36124
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
15
发表于 2017-8-6 09:58:46 | 只看该作者
本帖最后由 soulsaga 于 2017-8-6 13:43 编辑
89444640 发表于 2017-8-6 06:18
怎么改改常量?没有判断师傅哦是rpg地图的方法。脚本中文说明只给了这一个重力生效或者失效的代码。
最近 ...


或且用开关代替也行..不要用全局变量..

3试试这样
UP    = 48                  # 上方向の余裕(0 < UP < 63)
  DOWN  = -5                  # 这个是垂直方向微调 下方向の余裕(0 < DOWN <63)
  SIDE  = 32                  # 左右方向の余裕(0 < SIDE <63)
  SLANT = false               # 移動ルートの斜め移動時、速度修正
  JUMPMAX = 100              
  JUMPADD = 10
   if $ud_ok == true
   UP    = 0                  # 上方向の余裕(0 < UP < 63)
   DOWN  = 0                  # 这个是垂直方向微调 下方向の余裕(0 < DOWN <63)
   SIDE  = 0                  # 左右方向の余裕(0 < SIDE <63)
   end
RUBY 代码复制
  1. # ● フレーム更新
  2.   #--------------------------------------------------------------------------
  3.   alias :update_original :update
  4.   def update
  5.     update_move if Input.press?(Input::RIGHT)
  6.  
  7.     @data_count -= 1 if @data_count and @data_count > 0
  8.     # @walk:歩行速度 @dash:ダッシュ時移動速度


重力脚本改成这样..向右移动时就可以正常播放足音..其他方向你自己加吧..还有加速键也要..你该懂吧?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
14
 楼主| 发表于 2017-8-6 06:18:53 | 只看该作者
soulsaga 发表于 2017-8-5 21:35
1难道是全局变量是问题?
试试把$ud_ok改成常量?
3你有用来判断是否RPG地图的方法么.. ...

怎么改改常量?没有判断师傅哦是rpg地图的方法。脚本中文说明只给了这一个重力生效或者失效的代码。
最近看烛光脚本才想到,是不是加个控制开关这问题就没了?
我看了一下感谢用户,这脚本至少修了四遍- -b
其实这指不定哪个其他脚本还调用变量了,因为我把烛光脚本扔前面时候,连光照都是歪的,还好放在靠近main前面没问题了。
但是影响足音的只有这个重力脚本。
等版主大人帮我修正吧,我继续编辑地图地形编号,官方的还好,昨天一天都标记完了。自己画的那些没优化图块的地图,得标记的我吐血。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36124
在线时间
10712 小时
注册时间
2009-3-15
帖子
4806
13
发表于 2017-8-5 21:35:41 | 只看该作者
本帖最后由 soulsaga 于 2017-8-5 21:43 编辑
89444640 发表于 2017-8-5 14:12
别整合在一起使用,重力系统剧情过后,我只能让游戏者自己删呢- -b
但是这脚本没开关方式只有生效代码,
为 ...


1难道是全局变量是问题?
试试把$ud_ok改成常量?
3你有用来判断是否RPG地图的方法么..
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35138
在线时间
4164 小时
注册时间
2007-12-15
帖子
10061
12
 楼主| 发表于 2017-8-5 14:12:12 | 只看该作者
本帖最后由 89444640 于 2017-8-5 14:13 编辑

别整合在一起使用,重力系统剧情过后,我只能让游戏者自己删呢- -b
但是这脚本没开关方式只有生效代码,

$ud_ok = true/false

只要脚本扔进脚本库,就会一直影响主程序运行。直到手动删除ORZ
那个屏蔽重力系统是不是可以解决这个重力脚本带来的各种异常呢?
请写好我先测试一下吧

下面的是此重力脚本目前自己测试无数小时发现的致命bug

1.
在$ud_ok = false的情况下,重力脚本开启,如果这时候玩家死亡,读取任何一个没有设置$ud_ok = false的进度,直接穿透异常,角色会下落到禁止穿透的原件为止
2.
读取进度时候,如果我动了任何一个其他脚本,以后的所有显示都会出现异常——角色行走图在用事件控制时候,只能播放坐左边那排,然后无论怎么弄都会跳回到左上第一动作,因为这个我逼得单独改了一堆动作。
3.
就是脚本中
UP    = 48                  # 上方向の余裕(0 < UP < 63)
DOWN  = -5                  # 这个是垂直方向微调 下方向の余裕(0 < DOWN <63)
SIDE  = 32
角色在操作时候会有一定的偏移,ACT中是增加手感的,删了影响ACT操作,平台都跳不过去了。
不删的话,即使关了重力脚本,在rpg用地图上,也会出现微小的偏移,造成事件总是对不正。
因此只能用最原始的方法,剧情中ACT这段过去以后让玩家自己删,再也不用了。
本来我是想的挺好 ,有的迷宫用横版act动作+rpg,结果因为这些bug,有一些本来已经画好的ACT地图我都硬给改rpg的样式的地图了ORZ

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

11
发表于 2017-8-5 12:17:12 | 只看该作者
89444640 发表于 2017-8-5 09:30
在与主程序的整合过程中出现了异常情况,当加入重力脚本以后,即使重力系统开关没打开,足音系统也是失效  ...

看了一下脚本,这两个系统是否需要整合在一起以便同时使用?如果不需要我可以把开关加进去:在脚本系统打开时将自动屏蔽重力系统。如果需要整合我再想想办法。

点评

辛苦了  发表于 2017-8-10 16:29
最近在出差,过两天会完成修复。  发表于 2017-8-10 10:49
版主,请看回复,帮我修改一下脚本吧~刚发现回复时候忘了引用了。  发表于 2017-8-10 07:36
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 01:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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