如何完美同步动画中的游戏对象位置?

问题描述 投票:0回答:0

这对我来说是一个反复出现的问题,好像我无法解决这个问题,替代方法是为使用相同动画的每种武器包含具有相同玩家姿势的精灵。我有一个播放器的 spritesheet:

我目前对用双手剑攻击的那些感兴趣:

为了与此配对,我有一个剑 spritesheet:

所以,为了在动画中同时使用这两个,我有两个游戏对象;一个给玩家(名为

Hero
),另一个给剑(名为
Weapon
):

动画然后修改了这两个,但是由于精灵的大小不同,我使用了一些过渡使它们对齐,所以剑看起来总是在玩家的手上:

比如在最大的攻击点,剑稍微移动了一下,所以它留在了玩家的手中:

完成后,会播放此动画,但似乎在某些时候剑的位置补偿过度或没有赶上,尽管它不是很明显:

每秒 30 帧

60fps

注意不是太明显,但是一帧一帧的分析我发现有几个剑不对的地方:

现在,我不确定这是否意味着我只是一个完美主义者,但在游戏中的某些时刻,我正在游戏世界中实施暂停,例如升级,如果游戏碰巧暂停这些偶尔的错位之一,很明显存在问题:

是我要求太多了吗?我怎样才能确保这个动画有效,确保我们有一个正确的过渡?

我在想,也许是因为这个动画使用了多个精灵,所以我添加了太多的属性更改。但请注意,例如从 0:06 开始,

到0:09,

我只改变了一次武器的精灵,但我每隔一毫秒更新一次它的变换位置。我发现这样做可以避免让武器逐渐过渡到另一个预期位置,避免像这样更引人注目的事情:

但这错了吗?请告诉我如何改进此动画,并感谢您提前提供的任何帮助。

c# unity3d animation assets game-development
© www.soinside.com 2019 - 2024. All rights reserved.