Laya动画基础

Egret帧动画工具类

版本:2.1.1.1

序列图动画

白鹭的序列图动画,使用TexureMerger合图,然后使用MovieClip类播放。

Laya的话,使用图集打包工具合图,然后使用Animation类播放。

一个泡泡爆炸的序列图

laya右上角选择工具,图集打包。

选择动画的父文件夹,后缀选择atlas,点击确定。

例如图片路径是laya\anim\pao0\pao0.png,图片文件夹路径则是laya\anim\pao0,则应该选择路径是 :图片父文件夹路径laya\anim。

打包生成pao0.atlas和pao0.png

将动画文件atlas和png放入laya项目assets/anim文件夹下,并在代码中加载使用

1

2

3

4

5

6

7

8

9

10

11

public pao0:Laya.Animation;

onEnable(){<br>    //加载动画资源

    this.pao0 = new Laya.Animation();

    this.pao0.loadAtlas("anim/pao0.atlas",Laya.Handler.create(thisthis.onAnimLoaded));

}

private onAnimLoaded(){<br>    //循环播放动画

    Laya.stage.addChild(this.pao0);

    this.pao0.play(0,true,"");

}

实际效果  

动画销毁调用destroy

动画模块来播放图集中的动画

白鹭中的话,这类需求也是TextureMerger来实现的。

laya中封装了这个工具类。

比如一个人物动画,有站立,跑步,攻击,死亡等动画,则打包到一个图集里,一次只play其中一个动画。

我们这里还是用泡泡来表示,泡泡分别有两个动画,一个蓝色爆炸,一个黄色爆炸。如果做成两个动画,则需要两个Animation。

现在我们把这两个泡泡动画,做到一个动画里面,只需要一个Animation。

两个泡泡打包到一个图集中

代码中使用

1. 注意aniUrls()里urls.push的路径 "pao0/" 是图集pao0.atlas名字

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

public pao0:Laya.Animation;

onEnable(): void {

    this.pao0 = new Laya.Animation();    //加载图集资源

    Laya.loader.load("anim/pao0.atlas",Laya.Handler.create(thisthis.onAnimLoaded));

}

private onAnimLoaded(){

    Laya.stage.addChild(this.pao0);

    //创建动画模板

    Laya.Animation.createFrames(this.aniUrls("blue",5),"blue");

    Laya.Animation.createFrames(this.aniUrls("yellow",5),"yellow");

    //播放黄色泡泡爆炸

    this.pao0.play(0,true,"yellow");

        

}

//获取动画图片地址的数组

private aniUrls(aniName:string,length:number):any{

    var urls:any = [];

    for(var i:number = 0;i<length;i++){

        //动画资源路径要和动画图集打包前的资源命名对应起来

        urls.push("pao0/" + aniName+i+".png");

    }

    return urls;

}

  

运行,效果如下。

整图动画

egret没有播放整图动画的。如果需要播放整图动画,则需要自己实现。

比如我在egret实现的可以播放序列图和整图动画的工具类

https://www.cnblogs.com/gamedaybyday/p/9219954.html

Laya提供了一个Clip组件,可以制作整图动画。

下面制作一个0-9数字进行轮播动画。

新建Clip组件,设置skin为数字图片,并设置clipX=10 X轴方向切片为10,将数字0-9切成10片,clipY=1 Y轴方向切片为1,autoPlay=true自动播放动画

实际效果

时间轴动画

白鹭也提供了时间轴动画。在exml里有个动画编辑器。

而laya则是单独有个.ani的文件来制作时间轴动画

在编辑模式,scene下右键,新建动画pao.ani

制作两个逐帧动画,blue和yellow。具体制作方法看laya教程:https://ldc2.layabox.com/doc/?nav=zh-ts-1-5-2

ctrl+F12发布,获得ani和altas文件

代码中使用

1

2

3

4

5

6

7

8

9

10

onEnable(){

    Laya.loader.load("res/atlas/anim.atlas",Laya.Handler.create(this,this.onLoaded));

}

private onLoaded(){

    var tl:Laya.Animation = new Laya.Animation();

    tl.loadAnimation("test/pao.ani");

    Laya.stage.addChild(tl);

    tl.play(0,true,"blue"); //  播放黄色泡泡动画 tl.play(0,true,"yellow")

}

  

实际效果

龙骨动画

首先找个龙骨动画,就以Dragonbones的首页的龙为例子。

导出格式为json,版本为5.0。 Laya不支持5.5,不支持二进制。

导出文件必须放在同名的文件夹内。这里龙骨导出名为Dragon,放的文件夹名也得为Dragon。

选择龙骨动画转换

开始转换

转换成功

得到转换文件

LayaIDE编辑模式F9,加入龙骨动画支持库

创建龙骨对象,加载龙骨资源,加载完成后播放"walk"行走动画

1

2

3

4

5

6

var skeleton:Laya.Skeleton = new Laya.Skeleton();

Laya.stage.addChild(skeleton);

skeleton.pos(200,400);

skeleton.load("res/DragonBones/Dragon.sk", Laya.Handler.create(this, ()=>{

    skeleton.play("walk",true);

}));

  

最终运行结果

龙骨的销毁,Skeleton的destroy

Laya动画,整图动画,序列图动画,时间轴动画,龙骨动画相关推荐

  1. 轻松制作GIF动画!教你玩转PS时间轴之5个小技巧篇

    通过前两篇文章,我们已经知道制作动画的基本知识的和技巧,下面通过5个非常有用的知识点跟大家更深入地探索PS时间轴.文末附上PSD,可以下载后自行分析动画技巧. 往期回顾: <新手指南!手把手教你 ...

  2. UML交互图(时序图、顺序图、序列图是一样的、协作图)

    时序图.顺序图.序列图是一样的,可能是因为英文翻译的问题,他们对应的都是Sequence Diagram,而另一个Timing Diagram可能翻译常时间图更合适一点点. Sequence Diag ...

  3. 轻松制作GIF动画!教你玩转PS时间轴之进阶技巧篇

    上一篇文章跟大家讲过PS时间轴的基础,接下来跟大家分享制作简单GIF动画的一些技巧,(文字动画.颜色渐变.咻一咻动画.模糊动画.旋转时钟以及变化的月亮等等),文章提到的动画都有提供打包下载,想学时间轴 ...

  4. UML--时序图(顺序图、序列图、循序图)

    一. 概述 顺序图(Sequence Diagram):是一种强调对象间消息传递次序的交互图,又称为时序图或序列图.描述了在一个用例或操作的执行过程中对象如何通过消息相互交互,说明了消息如何在对象之间 ...

  5. 业务建模 活动图和序列图

    http://blog.csdn.net/huaishu/article/details/39249383 活动图,更准确地说是活动图的"山寨版"--流程图,应该是在开发人员中使用 ...

  6. hype3 响应布局_使用Hype 3的基于时间轴的Web动画

    hype3 响应布局 Tumult的Hype 3是用于创建HTML5动画的OS X应用程序. 如果您曾经使用过Flash的标志性时间轴工具,那么Hype 3的界面似乎会非常熟悉. 在本教程中,我们将快 ...

  7. UML时序图(序列图)

    什么是时序图 时序图(Sequence Diagram),又名序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作. 让我们来看一看visio2016对时 ...

  8. uml 9种图之序列图

    序列图主要描述按照时间的先后顺序对象之间的交互动作过程. 序列图强调消息的时间顺序.顺序图以二维图表来显示交互.纵向是时间轴,时间显示为自上而下.横向显示了交互中各个对象的角色.每个对象用方框表示,对 ...

  9. 【不专一的开发】UML(二)---行为图(状态图、活动图、序列图、协同图)

    目录 状态图Statechart Diagram 活动图 Activity Diagram 序列图 (时序图)Sequence Diagram 协同图(协作图)Collaboration Diagta ...

  10. UE5蓝图时间轴摄影机路径动画

    1. 新建蓝图类Actor 2. 蓝图里添加Spline和Camera组件,另外添加一个Scene场景组件,可以把Camera拖到Scene的子级,这样做可以让Camera在沿着路径运动的时候自由更改 ...

最新文章

  1. centos下面搭建svn服务器详细流程
  2. debian 8 网桥
  3. Quartz.Net实现作业定时调度详解
  4. 构造 Codeforces Round #275 (Div. 2) C. Diverse Permutation
  5. PHP爬虫音乐,PHPCrawl爬虫库实现抓取酷狗歌单
  6. SQL Server -- 如何书写优雅、漂亮的SQL脚本?
  7. (83)建立时间与保持时间时序分析技巧
  8. 艰苦的编译boost python (失败)
  9. html 日期判断周几,javascript怎么根据日期判断星期几?
  10. 区块链技术原理-分布式数据库
  11. 编程python视频教程_Python高级编程实战系列视频课程
  12. arduino声音传感器与二极管_Arduino声音传感器
  13. Python实现学生信息管理系统
  14. theano java_Windows Theano GPU 版配置
  15. 2015年计算机二级office,2015年计算机二级MSoffice考试资料汇总.doc
  16. view标签class属性
  17. mysql按半小时分组
  18. 2009世界500强排名(2009年07月08日)
  19. bugku 0和1的故事 用Excel完成
  20. 坦克大战java源码

热门文章

  1. java利用队列实现一个学生排队买票功能
  2. 一文告诉你什么是回调地狱,如何解决回调地狱?
  3. Install OpenStack on rhel6.2 ( by quqi99 )
  4. Mac 如何安装webpack
  5. 用户数据泄密事件不断,是时候发挥区块链技术的价值
  6. BMI是根据体重测量健康的方式。通过以千克为单位的体重除以以米为单位的身高的平方计算出BMI。
  7. java.lang.UnsupportedClassVersionError: org/hibernate/HibernateException : Unsupported major.minor..
  8. Word常用快捷指令
  9. 块元素,行内元素,行内块元素及相互转换
  10. redis 监控指标