Commit Graph

2946 Commits

Author SHA1 Message Date
Hans Goudey
20c3269ac9 Fix #100324: Curves sculpt slide brush always resets with pressure
When releasing the pen the pressure would always go back to zero,
undoing the effect of the brush. To fix this, don't take pressure into
account for the strength, and don't display it in the UI. The grab brush
in mesh sculpt mode works the same way.

Pull Request: https://projects.blender.org/blender/blender/pulls/131744
2024-12-11 16:43:15 +01:00
Campbell Barton
a7bc3e3418 Cleanup: quiet Python linter warnings 2024-12-11 11:26:24 +11:00
Campbell Barton
560b6e2831 Cleanup: spelling (make check_spelling_*) 2024-12-11 11:23:51 +11:00
Falk David
612be514c6 Grease Pencil: Add lasso/box erase operators in draw mode
In Blender 4.2 in Grease Pencil draw mode it was possible to
erase strokes using box and lasso gestures.

Under the hood, these were just using the selection operators
that had special deletion handling if the object was in draw mode.

Rather than hacking this into the selection operations, this adds
two new operators:
* `grease_pencil.erase_lasso`
* `grease_pencil.erase_box`

When using one of the erase operations with auto-key, the previous
keyframe will be duplicated to the current frame (for the drawings
that are affected by the eraser).

They are mapped to the same shortcuts than the selection
operators in Blender 4.2.
* Lasso erase: `Ctrl`+`Alt`+`RMB`.
* Box erase: `B`.

This is part of #130518.

Pull Request: https://projects.blender.org/blender/blender/pulls/131504
2024-12-10 11:50:05 +01:00
Campbell Barton
cd1f3857f0 Fix unhandled exception in the shading options
Account for shading.selected_studio_light being None.
2024-12-10 16:15:24 +11:00
Bastien Montagne
9f9500f0f2 Fix part of #116579: I18N tools: Do not extract UI messages of unregistered operators.
Operators keep being a pain... This time, the fact that unregistered
operators are not removed from `bpyt.type.Operator` subclasses list
breaks workflow to generate translations info for a specific add-on
(since it relies on differences between UI messages extracted when this
add-on is enabled, and when it is disabled).
2024-12-09 16:05:52 +01:00
Pratik Borhade
03b2fc744e Grease Pencil: Add layer channel color property
This adds a `channel_color` property to layers.
The color is stored in the tree nodes.
It's currently used by the dopesheet for the channel colors.

Resolves #130370.

Pull Request: https://projects.blender.org/blender/blender/pulls/130512
2024-12-09 14:11:29 +01:00
Pratik Borhade
186804eabc Fix #118298: "Strips" in "Duplicate Strips" is redundant
For consistency, just use "Duplicate" for operator text in menu
since the Menu itself is about "strips".

Pull Request: https://projects.blender.org/blender/blender/pulls/131484
2024-12-09 11:33:24 +01:00
Sean
46cd7afcda Grease Pencil: "Set Start Point" operator
Adds back the operator to change the start point on cyclical strokes.
Behaves the same way as in 4.2.

Pull Request: https://projects.blender.org/blender/blender/pulls/128540
2024-12-09 11:04:16 +01:00
Campbell Barton
48a3c53188 Cleanup: redundant imports, redundant "global" declaration 2024-12-09 11:50:37 +11:00
Pratik Borhade
50d67099fb Fix #118263: VSE: Expose remove all gaps in UI
Add `gap_remove` operator with `all` property true in `Strips >
Transform` menu

Pull Request: https://projects.blender.org/blender/blender/pulls/131485
2024-12-07 10:22:30 +01:00
Philipp Oeser
f32170aabb FBX export: always write edge crease (even if no subd modifier present)
This has come up a couple of times and it seems better to change the
implementation from blender/blender-addons@f1dd37b8ac [which only
exported edge creases when a subd modifier with enabled `Use Creases`
option was present] in a way that these are always exported (if present).

Also took the liberty to rename the variable name for the layer to
correspond to "crease".

Thx @mont29 for handholding on this one!

Fixes #131284

Pull Request: https://projects.blender.org/blender/blender/pulls/131419
2024-12-06 18:20:19 +01:00
Campbell Barton
38a76db083 UI: remove redundant undo pushes for menu operators
Operators that trigger menus should not enable UNDO.

Resolves #95906

Ref !131467
2024-12-07 00:41:36 +11:00
Falk David
c1a021b0e8 Fix #130651: Tint tool does not show correct color in header
The issue was that the UI code still used the unified paint settings.
It was decided that in `PAINT_GREASE_PENCIL` mode we don't use
the unified paint settings and always use the settings on the brush.

The fix uses the `brush` as the owner of the `color` property instead
of the unified paint settings.

Pull Request: https://projects.blender.org/blender/blender/pulls/131452
2024-12-06 10:38:57 +01:00
Alaska
fe30aee7e7 Vulkan: Unhide from behind developer extras
The GPU backend selection menu, used to select the Vulkan backend, was
hidden behind the Developer Extras user interface option in 4.3 as
Vulkan wasn't ready for wide spread testing due to multiple
major issues.

The majority of the major issues have been fixed, and Vulkan should
safer to use.

To help encourage Vulkan testing throughout Blender 4.4's development,
this commit unhides the Vulkan backend from behind the developer extras
option.

Pull Request: https://projects.blender.org/blender/blender/pulls/131231
2024-12-05 16:15:59 +01:00
Jonas Holzman
d22ea1d80b UI: PreferenceThemeSpacePanel internal cleanup
This commit removes the deprecated `ui_delimiters` variables and
logic from `PreferenceThemeSpacePanel` which are leftovers from
the old 2.79 Preferences layout.

See: https://archive.blender.org/developer/D4148 (Preferences Redesign)

Pull Request: https://projects.blender.org/blender/blender/pulls/131390
2024-12-05 15:47:41 +01:00
Christoph Lendenfeld
839f9ba948 Fix #130053: ALT+H in weight paint not unhiding bones
When in bone selection mode of during weight painting,
pressing ALT+H would unhide faces instead of bones.
Removing the keymap entry fixes that, while still allowing
unhiding of faces in face mask mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/131104
2024-12-05 12:29:36 +01:00
Aras Pranckevicius
1148df0f5c Fix #99026: VSE View menu wrongly displays Channels item for combined Sequencer & Preview type
Channels can not be shown in Sequencer & Preview type by design,
so do not show the view menu item for it.

Pull Request: https://projects.blender.org/blender/blender/pulls/131368
2024-12-05 09:20:15 +01:00
quackarooni
65b1ab43bf Geometry Nodes: Add "Collection" and "Object" input nodes
Pull Request: https://projects.blender.org/blender/blender/pulls/131075
2024-12-04 15:01:44 +01:00
Butterscotch!
e2ff0a45aa Fix BVH import bone tail calculation with multiple children
When importing a BVH file with a parent node that has more than one
child that have offsets within `0.001 * global_scale` of the parent
node, the length of the parent node is considered to be zero.

For example: A parent node with `OFFSET 0 -0.1077 0`, two children with
`OFFSET 0 -0.1074 0`, and a global scale of `1.0`, the parent node's
length would be considered zero, therefore adding `global_scale / 10`
(`0.1` in this case) to the y component of the offset. The resulting
tail offset would then be `OFFSET 0 -0.0077 0`.

Ref !105492
2024-12-03 23:30:10 +11:00
Campbell Barton
6ca1417103 Cleanup: suppress unused Python warnings
Suppress unused warnings using the "vulture" utility.

- Include public definitions in the modules `__all__`.
- Mark arguments & variables as unused with a "_" prefix.
2024-12-03 12:54:13 +11:00
Clément Foucault
3d9ffa5085 Overlay: Remove legacy option and legacy code
This simply removes the old overlay engine.

Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/131155
2024-12-02 19:47:55 +01:00
Nathan Vegdahl
aa83738d44 Anim: change parameters of slots.new() RNA function
`Action.slots.new()` in the Python API previously took either an ID or nothing
as a parameter. In the former case it would create a slot with the appropriate
`id_root` and name for that ID. In the latter case it would create a default
slot with an unspecified `id_root` and default name.

This had several issues:

1. You couldn't create a slot with a specific `id_root` without already having
   an ID of that type. In theory this isn't a problem, but in practice in larger
   scripts/addons you don't necessarily have such an ID on hand at the call
   site.
2. You couldn't directly create a slot with a desired name without an existing
   ID with that name. This isn't so important, since you can always just set the
   name afterwards. But it's a bit annoying.
3. Most other `new()` APIs in Blender *require* you to specify the name of the
   item being created. So calling this with no parameters was violating that
   norm.
4. Ideally, we want to eliminate unspecified `id_root`s, since they cause other
   weirdness in the API such as slot identifiers changing upon slot assignment.

To resolve these issues, and just generally to make the API more
straightforward, this PR changes `slots.new()` to take two required parameters:
an ID type and a name. For example:

`slots.new(id_type='CAMERA', name="My Camera Data Slot")`.

This fully specifies everything needed for the slot identifier upon creation,
and doesn't require any outside data items to create a slot with the desired
type and name.

In the future if we decide we still want a `for_id`-style slot creation API, we
can reintroduce it as a separate function.

Ref: #130892
Pull Request: https://projects.blender.org/blender/blender/pulls/130970
2024-12-02 17:04:37 +01:00
Julien Duroure
faaa12a101 glTF: Install Draco lib in the same directory as the glTF2 addon
This changes the location of the Draco library installation path.
The new location is at the root of addons_core/io_scene_gltf2 addon, as the library is created for this addon only.

This will solve issues where the gltf addon couldn't find the library in case of global python installation or custom script/lib paths

Pull Request: https://projects.blender.org/blender/blender/pulls/131080
2024-12-02 12:50:15 +01:00
Thomas Barlow
8ed98d592e Fix #127765: FBX Export: Incorrect materials with Geometry Nodes
Geometry Nodes can change the materials of the Object, for Mesh Objects,
the new materials are present in the evaluated Object, but for non-Mesh
Objects, the new materials may not be present until the evaluated Object
has been converted to a Mesh.

This patch fixes the materials in FBX export, with Apply Modifiers
enabled, of non-Mesh types with Geometry Nodes that change materials.
Rather than getting the materials from the evaluated Object, the
materials are now retrieved from the Mesh created from the evaluated
Object.

To support object-linked material slots, the materials on the new Mesh
are replaced at the same indices as the object-linked material slots.

Pull Request: https://projects.blender.org/blender/blender/pulls/130485
2024-12-02 10:44:00 +01:00
Thomas Barlow
d0d4fc45b3 Fix #123088: Workaround for Unity FBX import per-vertex normals issue
The FBX SDK specifies that normals should use the IndexToDirect FBX
reference mode. This mode allows data written to FBX to be deduplicated
by writing a separate array of indices into the deduplicated array of
data that can be used to reconstruct the full array of data.

When Unity imports per-vertex normals with the IndexToDirect reference
mode, it erroneously considers the imported mesh's normals invalid if
any of its normals were deduplicated. This issue is not present in other
external software that I have tested.

This patch modifies the export of per-vertex normals to not perform any
deduplication, avoiding the issue in Unity's FBX importer while
maintaining use of the IndexToDirect reference mode.

The add-on's patch version has been increased.

Pull Request: https://projects.blender.org/blender/blender/pulls/123186
2024-12-02 10:40:21 +01:00
YimingWu
5370ab3248 Fix: Attribute lookup cleanup in properties_constraint.py
The match/case clean up in 2c0d2a88ca was
applied on the wrong function. This fix includes the cleanup for the
intended function.

Pull Request: https://projects.blender.org/blender/blender/pulls/131202
2024-12-02 07:44:37 +01:00
Campbell Barton
056f748e04 Cleanup: replace redundant functions with os.path.lexists 2024-12-02 12:52:21 +11:00
Campbell Barton
d63dc070ef Fix error enabling extensions with an empty wheel list
Regression in [0] caused extensions with an empty wheel list
to raise an unhandled exception when extracting the Python
version from the wheel list.

Besides resolving this error, account for errors using the wheel
list since it isn't type checked in this code-path.

[0]: cfc10b0232565642afbfdc5a867f027640ce8274
2024-12-02 12:34:31 +11:00
Philipp Oeser
c7ae26c22b Fix: python exceptions on startup
Seems like wrong syntax from 2c0d2a88ca

Pull Request: https://projects.blender.org/blender/blender/pulls/131153
2024-11-29 14:21:24 +01:00
YimingWu
2c0d2a88ca Fix #128317: Missing space_object selector in Shrinkwrap constraint
Selectors for properties `space_object` and `space_subtarget` are
missing in Shrinkwrap constraint UI panel. This was because of the
difference between property names it didn't use `space_template` to
create those selectors. Since this is just a single special case,
a branch was added in `draw_shrinkwrap` in similar fashion to display
those selectors.

Pull Request: https://projects.blender.org/blender/blender/pulls/128347
2024-11-29 13:29:55 +01:00
Campbell Barton
b295fc9a9c Extensions: use replace exists with lexists to check a path can be used
Without this, a broken symbolic-link wasn't removed, causing renaming
to fail.
2024-11-29 13:01:03 +11:00
Campbell Barton
5fa0be491e Extensions: suppress noisy prints for extension wheel filtering
These messages could flood the output even when extension installation
succeeded. Only show them when Python debugging is enabled.
2024-11-29 10:27:03 +11:00
Campbell Barton
00255b9421 Correct error printing error in f03fba614d 2024-11-29 10:26:57 +11:00
Campbell Barton
f03fba614d Fix #130211: Unhandled error installing extensions when renaming fails
Add error handling for rare but possible failures on installation.

- Account for the destination extension directory being a file.
- Handle the exception if renaming the temporary directory fails.
2024-11-29 09:56:08 +11:00
YimingWu
8fb12839f2 Grease Pencil: Add all supported modes to simplify operator
The stroke simplify operator was implemented at the beginning of GPv3
migration, which means it lacked a few other modes. This fix reused the
same code as in the simplify modifier to provide more simplify modes
back to the modifier so it can work just like GPv2.

Resolves #130616.

Pull Request: https://projects.blender.org/blender/blender/pulls/131076
2024-11-28 17:00:05 +01:00
Richard Antalik
cffaa681c5 Fix #130944: VSE box select not working with industry compatible keymap
Commit d5d81c5078 did not update industry compatible keymap data script.

Pull Request: https://projects.blender.org/blender/blender/pulls/131033
2024-11-28 14:56:16 +01:00
Campbell Barton
76f9a08963 Fix failure to reinstall an extension uninstalling the extension
When an extension could could be removed but it's directory could be
renamed, the install operation would fail anyway.

Resolve by completing the installation when the directory can be moved.

Report as part of #129884.
2024-11-28 21:28:30 +11:00
Julien Duroure
373191ff2a glTF exporter: fix KHR_animation_pointer to use the right material when texCoord
We need to store the last version of the material, when all additional data are set
2024-11-28 09:41:35 +01:00
Julien Duroure
428ec6c1e3 glTF exporter: Fix crash when animation on not used material
(And when exporting using KHR_animation_pointer)
2024-11-28 09:38:28 +01:00
Julien Duroure
7ea11a4724 glTF exporter: Always bake scene animation
This way, we can handle drivers animation
2024-11-28 09:35:38 +01:00
Julien Duroure
f7a2d0095e glTF exporter: Fix debug logging
Set INFO level if user set debug to whatever value not used to set logging level
2024-11-28 09:33:22 +01:00
Julien Duroure
ba737a496c glTF exporter: Fix armature object keep channel option
When exporting bone animation, we also check animation on armature object itself
This check was not take into account what channel are really animated
2024-11-28 09:31:23 +01:00
Julien Duroure
5997886662 glTF importer: add option to not select created objects
So, when this operator is called by other scripts in mass, we avoid performance issue
2024-11-28 09:27:29 +01:00
Julien Duroure
f8766c5542 glTF exporter: UI fixes - disable option when not available
Some combination of options are not possible, so option should be grayed
2024-11-28 09:23:14 +01:00
Julien Duroure
dbb670c6d1 glTF importer: add option to import scene extras or not
As user may want to not overwritten them
2024-11-28 09:21:19 +01:00
Julien Duroure
90e09b93b5 glTF exporter: Fix crash with extra channel 2024-11-28 09:19:41 +01:00
Julien Duroure
14302f6af7 glTF exporter: Fix crash when 'remove armature object' + 'export only def bones'
This check is done before the filter of non deformation bone.
So when we want to get this list, as it's cached, we get the list with non deformation bones, so try to access a bone that is filtered

Additional bug when we want to export only DEF bones :
the check is done on all bones, not only deformation bones, if we want to get only def bones.
So having at root a DEF and a nonDEF bone => Check will failed and said we can't remove armature

Solution: When checking if we can remove armature, indicate that we don't want to cache the result
2024-11-28 09:16:26 +01:00
Sean Kim
a820e2d393 Fix: Clone brush missing from image texture paint
Missed in 3798852071

Pull Request: https://projects.blender.org/blender/blender/pulls/131005
2024-11-27 21:25:21 +01:00
Campbell Barton
d9891aa6ad Fix #130561: incorrect Python compatibility checks for wheels
Regression in [0] caused wheels with an older Python version
that used CPython's stable ABI to be considered incompatible.

Resolve using the stable ABI for version checks.

[0]: cfc10b0232565642afbfdc5a867f027640ce8274
2024-11-27 15:44:58 +11:00