pony

我有一个BOX,这个BOX有两个动画,分别为 "Animation_1"、 "Animation_2"

Animation_1:
Honeycam 2021-10-23 20-54-07.gif

Animation_2:
Honeycam 2021-10-23 20-54-51.gif

————————————————————————————————
经过 "雨之师" 用户的回复,我才发现上图的范例出现了错误。因为上图 "Animation_1" 的末尾帧和 "Animation_2" 的首帧是不同的。而在实际情况下,这两帧是完全相同的


我的问题:

1. 如何使这两个动画完美的衔接播放? 就像下图

2. 我注意到一个函数 "IsComplete" 可以检测当前动画是否播放完成,但该函数仅仅只能正确的判断第一遍循环。当我循环播放 "Animation_1" 时,除了第一遍循环 "IsComplete" 在播放完成时打印 "true",但以后的循环中全是 "true"。

3. 请问spine有没有这样的API:当 "Animation_1" 一直在循环播放时,我输入切换 "Animation_2" 动画的指令,此时,BOX并不会立即切换到 "Animation_2",而是将 "Animation_1" 播放完成后再切换到 "Animation_2"

Honeycam 2021-10-23 21-11-44.gif
Nemaš dopuštenje za pregledavanje privit(a)ka dodan(og)ih postu.
pony
  • Postovi: 20

雨之师

a_ab_b,为3个点,a_ab的动画1,ab_b是动画2,动画1播放完衔接动画2才会流畅,你的中部过度的点ab在两个动画的位置点不一样
雨之师
  • Postovi: 18

Misaki

我已经做了修改标题和删除旧帖的工作。我们的团结向导Harri回来后会回答你的问题。

---

I have done both the title changing and deleting the older post. Our Unity wizard Harri will respond to your questions when he gets back.
Avatar
Misaki

Misaki
  • Postovi: 660

pony

雨之师 je napisao/la:a_ab_b,为3个点,a_ab的动画1,ab_b是动画2,动画1播放完衔接动画2才会流畅,你的中部过度的点ab在两个动画的位置点不一样
确实存在这个问题,我在制作范例时没有注意到这个问题

其实上面的BOX范例只是表述目前我所遇到的问题。实际上,项目中的角色是两段不同的呼吸动画,呼吸动画A的末尾和呼吸动画B的开头的帧是完全相同的,我需要一种可以将这两段动画完美衔接起来的方案
pony
  • Postovi: 20

Mario

1. 见下文。
2.可以使用AnimationStateListener.complete()回调。 每次动画完成时都会调用它,包括循环动画。
3. Spine 不直接提供此功能,但可以这样做:
TrackEntry entry = animationState.setAnimation (0, "Animation_1", true);

// 稍后,例如 在 AnimationStateListener.complete()
entry.loop = false;
animationState.addAnimation (0, "Animation_2", true, 0);
1. See below.
2. You can use the AnimationStateListener.complete() callback. It will be called everytime an animation completes, including looped animations.
3. Spine doesn't offer this function directly, but it can be done like this:
TrackEntry entry = animationState.setAnimation(0, "Animation_1", true);

// Later, e.g. in AnimationStateListener.complete()
entry.loop = false;
animationState.addAnimation(0, "Animation_2", true, 0);
Avatar
Mario

Mario
  • Postovi: 3039

pony

Mario je napisao/la:1. 见下文。
2.可以使用AnimationStateListener.complete()回调。 每次动画完成时都会调用它,包括循环动画。
3. Spine 不直接提供此功能,但可以这样做:
TrackEntry entry = animationState.setAnimation (0, "Animation_1", true);

// 稍后,例如 在 AnimationStateListener.complete()
entry.loop = false;
animationState.addAnimation (0, "Animation_2", true, 0);
1. See below.
2. You can use the AnimationStateListener.complete() callback. It will be called everytime an animation completes, including looped animations.
3. Spine doesn't offer this function directly, but it can be done like this:
TrackEntry entry = animationState.setAnimation(0, "Animation_1", true);

// Later, e.g. in AnimationStateListener.complete()
entry.loop = false;
animationState.addAnimation(0, "Animation_2", true, 0);
谢谢!很有用!
pony
  • Postovi: 20


Natrag na 中国Spine用户