- "Acion Slot" -> "Action": typo.
- "Specifies the input node used the created zone" -> "by the created
zone": typo.
- "No reference available {!r}, Update..." -> "update": lower case.
- "uninitialized file-list" -> "Uninitialized": sentence case.
Some issues reported by Alexandr Fatih.
Pull Request: https://projects.blender.org/blender/blender/pulls/148265
This was caused by 3dfec1ff73
which introduce the new behavior. This was to fix workflows
using a lot of semi-transparent objects which made nagivation
difficult.
This patch first roll back to the previous behavior: The
unselectable object will affect depth-aware operators.
This patch introduces a new visibility property to remove
the influence of objects in all depth picking operations
and selection operations. However the object is still
selectable through non-drawing selection operators
(e.g. select by material) and through the outliner.
This is to adress the aforementionned navigation issues.
Pull Request: https://projects.blender.org/blender/blender/pulls/146706
Brush directions are dynamic, the enum can have different options
depending on brush type. This commit manually extracts the options.
The labels use the "Brush" translation context, to disambiguate
"Deflate", the operation, with the compression algorithm.
Also `smooth_direction_items` is moved inside
`rna_Brush_direction_itemf()`, since it is used only there, same as
the other brush direction items.
Reported by Ye Gui in #43295.
Pull Request: https://projects.blender.org/blender/blender/pulls/148081
Split the "Interpolation Line" theme property into three for each
interpolation mode, and use them accordingly. In the current theme
refactor, almost all theme properties of the dope sheet are getting
either removed (unused), or moved (shared). This decluttering opens up
the possibility to allow more theming, and let artists read the Dope
Sheet better.
## Avoiding Confusion
There's two "Bézier" interpolation types:
- Called "Bézier" in the interpolation type menu, and
- Called "Bézier" in the code, for the types that are labeled as
**"Easing" and "Dynamic"** in the interpolation type menu.
Since this commit is about the interpolation lines, which are **not**
drawn for the former, **this PR only covers Constant, Linear, and the
latter form of Bézier interpolation types.**
Pull Request: https://projects.blender.org/blender/blender/pulls/144255
The RNA property had an incorrect update callback assigned. The
update callback assumed the RNA pointer data was a node rather
than a node's viewer item.
The `ScreenAnimData` which is saved to the animation timer on the
screen during playback stores a pointer to the scene that is playing.
When deleting a scene, the next time the timer is triggered this will
result in an invalid pointer de-reference.
This fixes the crash by stopping the playback when a scene is deleted.
Pull Request: https://projects.blender.org/blender/blender/pulls/147687
In 73fcbaf7c4, the `node_tree_sub_type` enum was given a custom item
function. The items now need to be extracted manually.
In addition, the translation context for this property, "ID", was
removed since it was not useful at a glance, and likely added by
mistake.
Reported by Ye Gui in #43295.
On its own this change is just noise and not really worth it. The point
is to make a future diff for #122398 smaller and more legible. Also it's
semantically more consistent with the way we usually handle early
returns: the "special case" comes first, then the expected normal path
continues un-indented.
We have icons that represent specific individual collections. like
Icon_Outliner_Collection for a default (uncolored) collection, and
Icon_Collection_color_x for ones with colors. For "collections" as a
general thing though we have icon_group. Sometimes we confuse the two,
for example the list of tabs to show in Properties uses a different
icon than the actual category icon. This PR fixes the complaint by
using the correct icon for each of these purposes.
Pull Request: https://projects.blender.org/blender/blender/pulls/147652
With #126307 the default collection color (not set to a specific one),
set in Icon Colors / Collection, is always white. This PR restores the
correct behavior of following the theme color (an error in the SVG
source). And does so immediately (change in property_update).
Pull Request: https://projects.blender.org/blender/blender/pulls/147651
This is the 'safe and simple' aspect of the fix: prevent `node_warnings`
RNA property of the Node modifier to be overridable.
Its access is 100% not thread safe currently - and it makes no sense to
have this reuntime data overridable anyway!
Another side of the issue will be fixed in a separate commit, for main
only, as it affects quite deeply the behavior of viewlayer resync, and
fixes some unrelated logical issues in the current code.
With #146102 the selection state of pose bones was moved to
the pose bone itself and syncing code was introduced that
ensures the selection state between pose- and edit mode matches.
While the syncing happens via the `Bone` struct, the flag is
always overridden from either the `EditBone` or the `bPoseChannel`.
Since the selection state of the `Bone` is not used for operations anymore
there is no point in keeping it.
In a way this doesn't break backwards compatibility more than
it already was. It's just more visible now because it will actually error.
Pull Request: https://projects.blender.org/blender/blender/pulls/147597
Replace per UV map selection with a single UV selection for all UV's.
This uses the same data as UV sync select, meaning that it's no longer
possible to keep a different selection when sync-select is disabled.
There is a minor improvement to functionality - previously not possible
to de-select a single face surrounding by selected faces.
Now this is possible because true face selection is supported.
The selection from the active UV-map is converted to use the shared
selection data.
Ref !147523
Co-authored-by: Hans Goudey <hans@blender.org>
Move the selection flag for pose bones, from the (edit)bone to the
pose bone.
Previously having multiple instances of armatures in pose mode at the
same time caused issues because selecting a pose bone on one armature
would automatically select it on all instances of it.
This is now fixed since the selection state is stored on the pose bone
(Object level) Doing so breaks API compatibility with 4.5 since the
RNA property on the Bone no longer affects the pose bone. Instead,
there is a new property on the pose bone for that.
Due to this change, some runtime flags for the transform system also
had to be moved to the pose bone. This is due to the fact that these
flags are used by the transform system to pass information between
functions. If we keep the flag at the bone level, this wouldn't work
with armature instances. See `bPoseChannelRuntimeFlag`
Fixes#117892
Pull Request: https://projects.blender.org/blender/blender/pulls/146102
Addresses #146305.
Ever since moving to the "sequencer scene" paradigm, attempting to
render an image or animation when a sequencer with strips is present
often seems to outright ignore the sequencer in most cases. This is
because the sequencer scene usually differs from the active scene (which
is the true render target), so one must first switch their active scene
to the sequencer scene before rendering. This is confusing and
seems like a regression in behavior. To improve clarity, this patch does
the following:
When a sequencer scene with at least one strip (and the sequencer step
enabled in the pipeline) exists in the current workspace, new options
"Render Sequencer Image" and "Render Sequencer Animation" appear. These
options may be invoked by alt-F12 and ctrl-alt-F12, respectively.
Additionally, if such a valid sequencer scene is the same as the active
scene, then only the regular render options are listed, since in this
case they are identical to the sequencer render operators, meaning F12
still works predictably.
To switch back and forth between sequencer and main scene render
outputs, a new toggle has been added to the image editor to "Show
Sequencer Scene" output. This button only appears for the render result
if there is a valid sequencer scene that differs from the active scene.
Pull Request: https://projects.blender.org/blender/blender/pulls/146934
This adds an overlay to the animation editors to visualize the current scene strip
in and out points in the scene timeline when the `Sync Scene Time` option in
the sequencer is used.
* Adds an overlay toggle + panel to the dopesheet.
* Adds a new theme setting (for the overlay) under
`Common` > `Animation` > `Scene Strip Range`.
* Adds the overlay drawing to the dopesheet.
Pull Request: https://projects.blender.org/blender/blender/pulls/146165
Given a grid of velocities, this node advects the values of the input
grid. Different options for integration scheme and clamping are
exposed. Currently their names are just as defined in OpenVDB.
Pull Request: https://projects.blender.org/blender/blender/pulls/147273
Add a new constraint called "Geometry Attribute", which directly
samples vector, quaternion, or 4x4 matrix attributes from geometry and
applies these to an object's or bone's transform.
This can be used to transfer data generated by geometry nodes to the
object or bone level. By default the constraint will sample a vector
on the vertex domain. The default attribute is `position` for
simplicity, but the attribute value does not have to have anything to
do with neither the transform of the geometry object nor the geometry
itself.
Pull Request: https://projects.blender.org/blender/blender/pulls/136477
Adds a new operator that jumps time by a given number of frames or seconds, forward or backward.
Surprisingly, it was lacking in Blender, and prompted many users (including me) to create extensions.
This PR adds two properties: `time_jump_unit` for choosing whether to jump by frames or seconds
and `time_jump_delta` property that defines by how many frames or seconds the operator should jump,
as well as an actual operator that changes the current frame (`screen.time_jump`).
`time_jump_delta` is a float that gives users the ability to jump by half a second, for example, or by subframes.
Default is set to 1 second, which translates to as many frames jump as frame rate / frame base.
The operator is intentionally not bound by frame range, and can go in negative frames as well.
This is very important because it's extremely common to set frame range to the current workload,
but wish to see animation beyond that.
Operators are added in the new footer for animation editors alongside with pop-up menu where
properties can be changed.
Shortcuts are also added: Ctrl+Left/Right Arrow, which was surprisingly free in Blender.
Now timeline controls are:
- **Right Arrow**: Next Frame
- **Ctrl + Right Arrow**: Jump Forward (by default also Next Second)
- **Shift + Right Arrow**: Jump to End
Pull Request: https://projects.blender.org/blender/blender/pulls/140677
This behavior seems to have been there since initial implementation of
this function in aed1320b24, 8 years ago.
However, it is clearly wrong, and would return wrong positives in many
cases (the Main RNA pointer itself is generated with a nullptr ID by
`RNA_main_pointer_create`, and a _lot_ of code generates RNA pointers
without any ID owner, as shown by a search e.g. on
`RNA_pointer_create_discrete(nullptr`).
WARNING: While logically correct, there is no real way to tell if this
change is not going to break some weird corner case based on wrong
assumption. in addition to unittests, this has also been checked against
several production files.
Indirectly caused by ada45519a7, the actual issue has been there for
years in the PointerRNA diffing code, which was way too basic and unsafe
in non-liboverride case.
Also fixed a copy/paste assert mistake in related code (same thing was
checked twice, instead of also checking another condition).
Finally, make the more general `RNA_struct_equals` call handle properly
cases where one or both of the given PointerRNA operands are Null ones.
This PR changes the current behavior that closes menus that are open
when your mouse is moved out of its "safe" area (a bit wider than its
visible bounds). With this PR applied menus stay open unless you click
elsewhere, hover a neighboring menu, press escape, or select an item.
Although this PR turns off menu mouse leave, it also adds a preference
that can be used to turn it back on.
Pull Request: https://projects.blender.org/blender/blender/pulls/145523
This PR gives access to OpenVDB's level set filtering operations
through individual **SDF Grid** nodes.
- **Mean Curvature**: Smoothens high curvature areas more than flatter
ones.
- **Laplacian**: Approximates mean curvature flow for true SDFs at lower
computational cost.
- **Median**: Reduces noise while preserving sharp features.
- **Mean**: Fast separable averaging filter for general-purpose
smoothing with linear computational complexity.
- **Offset**: Uniform dilation/erosion operation that shifts the SDF
surface by a world-space distance.
- **Fillet**: Rounds off concave internal corners by operating only on
regions with negative principal curvature.
Pull Request: https://projects.blender.org/blender/blender/pulls/147224
It's a common mistake that people want to use the viewer node while the
modifier is disabled and wondering why it doesn't work. This patch adds a
warning that helps users diagnose the issue immediately.
Pull Request: https://projects.blender.org/blender/blender/pulls/147443
The function name `for_each_callback` is ambigous (what are we iterating?)
and also doesn't align with the naming of other "for each" functions in Blender
which usually are named `foreach_<thing>` like `IndexMask::foreach_index`
or `animrig::foreach_fcurve_in_action` etc.
Pull Request: https://projects.blender.org/blender/blender/pulls/147440
This adds a new `PropertyRNA::name_func` property which is similar to the many
existing functions like `editable`, `get_default`, etc. It allows dynamically
getting a UI name for the property.
This is especially useful for node sockets, because those all have the same
hardcoded name "Default Value" which is not helpful. Since we already have
custom tooltips for sockets, this is mostly not visible to the user anymore. The
exception being menu sockets which draw the property name as title. Instead of
"Default Value", this patch makes it show the correct title.
Pull Request: https://projects.blender.org/blender/blender/pulls/147137
Spawning the tooltip or changing values would cause this.
Error in 28827b62f7
Above commit only considered PointCaches associated with **objects**,
not taking into account scene rigid body cache.
This is now added with this PR.
Previously it would cast into modifiers when we actually had a scene as
owner... resulting in a crash.
This was only exposed by 6bf8685628 (it crashes since, was just not
working properly before...). 6bf8685628 changed the data layout of
`struct Object` and only by pure luck the modifiers loop was skipped, now
with the new layout it is entered (but with garbage data resulting in the crash.
Pull Request: https://projects.blender.org/blender/blender/pulls/146577