Commit Graph

903 Commits

Author SHA1 Message Date
Sybren A. Stüvel
1c5766f8bc Fix #118878: Anim: pinned bone custom properties not visible in edit-mode
Use `context.edit_bone` when available. This also properly accounts for
pinning of the armature.
2024-03-01 15:20:40 +01:00
Campbell Barton
f647e1a5b7 Weight Paint: expose all pose mode selection tools
Pose-mode selection tools (box, lasso & circle select) now support
pose-mode when weight-painting.

Changes to the key-map [0] caused a regression where it was no longer
possible to select multiple bones because Shift-LMB is now used for
painting. The report #114981 proposes to support pose selection tools
in weight paint mode.

Note that in [1] added the tweak tool, this completes the change by
supporting other tools & fixing W-key shortcut access.

Resolves #114981.

[0]: 6de6d7267f
[1]: edcac1f48b
2024-02-29 18:12:50 +11:00
Campbell Barton
d5598838a2 Fixes for operator preset cleanup utility
Various fixes to operator preset cleanup:

- Only remove properties that match exactly the properties to exclude
  exactly (taking word boundaries into account).
- When the preset path doesn't exist, don't construct paths relative
  to the working directory.
- Enforce UTF8 encoded text.

Other minor changes:

- Rename "properties" to "properties_exclude" for clarity.
- Use single underscore for private methods.
- Match each line against a single regex instead of constructing a
  string and checking startswith(..) for every property to exclude.
- Use os instead of pathlib, as us used in blender's built in operators
  that handle paths.
- Prefer doc-string over bl_description.
- Double quote strings.
- Use single indentation for lists to reduce right-shift.
2024-02-29 14:00:05 +11:00
Sybren A. Stüvel
1c789199d5 Anim: Bone properties panel, add missing 'solo' property
Solo'ing bone collections was only possible from the Armature properties
panel. However, the bone collections shown on the Bone properties panel
should have the same functionality.

Pull Request: https://projects.blender.org/blender/blender/pulls/118512
2024-02-20 18:09:04 +01:00
Sybren A. Stüvel
490c183bfd Fix #95204: Custom properties not shown on pose bone hidden by collection
Work around the limitation that `context.active_pose_bone` is `None` when
the active bone is hidden.

This also fixes the issue that the bone custom properties panel was using
the global context (`bpy.context`) instead of the one passed to the
`draw()` and `poll()` functions.

Pull Request: https://projects.blender.org/blender/blender/pulls/118510
2024-02-20 17:44:22 +01:00
Brecht Van Lommel
d0cf0f34dc Cleanup: make format 2024-02-19 16:33:41 +01:00
Brecht Van Lommel
0f2064bc3b Revert changes from main commits that were merged into blender-v4.1-release
The last good commit was 4bf6a2e564.
2024-02-19 15:59:59 +01:00
YimingWu
ae20873250 GPv3: Weight proximity modifier
This migrates the Weight proximity modifier to GPv3.

Pull Request: https://projects.blender.org/blender/blender/pulls/118363
2024-02-19 11:16:38 +01:00
Hans Goudey
e3da060510 Cleanup: Make format 2024-02-18 21:38:36 -05:00
Aaron Carlisle
207861af2b Merge branch 'blender-v4.1-release' 2024-02-18 11:36:57 -05:00
Aaron Carlisle
0e01fba353 UI: Add "Set Sharpness by Angle" to Edge menu
The recent operator added in https://projects.blender.org/blender/blender/commit/78963b466b
was only added to the context menu, however for consistency and discoverability,
the operator should also be added to the Edge menu.
2024-02-18 11:36:00 -05:00
Pratik Borhade
203f5f9f09 GPv3: Autolock inactive layers
Port legacy `autolock_layers` property to gpv3

Pull Request: https://projects.blender.org/blender/blender/pulls/118323
2024-02-18 07:32:56 +01:00
Dalai Felinto
18d62c36ad UI: Tweak extensions repository panel
Reduce the width size and align the URL with the UIList.

Adjustments that would still be welcome:
* Make URL label color the same as Advanced.
* Waste less space between URL and the [________________].
2024-02-17 16:56:59 +01:00
Dalai Felinto
c9d506ba18 Extensions: Rename experimental feature name, description and task
New name: Extensions

Now that we are gettting closer to a launch I need to refer to this
feature in the documentation. As such it was time to bring it up to
date.

I'm also pointing the experimental feature to the task where the Alpha
launch is being coordinated (#117286). Once that task is all ticked we
will likely be ready to go out of experimental.
2024-02-17 15:50:16 +01:00
Campbell Barton
c47c1275a9 Merge branch 'blender-v4.1-release' 2024-02-17 14:57:07 +11:00
Campbell Barton
a8ca12f2a8 Fix #118233: No preference to disable multi-touch gestures on Wayland
Support this preference for Wayland, following macOS & WIN32 support.
2024-02-17 14:55:12 +11:00
Pratik Borhade
1077aebaa6 GPv3: Duplicate layer
Port layer duplicate operator to Grease Pencil v3.

Pull Request: https://projects.blender.org/blender/blender/pulls/117974
2024-02-16 14:07:29 +01:00
YimingWu
975c226282 GPv3: Array Modifier
This migrates the Array modifier to Grease Pencil v3.

Pull Request: https://projects.blender.org/blender/blender/pulls/117836
2024-02-16 14:04:01 +01:00
YimingWu
ace5c9af2a GPv3: Vertex Weight Angle modifier
This ports the Vertex Weight Angle modifier to Grease Pencil v3.

Pull Request: https://projects.blender.org/blender/blender/pulls/117846
2024-02-16 12:30:43 +01:00
Campbell Barton
37475d252f Cleanup: use "use_" prefix for RNA boolean 2024-02-16 14:26:47 +11:00
YimingWu
b661b368c4 GPv3: Length modifier
This ports the length modifier to Grease Pencil v3.

Pull Request: https://projects.blender.org/blender/blender/pulls/117124
2024-02-15 16:37:54 +01:00
YimingWu
76b0976500 GPv3: Multiple Strokes Modifier
This migrates the multiple strokes modifier to Grease Pencil v3.

Pull Request: https://projects.blender.org/blender/blender/pulls/117796
2024-02-15 14:19:50 +01:00
Pratik Borhade
43996a54cf GPv3: Lock/Unlock All Layers
Port the legacy lock/unlock all layers operator from GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/118259
2024-02-15 12:14:17 +01:00
Sergey Sharybin
a8a05ebba1 Compositor: Switch CPU compositor to Full-Frame
The tiled compositor code is mainly still around, which is only
expected to be a short-lived period. Eventually it will also be
removed.

The OpenCL, Group Buffers, and Chunk size options are already removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/118010
2024-02-14 14:23:49 +01:00
Hans Goudey
1cfe9dd08c Geometry Nodes: Matrix socket type, attribute type, and initial nodes
Implements the design from #116067.
The socket type is called "Matrix" but it is often referred to as "Transform"
when that's what it is semantically. The attribute type is "4x4 Matrix" since
that's a lower level choice. Currently matrix sockets are always passed
around internally as `float4x4`, but that can be optimized in the future
when smaller types would give the same behavior.

A new "Matrix" utilities category has the following set of initial nodes"
- **Combine Transform**
- **Separate Transform**
- **Multiply Matrices**
- **Transform Direction**
- **Transform Vector**
- **Invert Matrix**
- **Transpose Matrix**

The nodes and socket type are behind an experimental flag for now,
which will give us time to make sure it's the right set of initial nodes.
The viewer node overlay doesn't support matrices-- they aren't supported
for rendering in general. They also aren't supported in the modifier interface
currently. But they are supported in the spreadsheet, where the value is
displayed in a tooltip.

Pull Request: https://projects.blender.org/blender/blender/pulls/116166
2024-02-13 18:59:36 +01:00
Campbell Barton
2119d271e0 Cleanup: remove "-noaudio" argument in background mode
This is no longer needed as background mode implies -noaudio.
2024-02-14 00:13:38 +11:00
Pratik Borhade
2b02d6c1e2 GPv3: Include hide/reveal operators in layer menu
Similar to gpv2 layer panel, add these operators in gpv3 layer popup
menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/118199
2024-02-13 13:48:36 +01:00
Sietse Brouwer
2f0b293da3 GPv3: Add function to retrieve falloff factor for multi frame editing
This PR prepares GPv3 for calculating falloff factors when working in  multi frame editing mode.

The falloff popover is added to the UI.
A `float multi_frame_falloff` is added to `MutableDrawingInfo`. This is a factor from 0.0 to 1.0f.
A `retrieve_editable_drawings_with_falloff()` is added to the utility functions, which retrieves the falloff factor for each drawing when
multi frame falloff is enabled.

To avoid a copy, the return type of  `retrieve_editable_drawings()` and friends is changed from
`Array<MutableDrawingInfo>` to `Vector<MutableDrawingInfo>`.

Pull Request: https://projects.blender.org/blender/blender/pulls/118108
2024-02-13 12:04:45 +01:00
Bastien Montagne
0fd8f29e88 IDManagement: Update the Purge operator to display an interactive popup.
Make the 'purge' operation show an interactive popup by default, with
a preview of the type and amount of data-blocks to be deleted.

Idea and initial UI/UX design are from @Harley (see PR !117242).

Pull Request: https://projects.blender.org/blender/blender/pulls/117304
2024-02-09 17:01:33 +01:00
Miguel Pozo
ee493b3c05 Fix: EEVEE Next: View Layer Motion Blur UI
Outdated properties after
74b8f99b43
2024-02-09 15:45:10 +01:00
Pratik Borhade
84aed88b91 Merge branch 'blender-v4.1-release' 2024-02-09 17:34:25 +05:30
Pratik Borhade
8250502b77 UI: Merge Spin and spin duplicate tools
Both tools calls the same operator, only difference is "dupli" bool
property value. So expose the property in tool settings and remove the
spin duplicate tool

Resolves #98094

Pull Request: https://projects.blender.org/blender/blender/pulls/117880
2024-02-09 13:01:55 +01:00
Sergey Sharybin
467a132166 Compositor: Implement per-node execution time report
Visually it is the same as the execution time implemented for the
geometry nodes, and it is to be enabled in the overlay popover.

The implementation is separate from the geometry nodes, as it is
not easy or practical to re-use the geometry nodes implementation.

The execution time is stored in a run-time hash, indexed by a node
instance key. This is similar to the storage of the mode preview
images, but is stored on the scene runtime data and not on the node
tree. Indexing the storage by key allows to easily copy execution
statistics from localized tree to its original version.

The time is only implemented for full-frame compositor, as for the
tiled compositor it could be tricky to calculate reliable time for
pixel processing nodes which process one pixel at a time.

Pull Request: https://projects.blender.org/blender/blender/pulls/117885
2024-02-09 10:19:24 +01:00
Campbell Barton
239f307eb4 Fix missing keymaps for UV editor tools
Regression in fa77e9142d
2024-02-09 17:40:26 +11:00
Campbell Barton
4e93355187 Fix missing keymaps for UV editor tools
Regression in fa77e9142d
2024-02-09 17:38:44 +11:00
Pablo Vazquez
25b71bc9c1 Merge branch 'blender-v4.1-release' 2024-02-08 17:18:06 +01:00
Pablo Vazquez
c02fd6c6d8 Revert "Outliner: Add shortcut to Add Object and Duplicate"
This reverts commit 537d175289.

It doesn't work well with Sync Selection and other Outliner view modes.
2024-02-08 17:15:33 +01:00
Miguel Pozo
74b8f99b43 Render: Merge EEVEE and Cycles motion blur settings
Merge duplicated motion blur settings between Cycles and EEVEE,
and move them to `RenderData`/`scene.render`:
* `scene.cycles.motion_blur_position` -> `scene.render.motion_blur_position`
* `scene.eevee.use_motion_blur` -> `scene.render.user_motion_blur`
* `scene.eevee.motion_blur_position` -> `scene.render.motion_blur_position`
* `scene.eevee.motion_blur_shutter` -> `scene.render.motion_blur_shutter`

On the C/C++ side, this also renames `RenderData::blurfac` to
`RenderData::motion_blur_shutter`.

Pull Request: https://projects.blender.org/blender/blender/pulls/117913
2024-02-08 16:49:18 +01:00
Lukas Tönne
2c8de207b7 GPv3: Dash modifier
Reimplements the "Dash" (aka Dash-Dot) modifier of GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/117758
2024-02-08 15:35:20 +01:00
Lukas Tönne
da2d3be202 GPv3: Lattice modifier
Ported lattice modifier from GPv2.

The `LatticeDeformData` is no longer stored in the modifier data, but calculated on-the-fly like in the mesh deform modifier. This is quite trivial data and only stores deformed positions of the lattice, so not really worth the effort and complexity of caching it.

Pull Request: https://projects.blender.org/blender/blender/pulls/117955
2024-02-08 14:09:11 +01:00
Matias Mendiola
179430857d GPv3: Add and reorder menus to follow GPv2 menu layout
This PR add missing menus, reorder and remove some redundant menu titles to follow the GPv2 menu layout.

Pull Request: https://projects.blender.org/blender/blender/pulls/117959
2024-02-08 12:41:23 +01:00
Brecht Van Lommel
680b9a9c35 Merge branch 'blender-v4.1-release' into main 2024-02-07 19:32:39 +01:00
Brecht Van Lommel
bd8a44e169 Lights: Option to use old point light falloff
Add new "Soft Falloff" option on point and spot light that uses
the old light behavior from Blender versions before 4.0. Blend
files saved with those older versions will use the option.

This option is enabled by default on new lights.

Fix #114241

Co-authored-by: Weizhen Huang <weizhen@blender.org>
Co-authored-by: Clément Foucault <foucault.clem@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/117832
2024-02-07 19:07:11 +01:00
Falk David
bd22059752 GPv3: Add initial weight paint mode support
This makes it possible to enter and exit weight paint mode in Grease Pencil 3.
No other functionality is added for now.

Pull Request: https://projects.blender.org/blender/blender/pulls/117945
2024-02-07 17:19:43 +01:00
Falk David
0a45acbe3b GPv3: Layer Parenting/Transforms
This implements layer parenting and layer transforms.

* Adds a new "Transform" panel in the object-data properties with the (local) translation, rotation and scale.
* Adds a new "Relations" panel with the parent property (and also bone name in case the parent is an armature).
* When converting from GPv2 to GPv3, the parent and transforms are converted too.
* Bone names are updated if they are renamed in the armature.

Implementation details:
* The positions in the drawings are always in layer space. During extraction, we transform the positions to object space. Note that this could be optimized further and done in the render engine itself.
* This means that e.g. the selection code (which needs to know where the positions are on screen) now takes this transform into account.
* The layer transform is calculated when accessed (from the location, rotation, scale properties).
* Code that needs to know where the positions are on screen now takes this new transform into account.

Pull Request: https://projects.blender.org/blender/blender/pulls/117247
2024-02-07 16:28:14 +01:00
Hans Goudey
78963b466b Mesh: Add "Set Sharpness by Angle" operator
This simple  operator set the edge sharpness attribute on edges,
either extending the existing values or replacing them completely.
It's meant to make it more convenient to manually control the
sharpness now that there can be more reason to do that after
auto smooth became a modifier.

Pull Request: https://projects.blender.org/blender/blender/pulls/117918
2024-02-07 14:17:16 +01:00
Pablo Vazquez
537d175289 Outliner: Add shortcut to Add Object and Duplicate
Add shortcuts to the Outliner for consistency and convenience:
* Add Object (Shift+A)
* Duplicate (Shift+D)
* Duplicate Linked (Alt+D)

More info and images in the PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/117922
2024-02-07 12:00:09 +01:00
Pratik Borhade
7b405646fc Fix #117915: GP: Assign material button is missing
Accidently changed in c412aa1a17

Pull Request: https://projects.blender.org/blender/blender/pulls/117934
2024-02-07 10:01:03 +01:00
Christoph Lendenfeld
446b92d2ce Anim: Graph Editor - automatically lock key translation to a single axis
When moving keys in the Graph Editor animators
usually only want to move them on one axis.
While this is possible in a few ways (G+X, or G + Middle Mouse Button click),
we could default the behavior to always lock on an axis.
This was suggested by Dreamworks animators during the
Animation & Rigging module meeting.
https://devtalk.blender.org/t/2024-01-26-animation-rigging-module-meeting/33081#patch-review-decision-time-5

This PR adds an option with which the movement is
always locked to a single axis by default.
The option can be found in the Graph Editor under "View->Auto-Lock Axis".

The movement will then be restricted to the axis along
which you've moved the cursor the most.
You can still manually override the lock behavior by pressing `X` or `Y`.

I am piggybacking off the auto locking feature you get when pressing the middle mouse button.
When the new feature is enabled I call that at the start of the transformation.
Except when:
* only handles are selected
* the tweak mode has been started on a handle

This is to not snap handles, which is a behavior that has
been requested by the artists.

Pull Request: https://projects.blender.org/blender/blender/pulls/117669
2024-02-06 23:31:09 +01:00
Christoph Lendenfeld
79f84775f2 Anim: Motion Paths in camera space
Animators (especially for film and TV) often need
to track the movement of things in screenspace.
At the end of the day, the pixel motion is what counts.
But motion paths were always in world space,
which made it hard to use when the camera
is also animated (during action scenes e.g.)

This PR introduces the feature of projecting a motion path into the screen space of the active scene camera.

Limitations
This makes the motion path only useful when looking through the active scene camera.
Switching the scene camera using markers is not yet supported.

Technical Implementation
This is achieved by baking the motion path points into the
camera space on creation. For every point calculated,
the camera is evaluated through the depsgraph and
the resulting world matrix is used.
Then I pass in the current frame's world matrix of the
camera into the shader to make sure the points follow it.
As can be seen in the video, it looks quite odd when
viewed at another angle but this is expected.
I mentioned that in the tooltip, so it shouldn't be an issue

Pull Request: https://projects.blender.org/blender/blender/pulls/117593
2024-02-06 23:14:17 +01:00