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

Project1

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

[转载发布] 【渣翻】Galv的行走图效果使用方法介绍

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1078
在线时间
127 小时
注册时间
2017-9-27
帖子
42
跳转到指定楼层
1
发表于 2017-11-16 16:01:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 魔法☆梅莉 于 2017-11-16 17:14 编辑

https://galvs-scripts.com/galvs-character-effects/
Galv's Character Effects ↑原文和范例在此处
RUBY 代码复制
  1. #------------------------------------------------------------------------------#
  2. #  Galv的行走图效果脚本
  3. #------------------------------------------------------------------------------#
  4. #  用于RPGMAKER VX ACE
  5. #  Version 2.1
  6. #------------------------------------------------------------------------------#
  7. #  2014-01-16 - Version 2.1 - 修复了在阴影形态时的双气球/动画的bug
  8. #  2013-12-07 - Version 2.0 - 增补命令,使得添加事件效果更容易
  9. #                           - 修复了影子朝向的bug  
  10. #  2013-02-24 - Version 1.9 - 为反射和影子添加了z轴
  11. #  2013-02-23 - Version 1.8 - 增加多光源光影效果
  12. #  2013-02-22 - Version 1.7 - 修复了一些bug
  13. #  2013-02-22 - Version 1.6 - 增加了附带图标效果
  14. #  2013-02-22 - Version 1.5 - 修复了大地图上镜面效果的bug
  15. #  2013-02-22 - Version 1.4 - 增加了骑乘工具的效果
  16. #  2013-02-21 - Version 1.3 - 修复了跳跃反射和其他的镜面上的微妙的地方
  17. #  2013-02-21 - Version 1.2 - 少于4个角色时的bug(发生中断)
  18. #  2013-02-21 - Version 1.1 - 更新了闪烁效果
  19. #  2013-02-21 - Version 1.0 - 发布
  20. #------------------------------------------------------------------------------#
  21. # 本脚本的功能是给地图上的人物、事件等(包括主角外的队友)提供一些有趣的附加效果。
  22. # 目前包括以下效果:阴影、倒映、镜面反射等。
  23. #
  24. # 阴影:出现在人物和事件的脚下,具体方向取决于你的光源。
  25. #
  26. # 倒映:效果是看上去像水面或玻璃地板的反射一样。
  27. # 你需要先把图块做成半透明的,后面用远景层垫底。
  28. #
  29. # 镜面反射:和“倒映”差不多,就是换成了墙上的镜面而已。
  30. # 两种效果可以同时使用,建议准备一些不同的行走图,可以达成不同效果。
  31. #
  32. #------------------------------------------------------------------------------#
  33.  
  34. #------------------------------------------------------------------------------#
  35. #  NEW - 事件页的第一条写上注释:
  36. #------------------------------------------------------------------------------#
  37. # 在事件页的第一条插入“注释”栏,并写上如下内容可以达成一些对应效果。
  38. #
  39. # <icon:id,x,y>      # 本事件附近显示一个图标 (图标id,以本事件为基础的x坐标,y坐标)
  40. # <shadow>           # 本事件启用阴影效果。
  41. # <reflect>          # 本事件启用倒映效果。
  42. #
  43. #------------------------------------------------------------------------------#
  44. #  例如:
  45. # <icon:1,0,0><shadow><reflect>   #在某事件同时使用图标(1号)、阴影、倒映三个效果
  46. #------------------------------------------------------------------------------#
  47.  
  48.  
  49. #------------------------------------------------------------------------------#
  50. #  脚本指令:
  51. #------------------------------------------------------------------------------#
  52. #
  53. #  char_effects(x,x,x,status)
  54. #
  55. #------------------------------------------------------------------------------#
  56. # 在游戏中每个效果都可以开启和关闭。
  57. # 你可以同时改变复数个效果的开关,数字代表效果代号:
  58. #  # 0 = reflect    1 = shadows    2 = mirror    3 = icons
  59. #------------------------------------------------------------------------------#
  60. #  例如:
  61. #  char_effects(0,true)              # 开启倒映效果
  62. #  char_effects(0,2,true)            # 同时开启倒映和镜面反射效果
  63. #  char_effects(1,3,false)           # 关闭影子和图标效果
  64. #------------------------------------------------------------------------------#
  65. #
  66. #  reflect_sprite(actor_id,filename,pos)    # 改变角色的反射效果行走图
  67. #
  68. #  reflect_esprite(event_id,filename,pos)   # 改变事件的反射效果行走图
  69. #
  70. #  reflect_vsprite(vehicle_id,filename,pos) # 改变骑乘工具的反射效果行走图
  71. #
  72. #------------------------------------------------------------------------------#
  73. #  例如:
  74. #  reflect_sprite(1,"Actor2",2)      # 把1号角色的反射效果行走图换成
  75. #                                    # 行走图Actor2第3个位置的角色图像
  76. #  reflect_esprite(3,"Actor4",5)     # 把3号事件的反射效果行走图换成
  77. #                                    # 行走图Actor2第6个位置的角色图像
  78. #  reflect_vsprite(1,"Vehicle",5)    # 把1号骑乘工具(小船)的反射效果行走图换成
  79. #                                    # 行走图Vehicle第6个位置的图像
  80. #------------------------------------------------------------------------------#
  81.  
  82. #------------------------------------------------------------------------------#
  83. # 用于打开或关闭指定事件效果的脚本指令
  84. #------------------------------------------------------------------------------#
  85. #
  86. #  reflect(x,x,x,status)   # status填写true或false
  87. #                          # 用于指定镜面反射或倒映效果的开关。
  88. #  shadow(x,x,x,status)    # x你想要改变的事件ID
  89. #                          # 想同时改变所有事件的话就填写:all
  90. #  icon(x,x,x,icon_id)     # icon_id设定角色头上的图标ID。
  91. #                          # 没有的话就写0.
  92. #
  93. #------------------------------------------------------------------------------#
  94. #  例如:
  95. #  reflect(14,17,3,1,true) # 打开事件14, 17, 3 and 1的倒映开关
  96. #  shadow(1,false)         # 关闭事件1的影子开关
  97. #  reflect(:all,true)      # 打开所有事件的开关
  98. #  icon(1,2,3,4,38)        # 在事件1,2,3 and 4头上放上38号图标
  99. #
  100. #   注意:在进图的时候所有事件默认是没效果的。
  101. #   出于某些不可抗力原因,效果开得太多会卡,建议小心使用,只在需要的时候开。
  102. #------------------------------------------------------------------------------#
  103.  
  104. #------------------------------------------------------------------------------#
  105. # 用于打开或关闭人物和骑乘工具的效果的脚本指令
  106. #------------------------------------------------------------------------------#
  107. #
  108. #  actor_reflect(actor_id,status)  # 对人物和骑乘工具的效果,默认打开状态。
  109. #  actor_shadow(actor_id,status)   # 开关效果对于它们的影响比较持♂久。
  110. #  actor_icon(actor_id,icon_id)    # 在地图之间转移也不会改变。
  111. #
  112. #  v_reflect(x,x,x,status)    # 这种v开头的指令可以用来管理骑乘工具的效果。
  113. #  v_shadow(x,x,x,status)     # 使用方法一样。
  114. #  v_icon(x,x,x,icon_id)
  115. #
  116. #------------------------------------------------------------------------------#
  117.  
  118. #------------------------------------------------------------------------------#
  119. # 设定阴影效果的脚本指令
  120. #------------------------------------------------------------------------------#
  121. #
  122. #  shadow_source(x,y,id)       # 设置光源的x,y坐标及其ID。如果同一图内有多光源,
  123. #                              # ID可以便于你移动某些光源。
  124. #                              # 切换地图的时候会重置。
  125. #  shadow_source(event_id,id)  # 直接在某事件的坐标处建立一个光源。
  126. #                              # 想要移动光源的话,这需要在平行进程中处理。
  127. #
  128. #  shadow_options(intensity,fade,flicker)    # ↓以下是效果描述
  129. #
  130. #    # intensity = 站在光源附近时影子的不透明度,255是纯黑。
  131. #    # fade = 当逐渐远离光源时,影子以何种程度变浅。
  132. #    # flicker = 只写true或false. 影子是否闪烁。
  133. #
  134. #------------------------------------------------------------------------------#
  135. #  例如:
  136. #  shadow_options(80,10,false)    # 默认设定如此
  137. #------------------------------------------------------------------------------#
  138.  
  139. #------------------------------------------------------------------------------#
  140. #  设定倒映效果的脚本指令
  141. #------------------------------------------------------------------------------#
  142. #
  143. #  reflect_options(wave_pwr)
  144. #
  145. #    # wave_pwr = 波浪效果的剧烈程度. 设定0就是没有。
  146. #
  147. #------------------------------------------------------------------------------#
  148. #  例如:
  149. #  reflect_options(1) # 设定波浪效果的强度为1.
  150. #------------------------------------------------------------------------------#
  151.  
  152.  
  153. #------------------------------------------------------------------------------#
  154. #  人物的备注标签
  155. #------------------------------------------------------------------------------#
  156. #
  157. #  <no_reflect>    # 没影子的人物 (比如吸血鬼,啧)
  158. #
  159. #  <reflect_sprite: FileName,pos>  # 可以把别的行走图当做镜面反射的像来用。
  160. #                                  # 'pos'处填写的是位置。
  161. #
  162. #------------------------------------------------------------------------------#
  163. #  例如:
  164. #  <reflect_sprite: Actor2,0>    # 行走图Actor2第一个位置的角色
  165. #  <reflect_sprite: Actor3,7>    # 行走图Actor3最后一个位置的角色
  166. #------------------------------------------------------------------------------#
  167. =end
  168.  
  169. ($imported ||= {})["Galv_Character_Effects"] = true
  170. module Galv_CEffects
  171.  
  172. #------------------------------------------------------------------------------#  
  173. #  预设定,可根据需要修改
  174. #------------------------------------------------------------------------------#
  175.  
  176.   MIRROR_REGION = 1     # 用于镜子墙面判断的区域ID。把区域画在墙上的部分,
  177.                         # 才能出现镜面反射效果。记得设置图块和远景,
  178.                         # 使镜面反射的内容可见。
  179.  
  180.   ICON_OFFSET = -60     # 显示图标时默认坐标:y坐标在角色坐标的-60处。x坐标不变
  181.  
  182.   REFLECT_Z = -10       # 反射层的高度(z轴坐标)
  183.   SHADOW_Z = 0          # 阴影层的高度(z轴坐标)
  184.  
  185. #------------------------------------------------------------------------------#  
  186. #  预设定到此为止
  187. #------------------------------------------------------------------------------#
  188. end

评分

参与人数 1+1 收起 理由
煎蛋流Kira☆ + 1 精品文章

查看全部评分

我是梅林,人称花之魔术师。

Lv3.寻梦者

梦石
0
星屑
1592
在线时间
280 小时
注册时间
2017-10-17
帖子
81
2
发表于 2017-11-16 16:51:19 | 只看该作者
感谢翻译

点评

可以,完全ok  发表于 2017-11-16 17:57

评分

参与人数 1+1 收起 理由
魔法☆梅莉 + 1 不要紧的,不知解决了你的问题没…….

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9275
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2017-11-16 16:57:23 | 只看该作者
地面反射不是水面倒影吗···

评分

参与人数 1+1 收起 理由
魔法☆梅莉 + 1 感谢提醒,已修正

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
4481
在线时间
1149 小时
注册时间
2016-10-28
帖子
551

开拓者

4
发表于 2017-11-16 20:47:28 | 只看该作者
本帖最后由 暮觉 于 2017-11-17 18:18 编辑

这个脚本用得蛮多的,我唯一的怨念就是……镜像和地面(水面)倒影用的是同一张图……
明显他们的像是不同的喂!

感谢楼主的翻译和增补!

点评

↓不哭啦,梅林大哥哥给你买金平糖吃  发表于 2017-11-17 18:13
↓写了个小插件增补了这个功能,见楼下  发表于 2017-11-17 18:09
↓昨天没仔细看,脚本中mirror和reflect两边的sprite是分开写的,所以我误以为支持分开设置了……十分抱歉,应该是潜在支持的,怀疑作者并没有做好  发表于 2017-11-17 16:56
(悲伤的哭泣)  发表于 2017-11-17 16:39
↓抱歉我重新看了一遍,是我弄错了,这个的确不是分别设定的  发表于 2017-11-17 16:35

评分

参与人数 1+1 收起 理由
魔法☆梅莉 + 1 其实可以用不同的喔,只是需要分别设置.

查看全部评分

用脑子来养鱼的杯子。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1078
在线时间
127 小时
注册时间
2017-9-27
帖子
42
5
 楼主| 发表于 2017-11-17 17:54:43 | 只看该作者
本帖最后由 魔法☆梅莉 于 2017-11-17 18:08 编辑

@暮觉
也许可以试试把下面这段脚本插在原插件的后面部分,经测试这边可以把不同效果的对应行走图分开设置了。
要设置不同的镜面倒影,则在事件脚本中书写
mirror_sprite(actor_id,filename,pos) 即可 参数和原来的reflect_sprite相同。
若只设置了reflect_sprite但未设置mirror_sprite,那么仍然会使用reflect_sprite的那张图作为镜面倒影。
只设置mirror但不设置reflect也可以。
应该可以满足需求了。
不知道有没有别的bug?
RUBY 代码复制
  1. class Game_Character < Game_CharacterBase
  2.   attr_accessor  :mirror_sprite
  3. end
  4. class Game_Follower < Game_Character
  5.   alias old_galv_reflect_gf_refresh refresh
  6.   def refresh
  7.     galv_reflect_gf_refresh
  8.     return if actor.nil?
  9.     @reflect = actor.reflect
  10.     @reflect_sprite = actor.reflect_sprite
  11.     @mirror_sprite = actor.mirror_sprite
  12.     @icon = actor.icon
  13.     if SceneManager.scene_is?(Scene_Map)
  14.       SceneManager.scene.spriteset.refresh_effects
  15.     end
  16.   end
  17. end # Game_Follower < Game_Character
  18. class Game_Player < Game_Character
  19.   alias old_galv_reflect_gp_refresh refresh
  20.   def refresh
  21.     @mirror_sprite = actor.mirror_sprite
  22.     old_galv_reflect_gp_refresh
  23.   end
  24. end # Game_Player < Game_Character
  25. class Game_Actor < Game_Battler
  26.   attr_accessor  :mirror_sprite
  27.   alias old_galv_reflect_game_actor_initialize initialize
  28.   def initialize(actor_id)
  29.     old_galv_reflect_game_actor_initialize(actor_id)
  30.     @mirror_sprite = $data_actors[actor_id].mirror_sprite
  31.   end
  32. end
  33. class Game_Interpreter
  34.   # Actor mirror sprite change
  35.   def mirror_sprite(actor_id,filename,pos)
  36.     $game_actors[actor_id].mirror_sprite = [filename,pos]
  37.     $game_player.refresh
  38.   end
  39.  
  40.   # Event mirror sprite change
  41.   def mirror_esprite(event_id,filename,pos)
  42.     $game_map.events[event_id].mirror_sprite = [filename,pos]
  43.     $game_map.events[event_id].reflect = true
  44.     SceneManager.scene.spriteset.refresh_characters
  45.   end
  46.  
  47.   # Vehicle mirror sprite change
  48.   def mirror_vsprite(v_id,filename,pos)
  49.     $game_map.vehicles[v_id].mirror_sprite = [filename,pos]
  50.     SceneManager.scene.spriteset.refresh_characters
  51.   end
  52. end
  53. class Sprite_Mirror < Sprite_Character
  54.   alias old_set_character_bitmap set_character_bitmap
  55.   def set_character_bitmap
  56.     if @character.mirror_sprite
  57.       self.bitmap = Cache.character(@character.mirror_sprite[0])
  58.     else
  59.       if @character.reflect_sprite
  60.         self.bitmap = Cache.character(@character.reflect_sprite[0])
  61.       else
  62.         self.bitmap = Cache.character(@character_name)
  63.       end
  64.     end
  65.     self.mirror = true
  66.     self.opacity = 255
  67.     self.z = Galv_CEffects::REFLECT_Z
  68.  
  69.     sign = @character_name[/^[\!\$]./]
  70.     if sign && sign.include?('$')
  71.       @cw = bitmap.width / 3
  72.       @ch = bitmap.height / 4
  73.     else
  74.       @cw = bitmap.width / 12
  75.       @ch = bitmap.height / 8
  76.     end
  77.     self.ox = @cw / 2
  78.     self.oy = @ch
  79.   end
  80.   alias old_update_src_rect update_src_rect
  81.   def update_src_rect
  82.     if @character.mirror_sprite
  83.       index = @character.mirror_sprite[1]
  84.     else
  85.       if @character.reflect_sprite
  86.         index = @character.reflect_sprite[1]
  87.       else
  88.         index = @character.character_index
  89.       end
  90.     end
  91.     pattern = @character.pattern < 3 ? @character.pattern : 1
  92.     sx = (index % 4 * 3 + pattern) * @cw
  93.     sy = (index / 4 * 4 + (10 - @character.direction - 2) / 2) * @ch
  94.     self.src_rect.set(sx, sy, @cw, @ch)
  95.   end
  96. end # Sprite_Mirror < Sprite_Character
  97. class RPG::Actor
  98.   def mirror_sprite
  99.     if @mirror_sprite.nil?
  100.       if @note =~ /<mirror_sprite:[ ](.*),(.*)>/i
  101.         @mirror_sprite = [$1.to_s,$2.to_i]
  102.       else
  103.         @mirror_sprite = nil
  104.       end
  105.     end
  106.     @mirror_sprite
  107.   end
  108. end



点评

讲究细节的话,倒影是可以看见胖次的……(住手)(其实对于侧面画成半侧面的行走图很不亲切就是了233)  发表于 2017-11-17 23:21
↓作者的书写格式原本就是潜在支持分开设置的,可能是认为两种影子一样,为了方便使用者所以弄成了同一种  发表于 2017-11-17 22:46
哇,辛苦了!感谢!  发表于 2017-11-17 18:13
我是梅林,人称花之魔术师。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 20:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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