godot-rive
                                
                                 godot-rive copied to clipboard
                                
                                    godot-rive copied to clipboard
                            
                            
                            
                        An integration of Rive into Godot 4 using GDExtension
Godot Rive
An integration of Rive into Godot 4.1+ using GDExtension
[!WARNING] This extension is in alpha. That means:
- You may encounter some bugs
- It's untested on many platforms
- Most features are implemented, but the API may change a little
This extensions adds Rive support to Godot 4.
It makes use of the following third-party libraries:
Table of Contents
- Features
- Building
- Installation
- Roadmap
- Contributing
- Screenshots
Features
- Load .rivfiles (artboards, animations, and state machines)
- Listen for input events
- Change state machine properties in-editor and in code
- Robust API for runtime interaction
- Optimized for Godot
Building
[!IMPORTANT] These instructions are only tested on M1 MacOS. You may have to modify
build/build.pyorbuild/SConstructfor your system.
The following must be installed:
To build, run the following commands (from the root directory):
cd build
python build.py
To see the available options, run:
python build.py --help
Installation
[!IMPORTANT] If you are not on M1 MacOS, you will need to build the extension yourself. Binaries are only provided for MacOS universal (debug and release). Eventually, binaries will be provided for other platforms.
- Copy demo/bin/,demo/icons/, anddemo/rive.gdextensionto your project folder
- Update the paths in rive.gdextensionto match your project folder structure
Roadmap
- [x] Load .rivfiles
- [x] Run and play Rive animations
- [x] Raster image support
- [x] Input events (hover, pressed, etc.)
- [x] Alignment & size exported properties
- [x] Multiple scenes/artboards
- [x] Dynamic exported properties based on state machine
- [x] API for interaction during runtime
- [x] Add error handling
- [x] Add signals for event listeners (hover, pressed, etc)
- [x] Disable/enable event listeners (hover, pressed, etc) in API and editor
- [x] Optimization
- [x] Static editor preview
- [x] Animated editor preview
- [ ] Add reset button
- [ ] .rivResourceLoader (thumbnails)
- [ ] Other platform support
- [ ] Any missing features
Contributing
Help would be MUCH appreciated testing and/or building for the following platforms:
- Windows
- Android
- iOS
- Linux
- Web
Feel free to contribute bug fixes (see open issues), documentation, or features as well.
Screenshots
