Animation 戈多-使用2D精灵动画

Animation 戈多-使用2D精灵动画,animation,game-engine,godot,gdscript,Animation,Game Engine,Godot,Gdscript,我正在学习Godot引擎,我搜索了一些精灵动画,但我什么也做不了。在统一中有类似的东西吗?在我创建动画之后,如何更改精灵的动画状态?好的,您需要在这里查看AnimatedSprite: 如果您无法在编辑器中执行此操作,请查看此platformer教程在Godot(2d)中有两种方法可以执行动画,即AnimatedSprites或AnimationPlayer。 动画文档: 使用动画精灵节点 基本上,AnimatedSprites通过创建包含动画的SpriteFrame来工作,按照这种方式,您将需

我正在学习Godot引擎,我搜索了一些精灵动画,但我什么也做不了。在统一中有类似的东西吗?在我创建动画之后,如何更改精灵的动画状态?

好的,您需要在这里查看AnimatedSprite:


如果您无法在编辑器中执行此操作,请查看此platformer教程

在Godot(2d)中有两种方法可以执行动画,即AnimatedSprites或AnimationPlayer。 动画文档:

使用动画精灵节点

基本上,AnimatedSprites通过创建包含动画的SpriteFrame来工作,按照这种方式,您将需要使用分离的sprite帧。简而言之,您只需将图像帧拖放到SpriteFrame动画

如何使用它:

使用动画播放器节点

此节点允许您在Godot中设置所有动画(不仅仅是角色帧,还有声音、不透明度、调制颜色以及所有内容)。这种方式需要关键帧(更类似于Unity的方式)。此外,您可以在此处使用整个SpriteSheet,只需在inspector上设置属性即可拆分它们。您可以在此处查看:

关于更改动画

目前,您基本上可以在AnimatedSprite或AnimationPlayer节点中调用play(“动画名称”),但如果您使用的是in _进程(delta)或Physical _进程(delta),您可能会让动画只播放第一帧,因为它多次调用动画,直到最后一帧才播放。避免这种情况的一种方法是使用两个变量:例如,动画和旧动画,并进行如下检查
if(动画!=旧动画):
动画\节点.播放(动画)
旧动画=动画

当然还有其他方法,这只是一个解决方案

不幸的是,这些视频都是葡萄牙语的,但是如果你注意一下,你可以看到。youtube上也有很多关于它的英语视频


我希望我的解释有很好的启发性,祝Godot研究好运!

我想你可以在Node2D空间中创建一个动画精灵。从那里你需要添加图像。这些图像可以从你的Godot项目文件夹中单独添加,方法是单击框架并选择新的精灵框架。如前所述,该网站有一个极好的功能本教程将逐步引导您完成此操作


我想补充一件事。使用一个AnimatedSprite,您将创建几个动画,并通过$AnimatedSprite.play(“动画名称”)调用这些动画,如上所述。这些动画也可以在中操纵,可以控制场景中的对象。这将在以后变得方便,而更复杂的是,可以访问AnimatedSprite对象中的命名动画,并允许您使用内置动画状态机。我在网上找到的所有示例都显示了AnimationPlayer操作精灵,但它也适用于AnimatedSprite对象。

您可以使用godot的内置动画,有大量教程,也可以制作自己的并通过编程更改精灵的帧索引:

$Sprite.frame = 1 
我建立了自己的系统,因为godot用户界面把我甩了

如果这样做,则需要此函数来获取经过的时间:

OS.get_ticks_msec()

然后计算出检查是否在下一帧所花费的时间。

检查它是否有用,但如何在编辑器中设置这些动画?