LAYA 骨骼动画

本文介绍了LayaAir引擎中骨骼动画的实现原理,重点讲述了模板在骨骼动画中的应用,以及创建动画的三种模式:模板缓冲、动画自身缓冲和动态绘制。通常推荐使用模板缓冲,因其内存和计算效率较高。同时,文章提到了骨骼动画的换装功能,一般通过切换资源来实现,并提供了Templet的API示例。此外,骨骼动画还可以在播放过程中切换不同的动作,实现多样化的动效控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LayaAir引擎中模板是一种特别的概念,表示一种数据结构,这种数据结构可以被复用。骨骼动画就使用到了模板,对于同一个动画来说,可以只创建一个动画模板,然后实例多个播放的实例,这样内存中就只有一份的动画数据,但是却可以在舞台上显示多个动画。

创建骨骼动画代码
private var sk:Skeleton;
private function showSki():void{
    var t:Templet = new Templet();
    t.on(Event.COMPLETE,this,onLoaded,[t]);
    var url:String = "art/skin,sk";
    t.loadAni(url);
}

private function onLoaded(t:Templet):void{
    if(this.destoryed){
        return;
    }
    if(sk == null || sk.url == t.url){
        if(sk!=null){
            sk.destoryed(true);
        }
        //从动画模板创建动画播放对象
        sk = t.buildArmature(0);
        sk.pos(100,100);
        addChildAt(sk,0);
        displayedInStage&&sk.play(0,false);
    }
}

 

骨骼动画创建动画有三种方式

​ 0:使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)

​ 1:使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存。(内存开销大,计算开销小,支持换装)

​ 2:使用动态方式,去实时去画(内存开销小,计算开销大,支持换装,不建议使用)

​ 这三种模式中 0:不支持换装,1,2支持换装。

一般情况下,用默认值0就行了。至于换装,更常见的是一套外观用专用的资源,切换外观时直接切换调用的资源。

骨骼动画的换装(可以不看,创建骨骼动画的时候基本上可以直接复制以上代码,修改URL即可,如果有特殊要求,再加上相应代码)

Templet提供的API

显示指定皮肤

showSkinByIndex()

通过皮肤名字得到皮肤索引

getSkinIndexByName()

骨骼动画还能在播放的时候切换动画的动作,比如可以把人物的跑攻击等动作放到同一个动画文件里面,使用的时候只要通过代码切换动作就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值