A Bevy Engine plugin for making 2D paths, smooth animations with Bezier curves

Overview

bevy_pen_tool

A Bevy Engine plugin for making 2D paths and smooth animations with Bezier curves

TODO:

  • Mesh-making functionality for building 2D shapes and roads

Controls

Icon Keys Description
scale_up Left Control + Mousescroll up Scale UI and curves up
scale_down Left Control + Mousescroll down Scale UI and curves down
spawn Left Shift + Click Spawn curve
group Left Control + G Group selected curves
latch Left Shift + Left Control + Drag Latch a curve to another curve by dragging a free anchor close to another free anchor
unlatch Space + Drag Unlatch anchors that were latched together.
hide_anchors H Hide anchors and control points
save Left Control + S Save set of existing individual curves (does not currently preserve groups or latches)
load Left Control + L Load set of saved curves (does not currently preserve groups or latches)
hidectrl Left Control + Left Shift + H Hide the control points
compute_lut Left Shift + T Compute look-up table (linearizes animations)
toggle_sound None Toggle sound

How to

  1. run main.rs
  2. explore and have fun
  3. spawn multiple curves
  4. compute the look-up tables for each curve
  5. latch the curves together if they are not already latched at spawn
  6. move the anchors and control points to a desired position (there is a "hide control points" button for when they overlap with anchors)
  7. select the latched curves by clicking and dragging a selection box
  8. group the curves and repeat step 4
  9. save the look-up table
  10. use the look-up table in your app (see the simple_animation.rs example)

Notes

  • bevy_pen_tool does not work with a Perspective Camera (only Orthographic)
  • cannot save multiple groups at once, only a single one
  • currently, the plugin only works with bevy version 0.5, rev="615d43b", but this will change rather soon
  • pressing load will delete everything on the canvas before loading
  • the gif below is a bit out of date: selection is now done by dragging the edge of a box, the look-up tables are computed upon pressing Left Shift + T or the corresponding button, and there is no undo/redo functionality at the moment

bevy_pen_tool

You might also like...
A Client/Server game networking plugin using QUIC, for the Bevy game engine.
A Client/Server game networking plugin using QUIC, for the Bevy game engine.

Bevy Quinnet A Client/Server game networking plugin using QUIC, for the Bevy game engine. Bevy Quinnet QUIC as a game networking protocol Features Roa

A Bevy plugin for loading the LDtk 2D tile map format.
A Bevy plugin for loading the LDtk 2D tile map format.

bevy_ldtk ( Tileset from "Cavernas" by Adam Saltsman ) A Bevy plugin for loading LDtk tile maps. Usage use bevy::prelude::*; use bevy_ldtk::*; fn mai

A plugin for Egui integration into Bevy
A plugin for Egui integration into Bevy

bevy_egui This crate provides a Egui integration for the Bevy game engine. Features: Desktop and web (bevy_webgl2) platforms support Clipboard (web su

A Bevy plugin to use Kira for game audio

Bevy Kira audio This bevy plugin is intended to try integrating Kira into Bevy. The end goal would be to replace or update bevy_audio, if Kira turns o

A prototype plugin providing a simple line drawing api for bevy.
A prototype plugin providing a simple line drawing api for bevy.

bevy_debug_lines A prototype plugin providing a simple line drawing api for bevy. See docs.rs for documentation. Expect breakage on master. Click on t

Bevy plugin helping with asset loading and organisation

Bevy asset loader This Bevy plugin reduces boilerplate when loading game assets. The crate offers the AssetCollection trait and can automatically load

A sprite-sheet animation plugin for bevy
A sprite-sheet animation plugin for bevy

Benimator A sprite sheet animation plugin for bevy Features A SpriteSheetAnimation component to automatically update the indices of the TextureAtlasSp

A procedural sky plugin for bevy

bevy_atmosphere A procedural sky plugin for bevy Example use bevy::prelude::*; use bevy_atmosphere::*; fn main() { App::build() .insert_re

Generic cellular automaton plugin for bevy.
Generic cellular automaton plugin for bevy.

Bevy Cellular Automaton bevy_life is a generic plugin for cellular automaton. From the classic 2D Conway's game of life to WireWorld and 3D rules, the

Owner
Eli
Eli
Bevy Simple Portals is a Bevy game engine plugin aimed to create portals.

Portals for Bevy Bevy Simple Portals is a Bevy game engine plugin aimed to create portals. Those portals are (for now) purely visual and can be used t

Sélène Amanita 11 May 28, 2023
Minecraft-esque voxel engine prototype made with the bevy game engine. Pending bevy 0.6 release to undergo a full rewrite.

vx_bevy A voxel engine prototype made using the Bevy game engine. Goals and features Very basic worldgen Animated chunk loading (ala cube world) Optim

Lucas Arriesse 125 Dec 31, 2022
Combine simple building blocks to create smooth cameras: first-person, chase, orbit, look-at, you name it!

?? dolly Combine simple building blocks to create smooth cameras: first-person, chase, orbit, look-at, you name it! Camera rigs made with dolly are en

Tomasz Stachowiak 284 Dec 26, 2022
Inspector plugin for the bevy game engine

bevy-inspector-egui This crate provides the ability to annotate structs with a #[derive(Inspectable)], which opens a debug interface using egui where

Jakob Hellermann 517 Dec 31, 2022
Crossterm plugin for the bevy game engine

What is bevy_crossterm? bevy_crossterm is a Bevy plugin that uses crossterm as a renderer. It provides custom components and events which allow users

null 79 Nov 2, 2022
Hanabi — a particle system plugin for the Bevy game engine.

Hanabi — a particle system plugin for the Bevy game engine

Jerome Humbert 256 Dec 30, 2022
Tweening animation plugin for the Bevy game engine.

?? Bevy Tweening Tweening animation plugin for the Bevy game engine. Features Animate any field of any component or asset, including custom ones. Run

Jerome Humbert 135 Dec 23, 2022
Bevy engine + miniquad render plugin

Bevy engine + miniquad renderer This is a plugin for Bevy engine that replaces default windowing and rendering plugins with miniquad based one. Usage

Tomasz Sterna 31 Dec 9, 2022
A plugin to enable random number generation for the Bevy game engine.

bevy_turborand A plugin to enable random number generation for the Bevy game engine, built upon turborand. Implements ideas from Bevy's Deterministic

Gonçalo Rica Pais da Silva 15 Dec 23, 2022
A spectator camera plugin for the Bevy game engine

bevy_spectator A spectator camera plugin for the Bevy game engine. Controls Action Key Forward W Left A Backward S Right D Up Space Down LControl Alt.

Jonah Henriksson 5 Jan 2, 2023