Commit Graph

234 Commits

Author SHA1 Message Date
kaosat.dev 742c5b19f0 chore(): some clippy changes 2024-04-15 22:54:25 +02:00
kaosat.dev 7a8b91f4ec tests(auto-export): fixed one test, fleshed out some others, added more specific tests 2024-04-15 22:43:53 +02:00
kaosat.dev db1a15ec63 feat(auto_export): fixes, improvements etc etc
* fixed issues with renaming after export (should have always been broken ???)
 * fleshed out scene serialisation some more (parents & collections handling) + bubbling
 * disabled bulk of tracker
 * added notes for  get collections & scenes about combine mode
 * fixed some issues with main operator
 * updated tests for more correctness
 * etc
2024-04-15 15:07:25 +02:00
kaosat.dev 2f54bea7c9 feat(auto_export): since all variations of using depsgraphs_update & co failed to be reliable, switching to brute force
* aka added basics of serialization of scene(s) & brute compare
 	* added basics for transforms, custom properties, meshes, cameras & lights, & armatures
 * should only run on save as I can imagine it could get quite costly, computation wise
 * added some boilerplate for determining changed objects
 * not hooked up to actual exporter yet
 * already way more reliable than the depsgraph:
  * ignores selections & related weird issues
  * undo /redo proof
  * expandable
2024-04-13 14:20:18 +02:00
kaosat.dev 9ec60a783b feat(auto_export): more preferences handling tweaks, tracker changes etc 2024-04-12 14:02:41 +02:00
kaosat.dev 98930af5f5 feat(auto_export): more work on correct parameter change detection from gltf & auto export
* forcing depsgraph update when applying changes to gltf export settings
 * lots of additional boilerplate for params change detection
 * further updates to get information about changed parameters & objects in tracker
 * a lot of related tweaks & changes
chore(bevy_components): removed annoying verbose info messages
2024-04-12 12:29:32 +02:00
kaosat.dev 6a1594188e feat(auto_export): continued refactoring & internal improvements
* continued restructure of auto_export internals
 * split out get_levels_to_export
 * simplified, cleaned up & made get_collections_to_export more efficient (skipping useless computations based
on settings)
 * moved more settings to addon_prefs, created boilerplate to create copies & inject additional params
 * modified tracker's use of the above, so that the actual list of future exports is displayed
 * a lot of other tweaks & cleanups
2024-04-10 22:06:54 +02:00
kaosat.dev c2dc0324c3 feat(bevy_components):
* added "hack-ish" tweak to make sure component additions/delections etc
are picked up correctly by the change tracker in auto_export
 * cleaned up a few operator names
 * very minor tweaks
2024-04-10 00:21:52 +02:00
kaosat.dev a630494f88 feat(auto_export): continued fixes & tons of restructuring
* cleaned up most of the change detection tracking
 * updated/ fleshed out & improved the tests
 * improved sidebar ui (wip)
   * moved listing of blueprints to export to sidebar
   * improved display of changed objects
   * currently restructuring rest of the code to be able to display BEFORE saving
what will get exported & what not
 * a ton of other cleanups & tweaks
2024-04-10 00:18:34 +02:00
kaosat.dev 8683a6482f refactor(animation): renamed instancexxx to scenexxx (ie InstanceAnimations & InstancePlayerLinks) 2024-04-08 23:48:07 +02:00
kaosat.dev cf4673c1e3 feat(auto_export): MORE experimenting, cleanup & analysis attempts
* moved temp scene prefix to new 'constants' file, updated code accordingly
 * fixed, updated & refactored handling of auto export & gltf parameters
 * added additional tests to changed_parameters
 * added display of changes since last save in new side tab
 * more investigation & fix attempts for change detection...
 * various related tweaks & cleanups
2024-04-08 23:41:17 +02:00
kaosat.dev 64fd308fd3 feat(auto_export): exploration, changes, debug etc for change detection weirdness 2024-04-08 00:08:06 +02:00
kaosat.dev 11e8786b59 fix(auto_export): first draft, working ! but horribly convoluted solution to the correct reseting of change detection state 2024-04-06 01:29:41 +02:00
kaosat.dev 86a1a4d717 test(auto_export): added tests for changed parameters tracking & change tracking
* added testing based on timestamps of generated files
 * found a (few ?) bugs in change tracking based on these, fixing next
2024-04-06 01:00:24 +02:00
kaosat.dev 62686ecb61 chore(): cleared some data in testing file 2024-04-06 00:21:55 +02:00
kaosat.dev 9645e812ef fix(auto_export): fixed changed gltf parameters handling 2024-04-05 23:32:41 +02:00
kaosat.dev ccaeecf6f1 chore(auto_export): more minor tweaks 2024-04-05 23:21:39 +02:00
kaosat.dev 1b1fc31d5d chore(testing): test file tweaks 2024-04-05 23:19:46 +02:00
kaosat.dev e139a1496d chore(auto_export): cleanups 2024-04-05 23:19:29 +02:00
kaosat.dev ed09ab7d48 feat(tools):
* auto_export now defaults to being disabled (otherwise you will get export attempts etc even if you only
had the add-on installed !
 * modified logic accordingly
 * various related tweaks
 * adjusted tests
2024-04-05 23:14:38 +02:00
kaosat.dev 1cf47d36b1 refactor(): cleanups 2024-04-05 10:52:14 +02:00
kaosat.dev 0998decb39 feat(animation): changes & some reverts of the latests experiments 2024-04-05 00:17:07 +02:00
kaosat.dev 0528286b12 chore(): updated blend file 2024-04-03 13:10:44 +02:00
kaosat.dev b19e54b3bd refactor(auto_export): cleanups 2024-04-03 13:07:13 +02:00
kaosat.dev 2dae2c41b4 feat(auto_export): a ton of finicky annoying workarounds !
* added workaround for backing up & restoring gltf export settings if there where any,
because it turns out in the glTF2_pre_export_callback, they already get created !
 * added workaround for deleting the temporary gltf file, aka it needs an additional timer, because
the post export callback fires too early !
 * added workaround to deal with the fact that operator uis have global state !!
aka make sure the settings used when calling the gltf exporter do not "contaminate" the normal exporter
 * it all works, but sigh ...
2024-04-03 00:46:45 +02:00
kaosat.dev 73441f34a4 feat(auto_export): restructured & improved changed parameters detection
* now all centralized in the operator's did_export_settings_change() function
 * now works correctly ! ie only compares the parameters for auto & gltf
at the time of exporting ! ie it does not matter anymore how many parameters you changed, until you save/export
 * this solves a lot of randomness bugs in change detection
 * related & various cleanups
2024-04-02 16:45:01 +02:00
kaosat.dev 73e81c2b64 feat(auto_export): continued cleaning up overhaul
* added both gltf exporter button AND auto export button to side bar
 * added storage of gltf settings
 * auto_export now uses stored gltf settings
 * updated override strategies of defaults vs gltf settings
 * removed all gltf specific (not auto export) parameters from preferences
 * updated auto export operator params changed logic to use updated system
 * updated bevy integration test
 * ui improvements
 * various tweaks
2024-04-02 14:15:56 +02:00
kaosat.dev 4a0479fbf0 feat(auto_export): further experimenting with standard gltf exporter integration 2024-04-02 00:46:09 +02:00
kaosat.dev 66a893e5b6 feat(auto_export): experimenting with the insane workarounds needed to get access to standard gltf exporter settings
* got a basic working version that runs the standard exporter with some overrides,
deletes the temporary exported gltf file, extracts the scene level settings etc
 * convoluted as hell , but still better than the alternatives
2024-04-01 16:12:05 +02:00
kaosat.dev 66df7fae99 feat(animation):
* 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
2024-04-01 00:26:23 +02:00
kaosat.dev 49dd0bc536 chore(): cargo fmt 2024-03-30 23:43:58 +01:00
kaosat.dev 2523691513 refactor(animation): cleanups , reorg & tweaks 2024-03-30 23:43:09 +01:00
kaosat.dev df3e335114 feat(animation):
* 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
2024-03-30 18:29:43 +01:00
kaosat.dev c44d82e7dc feat(animation): added basic handling of animation markers
* 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 !
2024-03-30 02:40:52 +01:00
kaosat.dev 1f959c51bd chore(): minor tweak 2024-03-23 00:02:34 +01:00
kaosat.dev 37dd6a990c feat(auto_export): experimenting with ways of getting standard gltf export settings & using them 2024-03-22 23:35:10 +01:00
kaosat.dev ce473a357e feat(animation): split animation logic/components into Blueprint vs Instance animations
* renamed existing animation components with Blueprint prefix
 * added almost identical but seperate InstanceAnimations & InstanceAnimationPlayerLink
2024-03-22 13:59:01 +01:00
kaosat.dev 27201e5cd6 feat():
* sucessfull experiment with ways to animate world level objects, using
the same logic as the blueprint animations
 * made required changes
2024-03-22 11:11:45 +01:00
kaosat.dev 0b64de79da chore(testing): experimenting with scene level animation handling 2024-03-22 00:29:33 +01:00
kaosat.dev 67588ba3a4 chore(examples): updated registry for bevy_registry as some of the built in components have changed 2024-03-21 21:37:24 +01:00
kaosat.dev 4f5f3be317 chore(): minor tweaks 2024-03-21 21:37:10 +01:00
kaosat.dev 4f50c4f6d2 feat():
* auto_export now injecting the list of available animations into the "Animated" component
  for any object with animations
 * modified bevy side struct to match
2024-03-21 15:25:50 +01:00
kaosat.dev a001ee21f6 test(auto_export):
* 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
2024-03-20 17:57:06 +01:00
kaosat.dev b51a0d38e2 chore(testing): made nesting cases even more complex to cover different scenarios 2024-03-20 12:32:39 +01:00
kaosat.dev 83258dbd07 fix(auto_export): found & fixed a huge issue with handling of hierarchies
* now various forms of nesting with parenting (not within collections) should be handled correctly
 * restructured a large part of creating copies / duplicates
 * removed some obsolete code
 * related cleanups
2024-03-20 12:29:39 +01:00
kaosat.dev c2f09fbf22 feat(): added 'animated' flag component (wip) to mark any worlds/blueprints entities that have animations
* allows to not be restricted by bevy's a bit weird logic for AnimationPlayers
 * updated crate & tooling
 * updated testing example with a bit more complex nesting cases for testing
2024-03-19 22:12:37 +01:00
kaosat.dev 7584078f6d chore(testing): minor tweaks to testing blend file 2024-03-19 14:20:13 +01:00
kaosat.dev 87c03657e5 chore(auto_export): further experimentation 2024-03-19 14:19:32 +01:00
kaosat.dev 1c51d10da7 chore(auto_export): further exploration & experimenting
* now trying to copy the animation to the "empty" placeholder using animation linking operator
 * now in gltf viewer we can see the two animations/actions, but still nothing in Bevy
2024-03-18 22:26:06 +01:00
kaosat.dev 98eef2c755 chore(testing): added animation of a blueprint instance for testing 2024-03-18 20:07:03 +01:00