插件开发之路之二《所见即所得的缓动插件Tweener》

【本文参与征文活动】

【前言】

哈喽,大家好,还记得上一篇文章插件开发之路之一《图纸、笔、匠人》中最后预告的带来所见即所得的插件吗?笔者一个人花费了接近一个月的时间终于肝完了,插件名称叫做 Tweener,目的是使用组件来组成缓动代替以往代码驱动的缓动,现已上架扩展商店,点击访问商店界面
相关的文档已发布至GitHub,点击访问Tweener文档
还有很多小伙伴发现github的图片加载不出来,参考这个网址修改一下host就能解决了。

放上我的吉祥物凤凰给大家看看(●’◡’●)。

【Tweener的概念】

任何一个复杂的缓动都是由简单的缓动组成的。

笔者仿照生物的概念为组件命名,

生物最基础的单位是 Cell(细胞),
多个 Cell (细胞)构成一个 Tissue(组织),
多个 Tissue(组织)构成一个 Organ(器官),
多个 Organ(器官)构成一个 System(系统),
多个 System(系统)构成一个 Life(生命),
多个 Life(生命)构成一个 Population(种群),

生命组合缓动

细胞缓动是最低层的缓动,它们不会拥有子缓动。细胞缓动是最强大的缓动类型,它们是真正让你的动作做具体事情的基础元素。

缓动数据(TweenInfo)能够获取创造复杂缓动所需要的所有信息,如持续时间、变化曲线(easing)等。

复杂细胞(ComplexCell)是细胞缓动(CellTweener)的子类,拥有特殊的缓动数据
复杂细胞缓动最主要的一个属性就是 当前的缓动数据currentTweenInfo
其根据 当前的缓动数据currentTweenInfo生成缓动。
可将 缓动数据(tweenInfo)存储在属性 数据集 tweenInfos中。
可在 属性检查器数据集进行搜索和删除的操作。
复杂 细胞缓动拥有对 数据集 本地存储和读取的能力。

组合缓动通常可以拥有一个或更多的 子缓动子缓动依附的节点必须是当前节点或当前节点的子节点。

组合缓动将会根据属性 子缓动标签 subTweenerTag 来识别 子缓动。 不同级别的 组合缓动的属性 子缓动类型 classOfSubTweener 不一样,笔者仿照生物的概念命名,目前内置以下组合缓动:

  • 组织组合缓动:子缓动类型为细胞缓动。
  • 器官组合缓动:子缓动类型为组织组合缓动。
  • 系统组合缓动:子缓动类型为器官组合缓动。
  • 生命组合缓动:子缓动类型为系统组合缓动。
  • 种群组合缓动:子缓动类型为生命组合缓动。

这些 子缓动会根据属性 播放模式 playmode 按照次序执行或是间隔一段时间地执行。
组合缓动支持调试功能,在编辑器中调试时会以当前节点为原型生成 预览节点预览节点会在组合生命缓动周期中的onLoad时或勾选预览结束后自动关闭的情况下在预览结束自动被删除,用户可以手动点击暂停按钮关闭调试,不需要手动删除预览节点。

【Tweener的特点1–数据驱动】

​ 所有的缓动都是通过配置生成的,做到了将缓动与代码分离。

【Tweener的特点2–强大的细胞缓动】

​ 上几张具有代表性动图展示给大家看看。

点击查看更多细胞缓动组件

【Tweener的特点3–跨节点的组合缓动】

【Tweener的特点4–所见即所得的调试】

一个复杂的缓动由多个简单的缓动组成,可以在属性检查器点击播放按钮来调试每一个简单的缓动,直接可以看到运行的效果。

【结束语】

个人开发不易,请支持正版,欢迎在商店评论。

你的点赞和支持是笔者更新的动力。
联系笔者:13622872688@163.com

14赞

没图阿……

1赞

还是挺不错的,不过暂时用不上,:+1:

请问插件跟官方的动画编辑器相比有什么特别的地方吗?如果你支持的这些东西官方已经支持了,这不就重复造轮子了吗:joy:

去修改一下Github的host
https://blog.csdn.net/u011583927/article/details/104384169?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

区别就是使用的是缓动组件,意味着所有用代码写的缓动可以改成外部配置,而且动画编辑器不可复用动画但这个可以复用

想法是好的,但是感觉设计的过于复杂,新加的概念太多。
最好是简化设计,才能有更多人愿意去使用。
论坛里面大部分都是喜欢直接使用的。

em…想法感觉很棒,但这个命名就感觉别扭。不直接
比喻用来解析复杂概念,让概念更加易懂。你这个像是在增加概念的复杂度
个人见解

编辑器动画其实是可以复用的,但是节点的名字以及层级必须要保持一致

学到了,谢谢

感觉介绍新东西,需要从用途、效果预览、使用方式、优点开始介绍,然后再介绍使用方法

1赞

为啥不介绍一下在编辑器里怎么使用

大佬 用不了啊,2.4.4 这数据集文档写的不太清楚
我大概是保存json之后,然后读取json,然后是不是还要在数据集搜索里写id名?然后点复制?
如果是这套流程的话,之后就编辑器卡死了,看了下好像是vue报错了。有时候可以复制播放,但是还是会卡死报错

还有时候编辑会卡死

然后保存预制体的时候也会报错

文档的地址失效了, 能发布一个可用的文档吗?

https://github.com/chichinohaha/Tweener

找到github的仓库了

写的很好 :clap:

mark 好东西