如何正确处理跳转动画中的着陆部分


16

看一下这张精灵表。

美人鱼

显然,第1-3帧是“跳跃”帧,在此之后的最后一帧将被固定,直到跳跃的“峰值”(当重力开始向后拉时)。向后移动时,使用第4-7帧,并且所有帧均以“空闲”帧结尾(此跳转精灵中未在此处显示)。

我的问题是关于这个精灵中的第6帧和第7帧。当实体在跳转后“着陆”时,假定将动画6-7作为“着陆”动画运行。在跳转帧中向下移动时,4-5很容易,因为它们是动画的“开始”。只要摔倒,框架5可以一直保持下去...但是从框架5变为6-7-x的合适方法是什么?您是否检查下一个帧是否是坠落然后“启动”降落,还是在实际撞到地面时这样做?

由于各种情况(例如从悬崖上跳下或在低矮的屋顶下跳来撞到您的头部并弹跳回去),无法进行计时。

有任何想法吗?

Answers:


17

我想通常的方法是具有三个与跳跃相关的状态:跳跃(英雄升至最高跳点),掉落(从最高跳点到地面),着陆(跳跃结束时英雄站在地面上) )。

有几种检测这些状态的方法,通常是设置状态标志的几种冲突检查。例如,在角色的物理步骤中,我们可以检查下面的碰撞,如果没有碰撞,则表明角色在空中。现在,如果角色的垂直速度为正,则为跳跃状态,否则为下落状态。如果它是下降状态,并且我们在下面检测到碰撞,则它是着陆状态,因此让我们切换到着陆动画。

该动画通常在英雄实际摔倒时播放。动画序列很短,因此着陆看起来很高速,同时还带来了清晰而精确的控制感。有时,角色可以执行较长的着陆程序,但是角色可以取消着陆动画并开始运行,例如《恶魔城:索坦》。


+1。关于状态的要点。从状态中,您可以找出其他详细信息/模式。
Kromster表示支持Monica 2011年

5

我已经看到这样做有两种方式:

  1. 当边界框首先与地面碰撞时,进行快速过渡5-> 6-> 7。
  2. 有第二个“鬼”边界框,该边界框在实际边界框下方延伸一小部分以启动5-> 6,然后在实际边界框发生碰撞时执行6-> 7。

喜欢第二种情况。似乎非常灵活,因为可以根据角色的速度将重影边界框设置得很远!
pek

有趣的方法Nbr2。我从未尝试过,但是请记住,谢谢。
sPirc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.