Spine 多个动作连播时是否要K初始帧 K首帧

大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!
欢迎加入专业Spine技术交流群 Spine2D骨骼动画 7708065
转载请保留原始链接:https://blog.csdn.net/jx520/article/details/83048115

“动画”只能影响有关键帧的骨骼和插槽。 这允许骨架的状态完全由应用程序控制。
当按顺序播放动画时,前一个动画对骨骼或插槽K了帧(比如做了旋转缩放什么的)。那么这个效果会延续到第二个动画。(就是A动画的最后一帧和B动画的第一帧之间会自动产生补间动画,因为在程序中播放时这两个动画是连续的。但问题在于我们K动画时,初始POSE是从装配模式继承过来的,就是装配模式到B动画第一帧的过度才是我们期望的)
这个问题可以通过给所有受到影响的动画元素K首帧来解决(就是在动画的第一帧,把所有会受影响的骨骼、插槽、等等 都K上个帧)。但这并不是最优解。因为给每个属性K的每一帧都会增加少量开销。
另外一个解决方案是在改变当前动画时调用 skeleton 的方法

// 将未K帧的骨骼插槽设置为绑定POSE
setToSetupPose //设置骨骼和插槽为绑定POSE
setBonesToSetupPose //设置骨骼为绑定POSE
or setSlotsToSetupPose  //设置插槽为绑定POSE

(或者另外编写你需要的设置骨骼、插槽的代码)。它可以避免从A动画切换到B动画后,骨骼和插槽受到A动画的影响,而不需要K首帧来得到绑定POSE。总之它会吧B动画中所有没K帧的骨骼、插槽设置为绑定POSE。AnimationState将无法对骨骼进行交叉淡化 (我猜他说的是无法为骨骼做混合动画)

源代码

/** Sets the bones and slots to their setup pose values. */public void setToSetupPose () {setBonesToSetupPose();setSlotsToSetupPose();}public void setBonesToSetupPose () {Array<Bone> bones = this.bones;for (int i = 0, n = bones.size; i < n; i++)bones.get(i).setToSetupPose();Array<IkConstraint> ikConstraints = this.ikConstraints;for (int i = 0, n = ikConstraints.size; i < n; i++) {IkConstraint ikConstraint = ikConstraints.get(i);ikConstraint.bendDirection = ikConstraint.data.bendDirection;ikConstraint.mix = ikConstraint.data.mix;}}public void setSlotsToSetupPose () {Array<Slot> slots = this.slots;System.arraycopy(slots.items, 0, drawOrder.items, 0, slots.size);for (int i = 0, n = slots.size; i < n; i++)slots.get(i).setToSetupPose(i);}

Spine 多个动作连播时是否要K初始帧相关推荐

  1. html代码轮播图片错位,可拖动选项卡嵌套图片轮播时图片错位的问题

    求助大侠,在可拖动选项卡里面嵌套图片轮播时,轮播的图片显示不正确,代码和截图看下边. 求助大侠给解决一下. Hello MUI html, body { background-color: #efef ...

  2. 集合初始化时,指定集合初始值大小

    集合初始化时,指定集合初始值大小

  3. 达芬奇在AMD处理器的联想电脑上编辑视频时花屏、卡帧、闪烁的解决方法

    故障描述:达芬奇在使用AMD 4000系列移动端处理器的联想笔记本电脑上处理视频时出现了时间线花屏.修改时间线上的素材后播放时画面卡在两帧以内反复闪烁.画面闪烁黑帧的问题,重装软件.更换版本均无法有效 ...

  4. Unity动作表情工具(编辑器模式下一边播动作一边播表情)

    一直忙于学习技术和工作好久没写博客 这次分享一下我写的一个动作表情工具 先说一下需求:美术把一帧帧表情图导出来,一张张排好序号,然后放到编辑器里面打开一个工具界面可以选动作,同时切换对应的表情,在编辑 ...

  5. 解决罗技鼠标G403拖动Office时出现的窗口掉帧问题

    我们在使用一些像G403这样的鼠标时,有时候会发现打开office编辑,拖动窗口时会出现严重掉帧现象 这是由于中高端鼠标的高回报率造成的,可以打开鼠标驱动程序,将鼠标回报率修改到120HZ(较低的回报 ...

  6. Intel Realsense D435 是否启动pipeline.start()就开始传输帧,还是只有我们调用wait_for_frames()函数时它才会传输帧?(任务管理器USB带宽内存测试)

    我猜想Intel Realsense D435摄像头只要启动pipeline.start()函数,就会开始传输帧,无论我们是否调用wait_for_frames()或者poll_for_frames( ...

  7. getdatatable mysql_C# 自定义MySqlHelp类,包含了获取DataTable的方法,但是调用时总是提示“类型初始值设定项引发异常”...

    代码:classMySqlHelper{privatestaticstringconStr=ConfigurationManager.ConnectionStrings["conListOf ...

  8. Spine 动画工具

    一.文件结构 Spine 导出的资源文件: .atlas:图集数据文件,内部存储了每张纹理的数据信息 .png:图集资源 .skel / .json 二进制文件:骨骼信息 图集可以用纹理解包器解包,需 ...

  9. 【驱动】USB驱动·入门

    Preface USB是目前最流行的系统总线之一.随着计算机周围硬件的不断扩展,各种设备使用不同的总线接口,导致计算机外部总线种类繁多,管理困难.USB总线正是因此而诞生的. USB总线提供了所有外部 ...

最新文章

  1. python代码翻译-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!
  2. IEEE深度对话Facebook人工智能负责人Yann LeCun:让深度学习摆脱束缚
  3. imp oracle reschema_Oracle EXP和IMP用法和介绍
  4. linux p2p视频播放器,avplayer: 一个基于FFmpeg、libtorrent的P2P播放器实现.
  5. java final修饰属性_Java final关键字用来修饰类、方法、属性
  6. C语言/C++编程学习:不找C/C++的工作也要学C/C++的原因
  7. 音乐播放器App界面优秀案例,通过案例看大咖如何设计?
  8. 基准风险因子暴露度_具有性能基准SQL Server索引填充因子
  9. python时间序列预测不连续怎么办_手把手教你用Python处理非平稳时间序列(附代码)...
  10. 第一次JAVA课,第一次课堂考,课后感受
  11. 优秀的求职者,是如何巧妙应对面试提问呢?
  12. 品牌故事宣传片制作要点
  13. Hyperledger Fabric基础介绍
  14. Unity3D for Android 纹理压缩支持
  15. 1.文件字符流:什么是文件字符流???
  16. 怎样成为一个PS高手
  17. 获益匪浅:在北京每月能白捡一万元
  18. LC-3学习记录(一)
  19. TX2--wifi模块开启AP路由功能
  20. 【历史上的今天】10 月 22 日:微软发布 Windows 7;谷歌推出广告平台;静电复印机雏形

热门文章

  1. 关于一个项目兼容mysql多版本问题总结
  2. Qt学习:文件介绍+对象树+信号和槽
  3. 以leds-gpio.c为例,浅谈device-tree、pinctrl和GPIO子系统
  4. 足球俱乐部介绍——多特蒙德
  5. hadoop入门系列之二【hadoop项目以及结构】
  6. 现代信号处理之手机加速度传感器步态数据采集、分析(采集的数据和MATLAB代码见CSDN同名资源)
  7. SSH 公钥私钥 详细解释
  8. 为什么无线信号(RSSI)是负值
  9. 金山烈火工作室并入西山居 五大产品关停并转
  10. jpg格式怎么压缩大小?怎么调整jpg照片大小kb?