关于魔法效果与并行动画
相关插件
并行动画相关插件:
◆Drill_AnimationInParallel 动画 - 并行战斗动画
◆Drill_AnimationInSkill 动画 - 并行动画绑定于技能
◆Drill_AnimationInState 动画 - 并行动画绑定于状态
动画装饰相关插件:
◆Drill_AnimationCircle 动画 – 多层动画魔法圈
◆Drill_AnimationParticle 动画 – 多层动画粒子
◆Drill_AnimationGif 动画 – 多层动画GIF
◆Drill_AnimationSurround 动画 – 多层动画环绕球
该文档主要讲解 技能、状态、动画 之间的关系。
> 由于动画的作用域包括地图和战斗。你必须区分 地图动画 和 战斗动画 两种情况。> 并行动画只对 状态、技能 作动画美化附加,并不能实现功能性的效果。 |
如果你想设计绑定动画的魔法圈、GIF、粒子等效果,去“17.主菜单 > 多层组合装饰(个体装饰).docx
”中看看 设计技能物理攻击潜能动画 的章节。
动画设置注意
动画设置中注意四个条件:
1)出现位置:动画播放在谁身上。
(地图:事件、玩家)
(战斗:攻击者、被攻击者、攻击者群体、被攻击者群体)
2)出现时机:动画什么时候播放。
(地图:播放动画指令)
(战斗:技能释放时、每回合结束时、状态施加成功时…)
3)是否并行:播放动画时是否等待。
(地图:事件并行/等待)
(战斗:回合进程并行/等待)
4)持续时间:动画持续多长的时间。
(地图:短时间、无限时间)
(战斗:短时间、无限时间)
默认的【技能动画】:只战斗界面+被攻击者+技能释放时+不并行+短时间。
(由于局限性太大,要实现 技能的并行动画,必须用插件。)
战斗界面动画
出现位置
攻击者与被攻击者
任何技能,包括 攻击/防御/闪避/反击/反射/使用物品/逃跑/掩护,都有两个角色,施法者(攻击者) 与 目标(被攻击者)。
(注意,战斗回合界面的逃跑选项,不是逃跑技能,不会被技能记录仪捕获。)
根据出现时机,可以设计成盾,也可以设计成伤害加成,还可以设计成吸血效果。但是这些效果的 攻击者与被攻击者 的条件都完全不同。
普通攻击与释放技能意思一样,只是称呼不同,叫做 攻击者 与 被攻击者。
行动之间有很多称呼,表示的意思在本质上都是一样的:
行动 | 主动方 | 被动方 |
攻击 | 攻击者 | 被攻击者 |
技能 | 施法者 | 目标 |
物品 | 使用者 | 作用目标 |
相关【行动】的基本定义,具体可以去看看:“4.技能 > 攻击者与被攻击者.docx
”。
任何状态,也存在攻击者被攻击者,但与拥有状态的单位有关系,分为4种:
1.主动攻击时的自己,2.主动攻击时的目标,
3.被攻击时的自己,4.被攻击时的攻击者。
根据拥有状态的情况,状态并行动画分别绑定在4个角色中:
对应的动画可以设计成:
盾效果动画 -> 被攻击时的自己(示例中的 等离子晶体盾)
反伤效果动画 -> 被攻击时的攻击者
伤害加成动画 -> 主动攻击时的自己(示例中的 增强驱动装置)
吸血效果动画 -> 主动攻击时的目标
如果角色与敌人之间都有比较多的状态,而且都是带有各种并行动画,那么这些并行动画会根据情况全部同时播放出来。
一个与多个
数据库中,敌人设置的是一个敌人类型,敌群中可以放置多个同种敌人类型。
由于游戏进行时不知道你要给具体的哪个显示指定动画,于是就给敌群中的敌人添加1至8的编号。固定从左到右进行编号设置。
这样就造成了非常大的局限性,敌人编号 与 敌人类型 就完全无法关联上。
我无法找到 ”第二个拿着卡片刀的小爱丽丝”,而且她们名字都叫”小爱丽丝”。
(有的插件还可以设置8个以上的敌人,这就使得编号关系变得更加混乱)
如果你没有足够把握,最好不要通过纯事件来设计一个”功能向”的魔法效果。
不过,你可以限制敌人数量或者玩家数量,通过插件【技能-技能记录器】来实现特定功能。
如果要设计固定剧情的”剧情向”魔法效果,最好玩家和敌人只有一个,多对多的问题就不需要考虑了,可以用后面一节介绍的插件指令。
插件指令播放
你可以通过插件指令控制播放 某个单位/群体 的动画。并在某个回合直接结束。
你可以设置无限时间的动画魔法效果,但一般用于”剧情向”使用。
注意,插件指令的局限性,在于只对固定编号的敌人或者玩家进行控制,而不是像技能、状态那样拥有攻击者与被攻击者的逻辑思路。
出现时机
技能绑定
技能释放的过程中,可以绑定播放 并行 + 短时间 的动画效果。
技能绑定,是在每次攻击时判断攻击者与被攻击者,并进行动画播放。
因为伤害分为一次与多次,所以你可以设置受伤只一次,或者每次受伤每次播放动画。
状态绑定
状态释放的过程中,可以绑定播放 并行 + 短时间/无限时间 的动画效果。
状态有两种时机:
1.拥有状态的单位,在状态施加、持续、结束状态时。
2.每次攻击时,攻击者与被攻击者的四种情况。(前面节有介绍)
状态施加、结束时机,可以绑定持续的魔法效果。
状态持续时机,可以绑定每回合结算伤害(毒)效果。
持续魔法效果
持续魔法效果 = 与状态同时出现消失 + 并行动画 + 无限时间
另外,你需要找到能够不停循环播放的动画帧素材,这也是一个难点。
示例中提供了三个魔法效果,分别是 辅助封印、击晕、流血 效果。
配置步骤如下:
- 找到合适的gif,每帧存为一个png文件。
- 在动画中配置一个动画。在其中配置音效 或者 简单的光影效果。
(不加图像)
- 找到动画gif插件,将gif与动画绑定。
- 找到状态,根据 并行动画绑定于状态 的插件说明,
添加注释:<状态并行动画:98:附加时:解除后消失>
。
- 添加一个可以75%施加这个状态技能,战斗中强制释放技能,查看效果。该步骤,用于查看状态施加的时机是否符合你的预期。包括状态施加成功与施加失败的情况。
总体的过程简单来说,就是 gif -> 动画 -> 状态 -> 技能。
是否并行
注意,默认所有播放的动画效果,都不是并行动画,每回合都必须等待动画播放完后结束。
牢记,以下设置的动画,都不是并行的:
(如果你不小心把持续魔法效果动画设置在这里面,你会等待无限的时间。)
直接通过注释来设置战斗动画,先确保动画是并行的,再考虑什么样的动画用来等待战斗过程。
持续时间
游戏回合制原理
编辑器中回合的解释是这样的:
那么,假设战斗中,只有量子妹与珍妮对战,量子妹先手。
量子妹攻击,珍妮中了”蒙了”效果,持续一回合不能动弹。
由于珍妮后手,这回合,她就不能动弹了,这回合结束,蒙了效果也结束。
如果珍妮没有被击晕,而是作为后手的她,攻击量子妹并施加了蒙了效果。
由于量子妹已经释放了技能,这回合结束,蒙了效果也结束,作为后手的珍妮没有得到任何优势。
持续中
状态的<持续中>
时机,就是每回合结束时,进行的状态结算。
持续2回合,表示当前回合结束时的一次,下一回合结束时的一次。
毒效果成功施加后,会毒两次伤害,并播放两次毒动画效果。
由于中毒在结算中进行伤害,所以小爱丽丝无论是先手还是后手,都不会亏。
动画持续时间
编辑器原设计的动画有一个不足之处:帧数最大200,动画流畅性较低。
使用动画魔法圈,可以提供这些动画的帧率与持续时间。
具体设置动画的方法,去看看 ”17.主菜单 > 多层组合装饰(个体装饰).docx
”。
如果你想设置无限时间的魔法效果,只需要将持续时长设置为8位数以上就可以了。(8位数的帧,约等于一整天的时间)
最好在设置的 脚本、动画 名字中,加上”(持续)”,用于区分无限时间的动画。
地图界面动画
并行动画的三个插件都主要作用于战斗界面,在地图界面中,插件没有在地图中发挥任何用处。
(地图界面做arpg,缺少技能系统、物品系统、伤害系统、状态系统、ui系统、智能战斗系统、敌群关系系统。可见,要实现地图arpg还有非常长的一段路要走。)
出现位置
地图界面没有 技能、物品 的功能,不能在地图上进行技能伤害。
你只能通过设置事件对动画进行手动添加。
出现时机
由于你需要通过手动写事件来进行技能设置,这就使得你可以自己定义什么时候为技能开始、结束、持续的过程。
红箭头:表示释放技能前准备过程,包括接近玩家,瞄准目标,施法蓄力。
蓝箭头:ai进行技能选择的过程。
黄箭头:技能生效、持续的过程,持续160帧的简单动画效果。
(图中三个箭头如果深入,都是一个非常大的领域,包括寻路系统、决策系统、伤害系统)
是否并行
事件可以设置成并行事件,该事件播放的动画也会变成并行的,所以不需要战斗并行动画插件。
持续时间
地图中,不存在回合的概念,持续·时间可以直接固定为等待帧。
常见问题(FAQ)
加密部署注意事项
由于并行动画是直接进行id关联的。
部署打包勾选排除未使用资源时可能会排除并行动画使用的动画的资源。
要使得编辑器识别他们,需要加上下面的显示动画事件指令。
就识别关联上了。