• Stars
    star
    196
  • Rank 197,412 (Top 4 %)
  • Language
    Python
  • License
    Other
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A blender addon and bevy plugin to use Blender as an editor for Bevy

FormatCheck ExportCheck

About

Bevy is a game engine written in the Rust programming language. It's currently rather early stages and doesn't have any sort of editor. So until it does, the only way to assign custom components to objects is through code. That's where blender_bevy_toolkit comes in. It provides a UI for adding components to objects in blender and exports the blender scene to bevy's scn format.

Note: I am developing this for my specific game and use case, so the exporter may not include all the features your game requires. PR's welcome!

Instructions

  1. Copy or symlink the blender_bevy_toolkit subfolder (the one with all the python) into your blenders addons folder. On linux this is .config/blender/2.92/scripts/addons.

  2. Create a scene in blender

  3. Add blender_bevy_toolkit to your Cargo.toml

[dependencies]
blender_bevy_toolkit = {path="../blender_bevy_toolkit"}
  1. Add the BlendLoadPlugin
use blender_bevy_toolkit::BlendLoadPlugin;
let mut builder = App::build();
builder = builder.add_plugin(BlendLoadPlugin::default());
  1. You can now load scenes the normal way:
let scene_handle: Handle<DynamicScene> =
    asset_server.load("models/Collections/PhysicsTest.scn");
scene_spawner.spawn_dynamic(scene_handle);

Supported Features:

A UI!

The whole point of this integration is to allow use of a user interface for creating scenes and adding components! So here's what using it looks like:

clip of adding components

Collection Export

The exporter exports all the collections in the blend file, including mesh data and hierarchy.

Note: This will likely change in the near future to exporting the current blender scene.

Physics Export

Physics objects are exported with an integration with bevy_rapier

Custom Components

Custom components allow your game-specific logic to be added through the same blender interface. Most custom components can be defined through simple JSON files, and those that require more complex behaviour can be implemented as python files. Custom components are stored externally to the addon (the addon looks for the folder component_definitions in the directory of the blend file), so you can work on multiple games without conflicts.

screenshot of custom component definition

Version Information:

Rust:

  • bevy 0.6.0
  • bevy_rapier 0.12.0

Blender:

  • blender 3.x (may work on others)

Developing

The makefile runs a script to export some blends from the test_scenes folder.

You should install:

pip install black

More Repositories

1

playcanvas-blender-tools

Tools for going from blender to playcanvas game engine
Python
35
star
2

godot_electricity_shader

Electricity shader for Godot. Done for Godot Monthly VFX Challenge
GDScript
25
star
3

wasm_minigames

Creating WASM minigames in rust from scratch
Rust
21
star
4

godot_fireball_shader

VFX of the cassini "grand finale" made for a Godot VFX challenge with the theme "fireball"
GDScript
7
star
5

gltf_ecs_components

A tiny specification (and blender exporter) for storing Entity-Component-System components inside GLTF files.
Python
6
star
6

stylus_labs_pdf_converter

Convert PDF documents for styluslabs' excellent digital notetaking software.
Python
5
star
7

network_detached_storage

A sci-fi themed self-hosting server. Hosts it's own local network
Python
4
star
8

godot_challenge_darkness

GLSL
4
star
9

esp32_gemini_server

Hacking https://github.com/fhessel/esp32_https_server to serve gemini content
C++
3
star
10

godot-boat

Sailing boat with flapping sails in Godot
C++
3
star
11

blender_bevy_top_down_space_shooter

Dogfooding the blender bevy toolkit by making a small game
Python
3
star
12

sverg

Experimental vectorized-raster image editor
Rust
3
star
13

track_designer

Web-based tools to design track systems for RC vehicles
JavaScript
2
star
14

balsa_strip_cutter

A 3d printable tool for cutting sheets of balsa into strips. Based of the Master Airscrew version
Python
2
star
15

geodesic-chess

Chess played on a spherical board
Python
2
star
16

jimny_trak

A small RC version of the suzuki jimny - but with tank tracks rather than wheels. Designed for N20 gear motors.
Python
2
star
17

esp-remote-control

A remote control set based on the ESP32 and ESP8266 using the radio modules as raw as possible (not wifi)
C
2
star
18

tiny-crawler

A tiny trak without the "trak's"
HTML
2
star
19

shockwave_slicer

Shockwave Slicer
Python
2
star
20

parameterball

Pong in the style of https://xkcd.com/2852/
GDScript
2
star
21

godot-tup-rules

Automate production of godot assets from blender and gimp (escn, png) using tup build system
Python
1
star
22

wildjam8

A (maybe) entry for wildjam8. Mostly just fooling around with Godot's 2d stuff
GDScript
1
star
23

traktion_maschine_3

A small RC tracked vehicle designed in blender
Python
1
star
24

slate-mech

A walking robot for the MechWarfare contest
Python
1
star
25

ludum-dare-36

A 2d game made in godot for ludum dare 36
GDScript
1
star
26

GroundCrawler

ESP-32 based FPV vehicle
C++
1
star
27

tiny_trak_angled

A RC tracked vehicle. The track moulds worked nicely, but the vehicle was a failure because there wasn't enough wrap around the drive wheel.
Python
1
star
28

GameToy

An experimental game engine using nothing but shaders to drive logic.
Rust
1
star
29

esp32-dynamixel

A simple dynamixel protocol2 implementation for the ESP32. Currently supporting the XL-320
C
1
star
30

BGMC26-Solar-Sailing-Simulator

A game made in BGE that simulates solar sailing around a tiny star.
Python
1
star
31

rust_webgl_minimal

A minimal webgl example in rust. Requires only wasm-pack and creates a full screen shader
Rust
1
star
32

esp32-unreliable-connection

Communication using the ESP32 via injecting packets and sniffing them
C
1
star
33

playcanvas-engine-template

Engine only template for playcanvas with build sequence
CSS
1
star