* now the blender side exports .meta.ron files in addition to the gltf files
* these ron files contain the list of assets that are then preloaded on the Bevy side
* removed the double loading of gltf files on the Bevy side, replaced with use of the new metadata/asset files
* added bevy_common_assets/ ron as dependency for the file loading
* big cleanup & partial restructure of the spawning steps
* fixed premature removal of the BlueprintAssetsLoadState component that was leading to missing material gltf files in
setups withouth hot reload
* added OriginalVisibility component & logic to correctly reset the visibility of entities to what they where before
the blueprint spawning
* fixed a few not so visible issues with some components staying around after the blueprint instance has become "ready"
* moved a number of component insertions to the new "get the assets list from the meta file"
* also, loading speed feels faster ! (thanks to now loading the gltf files only once)
* minor various tweaks & cleanups
* fixed & improved the Blenvy crate README
* make a few things conditional on whether hot reload is enabled or not
* cleaned up very verbose debug messages
* a few renames & coherency pass
* cleanups cleanups, cleanups !
* fixed huge logical error in component processing (require Name components) that was breaking
scene level extras/components
* added a convience from_path function to BlueprintInfos to generate name from path
* minor tweaks
* VERY clunky code so far, needs a massive cleanup, but works !
* modified relevant code
* modified testing/example
* related minor tweaks & changes
* small changes to blend project to test instance vs blueprint level animation controls
* updated logic to account for bevy 0.14 changes (animation graph, transitions component etc)
* added back & updated per blueprint animation example to the testing project
* updated matching blend file with new style components
* spawnHere => spawnBlueprint
* added back tagging of Blueprint contents with "InBlueprint" / noInBlueprint
* overall cleanup pass (wip)
* removed clutter
* moved hot reload to seperate module
* added back "assets loaded" event, removed useless events
* registered HideUntilReady component for users
* minor tweaks & cleanups
* bumped up Bevy version to v0.14 !
* fixed (albeit in a clunky way) issues with sub blueprint detection
* improved error message for missing material library
* added HideUntilReady component & logic, to hide 'in-spawning' blueprint instances until they are ready
* "add-to-world" is now only trigerred for blueprint instances that have no parents (avoid footgun)
* minor cleanups & tweaks
* added test component with Vec3 to double check for issues
* updated test blend file to include the component above + added a light to the test spawnable blueprint
to check for "light flashes" (aka indirectly testing "HideUntilReady")
* added logic to track spawning of sub blueprints
* added ability to determine when a blueprint instance is truly ready
(aka all its assets have been loaded, blueprint scene & sub scenes spawned & processed etc)
* reworked spawning steps for more determinism & reliability
* no more "seperate" spawning post process
* lots of related changes
* still messy but functional
* Blender: some additional component filtering for upgrade ui
* Bevy:
* experimenting with overhauled blueprint spawning logic, sub-blueprint instance tracking etc
* added a more simple blend file to test things out with
* cleaned up hot reload code a bit
* renamed a few things for clarity
* experimented with hiding entity while spawning & showing it again after spawn to
try and remove "flashes" happening when spawning blueprints with lights
* for testing example, fixed dynamic spawner test
* contains both name & path
* also experimented with merging the asset load tracking into BlenvyAssets by adding the fields from the
asset loading tracker & ignoring them/ defaulting them for deserialization
to get the list of assets & preload them
* a tiny bit clunky but works and is somewhat cleaner than the previous "staggered loading" approach
* enables having level load state (could be used for progress information & co)
* modified blueprints spawning to used the new system
* various cleanups & related tweaks
* fixed issues on the Blender side when with the formating of the ron data for assets
* includes components, registry export & blueprints
* overhauled settings / config to match the new structure
* keeping the different sub plugins for now
* cleaned up some of the internals of the blueprints code
* related tweaks & cleanups
* added events to blueprints : for when assets have been loaded & when a blueprint has been spawned (wip)
* various experiments with blueprints
* updated testing to make use of new crate & logic
* tweaked & changed code where relevant
* also added support for the new gltf_xxx_extras in bevy_gltf_components
* animation support needs an overhaul given the extensive changes in v0.14 (wip)
* still a giant mess, but works
* examples not yet updated, will get overhauled
* testing project is now independant from the "common" example code: ie no debug ui, no physics,
no bevy_asset_loader
* testing project WORKS , even without any of the above, so asset loading (even if rough), is functional !
* added VERY rough hierarchy/ components debug to testing project to visualize things
without bevy_editor_pls egui & co
* related tweaks & changes
* removed old blender add-ons, there is now only Blenvy !
* updated most of the main docs accordingly
* updated project name in main README
* etc
* related tweaks
* removed/ obsoleted blueprintsList
* now using AllAssets (meh naming)
* modified example & internals to enable loading levels as Blueprints as well
* internals quite messy for now, needs a big cleanup still
* disabled materials library for now, needs to be overhauled to make use of asset logic as well
* added more mock assets for testing
* related changes to blender & bevy side
* added handling of additional map flags
* added map handling in conversion from prop group
* added basic (& clunky) UI
* related boilerplate
* added various testing components to try this out & experiment with
* moved triggering of frame marker events to the blueprints crate
* added additional handling of frame markers for blueprint animations (yikes is this convoluted)
* added additional animated blueprint for testing blueprint animation markers
* renamed Animated component to AnimationInfos, fleshed it out with additional
frame informations etc
* restructured & cleaned up Bevy & Blender code in those areas a bit
* various related minor tweaks
* added additional component on the Bevy side + experimented with handling the data in the testing setup
* added parsing of animation markers on the Blender side + injection of custom property/ component
* rough around the edges, but the basics work !
* fleshed out testing of hierarchy
* added export of serialized hierarchy from the bevy side & comparing it with a reference
one on the python side
* various tweaks
* closes#80
* preliminary work for further asset management from the Blender side without needing additional dependencies & boilerplate on the Bevy side
* feat(auto_export):
* now injecting list/tree of sub blueprints to main scenes/levels & blueprints
* made blueprints/asset list conditional on NOT legacy mode
* feat(gltf_blueprints):
* basics of dynamic loading of sub_blueprints
* added same kind of logic to the loading of material files
* also made a more generic variant of the BlueprintAssetLoadTracker
* added gltf file path for more informative error in case a gltf is missing
* refactor():
* made the various gltf assets loaded by bevy_asset_loader optional (to handle the case where they are not present)
* updated all examples accordingly
* chore(crates): fixed links, slight tweaks, bumped versions
* chore(crates): updated crates to Bevy 0.13
* updated deps
* updated / changed code where relevant
* updated README files
* bumped version numbers for upcoming release
* updated rust-toolchain
* updated assets where relevant
* closes#132
* feat(bevy_gltf_components):
* added GltfProcessed flag component to improve performance of iteration over added<gltfExtras>
* closes#144
* light & shadow processing is now integrated, to match lights coming from Blender: you can now control whether
lights cast shadows, the cascade resolution , background color etc from Blender
* closes#155
* feat(bevy_registry_export): added boilerplate to make registry path relative to assets folder
* closes#137
* feat(tools): added boilerplate for internal tools
* clean zip file generator for blender add-on releases
* example gltf file generator
* feat(lighting): added components, exporter support & testing for blender-configurable shadows
* added BlenderLightShadows component to bevy_gltf_components
* added writing shadow information to gltf_auto_export
* updated tests
* closes#157
Co-authored-by: Jan Hohenheim <jan@hohenheim.ch>
* fix(gltf_auto_export): added fix for correct "deep-copying" of objects & hierarchy so that animated
meshes & nested hierarchies get exported correctly
* test(gltf_auto_export):
* added visual testing to check for overall regression :
* added screenshoting in bevy app
* added visual compare with reference screenshot on python side
* added testing of correct export of animated models
* added testing of correct export of empties
* added testing of correct export of nested hierarchies
* added testing of correct export of blueprints, with & without components etc
* fixes#147
* added filtering out of invalid components/ custom properties:
* includes filtering out of invalid / disabled components as defined in bevy_components, components_meta etc
* completely changed handling of "unique" (non blueprint) objects by copying them instead of moving/renaming them & manipulating their custom properties : much cleaner, much simpler !
* disabled default gltf export of optimised animations
* added tests !
* closes#139
* closes#141
* closes#142
* closes#146