如何从 Godot 3 中的 spritesheet 加载纹理

Jac*_*rby 7 godot

我昨天刚刚开始使用 Godot,我正在开始一个游戏。我为它画了一些精灵表。将动画的所有帧打包到一个图像文件中似乎效率更高,对吗?

无论如何,在 Godot 中,我有一个AnimatedSprite,它当然有一个SpriteFrames属性,或者它的名字。我想将我的 spritesheet 拆分成多个图像,以便我可以将每个图像用作动画中的单独帧,但据我所知,Godot 没有提供这样的功能。是这种情况吗?

我已经在网上搜索了一段时间的答案,但找不到任何相关的内容。

如果我不能在 Godot 中做到这一点,我会感到非常惊讶,因为我几乎可以在我见过的所有其他游戏引擎中做到这一点。

谢谢!

(只是为了澄清,我想(以编程方式或其他方式)在 Godot 中将 spritesheet 拆分为多个纹理。)

Oli*_*ort 5

单击节点的属性菜单New SpriteFrames中的。现在单击属性名称旁边刚刚创建的。应该会出现窗口。FramesAnimatedSpriteSpriteFramesFramesAnimation Frames

动画帧窗口截图

单击此Add frames from a Sprite Sheet按钮。选择您的恶意表文件,设置网格大小,最后从该精灵表中选择各个帧。

(这在 Godot v3.2.2 中对我有用)


Raf*_*zek -1

正如它所说:“可以使用多个纹理进行动画的 Sprite 节点。” 来源:http ://docs.godotengine.org/en/3.0/classes/class_animatedsprite.html

您正在搜索的是使用普通 Sprite(2D),如果您在每帧使用 AnimationPlayer,请为其设置区域。示例:https ://www.youtube.com/watch?v=IGHcscKpA7Y

如果您想以编程方式完成所有操作,只需将精灵设置为 Sprite(2D),然后:

func _ready(): 
   set_region(true)
   set_region_rect(Rect2(positionx,positiony,width,height)) 
Run Code Online (Sandbox Code Playgroud)

但我想使用 AnimationPlayer 是更好的选择。

这没有经过测试,因为我现在应该睡觉,但它应该可以工作。