Bevy Code & Blender addon for a simple workflow to add & edit Bevy components in Blender
Go to file
Mark Moissette 8c201ef6a4
Merge 1e262cb724 into 9b50d77790
2024-07-20 10:37:41 +00:00
.github/workflows chore(Bevy): Update to bevy 0.13 (#136) 2024-03-04 22:16:31 +01:00
crates/blenvy refactor(): removed legacy crates 2024-07-19 12:44:46 +02:00
docs feat(tools/bevy_blueprints): bevy plugin + blender addon for components UI to more easily create components (#70) 2024-02-05 23:01:19 +01:00
examples feat(Blenvy): 2024-07-20 12:36:59 +02:00
testing/bevy_example chore(v0.14): upgraded all current crates, examples, testing setup etc to Bevy 0.14 (#195) 2024-07-19 01:24:24 +02:00
tools feat(Blenvy): 2024-07-20 12:36:59 +02:00
.gitignore chore(lock files ): Delete and ignore Cargo.lock files (#101) 2024-01-19 11:49:22 +01:00
Cargo.toml feat(Blenvy): 2024-07-20 12:36:59 +02:00
FUNDING.yml chore(funding): added funding file + ko-fi config (#104) 2024-01-23 16:07:45 +01:00
LICENSE.md fix(): various Fixes and tweaks (#7) 2023-09-28 16:53:21 +02:00
LICENSE_APACHE.md docs(): readme tweaks + added licenses 2023-07-27 02:08:57 +02:00
LICENSE_MIT.md docs(): readme tweaks + added licenses 2023-07-27 02:08:57 +02:00
Migration_guide.md feat(Blenvy): 2024-07-20 12:36:59 +02:00
README-workflow-classic.md feat(tools/bevy_blueprints): bevy plugin + blender addon for components UI to more easily create components (#70) 2024-02-05 23:01:19 +01:00
README-workflow-ui.md chore(): updated docs, moved examples around etc 2024-07-16 01:18:31 +02:00
README.md chore(): added contributor 2024-07-19 12:08:04 +02:00
RELEASE_NOTES.md docs(): preparing future release notes 2024-05-03 00:28:00 +02:00
TODO.md feat(Blenvy:Blender): 2024-07-19 12:06:44 +02:00
rust-toolchain.toml chore(Bevy): Update to bevy 0.13 (#136) 2024-03-04 22:16:31 +01:00

README.md

Bevy tracking License ko-fi

BLENVY: a friendly Blender <=> Bevy workflow !

demo

Crates & tools for adding components from gltf files in the Bevy game engine.

It enables a Blender (gltf) centric workflow for Bevy, ie defining entites & their components inside Blender. Aka "Blender as editor for Bevy"

It also allows you to setup 'blueprints' in Blender by using collections (the recomended way to go most of the time), or directly on single use objects .

Features

  • Useful if you want to use Blender as your Editor
  • define Bevy components as custom properties in Blender with an UI tool to add & edit Bevy components, automatically export gltf blueprints & more in Blender
  • blueprints & levels system : turn your Blender collections into gltf Blueprints for reuse inside levels that are just Blender scenes
  • setup & tweak components in Blender Collections & override any of them in your collection instances if you want
  • setup & tweak components for objects, meshes and materials as well !
  • automatically load all assets for each blueprint (gltf files, manually added assets), with no setup required
  • hot reload of your levels & blueprints
  • minimal setup & code, you can have something basic running fast
  • minimal dependencies: Bevy, Serde & Ron only !
  • opensource

If you were previously using the individual bevy_gltf_xxx crates & Blender add-ons please see the migration guide

Crates

One crate to rule them all !

  • blenvy This crate allows you to

    • define components direclty inside gltf files and instanciate/inject the components on the Bevy side.
    • export your project's Bevy registry to json, in order to be able to generate custom component UIs on the Blender side in the Blender blenvy add-on
    • define Blueprints/Prefabs for Bevy inside gltf files and spawn them in Bevy. With the ability to override and add components when spawning, efficient "level" loading etc
    • the ability to save & load your game state in a relatively simple way, by leveraging the blueprint functionality to only save a minimal subset of dynamic data, seperating dynamic & static parts of levels etc.

    OLD videos: There is a video tutorial/explanation if you want, or you can read the crate docs. There is a video tutorial/explanation for this one too, or you can read the crate docs

    The examples for the crate are here

Tools

Blender: blenvy

  • an all in one Blender addon for the Blender side of the workflow:
    • allow easilly adding & editing Bevy components , using automatically generated UIs for each component
    • automatically exports your level/world from Blender to gltf whenever you save your Blend file
    • automatically export your Gltf blueprints & assets

Examples

you can find all examples, here

  • components use of components only, to spawn entities with components defined inside gltf files
  • blueprints use of blueprints and levels to spawn a level and then populate it with entities coming from different gltf files, live (at runtime) spawning of entities etc
  • animation how to use and trigger animations from gltf files
  • save_load how to save & load levels
  • demo a full demo showcasing all features , including physics, animation

Workflow

The workflow goes as follows (once you got your Bevy code setup)

  • create & register all your components you want to be able to set from the Blender side (this is basic Bevy, no specific work needed)

component registration

  • setup & then use the Blenvy Bevy crate

  • setup & then use the Blenvy Blender add-on

  • iterate

  • have fun !

  • then add your components to objects in Blender with a nice UI see here for more details

Limitations / issues

  • Some of avian or bevy_rapier /physics code / ways to define colliders could perhaps be done better/visually within Blender

Contributors

Thanks to all the contributors helping out with this project ! Big kudos to you, contributions are always appreciated ! :)

License

This repo, all its code, contents & assets is Dual-licensed under either of