GDExtension for Godot 4+ to load GIF files as AnimatedTexture and/or SpriteFrames.
NOTE: AnimatedTexture has been marked as deprecated according to development docs and could be removed in a future version of Godot.
Gif files can be imported at edit time as one of the supported types via Import options.
See the Editor Imports example scene.
Gif files can be loaded at runtime as one of the supported types via the GifManager
singleton.
GifManager
exposes the following methods for loading gifs either from file or from bytes directly:
e.g. to load from file
get_node("AnimFromRuntimeFile").texture = GifManager.animated_texture_from_file("res://examples/file/optic.gif")
get_node("AnimatedSprite2RuntimeFile").sprite_frames = GifManager.sprite_frames_from_file("res://examples/file/optic.gif")
See the Runtime Imports example scene.
Download the gdextension
artifact from the latest successful build. (It should be right at the bottom of the Summary)
Extract the contents to your Godot project directory.
You should have an addons
directory at the root with the following structure:
└───addons
└───godotgif
│ godotgif.gdextension
│ LICENSE.txt
│ README.md
│
└───bin
│ godotgif.windows.template_debug.x86_32.dll
│ godotgif.windows.template_debug.x86_64.dll
│ godotgif.windows.template_release.x86_32.dll
│ godotgif.windows.template_release.x86_64.dll
│ libgodotgif.android.template_debug.arm64.so
│ libgodotgif.android.template_release.arm64.so
│ libgodotgif.linux.template_debug.x86_32.so
│ libgodotgif.linux.template_debug.x86_64.so
│ libgodotgif.linux.template_release.x86_32.so
│ libgodotgif.linux.template_release.x86_64.so
│
├───godotgif.macos.template_debug.framework
│ libgodotgif.macos.template_debug
│
└───godotgif.macos.template_release.framework
libgodotgif.macos.template_release
Open your project. Any exisitng gifs should auto-import. New gifs in the project directory will automatically import as SpriteFrames
. To convert them into AnimatedTexture
, update the import settings.
The GifManager
class should also now be available for access within GDScript.
Ensure SCons is setup. Refer to Introduction to the buildsystem
- If using a different version of Godot, be sure to dump the bindings e.g.
godot --dump-extension-api extension_api.json
- Compile with
scons platform=<platform> custom_api_file=extension_api.json
This repository is configured for use with VSCode
Launch configurations have been setup for both debugging in editor and in runtime provided certain VSCode extensions are present and environment variables are defined.
The following environment variables are required:
GODOT_PATH
- The directory in which Godot is installedGODOT_EXECUTABLE
- The executable name of the Godot installation
Refer to GDExtension C++ example
Unless otherwise specified, the extension is released under the MIT license.
See the full list of third-party libraries with their licenses used by this extension at src/thirdparty/README.md.
This implementation heavily borrowed inspiration from the gif module for Goost that is currently only based on Godot 3