From d9060a4d6be46b41f46d6ffa65cd1f792ad2f108 Mon Sep 17 00:00:00 2001 From: Mark Moissette Date: Sat, 12 Aug 2023 00:35:14 +0200 Subject: [PATCH] chore(cleanups): overall minor cleanups & tweaks (#3) * split documentation between main docs & example docs * clearer seperation between example, blender add on etc * some minor code quality improvements based on Clippy linting * minor tweaks & additions to Blender & gltf example files: swapped out one mesh collider for a capsule collider for demo purposes * cleanups, tweaks, badges etc --- README.md | 42 ++------- assets/models/level1.glb | Bin 78876 -> 78932 bytes assets/models/test.blend | Bin 1337788 -> 1337588 bytes examples/general/README.md | 128 ++++++++++++++++++++++++++++ src/gltf_to_components.rs | 17 ++-- src/process_gltfs.rs | 4 +- tools/blender_auto_export/README.md | 29 +++++++ 7 files changed, 175 insertions(+), 45 deletions(-) create mode 100644 examples/general/README.md create mode 100644 tools/blender_auto_export/README.md diff --git a/README.md b/README.md index 8f519de..5bbc483 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking) + # bevy_gltf_components @@ -21,6 +23,9 @@ It also allows you to setup 'blueprints' in Blender by using collections (the re ## Usage +***important*** : the plugin for processing gltf files runs in ***preUpdate*** , so you cannot use the components directly if you spawn your scene from gltf in ***setup*** (the additional components will not show up) +Please see the included example or use bevy_asset_loader for a reliable workflow + 1. Add the crate to your dependencies ```toml [dependencies] @@ -205,8 +210,7 @@ It also allows you to setup 'blueprints' in Blender by using collections (the re There is a [video tutorial/explanation](https://youtu.be/-lcScjQCA3c) if you want, or you can skip to the text version ahead -important : the plugin for processing gltf files runs in *preUpdate* , so you cannot use the components directly if you spawn your scene from gltf in *setup* (the additional components will not show up) -Please see the included example or use bevy_asset_loader for a reliable workflow + ## Workflow @@ -264,8 +268,6 @@ see the [example](./examples/general/) for more information on how to set things * In the Level/world itself, just create an instance of the collection (standard Blender, ie Shift+A -> collection instance -> pick the collection) - - - export your level as a glb/gltf file : !!**IMPORTANT** you need to check the following: - custom properties @@ -301,9 +303,6 @@ Included are the following modules / tools * [```lighting```](./examples/general/core/lighting/) an other example post process/replace proxies plugin for lighting, that toggles shadows, lighting config, etc so that things look closer to the original Blender data * [```physics```](./examples/general/core/physics/) an other example post process/replace proxies plugin for physics, that add [Rapier](https://rapier.rs/docs/user_guides/bevy_plugin/getting_started_bevy) Colliders, Rigidbodies etc . Most of these do not need proxies these days, as the most Rapier components are in the Registry & can be used directly - - - Feel free to use as you want, rip it appart, use any/all parts that you need ! This tooling and workflow has enabled me to go from a blank Bevy + Blender setup to a working barebones level in very little time (30 minutes or so ?) ! @@ -326,34 +325,11 @@ You can then add your own components & systems for your own gameplay very easill * gltf spawning tools where you just need to preload gltf files then you can spawn 1...n entities defined in gltf files by name (for example enemies, powerups, etc) * simplified animation logic: ie instead of having to manually specify the animations you need from a gltf file, it is integrated with the spawning system above, which creates a ```Animations``` component in all entities that have an ```AnimationPlayer``` and you can simply query for both to easilly control your animations per entity. -## Bonus !! -- for convenience I also added a [Blender addon](./tools/blender_auto_export/blender_auto_export_gltf.py) that automatically exports your level/world from Blender to gltf whenever you save your Blend file +## Blender gltf_auto_export +- for convenience I also added a [Blender addon](./tools/blender_auto_export/README.md) that automatically exports your level/world from Blender to gltf whenever you save your Blend file (actually when you save inside your level/world scene or in the "library" scene, where I personally usually store all collections to instanciate). -It is **very** barebones and messy, but it does a minimal ok job. +It is **very** barebones and messy, but it does a minimal ok job. Please read the README of the add-on for installation instructions -### Installation: - -* in Blender go to edit => preferences => install - -![blender addon install](./docs/blender_addon_install.png) - -* choose the path where ```blender_auto_export/blender_auto_export_gltf.py``` is stored - -![blender addon install](./docs/blender_addon_install2.png) - -### Usage: - -* before it can automatically save to gltf, you need to configure it -* go to file => export => gltf auto export - -![blender addon use](./docs/blender_addon_use.png) - -* set up your parameters: output path, name of your main scene etc - - ![blender addon use2](./docs/blender_addon_use2.png) - -* click on "apply settings" -* now next time you save your blend file you will get an automatically exported gltf file ## Credits diff --git a/assets/models/level1.glb b/assets/models/level1.glb index 1f19a7398095a514f2a1cb60ff5409cd4a840418..881fad4200ce3c47b982d5d991da73f12f52a859 100644 GIT binary patch delta 98 zcmbR9g5}B!7T)xn5H}_U28Iw5MurO;dG&eiof8X+OLI~+6f`QV4D<|i6e_KZ^-OgX jsz5wV1s#yM0#w2fA)%w70OToXZg$|!wAsAIv)~l~Dy|w% delta 42 ycmccef@RJN7T)xn5H}_U1_l`uMur(1dG&cG%dm26uIEj)VOCI3*!;w^;1vK7d<@|L diff --git a/assets/models/test.blend b/assets/models/test.blend index 8940900c199e9f17a82d769a5fb32ecb659eeaf4..883d15dc115db2f5e14f4d092f686a80a88d7dcd 100644 GIT binary patch delta 148761 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 O+uqnQwtd=DFZ@4ic(M)v diff --git a/examples/general/README.md b/examples/general/README.md new file mode 100644 index 0000000..02623cb --- /dev/null +++ b/examples/general/README.md @@ -0,0 +1,128 @@ + +# Workflow with blender / demo information + +This example, is actually closer to a boilerplate + tooling showcases how to use a minimalistic [Blender](https://www.blender.org/) (gltf) centric workflow for [Bevy](https://bevyengine.org/), ie defining entites & their components +inside Blender using Blender's objects **custom properties**. +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 (or any editor allowing to export gltf with configurable gltf_extras) as your Editor +* define Bevy components as custom properties in Blender (RON, though an older JSON version is also available) +* no plugin or extra tools needed in Blender (but I provide a little Blender plugin to auto-export to gltf on save if you want !) +* define components in Blender Collections & override any of them in your collection instances if you want +* code to auto add additional required components in Bevy (if B is needed with A but B is not present, it adds it: optional & configurable) +* minimal setup & code, you can have something basic running fast +* opensource + +There is a [video tutorial/explanation](https://youtu.be/-lcScjQCA3c) if you want, or you can skip to the text version ahead + + +## Running this example + +``` +cargo run --example general --features bevy/dynamic_linking +``` + +## Workflow + +The workflow goes as follows (once you got your Bevy code setup) + +### All core/helper modules + +see the [example](./examples/general/) for more information on how to set things up + + +### Then... + +- 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](./docs/component_registration.png) + + +- Create a mesh/ collection (for reuse) in Blender +- Go to object properties => add a property, and add your component data + - unit structs, enums, and more complex strucs / components are all supported, (if the fields are basic data types at least, + have not tried more complex ones yet, but should also work) + - for structs with no params (unit structs): use a **STRING** property & an empty value + - for structs with params: use a RON representation of your fields (see below) + - for tupple strucs you can use any of the built in Blender custom property types: Strings, Booleans, floats, Vectors, etc + + ![unit struct components in Blender](./docs/components_blender.png) + + In rust: + + ![unit struct components in Bevy](./docs/demo_simple_components.png) + + (the Rust struct for these components for reference is [here](./examples/general/game.rs#34) ) + + + ![complex components in Blender](./docs/components_blender_parameters.png) + + In rust: + + ![complex components in Blender](./docs/camera_tracking_component.png) + + (the Rust struct for this component for reference is [here](./examples/general/core/camera/camera_tracking.rs#21) ) + + There is an other examples of using various Component types: Enums, Tupple structs, strucs with fields etc [here](./examples/general/test_components.rs), + even colors, Vecs (arrays), Vec2, Vec3 etc are all supported + + ![complex components in Blender](./docs/components_blender_parameters2.png) + +- for collections & their instances: + * I usually create a library scene with nested collections + * the leaf collections are the assets you use in your level + * add an empty called xxxx_components + * add the components as explained in the previous part + ![blender collection asset](./docs/blender_collections.png) + + * In the Level/world itself, just create an instance of the collection (standard Blender, ie Shift+A -> collection instance -> pick the collection) + + +- export your level as a glb/gltf file : + !!**IMPORTANT** you need to check the following: + - custom properties + - cameras & lights if you want a complete level (as in this example) + + ![gltf_export](./docs/gltf_export.png) + + +- load it in Bevy (see the demo main file for this) +- you should see the components attached to your entities in Bevy + +![components in bevy](./docs/components_bevy.png) +![components in bevy](./docs/components_bevy2.png) +![components in bevy](./docs/components_bevy3.png) + + +> note: you get a warning if there are any unregistered components in your gltf file (they get ignored) +you will get a warning **per entity** +![missing components warnings](./docs/component_warnings.png) + + +### Additional notes + +* You usually define either the Components directly or use ```Proxy components``` that get replaced in Bevy systems with the actual Components that you want (usually when for some reason, ie external crates with unregistered components etc) you cannot use the components directly. + +Included are the following modules / tools + * [```process_gltf```](./src/process_gltfs.rs) the most important module: this is the one extracting ```component``` information from the gltf files + * [```insert_dependant_component```](./examples/general/core/relationships/relationships_insert_dependant_components.rs) a small utility to automatically inject + components that are dependant on an other component + for example an Entity with a Player component should also always have a ShouldBeWithPlayer component + you get a warning if you use this though, as I consider this to be stop-gap solution (usually you should have either a bundle, or directly define all needed components) + * [```camera```](./examples/general/core/camera/) an example post process/replace proxies plugin, for Camera that also adds CameraTracking functions (to enable a camera to follow an object, ie the player) + * [```lighting```](./examples/general/core/lighting/) an other example post process/replace proxies plugin for lighting, that toggles shadows, lighting config, etc so that things look closer to the original Blender data + * [```physics```](./examples/general/core/physics/) an other example post process/replace proxies plugin for physics, that add [Rapier](https://rapier.rs/docs/user_guides/bevy_plugin/getting_started_bevy) Colliders, Rigidbodies etc . Most of these do not need proxies these days, as the most Rapier components are in the Registry & can be used directly + +Feel free to use as you want, rip it appart, use any/all parts that you need ! + +This tooling and workflow has enabled me to go from a blank Bevy + Blender setup to a working barebones level in very little time (30 minutes or so ?) ! +You can then add your own components & systems for your own gameplay very easilly + +## Information +- the Bevy/ Rust code is [here](./examples/general/main.rs) +- the Blender file is [here](./assets/models/level.blend) +- I added [bevy_editor_pls](https://github.com/jakobhellermann/bevy_editor_pls) as a dependency for convenience so you can inspect your level/components diff --git a/src/gltf_to_components.rs b/src/gltf_to_components.rs index 2822bee..515cb2e 100644 --- a/src/gltf_to_components.rs +++ b/src/gltf_to_components.rs @@ -1,6 +1,5 @@ use core::ops::Deref; - use ron::Value; use serde::de::DeserializeSeed; @@ -80,7 +79,7 @@ pub fn gltf_extras_to_components( // find a way to link this name to the current entity ? => WOULD BE VERY USEFULL for animations & co !! debug!("done pre-processing components, now adding them to entities"); for (entity, components) in entity_components { - if components.len() > 0 { + if !components.is_empty() { debug!("--entity {:?}, components {}", entity, components.len()); } for component in components { @@ -99,8 +98,8 @@ pub fn gltf_extras_to_components( // scene.world.components(). // TODO: how can we insert any additional components "by hand" here ? } - let e_mut = scene.world.entity_mut(entity); - let archetype = e_mut.archetype().clone();//.components(); + let entity_mut = scene.world.entity_mut(entity); + let archetype = entity_mut.archetype().clone(); let _all_components = archetype.components(); // println!("All components {:?}", all_components); @@ -129,7 +128,7 @@ pub fn gltf_extras_to_components( parsed_value = str; } _=> { - parsed_value = format!("{}", ron::to_string(&value).unwrap() ) + parsed_value = ron::to_string(&value).unwrap().to_string() } } @@ -180,12 +179,10 @@ pub fn gltf_extras_to_components( formated = parsed_value.parse::().unwrap().to_string(); } "glam::f32::vec2::Vec2" => { - //println!("WE HAVE A VEC2 {}", parsed_value); let parsed: Vec = ron::from_str(&parsed_value).unwrap(); formated = format!("(x:{},y:{})", parsed[0], parsed[1]); } "glam::f32::vec3::Vec3" => { - //println!("WE HAVE A VEC3 {}", parsed_value); let parsed: Vec = ron::from_str(&parsed_value).unwrap(); formated = format!("(x:{},y:{},z:{})", parsed[0], parsed[1], parsed[2]); }, @@ -209,7 +206,7 @@ pub fn gltf_extras_to_components( } // println!("parsed value {}",parsed_value); - if parsed_value == "" { + if parsed_value.is_empty() { parsed_value = "()".to_string(); } @@ -225,9 +222,9 @@ pub fn gltf_extras_to_components( ron::ser::to_string_pretty(&serializer, ron::ser::PrettyConfig::default()).unwrap(); println!("serialized Component {}", serialized);*/ - println!("component data ron string {}", ron_string); + // println!("component data ron string {}", ron_string); let mut deserializer = ron::Deserializer::from_str(ron_string.as_str()).unwrap(); - let reflect_deserializer = UntypedReflectDeserializer::new(&type_registry); + let reflect_deserializer = UntypedReflectDeserializer::new(type_registry); let component = reflect_deserializer.deserialize(&mut deserializer).expect(format!("failed to deserialize component {} with value: {:?}", key, value).as_str()); components.push(component); diff --git a/src/process_gltfs.rs b/src/process_gltfs.rs index 66cf9b9..c57912a 100644 --- a/src/process_gltfs.rs +++ b/src/process_gltfs.rs @@ -63,8 +63,8 @@ use super::gltf_extras_to_components; // TODO this is a temporary workaround for library management if let Some(asset_path) = asset_server.get_handle_path(gltf_handle) { let gltf_name = asset_path.path().file_stem().unwrap().to_str().unwrap(); - gltf_extras_to_components(gltf, &mut scenes, &*type_registry, &gltf_name); - //gltf_extras_to_prefab_infos(gltf, &mut scenes, &*type_registry, &gltf_name); + gltf_extras_to_components(gltf, &mut scenes, &*type_registry, gltf_name); + //gltf_extras_to_prefab_infos(gltf, &mut scenes, &*type_registry, gltf_name); } else { gltf_extras_to_components(gltf, &mut scenes, &*type_registry, ""); diff --git a/tools/blender_auto_export/README.md b/tools/blender_auto_export/README.md new file mode 100644 index 0000000..4b22283 --- /dev/null +++ b/tools/blender_auto_export/README.md @@ -0,0 +1,29 @@ +# gltf_auto_export + +For convenience I also added this [Blender addon](./blender_auto_export_gltf.py) that automatically exports your level/world from Blender to gltf whenever you save your Blend file +(actually when you save inside your level/world scene or in the "library" scene, where I personally usually store all collections to instanciate). +It is **very** barebones and messy, but it does a minimal ok job. + +### Installation: + +* in Blender go to edit => preferences => install + +![blender addon install](../../docs/blender_addon_install.png) + +* choose the path where ```blender_auto_export/blender_auto_export_gltf.py``` is stored + +![blender addon install](../../docs/blender_addon_install2.png) + +### Usage: + +* before it can automatically save to gltf, you need to configure it +* go to file => export => gltf auto export + +![blender addon use](../../docs/blender_addon_use.png) + +* set up your parameters: output path, name of your main scene etc + + ![blender addon use2](../../docs/blender_addon_use2.png) + +* click on "apply settings" +* now next time you save your blend file you will get an automatically exported gltf file