戈多 - 使用2D精灵动画

时间:2017-09-05 22:34:23

标签: animation game-engine godot gdscript

我正在研究戈多引擎,我搜索了精灵动画,我什么也做不了。 Unity中有类似的东西吗?在我创建动画后,如何更改精灵的动画状态?

4 个答案:

答案 0 :(得分:2)

嗯,你需要的是在这里查看AnimatedSprite:docs

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

答案 1 :(得分:0)

在Godot(2d)中有两种制作动画的方法,即AnimatedSprites或AnimationPlayer。 动画文档:http://docs.godotengine.org/uk/latest/classes/class_animation.html?highlight=animation

使用动画主题结点

基本上,AnimatedSprites通过创建包含动画的SpriteFrames来工作,按照这种方式,您将需要使用单独的Sprite框架。简而言之,您只需要将图像帧拖放到SpriteFrame动画中即可。

使用方法:https://www.youtube.com/watch?v=dew1JdR7TuM

使用动画播放器节点

此节点允许您对Godot中的所有内容进行动画处理(不仅是角色框架,而且还包括声音,不透明度,调制颜色等等),这种方式需要关键帧(与Unity的方式更相似)。此外,您还可以使用整个SpriteSheet,只需在检查器上设置属性即可拆分它们。您可以在此处查看一下:https://www.youtube.com/watch?v=Z00BfPs0ImM

关于更改动画

当前,您基本上可以将 play(“ animation_name”)调用到AnimatedSprite或AnimationPlayer节点中,但是如果在_process(delta)或_physics_process(delta)中使用它,则可能是将使动画只播放第一帧,因为它多次调用动画,并且直到最后一帧才播放动画。避免这种情况的一种方法是使用2个变量:例如animation和old_animation,并进行如下检查 if (animation != old_animation): animation_node.play(animation) old_animation = animation

当然还有另一种方法,这只是一个解决方案。

不幸的是,这些视频是葡萄牙语的,但是如果您关注的话,可以得到它。在YouTube上也有很多很好的英文视频。

我希望我的解释有一个好的教学法,并祝戈多研究顺利!

答案 2 :(得分:0)

我假设您可以在Node2D空间中创建AnimatedSprite。从那里您将需要添加图像。可以通过单击“框架”并选择“新建SpriteFrames”,将它们与Godot项目文件夹分开添加。如前所述,Kidscancode.org网站提供了出色的教程,可助您逐步完成。

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

答案 3 :(得分:0)

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

$Sprite.frame = 1 

我建立了自己的系统,因为 godot ui 把我拒之门外。

如果你这样做,你将需要这个函数来获取经过的时间:

OS.get_ticks_msec()

并从中计算出检查您是否在下一帧所用的时间。