Commit Graph

725 Commits

Author SHA1 Message Date
Julien Duroure
a3ff71f80f Merge branch 'blender-v4.4-release' 2025-02-26 16:42:21 +01:00
Julien Duroure
22aa2fbfa8 Fix #135129 glTF Collection Exporter: Avoid to export multiple scene info when Collection Export 2025-02-26 16:40:37 +01:00
Julien Duroure
bd64807fde Merge branch 'blender-v4.4-release' 2025-02-26 16:36:04 +01:00
Julien Duroure
0778ad776e glTF exporter: Better slot management:
Avoid non valid glTF file by avoiding exporting multiple slots with same target_id_type in the same animation for a single object:
- Make sure to create multiple animation when needed
- Use action.name for active slots (can have multiple slots when different target_id_type)
- Use action.name - slot.name_display for additional animations
2025-02-26 16:34:50 +01:00
Campbell Barton
57abd173bb Extensions: remove unused operators
Remove:
- EXTENSIONS_OT_dummy_progress it was mainly useful for development.
- EXTENSIONS_OT_package_enable_not_installed as it's no longer used.
2025-02-26 16:16:54 +11:00
Campbell Barton
900eed683f Extensions: add progress test to "test_cli"
Add a low level test that progress reporting works as expected in
preparation for removing the Blender operator outputting dummy progress.
2025-02-26 16:10:04 +11:00
Campbell Barton
9a11291eea Extensions: add "help" target for the makefile 2025-02-26 15:24:44 +11:00
Campbell Barton
89251ca11e Cleanup: remove "pep8" target from extensions makefile
Also remove file exclusions that no longer exist.
2025-02-26 15:14:05 +11:00
Campbell Barton
fdb8bc837f Cleanup: remove redundant assignment in extensions file dropping logic
The EXTENSIONS_OT_package_install_files instance had its _drop_variables
was temporarily set to True before being storing the extension values.

This value was never read so the assignment can be removed.
2025-02-26 14:22:06 +11:00
Campbell Barton
00b37d662f Merge branch 'blender-v4.4-release' 2025-02-26 10:55:23 +11:00
Campbell Barton
1ed27184c1 Cleanup: correct Python type hint
The `mypy --strict` command I used for checking wasn't reporting this.
Thanks to Sybren for pointing it out.
2025-02-26 10:53:40 +11:00
Campbell Barton
f438928501 Merge branch 'blender-v4.4-release' 2025-02-25 15:17:44 +11:00
Campbell Barton
cd9156bb32 Extensions: use dynamically created link to the manual
The literal URL was used before extensions was included in a release.
2025-02-25 15:14:10 +11:00
Julien Duroure
4137678033 Merge branch 'blender-v4.4-release' 2025-02-22 09:03:09 +01:00
Julien Duroure
dafff07ad9 Fix: glTF exporter: remove empty action in filter list when refresh 2025-02-22 09:02:06 +01:00
Julien Duroure
a94c31e8c7 Merge branch 'blender-v4.4-release' 2025-02-22 08:59:39 +01:00
Julien Duroure
1fcbab0503 Fix: glTF exporter: Fix typo in gltfpack option 2025-02-22 08:59:01 +01:00
Julien Duroure
63d086d8a9 Merge branch 'blender-v4.4-release' 2025-02-22 08:57:01 +01:00
Julien Duroure
9ea0655edf Fix: glTF exporter: Fix typo in cache system, leading to endless loop 2025-02-22 08:56:08 +01:00
Julien Duroure
8d61eb49c0 Merge branch 'blender-v4.4-release' 2025-02-22 08:54:16 +01:00
Julien Duroure
69adbd3af1 Fix: glTF exporter: fix filter on collection when using both collection exporter and full collection hierarchy" 2025-02-22 08:53:01 +01:00
Julien Duroure
a05aaec6d4 Merge branch 'blender-v4.4-release' 2025-02-22 08:51:31 +01:00
Julien Duroure
a2aabd75bc Fix: glTF exporter: export all single armature actions only when "actions" mode
Other modes are not compatible with this option
2025-02-22 08:50:14 +01:00
Julien Duroure
eadc6bee55 Merge branch 'blender-v4.4-release' 2025-02-22 08:47:33 +01:00
Julien Duroure
3af38e1132 Fix: glTF exporter: Reset skin if mesh failed to export 2025-02-22 08:46:14 +01:00
Maxime-Cots
251cd8eb10 SVG: Batch import SVG as curves files
Follows the same code as glTF to handle both single and multiple files.

Co-authored-by: Nig3l <nig3lpro@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/134795
2025-02-21 12:41:27 +01:00
Harley Acheson
d111b46b7a Merge branch 'blender-v4.4-release' 2025-02-17 09:47:59 -08:00
Maxime-Cots
b6617ae946 Fix #134451: SVG: Reuse material data on SVG Import
Reuse SVG Material and prevent creation of duplicate material
multiple times. Issue occurred because the check for a duplicate
material was placed too early.

Co-authored-by: Nig3l <nig3lpro@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/134529
2025-02-17 18:31:53 +01:00
Campbell Barton
5087246f39 Cleanup: strip trailing space, sort file lists 2025-02-16 20:42:16 +11:00
Campbell Barton
e96acd433d Docs: add code-comments to clarify bad-level include & developer only UI 2025-02-12 13:21:07 +11:00
Campbell Barton
07340e1093 Docs: add code-comments to clarify bad-level include & developer only UI 2025-02-12 10:59:16 +11:00
Campbell Barton
b1bd70b89e Merge branch 'blender-v4.4-release' 2025-02-07 23:11:04 +11:00
Campbell Barton
e9dd4853f6 Fix #131947: Error closing prefs while installing extensions on WIN32
Using `signal.SIGINT` to send a signal to a sub-process isn't supported
on WIN32, replace with `signal.CTRL_BREAK_EVENT`.
2025-02-07 23:07:30 +11:00
Falk David
a9f75d45ad Merge branch 'blender-v4.4-release' 2025-02-07 10:57:17 +01:00
Campbell Barton
fb3fe458bf Extensions: forward any errors setting up wheels to reports
When actions on extensions failed setup extensions, errors weren't
forwarded to the user and were only visible in the terminal.
2025-02-07 20:30:02 +11:00
Julien Duroure
b768b0d91d glTF: Bump version to 4.5.0 after 4.4 branch creation 2025-02-06 08:04:33 +01:00
Christoph Lendenfeld
358a0479e8 Anim: create pose assets to different libraries
Similar to how brush assets are created and managed this
PR allows to export pose assets into a different library.
Because of this there is a limitation to this where each
asset is stored in a separate blend file.
This may be lifted in the future as there are planned changes in
the design phase: #122061

### Create Asset

Now available in the 3D viewport in the "Pose" menu: "Create Pose Asset".
The button in the Dope Sheet will now call this new operator as well.

Clicking either of those will open a popup in which you can:

* Choose the name of the asset, which library and catalog it goes into.
* Clicking "Create" will create a pose asset on disk in the given library.

It is possible to create files into an outside library or add it in the current file.
The latter option does a lot less since it basically just creates the
action and tags it as an asset.

If no Asset Shelf **AND** no Asset Browser is visible anywhere in Blender,
the Asset Shelf will be shown on the 3D viewport from which
the operator was called.

### Adjust Pose Asset

Right clicking a pose asset that has been created in the way described
before will have options to overwrite it.
Only the active object will be considered for updating a pose asset

Available Options (the latter 3 under the "Modify Pose Asset" submenu):
* Adjust Pose Asset: From the selected bones, update ONLY channels that
are also present in the asset. This is the default.
* Replace: Will completely replace the data in the Pose Asset from
the current selection
* Add: Adds the current selection to the Pose Asset. Any already existing
channels have their values updated
* Remove: Remove selected bones from the pose asset

Currently this refreshes the thumbnail. In the case of custom
thumbnails it might not be something want

### Deleting an existing Pose Asset

Right click on a Pose Asset and hit "Delete Pose Asset". Works in the shelf
and in the asset library. Doing so will pop up a confirmation dialog,
if confirming, the asset is gone forever. Deleting a local asset is basically the
same as clearing the asset. This is a bit confusing because you get
two options that basically do the same thing sometimes,
but "Delete" works in other cases as well.
I currently don't see a way around that.

Part of design #131840

Pull Request: https://projects.blender.org/blender/blender/pulls/132747
2025-02-04 11:29:05 +01:00
Julien Duroure
6999f34ec1 glTF: Bump version to 4.4.42 after recent changes 2025-02-03 20:35:05 +01:00
Julien Duroure
c089c176cb Refactor: glTF: followup ActionKeyframeStrip.channels() rename
- Use slot identifier instead of slot handle
- Change API calls after changes in Blender (in PR #133868)
- Refactoring, avoiding duplicate functions

Pull Request: https://projects.blender.org/blender/blender/pulls/133915
2025-02-03 20:32:00 +01:00
Sybren A. Stüvel
226486aa91 Refactor: Anim, rename and adjust ActionKeyframeStrip.channels()
Rename `ActionKeyframeStrip.channels()` to `.channelbag()`, and change
its first parameter from `slot_handle` to `slot`.

This is to be consistent with `ActionKeyframeStrip.channelbags`, which is
the array of channelbags in the keyframe strip. Having a function that's
singluar makes sense for finding a single element in the array.

The change from using the slot handle to using the slot is to be consistent
with `.channelbags.new(slot)`. Furthermore, the Python API should be using
slot handles as little as possible (they're basically meaningless numbers).
Using the slots directly is preferred. If that's not possible, it is
recommended to use the slot identifier (`slot.identifier`) instead, as that
can be used to look up the slot (`action.slots[slot_identifier]`).

This breaks the glTF add-on, which will be fixed in !133915.

Pull Request: https://projects.blender.org/blender/blender/pulls/133868
2025-02-03 20:19:00 +01:00
Sybren A. Stüvel
fa2b131395 Fix #105216: Rigify (ui.py) console error, expected str not float
Use string formatting instead of the `+` operator, so that it doesn't
matter which exact type is used for the `rig_id` custom property.

Also reshuffle the code a bit to reduce indentation.

Pull Request: https://projects.blender.org/blender/blender/pulls/133967
2025-02-03 12:55:36 +01:00
Julien Duroure
8abac73cbd glTF exporter: avoid crash when no tracks are exported 2025-02-01 19:06:45 +01:00
Julien Duroure
196cda9eef glTF exporter: Fix typo leading to crash at animation export (nla track mode) 2025-02-01 19:05:14 +01:00
Julien Duroure
83f9ed8771 glTF: New way of registering UI for hooks
- Explicit registration for hook UI
- Added some example in upstream repo: https://github.com/KhronosGroup/glTF-Blender-IO/blob/main/example-addons/example_gltf_exporter_extension/__init__.py
2025-02-01 18:59:03 +01:00
Julien Duroure
cccd45e32a glTF exporter: Create output directory if not exists
This should happen mainly for Collection Exporter or using api
2025-02-01 18:55:46 +01:00
Julien Duroure
3d2f45b408 glTF: Collection Exporter: Set collection custom props as glTF Scene extras
As we are exporting Collection only, it makes sense that the collection customs props
can be exported as glTF Scene extras, as the scene includes only objects from the collection
2025-02-01 18:52:53 +01:00
Julien Duroure
6aae3004fc glTF exporter: add pre & post export hooks 2025-02-01 18:49:38 +01:00
Pablo Vazquez
6ea8297477 Extensions: Quick access to add-on folder
When developing and testing add-ons it can be useful to get to the
folder containing such add-on.

When Developer Extras is enabled, show a folder icon next to the
extension's path to quickly open it using the system file browser.

Also display it in the list of duplicate add-ons, if any, so user can
access them more conveniently.

Pull Request: https://projects.blender.org/blender/blender/pulls/128474
2025-01-30 11:18:53 +01:00
Sybren A. Stüvel
2440861afe Anim: fix 'Fix to Camera' poll function exception when camera is missing
The 'Fix to Camera' poll function was raising `NotImplementedError` when
there is no scene camera. That's now fixed.

Pull Request: https://projects.blender.org/blender/blender/pulls/133710
2025-01-28 14:13:53 +01:00
Campbell Barton
89d51c7535 Extensions: add an error when building an add-on without an init file
- Add a check that the file list includes an `__init__.*` path.
- Normalize paths so they can can be compared with string literals.
2025-01-23 15:28:02 +11:00