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

Project1

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

[已经过期] 连击系统如何设计?左右手武器都要行动、对象方动画?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14626
在线时间
2197 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2020-4-10 08:21:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2020-4-10 08:36 编辑

一.篇幅应该有点长,先听我细细说来是什么效果
比如哪吒,拿武器分左右手,也就是双手都有武器都有行动方和对象方动画
武器影响角色的攻击动作和打在敌人身上的效果。
也就是说:剑+剑,刀+刀,枪+枪,刀+枪,枪+剑,刀+剑。。。。就不一一列举了,可以形成各种人物攻击动作和对应的打击效果。。。
下面是我截取VA的图片,因为XP默认没有双持武器。
二.经过我长期分析数帧,这个游戏就是最多4连击,武器类型多种多样。
例如哪吒:可以使用武器、刀、剑、枪、圈类四大并且
1连击:左手武器动画 = 42帧
2连击:左手武器动画+右手武器动画+左手武器动画 =66帧
3连击:左手武器动画+右手武器动画+左手武器动画+右手武器动画+左手武器动画 = 90帧
4连击:左手武器动画+右手武器动画+左手武器动画+右手武器动画+左手武器动画+右手武器动画+左手武器动画 =114帧
以上情况,
1.如果左手或者右手没有装备武器的情况,就显示空手攻击动画。
2.以上左手、右手动画,每个连击不是规律的,我打个比方,1连击光左手就42帧。
3.行动方和对象方动画应该是同时的,出左手时,行动方动画和对象方动画出现、出右手时行动方和对象方动画出现。
由此形成了人物连击的感觉。
4.我的想法是,左手行动方+右手行动方,比方说现在2连击了,我把左手设置66帧、右手66帧,同时播放。中间的空白帧互补。
没想到哪吒一个人就弄了好100个动画
5.图片中、涂绿色的是左手装备、蓝色是右手装备,下面写的帧数是对应武器的对象方动画(也就是攻击到敌人身上的动画)
三,最后是找的一部分功能,想改造成这个效果,我就把重点相关联的地方贴出来。
感觉这个代码还是不是太适合我一些地方,还请大家帮忙想想看还有没有什么好办法
RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 公开实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_reader   :weapon_id                # 武器 ID
  6.   attr_reader   :weapon2_id               # 二刀流武器 ID
  7.   #--------------------------------------------------------------------------
  8.   # ● 设置
  9.   #     actor_id : 角色 ID
  10.   #--------------------------------------------------------------------------
  11.   def setup(actor_id)
  12.     # --- 从这里追加部分 ---
  13.     @weapon_id = 0
  14.     @weapon2_id = actor.armor1_id
  15.     $game_party.gain_weapon(actor.weapon_id, 1)
  16.     equip(0, actor.weapon_id)
  17.     # --- 添加部分结束 ---
  18.     @armor1_id = 0#actor.armor1_id
  19.     @armor2_id = actor.armor3_id  #############
  20.     @armor3_id = actor.armor2_id  ###############
  21.     @armor4_id = actor.armor4_id
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 普通攻击 获取攻击方动画 ID
  25.   #--------------------------------------------------------------------------
  26.  
  27.   def animation1_id
  28.     weapon = $data_weapons[@weapon_id]
  29.     # --- 更改部分 ---
  30.     weapon2 = $data_weapons[@weapon2_id]
  31.     animations = []
  32.     animations.push(weapon.animation1_id) if weapon != nil
  33.     animations.push(weapon2.animation1_id) if weapon2 != nil
  34.     animations.delete(0)
  35.     return animations.empty? ? 0 : animations
  36.     # --- 完成修改 ---
  37.   end
  38.  
  39.   #--------------------------------------------------------------------------
  40.   # ● 普通攻击 获取对像方动画 ID
  41.   #--------------------------------------------------------------------------
  42.   def animation2_id
  43.     weapon = $data_weapons[@weapon_id]
  44.     # --- 更改部分 ---
  45.     weapon2 = $data_weapons[@weapon2_id]
  46.     animations = []
  47.     animations.push(weapon.animation2_id) if weapon != nil
  48.     animations.push(weapon2.animation2_id) if weapon2 != nil
  49.     animations.delete(0)
  50.     return animations.empty? ? 0 : animations
  51.     # --- 完成修改 ---
  52.   end
  53.  
  54. class Scene_Battle
  55.   #--------------------------------------------------------------------------
  56.   # ● 生成基本行动结果
  57.   #--------------------------------------------------------------------------
  58.   def make_basic_action_result
  59.     # 攻击的情况下
  60.     if @active_battler.current_action.basic == 0
  61.       # ★★★★★★★★★★★★★★★★---更改部分 ---★★★★★★★★★★★★★★★★
  62.       # 设置攻击 ID
  63.       @animation1_id = @active_battler.animation1_id.is_a?(Array) ? @active_battler.animation1_id.dup : @active_battler.animation1_id
  64.       @animation2_id = @active_battler.animation2_id.is_a?(Array) ? @active_battler.animation2_id.dup : @active_battler.animation2_id
  65.       # ★★★★★★★★★★★★★★★★---完成修改 ------★★★★★★★★★★★★★★★
  66.       # 行动方的战斗者是敌人的情况下
  67.       if @active_battler.is_a?(Game_Enemy)
  68.         if @active_battler.restriction == 3
  69.           target = $game_troop.random_target_enemy
  70.         elsif @active_battler.restriction == 2
  71.           target = $game_party.random_target_actor
  72.         else
  73.           index = @active_battler.current_action.target_index
  74.           target = $game_party.smooth_target_actor(index)
  75.         end
  76.       end
  77.       # 行动方的战斗者是角色的情况下
  78.       if @active_battler.is_a?(Game_Actor)
  79.         if @active_battler.restriction == 3
  80.           target = $game_party.random_target_actor
  81.         elsif @active_battler.restriction == 2
  82.           target = $game_troop.random_target_enemy
  83.         else
  84.           index = @active_battler.current_action.target_index
  85.           target = $game_troop.smooth_target_enemy(index)
  86.         end
  87.       end
  88.       # 设置对像方的战斗者序列
  89.       @target_battlers = [target]
  90.       # 应用通常攻击效果
  91.       for target in @target_battlers
  92.         target.attack_effect(@active_battler)
  93.       end
  94.       return
  95.     end
  96.     # 防御的场合
  97.     if @active_battler.current_action.basic == 1
  98.       # 帮助窗口显示"防御"
  99.       @help_window.set_text($data_system.words.guard, 1)
  100.       return
  101.     end
  102.     # 逃跑的情况下
  103.     if @active_battler.is_a?(Game_Enemy) and
  104.        @active_battler.current_action.basic == 2
  105.       # 帮助窗口"逃跑"显示
  106.       @help_window.set_text("逃跑", 1)
  107.       # 逃跑
  108.       @active_battler.escape
  109.       return
  110.     end
  111.     # 什么也不做的情况下
  112.     if @active_battler.current_action.basic == 3
  113.       # 清除强制行动对像的战斗者
  114.       $game_temp.forcing_battler = nil
  115.       # 移至步骤 1
  116.       @phase4_step = 1
  117.       return
  118.     end
  119.   end
  120.  
  121.   #--------------------------------------------------------------------------
  122.   # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  123.   #--------------------------------------------------------------------------
  124.   def update_phase4_step3
  125.     # ★★★★★★★★★★★★★★★★---更改部分 ---★★★★★★★★★★★★★★★★
  126.     # 开始动画排列
  127.     if @animation1_id.is_a?(Integer)
  128.       @animation1_id = [@animation1_id]
  129.     end
  130.     animation = @animation1_id.shift
  131.     # 行动方动画 (ID 为 0 的情况下是白色闪烁)
  132.     if animation == 0
  133.       @active_battler.white_flash = true
  134.     else
  135.       @active_battler.animation_id = animation
  136.       @active_battler.animation_hit = true
  137.     end
  138.     # 动画丢失后移至步骤4
  139.     @phase4_step = 4 if @animation1_id.empty?
  140.     # ★★★★★★★★★★★★★★★★---完成修改 ------★★★★★★★★★★★★★★★
  141.   end
  142.  
  143.   #--------------------------------------------------------------------------
  144.   # ● 刷新画面 (主回合步骤 4 : 对像方动画)
  145.   #--------------------------------------------------------------------------
  146.   def update_phase4_step4
  147.     # ★★★★★★★★★★★★★★★★---更改部分 ---★★★★★★★★★★★★★★★★
  148.     # 开始动画排列
  149.     if @animation2_id.is_a?(Integer)
  150.       @animation2_id = [@animation2_id]
  151.     end
  152.     animation = @animation2_id.shift
  153.     # 对像方动画
  154.     for target in @target_battlers
  155.       target.animation_id = animation
  156.       target.animation_hit = (target.damage != "Miss")
  157.     end
  158.     # 不管动画长度如何,至少等8帧
  159.     @wait_count = 8
  160.     # 动画丢失后移至步骤5
  161.     @phase4_step = 5 if @animation2_id.empty?
  162.     # ★★★★★★★★★★★★★★★★---完成修改 ------★★★★★★★★★★★★★★★
  163.   end
  164. end
  165. #==============================================================================
  166. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  167. #==============================================================================
更多图片 小图 大图
组图打开中,请稍候......

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23201
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

2
发表于 2020-4-10 16:24:47 | 只看该作者
本帖最后由 SailCat 于 2020-4-10 16:25 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 战斗动画增强 v1.0 by SailCat
  3. #------------------------------------------------------------------------------
  4. #   方法:本脚本插入到Main之前使用
  5. #   依赖:无
  6. #   版本:v1.0 (Build 171125)
  7. #   效果:
  8. #     1. 允许战斗者在一个主回合中连续播放多个动画并显示多个伤害值
  9. #     2. 在所有动画和伤害值显示完毕以前,战斗者不会倒下
  10. #   配置:关于时间间隔的若干配置项
  11. #   冲突:其他动画增强脚本
  12. #   说明:
  13. #     每当需要让战斗者连续显示动画时,使用
  14. #     battler.pend_animation(动画ID, 伤害, 会心一击标志)   # 追加到动画的队尾
  15. #     battler.insert_animation(动画ID, 伤害, 会心一击标志) # 在当前动画后切入
  16. #     后两个参数可以省略,取自己的当前值,此外,还可使用
  17. #     battler.animation_id = 动画ID                        # 立即切入,队列顺延
  18. #==============================================================================
  19. #==============================================================================
  20. # ■ SailCat's 插件公用
  21. #==============================================================================
  22. module SailCat
  23.   $sailcat_import ||= {}
  24.   #--------------------------------------------------------------------------
  25.   # ● 植入
  26.   #--------------------------------------------------------------------------
  27.   $sailcat_import[:BattleAnimation] = 1.0
  28.   #--------------------------------------------------------------------------
  29.   # ● 脚本配置区
  30.   #--------------------------------------------------------------------------
  31.   module BattleAnimation_Config
  32.     AWAIT_HIT_INTERVAL = 0                # 每两次动画之间的间隔帧数
  33.     AWAIT_DAMAGE_INTERVAL = 8             # 每一击显示伤害的等待时间帧数
  34.     AWAIT_DAMAGE_FINAL = 8                # 播放完所有动画后的等待时间帧数
  35.   end
  36. end
  37.  
  38. #==============================================================================
  39. # ■ Game_Battler
  40. #==============================================================================
  41. class Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   # ● 定义实例变量
  44.   #--------------------------------------------------------------------------
  45.   attr_reader   :pending_animations       # 缓存的动画
  46.   #--------------------------------------------------------------------------
  47.   # ● 方法重定义
  48.   #--------------------------------------------------------------------------
  49.   unless method_defined?(:sailcat_battleani_initialize)
  50.     alias sailcat_battleani_initialize initialize
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 初期化
  54.   #--------------------------------------------------------------------------
  55.   def initialize
  56.     sailcat_battleani_initialize
  57.     @pending_animations = []
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 立即切入动画
  61.   #     value : 新的动画ID
  62.   #--------------------------------------------------------------------------
  63.   def animation_id=(value)
  64.     # 当前动画未处理,又要播放新动画时
  65.     insert_animation(@animation_id) if value > 0 and @animation_id > 0
  66.     @animation_id = value
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 缓存动画(在前)
  70.   #     ani_id  : 动画ID
  71.   #     damage  : 伤害
  72.   #     critical: 会心一击标志
  73.   #--------------------------------------------------------------------------
  74.   def insert_animation(ani_id, damage = @damage, critical = @critical)
  75.     # 追加到动画序列的开头
  76.     @pending_animations.shift([ani_id, damage, critical])
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 缓存动画(在后)
  80.   #     ani_id  : 动画ID
  81.   #     damage  : 伤害
  82.   #     critical: 会心一击标志
  83.   #--------------------------------------------------------------------------
  84.   def pend_animation(ani_id, damage = @damage, critical = @critical)
  85.     # 追加到动画序列的末尾
  86.     @pending_animations.push([ani_id, damage, critical])
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 动画等待判定
  90.   #--------------------------------------------------------------------------
  91.   def animation_pending?
  92.     not @pending_animations.empty?
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 执行下一动画
  96.   #--------------------------------------------------------------------------
  97.   def next_animation
  98.     # 没有动画的情况下返回
  99.     return unless animation_pending?
  100.     # 动画没播放完的情况下返回
  101.     return if @animation_id > 0
  102.     animation = @pending_animations.shift
  103.     @animation_id = animation[0]
  104.     @damage = animation[1]
  105.     @critical = animation[2]
  106.     @animation_hit = @damage != Vocab.miss
  107.   end
  108. end
  109.  
  110. #==============================================================================
  111. # ■ Sprite_Battler
  112. #==============================================================================
  113. class Sprite_Battler < RPG::Sprite
  114.   include SailCat::BattleAnimation_Config
  115.   #--------------------------------------------------------------------------
  116.   # ● 效果中判定
  117.   #--------------------------------------------------------------------------
  118.   def effect?
  119.     @_whiten_duration > 0 or
  120.     @_appear_duration > 0 or
  121.     @_escape_duration > 0 or
  122.     @_animation_duration > 0 or
  123.     @_collapse_duration > 0 or
  124.     @_damage_duration > ($scene.phase4_step == 6 ? 0 : 40 - AWAIT_HIT_INTERVAL)
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 刷新画面
  128.   #--------------------------------------------------------------------------
  129.   def update
  130.     super
  131.     # 战斗者为 nil 的情况下
  132.     if [url=home.php?mod=space&uid=133701]@battler[/url] == nil
  133.       self.bitmap = nil
  134.       loop_animation(nil)
  135.       return
  136.     end
  137.     # 总是更新
  138.     update_battler_change
  139.     update_battler_loop_animation
  140.     update_battler_main_phase
  141.     update_battler_blink
  142.     update_battler_appear
  143.     # 可见时更新
  144.     if @battler_visible
  145.       update_battler_escape
  146.       update_battler_whiten
  147.       update_battler_animation
  148.       update_battler_damage
  149.       update_battler_collapse
  150.     end
  151.     # 设置活动块的坐标
  152.     self.x = @battler.screen_x
  153.     self.y = @battler.screen_y
  154.     self.z = @battler.screen_z
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 更新画面差异
  158.   #--------------------------------------------------------------------------
  159.   def update_battler_change
  160.     # 文件名和色相与当前情况有差异的情况下
  161.     if @battler.battler_name != @battler_name or
  162.        @battler.battler_hue != @battler_hue
  163.       # 获取、设置位图
  164.       @battler_name = @battler.battler_name
  165.       @battler_hue = @battler.battler_hue
  166.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  167.       @width = bitmap.width
  168.       [url=home.php?mod=space&uid=291977]@height[/url] = bitmap.height
  169.       self.ox = @width >> 1
  170.       self.oy = @height
  171.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  172.       if @battler.dead? or @battler.hidden
  173.         self.opacity = 0
  174.       end
  175.     end
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ● 更新状态动画
  179.   #--------------------------------------------------------------------------
  180.   def update_battler_loop_animation
  181.     # 动画 ID 与当前的情况有差异的情况下
  182.     if @battler.damage == nil and
  183.        @battler.state_animation_id != @state_animation_id
  184.       @state_animation_id = @battler.state_animation_id
  185.       loop_animation($data_animations[@state_animation_id])
  186.     end
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 更新显示效果
  190.   #--------------------------------------------------------------------------
  191.   def update_battler_main_phase
  192.     # 应该被显示的角色的情况下
  193.     if @battler.is_a?(Game_Actor) and @battler_visible
  194.       # 不是主状态的时候稍稍降低点透明度
  195.       if $game_temp.battle_main_phase
  196.         self.opacity += 3 if self.opacity < 255
  197.       else
  198.         self.opacity -= 3 if self.opacity > 207
  199.       end
  200.     end
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 更新明灭
  204.   #--------------------------------------------------------------------------
  205.   def update_battler_blink
  206.     if @battler.blink
  207.       blink_on
  208.     else
  209.       blink_off
  210.     end
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● 更新出现
  214.   #--------------------------------------------------------------------------
  215.   def update_battler_appear
  216.     # 不可见的情况下
  217.     unless @battler_visible
  218.       # 出现
  219.       if not @battler.hidden and not @battler.dead? and
  220.          (@battler.damage == nil or @battler.damage_pop)
  221.         appear
  222.         @battler_visible = true
  223.       end
  224.     end
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● 更新逃跑
  228.   #--------------------------------------------------------------------------
  229.   def update_battler_escape
  230.     if @battler.hidden
  231.       $game_system.se_play($data_system.escape_se)
  232.       escape
  233.       @battler_visible = false
  234.     end
  235.   end
  236.   #--------------------------------------------------------------------------
  237.   # ● 更新白色闪烁
  238.   #--------------------------------------------------------------------------
  239.   def update_battler_whiten
  240.     if @battler.white_flash
  241.       whiten
  242.       @battler.white_flash = false
  243.     end
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 更新动画
  247.   #--------------------------------------------------------------------------
  248.   def update_battler_animation
  249.     if @battler.animation_id != 0
  250.       animation = $data_animations[@battler.animation_id]
  251.       animation(animation, @battler.animation_hit)
  252.       @battler.animation_id = 0
  253.     end
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 更新伤害
  257.   #--------------------------------------------------------------------------
  258.   def update_battler_damage
  259.     if @battler.damage_pop
  260.       damage(@battler.damage, @battler.critical)
  261.       @battler.damage = nil
  262.       @battler.critical = false
  263.       @battler.damage_pop = false
  264.     end
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # ● 更新死亡
  268.   #--------------------------------------------------------------------------
  269.   def update_battler_collapse
  270.     # 如果动画没有播放完,不执行死亡效果
  271.     return if @battler.animation_pending?
  272.     if @battler.damage == nil and @battler.dead?
  273.       if @battler.is_a?(Game_Enemy)
  274.         $game_system.se_play($data_system.enemy_collapse_se)
  275.       else
  276.         $game_system.se_play($data_system.actor_collapse_se)
  277.       end
  278.       collapse
  279.       @battler_visible = false
  280.     end
  281.   end
  282. end
  283.  
  284. #==============================================================================
  285. # ■ Scene_Battle
  286. #==============================================================================
  287. class Scene_Battle
  288.   include SailCat::BattleAnimation_Config
  289.   #--------------------------------------------------------------------------
  290.   # ● 定义实例变量
  291.   #--------------------------------------------------------------------------
  292.   attr_accessor :animation1_id
  293.   attr_accessor :animation2_id
  294.   attr_reader :phase4_step
  295.   #--------------------------------------------------------------------------
  296.   # ● 刷新画面 (主回合步骤 3 : 行动方动画)
  297.   #--------------------------------------------------------------------------
  298.   def update_phase4_step3
  299.     # 行动方动画 (ID 为 0 的情况下是白色闪烁)
  300.     @pending = false
  301.     if @animation1_id == 0
  302.       @active_battler.white_flash = true
  303.     else
  304.       # 如果行动者没有设置缓存动画,则设置默认的动画
  305.       unless @active_battler.animation_pending?
  306.         @active_battler.animation_id = @animation1_id
  307.         @active_battler.animation_hit = true
  308.       # 如果已经设置了缓存动画,则播放下一个缓存动画
  309.       else
  310.         @active_battler.next_animation
  311.         @pending |= @active_battler.animation_pending?
  312.       end
  313.     end
  314.     # 行动方动画没有播完的情况下,返回
  315.     return if @pending
  316.     # 为对像方准备默认动画的缓存(如果没有设置)
  317.     for target in @target_battlers
  318.       target.pend_animation(@animation2_id) unless target.animation_pending?
  319.     end
  320.     # 移至步骤 4
  321.     @phase4_step = 4
  322.   end
  323.   #--------------------------------------------------------------------------
  324.   # ● 刷新画面 (主回合步骤 4 : 对像方动画)
  325.   #--------------------------------------------------------------------------
  326.   def update_phase4_step4
  327.     # 对像方动画
  328.     @pending = false
  329.     for target in @target_battlers
  330.       # 战斗者显示下一动画
  331.       target.next_animation if target.animation_pending?
  332.       # 仍有动画没显示完的情况下,设置标志
  333.       @pending |= target.animation_pending?
  334.     end
  335.     # 弹出伤害的等待时间
  336.     @wait_count = @pending ? AWAIT_DAMAGE_INTERVAL : AWAIT_DAMAGE_FINAL
  337.     # 移至步骤 5
  338.     @phase4_step = 5
  339.   end
  340.   #--------------------------------------------------------------------------
  341.   # ● 刷新画面 (主回合步骤 5 : 显示伤害)
  342.   #--------------------------------------------------------------------------
  343.   def update_phase4_step5
  344.     # 隐藏帮助窗口
  345.     @help_window.visible = false
  346.     # 刷新状态窗口
  347.     @status_window.refresh
  348.     # 显示伤害
  349.     @target_battlers.each {|t| t.damage_pop = true if t.damage}
  350.     # 仍然有待播放缓存动画的情况下,移至步骤4,否则移到步骤6
  351.     @phase4_step = @pending ? 4 : 6
  352.   end
  353. end

点评

看了半天不知道battler.pend_animation这些往哪里放,能提示下吗?希望能整合到我的工程里面。  发表于 2020-4-11 11:43

评分

参与人数 1+1 收起 理由
taeckle + 1 大神威武!

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14626
在线时间
2197 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

3
 楼主| 发表于 2020-4-16 15:01:56 | 只看该作者
这么说吧,正常默认动画是一个行动方动画,一个对象方动画,顶多做出齐时动画,现在我想让这4个动画同时播放。

动画.png (8.84 KB, 下载次数: 25)

动画.png

点评

哎呀!费劲了这下。。。貌似论坛里面找到当初柳柳的叠加动画,但是苦于没有范例,不确定是不是能实现这个效果,状态法更是不知道咋整了  发表于 2020-4-16 21:20
我只能说思路,己方和对象都可以附加状态不是,第二个动画就是状态动画,状态动画可以多个,不嫌乱塞十个都能同时显示。视觉效果你自己调  发表于 2020-4-16 20:48
你这个相当于同时超过两个动画,而rm现在同时只能两个动画一个出手一个对象,用状态法可以出手两个,具体你问下菜刀我召唤精灵做法。  发表于 2020-4-16 20:42
要能这么做我好多效果早不发愁了,印象里应该是没接口了。最多同事两个动画,想再多得用纯脚本显示图片序列帧做了,超级不直观而且麻烦。  发表于 2020-4-16 20:41
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11389
在线时间
612 小时
注册时间
2016-8-25
帖子
1401

R考场第七期纪念奖

4
发表于 2020-4-16 20:18:07 | 只看该作者
分事件执行???

点评

?具体点呗  发表于 2020-4-16 20:30
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
5
发表于 2020-7-8 09:00:07 | 只看该作者
在Scene_battle4中 主回合4的step3(行动方动画)、step4(对象方动画)、step5(伤害显示)
可以自由添加步骤(得在Game_Battler中做好相应的判定)
主回合4的刷新 添加上自定义步骤即可
动画帧数小的话 很连贯的  
比如3.1左行动 3.2右行动 4.1左对象 4.2右对象
3.1→4.1→3.2→4.2
3.1→3.2→4.1→4.2
都可以自己排
角色是否双持武器,连击次数,伤害显示分开还是一起就楼主自己考虑去吧
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 04:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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