组件中使用_Cocos Creator中骨骼动画组件的使用

前言

在Cocos Creator游戏开发中,骨骼动画对于优化系统资源占用有很大帮助,很多时候我们都会使用。

一、 spine骨骼动画工具

1: 骨骼动画: 把动画打散, 通过工具,调骨骼的运动等来形成动画

2: spine是一个非常流行的2D骨骼动画制作工具

3: spine 动画美术人员导出3个文件:

(1) .png文件:动画的”骨骼”的**图片集**;

(2).atlas文件: 每个骨骼在图片集里面**位置,大小**;

(3).json文件: 骨骼动画的**anim**控制文件,以及骨骼位置等信息;

4: 骨骼动画导入: 直接把三个文件拷贝到项目的资源目录下即可;

5: 使用骨骼动画:

(1) 直接拖动到场景;

(2) 创建一个节点来添加**sp.Skeleton**组件;

27dae13f34888b4c4929b8aec57c6edc.png

更多教学视频:

哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili​space.bilibili.com

二、 sp.Skeleton

1: sp.Skeleton: 控制面板属性:

Skeleton Data: 骨骼的控制文件.json文件;

Default Skin: 默认皮肤;

Animation:  正在播放的动画;

Loop: 是否循环播放;

Premuliplied Alpha 是否使用贴图预乘;是否要显示骨骼的各个部分!

TimeScale: 播放动画的时间比例系数;

Debug Slots: 是否显示 Slots的调试信息;

Debug Bone: 是否显示Bone的调试信息;

2: sp.Skeleton重要的方法: Skeleton是以管道的模式来播放动画,管道用整数编号,管道可以独立播放动画,Track;

(1)clearTrack(trackIndex): 清理对应Track的动画

(2)clearTracks(); 清除所有Track动画

(3)setAnimation(trackIndex, “anim_name”,  is_loop)**清除管道所有动画后**,再重新播放

(4)addAnimation(trackIndex, “anim_name”,  is_loop);往管道里面**添加**一个动画;

@property({type:sp.*Skeleton*, tooltip:"骨骼动画组件"})

mySkeleton : *sp*.*Skeleton* = null;

04aad99f5e8f4db4be78cace08408675.png
enterAnim(){

        //this.mySkeleton.clearTracks();

        *this*.mySkeleton.clearTrack(0);

        *this*.mySkeleton.setAnimation(0, "in", false);

        *this*.mySkeleton.addAnimation(0, "idle_1", true);

    }

    outAnim(){

        //this.mySkeleton.clearTracks();

        *this*.mySkeleton.clearTrack(0);

        *this*.mySkeleton.setAnimation(0, "out", false);

        *this*.mySkeleton.addAnimation(0, "idle_1", true);

    }

    clkAnim(){

        //this.mySkeleton.clearTracks();

        *this*.mySkeleton.clearTrack(0);

        *this*.mySkeleton.setAnimation(0, "clk_1", false);

        *this*.mySkeleton.addAnimation(0, "idle_1", true);

    }

3220375640c3295f9e2e778904458527.png

三、 动画事件监听

1: setStartListener: 设置动画开始播放的事件;

2: setEndListener : 设置动画播放完成后的事件;

3: setCompleteListener: 设置动画一次播放完成后的事件;

start () {

        *this*.mySkeleton = *this*.node.getChildByName("Spine").getComponent(sp.Skeleton);

        *this*.mySkeleton.setStartListener(function(){

            *console*.log("动画开始播放");

        });

        *this*.mySkeleton.setCompleteListener(function(){

            *console*.log("循环播放时每一次播放完成时调用");

        });

        *this*.mySkeleton.setEndListener(function(){

            *console*.log("动画播放结束");

        });

    }

652c768e7a95a210b4b6387edefe758c.png
超详细的学习路线免费获取​shimo.im
e9f1ddcc45523c0f9e5829c79fba70d9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值