3 releases
new 0.1.2 | Mar 17, 2025 |
---|---|
0.1.1 | Mar 14, 2025 |
0.1.0 | Mar 13, 2025 |
#222 in Game dev
196 downloads per month
170KB
698 lines
[!CAUTION] in-progress crate.
Skein
A Bevy Plugin and a Blender extension for improving the efficiency of Bevy/Blender workflows.
tldr:
- Register components in Bevy
- Apply Bevy Components to objects, meshes, or materials in Blender
- Export to glTF
- Components are instantiated when spawning in Bevy
Quickstart
Add the plugin and register components (reflect(Component)
is important!)
use bevy::prelude::*;
use bevy_skein::SkeinPlugin;
fn main() {
App::new()
.register_type::<Player>()
.add_plugins((
DefaultPlugins,
SkeinPlugin::default(),
))
.run();
}
#[derive(Component, Reflect, Debug)]
#[reflect(Component)]
struct Player {
name: String,
power: f32,
test: i32,
}
- Install the Blender Addon (todo)
- Fetch the Bevy registry using the Blender Operator
- Select and apply a component
- Export to glTF
- Spawn a Scene from the glTF file, which will have components instantiated
commands.spawn(SceneRoot(asset_server.load(
GltfAssetLabel::Scene(0).from_asset("my_export.gltf"),
)));
Use Cases
- Apply Bevy Components in Blender
- Replace materials from Blender with materials defined in Bevy (example)
- Use Blender Drivers to power Bevy Component values
Why is it named Skein?
Its a tool that aims to improve the efficiency of Bevy (group of birds) and Blender workflows.
A flock of wild geese or swans in flight, typically in a V-shaped formation.
A V formation is a symmetric V- or chevron-shaped flight formation. In nature, it occurs among geese, swans, ducks, and other migratory birds, improving their energy efficiency
Its also thread/yarn related which is cool too.
Dependencies
~45–79MB
~1.5M SLoC