feat(tools:gltf_auto_export): big ux improvements (#28)

* export_main_output_name => export_output_folder & the blueprints folder is now relative
to this one
* exported main scene gltf file name is now created based on the Blender scene name, not settable
* blueprints folder defaults to "library"
* the exporter now defaults to enabled blueprints, & enabled change detection in library
* added handling of export parameter changes
 * ie when the gltf parameters (gltf vs glb, compression etc), are changed
the next time you save , all the models are re-exported

* feat(tools:gltf_auto_export): major overhaul & optimisation of library export
 * added change detection handling so only the actually changed collections get exported on save
 * works with actual changes (ie clicks/ selections don't count)
 * this means "progressive" export of only the changed parts, WAY faster
 * removed "export_on_library_changes" setting, which was semi redundant with the library toggle itself
 * also scans for already existing exports on disk (for "first runs" in a Blender session)
 * many smaller cleanups

 * added logic to save/load export parameters in operator
 * parameters are thus now persisted even if the addon is removed & added back
 * based on standard gltf exporter
 * operator presets are now fixed as well & can be used normally
 * added injection of saved parameters in case there is a save attempts after installing the add_on
  and there where previously saved settings

* feat(tools:gltf_auto_export): added support for multiple main & lib scenes
 * with scene picking & filtering
 * adding a scene to the list now only works once you selected a scene from the picker

* docs(tools/gltf_auto_export): updated docs
This commit is contained in:
Mark Moissette 2023-10-22 15:21:55 +02:00 committed by GitHub
parent 921a5ef331
commit 6a40cdfd3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 665 additions and 1329 deletions

Binary file not shown.

View File

@ -1,5 +1,5 @@
({ ({
"world":File (path: "advanced/models/world.glb#Scene0"), "world":File (path: "advanced/models/World.glb#Scene0"),
"models": Folder ( "models": Folder (
path: "advanced/models/library", path: "advanced/models/library",
), ),

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -2,7 +2,14 @@
For convenience I also added this [Blender addon](./gltf_auto_export.py) that For convenience I also added this [Blender addon](./gltf_auto_export.py) that
- automatically exports your level/world from Blender to gltf whenever you save your Blend file. - automatically exports your level/world from Blender to gltf whenever you save your Blend file.
- it also supports automatical exports of used collections as [Gltf blueprints](../../crates/bevy_gltf_blueprints/README.md) & more ! - in Blueprints mode (highly recommended !) :
- supports automatic exports of used collections as [Gltf blueprints](../../crates/bevy_gltf_blueprints/README.md)
- supports any number of main/level scenes
- Blender scenes where you define your levels, and all collection instances are replaced with "pointers" to other gltf files (all automatic)
- supports any number of library scenes
- Blender scenes where you define the assets that you use in your levels, in the form of collections
- automatic export of **changed** objects & collections only ! a sort of "incremental export", where only the changed collections (if in use)
get exported when you save your blend file
## Installation: ## Installation:
@ -25,10 +32,27 @@ For convenience I also added this [Blender addon](./gltf_auto_export.py) that
![blender addon use](../../docs/blender_addon_use.png) ![blender addon use](../../docs/blender_addon_use.png)
* set the autoexport parameters : output path, name of your main scene etc in the **auto export** panel * set the autoexport parameters in the **auto export** panel:
![blender addon use3](../../docs/blender_addon_use3.png) ![blender addon use3](../../docs/blender_addon_use3.png)
- export folder
- pick your main (level) scenes and library scenes (see the chapter about Blueprints below)
- click in the scene picker & select your scene
![select scene](../../docs/blender_addon_add_scene.png)
- click on the "+" icon
![select scene2](../../docs/blender_addon_add_scene2.png)
- your scene is added to the list
![select scene3](../../docs/blender_addon_add_scene3.png)
* and your standard gltf export parameters in the **gltf** panel * and your standard gltf export parameters in the **gltf** panel
![blender addon use2](../../docs/blender_addon_use2.png) ![blender addon use2](../../docs/blender_addon_use2.png)
@ -84,12 +108,6 @@ and what actually gets exported for the main scene/world/level
all collections instances replaced with empties, and all those collections exported to gltf files as seen above all collections instances replaced with empties, and all those collections exported to gltf files as seen above
### TODO:
- [ ] add ability to have multiple main & library scenes
- [ ] detect which objects have been changed to only re-export those
## License ## License
This tool, all its code, contents & assets is Dual-licensed under either of This tool, all its code, contents & assets is Dual-licensed under either of

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff