使用触 发同时播放上下部分身体动画
在编辑器07版本中我们在客户端触发器中,为单位和表现对象增加了新的方法:『播放动画』,与传统播放动画函数不同的是,该方支持传入许多可选参数,还会返回一个动画实例对象。
以下列举在播放动画时可以填写的可选参数的作用 注意这些参数并非全部都需要填写。开发者可以通过点击参数右侧的-号按钮放弃对对应参数的填写,此时系统就会对这些参数采用默认值。
优先级
该参数允许填写一个数字。通常来说,当多个动画实例共存时,优先级越高的动画会取胜并转入播放状态。
默认的技能施法动画的优先级为0。
该参数若不填写,则默认值也为0。
逻辑层
该枚举参数有四个选项,但一般用开发者需理解此概念,可直接不填写或将其设置为默认值(常规层)。
逻辑层本质上是另一个层面的动画优先级,拥有着一些内置逻辑用于播放内置动画。动画系统会先考虑层级参数再考虑优先级参数。
下半身动画层:
用于类似骑马等需要维持下半身姿势的动画。如果动画参数中设置了下半身动画, 那么逻辑层会自动修正为下半身动画层。因此多数时候不需要手动设置。
回滚层:
优先度最低的层级,只有当常规层和无限制层中没有任何动画时才会被播放。只有当多个动画实例都被设置为回滚层,且优先级不同时,这些动画之间才会考虑优先级参数。
默认的移动和待机动画属于回滚层,且优先级为0,因此大部分触发器播放的动画实例都可以压制移动和待机动画的播放。
常规层:
优先度一般的层级。触发器播放的动画若不设置逻辑层参数,则默认会在这一层播放。此外,技能施法动画也处于这一层级。
无限制层:
优先度最高的层级。没有任何内置动画会处于这一层级,因此在这一层级的触发器动画必定会被播放出来,不会受到内置动画的压制。但这些动画彼此之间依然还会受到优先级参数的影响来决定谁会“浮现”,谁会被“压制”。
作用部位
全身: 默认值。指定的动画会作用于单位或表现的全身。
上半身: 指定的动画只会在的单位或表现的上半身播放。
下半身: 指定的动画只会在单位或表现的下半身播放。注意当一个动画实例设置为下半身动画时,它的逻辑层会自动变为下半身动画层。
播放速度
动画实例播放速度的倍率。1为100%速度,2为200%速度,0.5为50%速度,以此类推。
混合时间
不管是当一个动画结束播放,另一个动画因此成为最高优先级的动画而“浮现”时,或者一个旧动画实例被新的优先级更高的动画实例压制时,又或者是用户动态修改了动画的优先级而导致一个被压制的动画重新“浮现”时——在任何两个浮现在表面的动画进行交接的时候,星火编辑器不会突兀地将一个前一个动画切换到后一个动画,而是会在一小段时间内将两个动画混合到一起,平滑地过度到新的动画中。
通过设置混合时间参数,用户可以指定动画实例作为新动画浮现时与旧动画之间的混合时间,单位为秒。该参数若不填写,则默认为0.15秒。设置为0可令动画立刻切换。
典型应用案例:如果用户的模型有一个躺着睡觉的动画和一个站立动画,却没有一个从站立到躺下的动画,那么用户可以在播放睡觉动画实例时将混合时间参数设为一个较长的值,如2秒。这样,当动画实例播放时,单位模型就会在2秒内从站立慢慢地转变为躺下状态,使用户可以低成本地实现一个从站立到躺下的动画。
初始偏移
有时候我们想要播放的动画其实并不是一个动画文件的完整过程,而是只想要截取其中一段。此时使用初始偏移参数可以告诉系统从指定的某一动画帧开始播放动画。该参数填入的值为指定的动画帧从0开始算所在的秒数。注意该秒数仅考虑原始动画素材的秒数, 不受播放速度参数的影响。
是否循环
指定动画实例是否会循环播放,默认为不循环。
接下来我们通过实际操作来实现单位同时播放上下半身两种不同的动作
首先我们需要通过面向对象的办法去初始化我们的动画实例
然后对函数进行初始化:
特别注意此处的动画需要是这个单位拥有的动作,如果没有的话需要在模型上『加载额外动画』
下半身的动画也如法炮制:
接下来查看实际效果: