Commit Graph

217 Commits

Author SHA1 Message Date
kaosat.dev db7647b0a8 feat(Blender): added dynamic tooltips 2024-08-14 14:52:08 +02:00
kaosat.dev 48ce690860 feat(Blender):
* added ability to clear/reset settings to default
 * a lot of improvements to QOL ui features
   * fixed issue with editing scenes being tagged as Level scenes
   * fixed mode switching issues
   * added save & reset of camera settings
   * improved selection logic
   * various minor tweaks
   * better naming & cleanups
2024-08-14 14:37:42 +02:00
kaosat.dev 027fec7131 feat(Blender): a few more upgrade to QOL shortcuts & co
* unfortunalty additional scene highlight that the current way of scene rename
detection needs to be removed as it breaks the saving process in general !
2024-08-14 02:49:27 +02:00
kaosat.dev 566120d073 feat(Blender): a few QOL improvements to the workflow
* context menu + shortcut + operators to quickly edit /and/or create new blueprints in a seperate scene
 * boilerplate based on the awesome work by slyedoc
 * "one keyboard shortcut" workflow: edit if blueprint instance is selected, create if not, stop editing if editing is already in progress
 * updated list of contributors
2024-08-14 01:54:24 +02:00
kaosat.dev cb1f7b59a2 docs(): minor tweaks, optimised blender doc images with oxipng 2024-08-13 00:44:16 +02:00
kaosat.dev 2031d1b8f2 chore(Blender): made clear that animation spliting is not functional yet 2024-08-13 00:26:04 +02:00
kaosat.dev f27c8a078c refactor(Blender): export_scene_settings => match_blender_visuals
* also updated name & description for more clarity
2024-08-12 14:34:55 +02:00
kaosat.dev a3ff1b6c1b feat(Blender): added basics for spliting out (armature) animations
* all boilerplate , including finding relevant armatures & their objects, exporting animations, settings & ui etc
added
 * renamed material library to "split materials"
 * a ton of related changes
2024-08-12 01:50:43 +02:00
kaosat.dev 33f2809682 refactor(Blender): changed all imports to be relative, to be up to spec with Blender 4.2 extensions 2024-08-09 12:22:49 +02:00
kaosat.dev 362d6b214b feat(Blender):
* updated version to match Bevy side
 * added back manifest to do a clean 4.2 extension
 * removed tmp scene ids
2024-08-09 11:03:31 +02:00
kaosat.dev bd830e5ad4 feat(Blenvy:Blender):
* cleanups to dynamic/static object detection
 * filtered out MaterialInfos from "fixable" Components
 * will now attempt to inject actual component for materialInfos
 * if it fails, falls back to previous custom property logic
 * added ability to disable ui for certain components
 * added display of "internal" components
 * internal components such as MaterialInfos are now viewable but disabled (non editable) for more clarity
 * experimenting with auto_reload of registry if missing (wip)
 * minor tweaks
2024-08-07 01:35:06 +02:00
kaosat.dev 0b02a24313 fix(Blenvy:Blender): fixed issue with materials not exported if there was an export parameter change 2024-08-06 10:19:22 +02:00
kaosat.dev ae9f07f549 feat(Blenvy:Blender): started upgrading code relevant to save/load, dynamic entities etc
* using some of the newer components api to determine if an object/its collection is dynamic or not
2024-08-03 01:27:44 +02:00
kaosat.dev 3a528e447a feat(Blenvy:Blender): finally ! added a clean way of dealing with failed gltf exports
* no more re-raised errors
 * no more remaining "___temp_scenes" or object renames aka no more breaking user's blend files
 * also added boilerplate for displaying more accurate traceback & used it to still display the export errors correctly
2024-08-01 11:07:40 +02:00
kaosat.dev ee873b06f1 feat(Blenvy): big overhaul, cleanup & fixed to the assets system
* 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
2024-07-29 22:32:23 +02:00
kaosat.dev 94fe3f6d3c feat(Blenvy:Blender): numerous minor tweaks & fixes (mostly materials related)
* now correctly handling multi material meshes that have more materials in their slots as there are actual
materials applied
 * per-blueprint materials are now correctly inserted/updated even when there are no material changes (ie cases where
the ordering of slots etc is changed on a mesh)
 * conditions for trigerring exports of levels & materials are more coherent and exports are now trigerred on export setting
changes (as they should have been !)
 * minor cleanups
2024-07-27 21:59:57 +02:00
kaosat.dev ab7a0cab65 feat(Blenvy:Blender): fixed issue with duplicate objects when using parenting in blender 2024-07-27 18:57:47 +02:00
kaosat.dev ce17f723b1 feat(Blenvy):changed materials system to generate one gltf file per material
* modified materials detection & export accordingly
 * modified material paths & co accordingly (all much simpler !)
 * modified assets_scan helpers to also include material assets
 * modified & massively cleaned up BlueprintAsset injection
 * further cleanups & fixes for materials handling
 * also removed a lot of obsolete code dealing with assets
 * ever more cleanups !
2024-07-27 16:59:57 +02:00
kaosat.dev 4865d432d9 feat(Blenvy): added basics of correct multi-material meshes support
* relying on the fact that the mesh-per-material generated by the gltf exporter is deterministic:
ie always uses the ordering of materials in an object
 * added new component MaterialInfos (plural) with a vec of MaterialInfo's
 * modified how materials per object are gathered on the Blender side
 * and modified the processing on the Bevy side to also use the ordered approach
 * seems to work well so far !
2024-07-27 12:48:47 +02:00
kaosat.dev e534917dca feat(Blenvy:Blender):
* updated & improved & fixed filtering out of custom properties for export that are not components
 * now also for the temporary scenes
 * no more spurious "xxx is not registered" in Bevy for the Blender only custom properties
 * cleanups
2024-07-25 10:34:20 +02:00
kaosat.dev b3c87085de feat(Blenvy:Blender): fixed the most obvious issues with current implementation of materials handling
* changed blenvy.component_add operator to be useable in scripts
 * experimented with using the above to add MaterialInfos as normal components
 * cleaned up & changed info output from auto_export steps
 * minor tweaks
2024-07-25 00:06:20 +02:00
kaosat.dev 4586273e37 fix(Blenvy:Blender): fixes & tweaks to materials export
* fixed missing internals
 * fixed/changed logic of finding existing material files
 * minor related fixes
 * likely last set of fixes with current materials system before switching to one material file per material
2024-07-23 23:35:30 +02:00
kaosat.dev 4a72ed68bf fix(Blenvy:Blender):
* disabled manifest for 4.2 for now
* fixed missing variable for materials
2024-07-22 00:50:49 +02:00
kaosat.dev 16a28ab760 feat(Blenvy:Blender):
* added a fix for BlueprintInfo path issues on non posix platform by replacing specific
os.path.join calls with posixpath.join ones (blueprint info paths, export_path, material_path etc)
 should hopefully solve spawning issues on Windows
 * restructured & improved materials export: now uses same logic as blueprints, with seperate determining of
what materials changed & the export itself
 * minor tweaks
2024-07-22 00:29:41 +02:00
kaosat.dev 09d1218942 feat(Blenvy): cleanups, docs & tweaks
* 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 !
2024-07-21 01:44:05 +02:00
kaosat.dev 1e262cb724 feat(Blenvy):
* more documentation work
 * moved examples to the root of examples
 * minor tweaks
2024-07-20 12:36:59 +02:00
kaosat.dev 2067ed4ec6 docs(Blenvy:Blender): a lot of docs work:
* added basic overview of settings
 * added specific files/sections for components, export, blueprints & levels
 * added relevant images where applicable (wip)

feat(Blenvy:Blender): minor ui tweaks
2024-07-20 02:24:42 +02:00
kaosat.dev ee14ec69bd docs(Blenvy:Blender): continued work on docs 2024-07-19 14:57:40 +02:00
kaosat.dev 4fcf842405 feat(Blenvy:Blender): minor UI tweaks 2024-07-19 14:20:01 +02:00
kaosat.dev 5aa666ef00 feat(Blenvy:Blender): settings/configuration is now also tabbed for less scrolling & confusion 2024-07-19 14:13:48 +02:00
kaosat.dev eac93ce68f feat(Blenvy:Blender):
* coherence pass : "main" scenes & co renamed to "level" scenes & co
 * auto export now toggled ON by default, but bailing out early if there are no main & lib scenes added
 * UI improvement for adding level/lib scenes
 * minor cleanups
2024-07-19 12:06:44 +02:00
kaosat.dev 6bc0ec0782 feat(Blenvy:Blender): added blender_manifest.toml to be compatible with Blender 4.2 extensions 2024-07-19 01:11:31 +02:00
kaosat.dev 3a8844b7a1 chore(tests): minor tweaks 2024-07-18 11:46:38 +02:00
kaosat.dev b756819088 chore(Blenvy): more general cleanups & doc updates
* also more work done on example upgrades
2024-07-16 23:51:49 +02:00
kaosat.dev c1e2bb6ecf fix(Blenvy:Blender): fixed issues with delete operator for "custom property" style components 2024-07-16 11:03:11 +02:00
kaosat.dev 3380f4c71d chore(): updated docs, moved examples around etc
* started docs for Blender Blenvy add-on
 * started migration guide
 * got rid of a few examples
 * moved (for now, wip) all remaining examples under the Blenvy umbrella
 * updated main README
 * fixed issue with undeleted bin file when setting gltf export options for gltf/bin mode
 * updated release tools (internal_generate_release_zips)
 * moved main TODO to root of repo
 * a lot of related prep work & cleanup
2024-07-16 01:18:31 +02:00
kaosat.dev 9d30d18416 feat(Blenvy:Blender): fixed a number of remaining issues with project serialization & attempted to fix scene rename detection
* moved out collections serialization from scenes loop
 * fixed issue with materials hashing
 * fixed issue with custom properties hashing
 * fixed issue with scene properties hashing
 * minor related tweaks
 * still pulling my hair out over weirdness with scene rename detection and handling
2024-07-15 01:46:27 +02:00
kaosat.dev 1059858363 feat(Blenvy:Blender): overhauled & upgraded project serialization & diffing
* now also outputing seperate collections hash & materials hash from serialize_project
 * changed project_diff to do diffing of materials & collections
 * hooked up output data to export logic
 * related tweaks & improvements
2024-07-11 14:41:15 +02:00
kaosat.dev 270202d24f feat(Blenvy:Blender): fixes & enhancements to auto export, particularly assets
* injected BlueprintAssets are now reusing existing asset scan boilerplate (wip)
 * added back per blueprint assets
 * experimenting with how to export all vs local only assets
 * renamed (finally) export main scenes
 * found issue with scene serialization (hellooo collections !), working on fix
2024-07-11 01:06:27 +02:00
kaosat.dev 8602383445 feat(Blenvy:Bevy):
* 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
2024-07-10 09:01:45 +02:00
kaosat.dev a947d3b7d1 feat(Blenvy:Bevy): added built in support for Scene/Level Animations
* 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
2024-07-08 21:45:29 +02:00
kaosat.dev f8a1482aaa chore(Blenvy): minor cleanups 2024-07-08 13:57:01 +02:00
kaosat.dev c326a11243 feat(Blenvy:Bevy): added back basics of animation support
* 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)
2024-07-08 13:14:06 +02:00
kaosat.dev 3099f98532 feat(Blenvy:Bevy): cleaning up
* removed clutter
 * moved hot reload to seperate module
 * added back "assets loaded" event, removed useless events
 * registered HideUntilReady component for users
 * minor tweaks & cleanups
2024-07-08 09:49:47 +02:00
kaosat.dev 478be88a55 feat(Blenvy:Blender):
* fixed issue with parenting due to Blender's very weird matrix_parent_inverse ... solves all issues with children of empties
blueprint instances within blueprint instances etc having the wrong transforms in some cases
 * fixed bad gltf format propagation: semi ok solution, but a cleaner one would be better
 * added additional custom properties to the blacklist , level/blueprint exports are now using the one in the constants
instead of a local copy
 * minor tweaks & cleanups
2024-07-07 22:08:59 +02:00
kaosat.dev fbcd025dc1 feat(Blenvy): continued restructuring & upgrade of blueprint spawning logic
* updated simple test to include deep nested blueprint instance within blueprint instance case
 * restructured materials handling to use the new logic, removed clutter
 * experimenting with solutions to the deeply nested blueprint instances problem
 * moved out all obsolete code to "old" folder, keeeping around until all problems are solved
 * added hack-ish solution to the "aabb system as post process" implementation
 * various minor boilerprate changes
2024-07-05 12:56:51 +02:00
kaosat.dev 6dde9823ed feat(Blenvy:Bevy): almost complete rework of blueprint spawning workflow (wip)
* 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
2024-07-02 14:32:39 +02:00
kaosat.dev 07d58467c4 feat(Blenvy):
* 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
2024-07-01 23:35:59 +02:00
kaosat.dev 6cbb144746 feat(Blenvy:Bevy):
* 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
2024-06-29 01:51:49 +02:00
kaosat.dev fb54b0c913 feat(Blenvy:Blender): upgreadable components: disable ui for external items 2024-06-29 00:56:07 +02:00