Spin 动画的问题总结
项目中我们用到了许多的Spin动画,也遇到了许多问题,特意记录一下,以后遇到好知道怎么解决,毕竟好记性不如烂笔头。
动画混合 Default Mix Duration
在使用中遇到了播放一个动作之后继续播放下一个动作,但是中午切换过程总有异常动作出现,不是所想的播放完一个就播放下一个,查找文档发现因为动画的混合导致,修改了动画的Default Mix Duration字段解决了问题,这个应该就是类似Animator中的动画缓冲,为了让动画切换不突兀做了缓冲导致的。
切换动画残影BUG
在工程中我们利用Spin提供的方法SetAnimation去设置动画,但是在设置中发现有时候在切换动画会出现异常的残影,查找资料发现我发现Spin在切换动画时会为了动画的平稳过渡会在切换动画时自动补偿,这样就导致可能会出现残影的问题。解决方法:
在调用SetAnimation前调用
skeletonAnimation.skeleton.SetToSetupPose ();
spineAnimationState.ClearTracks ();
用来消除前一个动画播放带来的影响,这样就不会出现残影了。
重复播放动画
在使用时我们这边会在一个阶段播放一个动画,但是可能会出现一个问题,在很短的时间内重复进入到这个阶段,这样就会很快的重复的调用SetAnimation去设置动画,这样就会让动画看起来很鬼畜,于是在播放动画时检测一下现在正在播放的动画如果保持一致就不播放,这样就解决了这个问题。方法名称:AnimationState:GetCurrent(0),其中传的参数为你这个动画的层级
层级(Track)
Track是把动画分层,让角色在同一时间可以播放几个Spine动画。但是我还没有这个需求,所以层级都在同一层也没有同时播放的需求,先记录一下吧。
其他的方法
skeletonAnimation.state.Start:开始播放
skeletonAnimation.state.End:动画被清除或者中断
skeletonAnimation.state.Interrupt:动画被打断
skeletonAnimation.state.Complete:播放结束
skeletonAnimation.state.Event:用户自定义事件
总结
这些也是遇到的问题,可能很简单,但是还是记录一下,最后贴一些Spin文档的说明地址,有问题可以去寻找一下。Unity_Spin说明文档
本文档总结了在Unity项目中使用Spin动画时遇到的问题,包括动画混合的Default Mix Duration导致的异常、切换动画出现残影的BUG以及如何解决、重复播放动画的处理方法,还介绍了动画的Track层级和其他控制动画的方法。
1万+

被折叠的 条评论
为什么被折叠?



