3.4 lua 使用 spine 的一些问题

本文介绍了在Lua中使用Spine动画遇到的问题及解决方法,包括基本使用、track概念的解释、回调处理中的bug及其解决方案,以及一些未解的疑问。在回调中不当设置动画会导致程序崩溃,通过切换track或延迟操作可以避免该问题。
摘要由CSDN通过智能技术生成

一、基本使用:

   self.skeletonNode = sp.SkeletonAnimation:create("sptest/spineboy.json", "sptest/spineboy.atlas", 0.3)
    self.skeletonNode:setAnimation(0, "walk", true)
    
    self.skeletonNode:setMix("walk", "jump", 0.2)
    self.skeletonNode:setMix("jump", "run", 0.2)
    
    self.skeletonNode:setAnimation(0, "walk", false)
    self.skeletonNode:addAnimation(0, "hit", false)
     
    self.skeletonNode:setDebugBonesEnabled(true)
   
    self.skeletonNode:registerSpineEventHandler(function (event)
        print(string.format("[spine] %d start: %s", event.trackIndex,event.animation))
    end, sp.EventType.ANIMATION_START)


1、一开始,要set一个animation,第一个参数是track(后面细说)。

2、播放其他动画是用add

3、当set的动画播放完毕停止之后(非循环),再add动画是不会动的。

4、mix 就是让2个动画直接的衔接更平滑,最后一个参数是过渡时间


二、track的概念

做音频的有个概念,叫音轨,就是track,基本比如录歌,有个主唱,有和声,有吉他,有贝斯。那么把这些分别录制,再一起放出来,就是一首歌,分别录制的这些,就是一个个独立的音轨,一起放出来就是我们最后听到的歌曲。

对比PS,这个概念叫图层。

所以其实可以把不同的动作放到不同的track中去做。


三、回调中的处理以及bug

1、回调

正常情况下,都会对一个动画的完结做一些处理。比如我需要的就是,当动作A完成后,播放动作C。基本写法如下:

    s
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值