20 hours agoRigify: fix two cases limb motion in rest pose. blender-v3.0-release master
Alexander Gavrilov [Fri, 22 Oct 2021 19:52:27 +0000 (22:52 +0300)]
Rigify: fix two cases limb motion in rest pose.

The master control rotated to match the limb rest roll, because
for an unknown reason the roll was reset in edit pose.

Inner tweaks could rotate if roll of master tweaks wasn't matched.
To fix this, compute and apply the interpolated roll.

20 hours agoRigify: rework limb IK stretch limit and add a manual swing structure.
Alexander Gavrilov [Fri, 22 Oct 2021 19:50:06 +0000 (22:50 +0300)]
Rigify: rework limb IK stretch limit and add a manual swing structure.

After introduction of the Custom space it is possible to easily
use Limit Distance within rigs while accounting for rig scale.
This allows replacing the Stretch To + Limit Scale mechanism
used for the IK stretch switch in rigify.

Instead, use the freed bone to manually handle limb swing before
allowing the actual IK solver to handle limb contraction. This
improves stability in marginal cases of limbs nearly straight
in the rest pose, because previously the solver could destroy
the slight knee bend in the process of swinging the limb forward,
causing a flip.

26 hours agoFix T71232: .X3D/.WRL imports without materials and textures
Max Schlecht [Wed, 27 Oct 2021 10:23:39 +0000 (12:23 +0200)]
Fix T71232: .X3D/.WRL imports without materials and textures

When porting the x3d importer to 2.80, material and texture
importing didn't get ported. The old importer was using
Blender Render like materials, the new implementation uses
the standard node system via `node_shader_utils`.

Additionally this also adds a crude, text based method for
material/texture caching for WRL file (previously only
supported for X3D), fixes a possible `StructRNA has been removed`
error caused by the cache and assigns proper names to the
materials, if available.

Reviewed By: mont29

Maniphest Tasks: T76656, T71232, T83428

Differential Revision:

47 hours agoUI: Improve contrast on active tabs in community themes
Pablo Vazquez [Tue, 26 Oct 2021 13:04:16 +0000 (15:04 +0200)]
UI: Improve contrast on active tabs in community themes

Since rBaf26720b2131 active tabs use `Region Text Highlight`, instead of `Region Text`.

2 days agoCollection Manager: Fix nested selection bug. Task: T69577
Ryan Inch [Tue, 26 Oct 2021 08:10:38 +0000 (04:10 -0400)]
Collection Manager: Fix nested selection bug. Task: T69577

Fix a bug where attempting to deselect nested collections fails
when there are no objects present in the parent collection.
Reported by 1D_Inc

2 days agoVR: Default Actions, Controller Visualization
Peter Kim [Tue, 26 Oct 2021 04:45:00 +0000 (13:45 +0900)]
VR: Default Actions, Controller Visualization

This updates the VR Scene Inspection add-on with functionality for
loading and using default controller actions, including controller
poses and haptics, and visualizing VR controllers both in-headset and
in the regular 3D viewport.

In other words, users can finally view their VR controllers and use
them to navigate their scene in VR.

Controller actions (enabled by default) are available as an option in
the "VR Session" panel. For controller bindings that require OpenXR
extensions (Reverb G2, Vive Cosmos, Huawei), there is a new
"Action Maps" panel where users can toggle these bindings. Bindings
that require extensions are disabled by default since not all OpenXR
runtimes may support them, which will lead to an error during action
creation at session start.

There is also an option in the "Action Maps" panel to use a
gamepad (Xbox Controller) instead of motion controllers for VR
actions/viewport navigation.

In addition to default actions, this update adds new options for VR
controller visualization. For in-headset (VR) visualization, controller
visibility as well as style (dark/light, ray/no ray) can be set via the
"View" panel. For visualization in the regular 3D viewport, there is a
new option in the "Viewport Feedback" panel to draw controllers as
gizmos, similar to the existing option for the VR camera (headset).

Finally, this update also changes the VR Landmark "Custom Camera" type
to "Custom Object", so users can specify any object (not just cameras)
as a base pose reference, and adds a base scale option for custom
object and custom pose-type landmarks.

Reviewed By: Severin

Differential Revision:

3 days agoBlenderKit: move search fields to tool header
Vilem Duha [Mon, 25 Oct 2021 09:15:34 +0000 (11:15 +0200)]
BlenderKit: move search fields to tool header

also hide it in the modes where it doesn't make sense.
This has to overwrite the draw function of VIEW3D_HT_tool_header, to get in the middle
This could potentially interfere with other addons, need to investigate.

3 days agoBlenderKit: notifications - mark all read and go to target
Vilem Duha [Mon, 25 Oct 2021 09:01:17 +0000 (11:01 +0200)]
BlenderKit: notifications - mark all read and go to target

3 days agoBlenderkit:Scale tooltip accordingly when switching asset types
Vilem Duha [Sun, 24 Oct 2021 17:10:53 +0000 (19:10 +0200)]
Blenderkit:Scale tooltip accordingly when switching asset types

3 days agoBlenderKit: work on comments and notifications
Vilem Duha [Sat, 23 Oct 2021 14:38:01 +0000 (16:38 +0200)]
BlenderKit: work on comments and notifications

Substantial progress on both, mainly layout and adaptation to new API.
Comments now show threads and can be liked/disliked from addon
Notifications now can open the related asset to see discussion.

5 days agoGitHub: add PR template, add probot stale config
Ankit Meel [Sat, 23 Oct 2021 05:11:27 +0000 (10:41 +0530)]
GitHub: add PR template, add probot stale config
Differential Revision:

5 days agoBlenderKit: fix asset bar thumbnail refresh
Vilem Duha [Fri, 22 Oct 2021 13:10:00 +0000 (15:10 +0200)]
BlenderKit: fix asset bar thumbnail refresh

also sevearal small UI tweaks and fix of the asset-bar scaling when switching on toolbar/properties in 3d view
remove debug prints

6 days agoBlenderKit lots of fixes for asset bar
Vilem Duha [Fri, 22 Oct 2021 06:24:39 +0000 (08:24 +0200)]
BlenderKit lots of fixes for asset bar

lock icons are back
thumbnail update partially fixed.

8 days agoBlenderKit: initial support for notifications
Vilem Duha [Wed, 20 Oct 2021 05:53:20 +0000 (07:53 +0200)]
BlenderKit: initial support for notifications

slight optimisation of the new asset bar

8 days agoBlenderKit: UI scaling/refresh that works
Vilem Duha [Tue, 19 Oct 2021 10:43:54 +0000 (12:43 +0200)]
BlenderKit: UI scaling/refresh that works

last solution (restart operator) crashed Blender

8 days agoPose Library: explicitly call `pose_action.asset_generate_preview()`
Sybren A. Stüvel [Tue, 19 Oct 2021 16:20:49 +0000 (18:20 +0200)]
Pose Library: explicitly call `pose_action.asset_generate_preview()`

Explicitly call `ID.asset_generate_preview()` after marking the pose as
asset. This is required since rB1c5722ba071a

10 days agoBlenderKit: progress on asset bar
Vilem Duha [Mon, 18 Oct 2021 11:30:35 +0000 (13:30 +0200)]
BlenderKit: progress on asset bar

Forgot to add files to last commit

10 days agoBenderKit asset bar: fixed re-initialisation of UI on resize
Vilem Duha [Mon, 18 Oct 2021 11:30:10 +0000 (13:30 +0200)]
BenderKit asset bar: fixed re-initialisation of UI on resize

progress bars are back
ui widgets lib now has a simple non-interactive image object
Updated Oauth scripts

13 days agoBlenderKit: bring back asset bar UI scaling
Vilem Duha [Fri, 15 Oct 2021 12:11:59 +0000 (14:11 +0200)]
BlenderKit: bring back asset bar UI scaling

2 weeks agoBlenderKit: new assetbar wide HDRI previews
Vilem Duha [Thu, 14 Oct 2021 11:24:19 +0000 (13:24 +0200)]
BlenderKit: new assetbar wide HDRI previews

also update validation icons on validation

2 weeks agoBlenderKit: new assetbar improvements
Vilem Duha [Thu, 14 Oct 2021 10:01:16 +0000 (12:01 +0200)]
BlenderKit: new assetbar improvements

many fixes and styling according to the original asset bar

2 weeks agoBlenderKit: work on tooltip for new asset_bar
Vilem Duha [Wed, 13 Oct 2021 14:11:10 +0000 (16:11 +0200)]
BlenderKit: work on tooltip for new asset_bar

bring asset bar back to experimental, still too many issues

2 weeks agoBlenderKit: enable new asset bar
Vilem Duha [Wed, 13 Oct 2021 12:07:09 +0000 (14:07 +0200)]
BlenderKit: enable new asset bar

2 weeks agoBlenderKit: improvements to new assetbar
Vilem Duha [Wed, 13 Oct 2021 09:53:58 +0000 (11:53 +0200)]
BlenderKit: improvements to new assetbar

Almost ready for the switch to default.

2 weeks agoBlenderKit: bring search props to window_manager
Vilem Duha [Tue, 12 Oct 2021 12:49:45 +0000 (14:49 +0200)]
BlenderKit: bring search props to window_manager

this avoids some trouble, e.g. during switching to appended scenes.

2 weeks agoRemove free_derived_objects import
Campbell Barton [Mon, 11 Oct 2021 12:22:59 +0000 (23:22 +1100)]
Remove free_derived_objects import

This caused script_load_modules to fail,
properly supporting duplicates is still needed.

2 weeks agoBlenderKit: comment out old proxy code
Vilem Duha [Mon, 11 Oct 2021 11:40:51 +0000 (13:40 +0200)]
BlenderKit: comment out old proxy code

2 weeks agoBlenderKit: fist steps to comments integration
Vilem Duha [Mon, 11 Oct 2021 11:30:38 +0000 (13:30 +0200)]
BlenderKit: fist steps to comments integration

2 weeks agoBlenderKit: first steps for comments integration
Vilem Duha [Mon, 11 Oct 2021 11:29:59 +0000 (13:29 +0200)]
BlenderKit: first steps for comments integration

also fix asset unpacking in resolutions

2 weeks agoPose Library: refresh dopesheet & 3D view when changing asset library
Sybren A. Stüvel [Fri, 8 Oct 2021 12:21:32 +0000 (14:21 +0200)]
Pose Library: refresh dopesheet & 3D view when changing asset library

The Create Pose Asset (`POSELIB_OT_create_pose_asset`) operator stores
the created asset in the current blend file. To avoid confusion, its
poll function refuses the use of the operator when the asset browser is
showing a different asset library. This means that the panels containing
a button for this operator need to be refreshed whenever another asset
library is selected.

2 weeks agoPose Library: do a broader search for the asset browser
Sybren A. Stüvel [Thu, 7 Oct 2021 15:39:03 +0000 (17:39 +0200)]
Pose Library: do a broader search for the asset browser

When creating a pose, it gets assigned to the catalog that is currently
shown in the asset browser. To find which asset browser to use for this,
if the current window does not contain one, other windows are considered
as well. Before this change this was limited to the current screen.

3 weeks agoEdit Linked Library: Added support for more library types.
Jason van Gumster [Thu, 7 Oct 2021 11:45:59 +0000 (07:45 -0400)]
Edit Linked Library: Added support for more library types.

In particular, this commit adds support for override libraries on
objects. In the past, if you made an override, Edit Linked Library lost
the reference to the original library. That's fixed now.

Also, in linked Node Groups, this commit also adds support for linked
Sverchok group nodes.

3 weeks agoPose Library: assign catalog when creating new pose asset
Sybren A. Stüvel [Tue, 5 Oct 2021 14:27:33 +0000 (16:27 +0200)]
Pose Library: assign catalog when creating new pose asset

When creating a new pose asset (`POSELIB_OT_create_pose_asset`), assign
it the the Asset Browser's active catalog. This ensures that the asset
browser actually shows the newly created catalog.

When there is no asset browser open, no catalog is assigned. When there
are multiple asset browsers, the biggest one wins.

3 weeks agoCleanup: pose library, remove debug print
Sybren A. Stüvel [Tue, 5 Oct 2021 13:30:04 +0000 (15:30 +0200)]
Cleanup: pose library, remove debug print

No functional changes.

3 weeks agoPose Library: only allow pasting assets when in Current File library
Sybren A. Stüvel [Tue, 5 Oct 2021 13:27:16 +0000 (15:27 +0200)]
Pose Library: only allow pasting assets when in Current File library

Only allow the Paste Asset button to work when the asset browser is set
to the "Current File" library. This ensures that the pasted asset can
actually be seen.

Without this change, an artist is likely to assume the asset will be
pasted into the shown library. This is not the case, though -- pasted
assets always go into the current blend file.

3 weeks agoPose Library: avoid breakage due to changes in the asset browser
Sybren A. Stüvel [Tue, 5 Oct 2021 08:13:02 +0000 (10:13 +0200)]
Pose Library: avoid breakage due to changes in the asset browser

Asset browser moved from Categories (the big, fixed buttons) to Catalogs
(the tree-based, user-creatable organisation system). This required some
changes to the Pose Library code, as that was still expecting to be able
to use the categories system.

The entire workflow has to be looked at better, but at least now it's not
broken anymore.

3 weeks agoBlenderKit: forgot one instance of the save_mainfile call in previous fix
Vilem Duha [Sun, 3 Oct 2021 17:07:38 +0000 (19:07 +0200)]
BlenderKit: forgot one instance of the save_mainfile call in previous fix

fixes crash of background blender during asset unpacking

3 weeks agoBlenderKit fix bg blender crash due to new file preview code
Vilem Duha [Sun, 3 Oct 2021 16:57:28 +0000 (18:57 +0200)]
BlenderKit fix bg blender crash due to new file preview code

A new preview code from 6th september crashes Blender when saving files in background mode. This circumvents the bug by now.

3 weeks agoBlenderKit: automatically purge collections created by the addon
Vilem Duha [Sun, 3 Oct 2021 09:52:05 +0000 (11:52 +0200)]
BlenderKit: automatically purge collections created by the addon

If the collection is empty, it gets removed on file save.
This will only work in new files, since the collections now get a 'is_blenderkit_collection' property when appending.
Don't registter timers when in background

3 weeks agoBlenderKit: basic asset_browser compatibility
Vilem Duha [Sat, 2 Oct 2021 15:32:37 +0000 (17:32 +0200)]
BlenderKit: basic asset_browser compatibility
fix default search
report blender version instead of addon version during search

4 weeks agoFBX export / subdivision: Write proper boundary rule
Samuli Raivio [Wed, 29 Sep 2021 15:58:50 +0000 (17:58 +0200)]
FBX export / subdivision: Write proper boundary rule

Currently when exporting a subdivision surface (//Geometry / Export Subdivision Surface// enabled) the exporter uses a hard-coded BoundaryRule rule of 2 (CreaseAll, meaning hard corners). The subdivision surface modifier has an option for boundary smoothing mode so this patch propagates that information to the FBX exporter.

Example .fbx file with  this feature exported from modified Blender 2.93:

Reviewed By: mont29

Differential Revision:

4 weeks agoUpdate Pose Library add-on to work without asset categories
Julian Eisel [Wed, 29 Sep 2021 15:16:14 +0000 (17:16 +0200)]
Update Pose Library add-on to work without asset categories

Pose Library panels are now always displayed in pose mode, and don't
hide or unhide anymore depending on the visible asset types.

4 weeks agoHide Pose Library panels unless in Pose Mode
Julian Eisel [Mon, 20 Sep 2021 19:49:56 +0000 (21:49 +0200)]
Hide Pose Library panels unless in Pose Mode

Otherwise, there will be a useless tab in the sidebar, and panels in the
Asset Browser and Dopesheet that do nothing. So far the Asset Browser
hides these panels unless the Animation category is selected, but this
won't work once asset catalogs replace the categories.

Differential Revision:

4 weeks agoBlender 3.0 compatibility
stephen-l [Sat, 25 Sep 2021 10:03:10 +0000 (12:03 +0200)]
Blender 3.0 compatibility

4 weeks agoglTF exporter: cleanup object animation curves when animation is constant
Julien Duroure [Fri, 24 Sep 2021 14:47:51 +0000 (16:47 +0200)]
glTF exporter: cleanup object animation curves when animation is constant

4 weeks agoglTF export: fix animation export for objects parented to bones
Julien Duroure [Fri, 24 Sep 2021 14:43:33 +0000 (16:43 +0200)]
glTF export: fix animation export for objects parented to bones

4 weeks agoBlenderKit: Temp hack following `proxy_make` operator removal.
Bastien Montagne [Fri, 24 Sep 2021 10:42:32 +0000 (12:42 +0200)]
BlenderKit: Temp hack following `proxy_make` operator removal.

The addon needs to be properly updated to use overrides, but for now
allow it to keep working without accessing non-existant API.

Ping Vilem Duha (@pildanovak) too.

4 weeks agoAuto Tile Size: remove the add-on after the cycles-x merge
Brecht Van Lommel [Thu, 23 Sep 2021 15:49:59 +0000 (17:49 +0200)]
Auto Tile Size: remove the add-on after the cycles-x merge

The new render scheduling in Cycles makes this obsolete. There can still be
reasons for tweaking tile size, mainly related to memory usage, but the add-on
is not designed for that.

Fixes T91645

5 weeks agoCleanup: Themes: Remove invalid theme option
Aaron Carlisle [Wed, 22 Sep 2021 16:07:36 +0000 (12:07 -0400)]
Cleanup: Themes: Remove invalid theme option

`font_kerning_style` was removed inrBa1e91fbef3dc9a5d5c8456cd9a887aac1bdb652c

5 weeks agoFBX IO: Disable performance report by default.
Martin Preisler [Tue, 21 Sep 2021 15:29:25 +0000 (17:29 +0200)]
FBX IO: Disable performance report by default.

Do not spam stdio with timing messages by default, this is more a
development/investigation tool than an end-user feature.

Reviewed By: campbellbarton, mont29

Differential Revision:

5 weeks agoRigify: support generating mirrored linked duplicate widgets.
Alexander Gavrilov [Mon, 20 Sep 2021 19:16:41 +0000 (22:16 +0300)]
Rigify: support generating mirrored linked duplicate widgets.

After the custom shape scale property was split into an XYZ vector,
it is possible to generate truly mirrored widgets using the same
mesh for the left and right side. The widgets Rigify generates are
originally symmetrical, but in practice they usually need to be
tweaked to fit the character better, and proper mirroring matters.

This commit implements widget mirroring and enables it by default.
When reusing widgets left from a previous generation the code tries
to detect whether they were actually originally mirrored by checking
object scale to avoid flipping in pre-existing rigs.

As an aside, reusing pre-existing widgets is made more robust
to random name changes by building a table via scanning the old
generated rig before overwriting it.

5 weeks agoRigify: support executing an arbitrary script after generation.
Alexander Gavrilov [Sun, 19 Sep 2021 16:16:20 +0000 (19:16 +0300)]
Rigify: support executing an arbitrary script after generation.

Just in case the user wants to apply some custom changes to the
generated rig, allow executing a text datablock as a python script
after generation completes.

The script is executed with the generated rig active and in object
mode. When executed by rigify, the generator instance is available
via `rigify.get_generator()`. Outside of Rigify generation the return
value is None.

6 weeks agoglTF exporter: better 'selection only' management
Julien Duroure [Wed, 15 Sep 2021 15:40:15 +0000 (17:40 +0200)]
glTF exporter: better 'selection only' management

This now works when selection does not include armature or any descendant of armature.
For other cases, all bones are still exported

6 weeks agoglTF exporter: validate meshes before export
Julien Duroure [Wed, 15 Sep 2021 15:36:15 +0000 (17:36 +0200)]
glTF exporter: validate meshes before export
(removing NaN for example)

6 weeks agoglTF exporter: cleanup: use inverted_safe on matrices
Julien Duroure [Wed, 15 Sep 2021 15:34:32 +0000 (17:34 +0200)]
glTF exporter: cleanup: use inverted_safe on matrices

6 weeks agoglTF importer: fix T91217: avoid traceback when trying to import some invalid glTF...
Julien Duroure [Wed, 15 Sep 2021 15:29:56 +0000 (17:29 +0200)]
glTF importer: fix T91217: avoid traceback when trying to import some invalid glTF 2.0 files

6 weeks agoglTF exporter: fix bad check in a previous commit
Julien Duroure [Wed, 15 Sep 2021 15:20:43 +0000 (17:20 +0200)]
glTF exporter: fix bad check in a previous commit

6 weeks agoBlenderKit: Reflect change in scoring algorithm
Vilem Duha [Thu, 9 Sep 2021 17:22:24 +0000 (19:22 +0200)]
BlenderKit: Reflect change in scoring algorithm

fix minor bug when creator fills 0 as texture size in material.

7 weeks agoT91111: possible out of range when iterating over Math Vis item list
Gaia Clary [Fri, 3 Sep 2021 11:03:31 +0000 (13:03 +0200)]
T91111: possible out of range when iterating over Math Vis item list

While preparing T91111 i found an issue with out of date index after my recent changes.
The problem is:

bpy.context.window_manager.MathVisProp can be "0" even when the list is actually empty.

This patch fixes the index issue, although the true cause might still be found elsewhere.
there is more to fix, so this is only a first step to a complete fix.

Reviewed By: campbellbarton

Differential Revision:

7 weeks agoUpdate class names after api changes to Blender studio-sprite-fright
Aaron Carlisle [Mon, 6 Sep 2021 03:24:04 +0000 (23:24 -0400)]
Update class names after api changes to Blender

In rB4ddad5a7ee5d9c3245593c509714f8c1359f9342
the `RENDER_PT_dimensions` class was renamed to

8 weeks agoFix T91113: printf in X3D Importer causes NameError
Campbell Barton [Thu, 2 Sep 2021 07:30:47 +0000 (17:30 +1000)]
Fix T91113: printf in X3D Importer causes NameError

8 weeks agoMathVis: Mark the selected display item with an active color
Gaia Clary [Tue, 31 Aug 2021 14:58:29 +0000 (16:58 +0200)]
MathVis: Mark the selected display item with an active color

When the number of items defined in MathVis grows, then finding
a specific item in the ViewPort becomes more difficult. One way
to "solve" this is by limiting the number of displayed items.

This patch adds another way by color marking the selected item
in the MathVis list widget with an 'active' color
I have implemented this for matrix bounding boxes and vectors.

Benefit: this way you can quickly step over the list and see
which item highlights in the viewport.


Reviewed By: campbellbarton

Differential Revision:

8 weeks agoFix T90600: Loop Tools Relax
Vladimir Spivak(cwolf3d) [Tue, 31 Aug 2021 21:06:29 +0000 (00:06 +0300)]
Fix T90600: Loop Tools Relax

8 weeks agoExpand type check in MathVis to also allow subclasses.
Gaia Clary [Mon, 30 Aug 2021 15:58:44 +0000 (17:58 +0200)]
Expand type check in MathVis to also allow subclasses.

MathVis currently only checks objects for basic classes (Matrix, Vector, Quaternion, Euler)
This patch adds also derived classes of the basic classes.\
This makes it possible to use custom classes together with MathVis.

Differential Revision:

8 weeks agoFBX Import: skip invalid custom enum properties
Philipp Oeser [Tue, 31 Aug 2021 07:43:04 +0000 (09:43 +0200)]
FBX Import: skip invalid custom enum properties

This was (correctly) asserting before, now handle this more gracefully
and just skip (and warn about this) a custom property that has an
invalid value set.

Seems there are a couple of exporters out there that do this wrong, I
think this tradeoff can be made though.

Fixes T91062, T81657, T83501, T86595

Maniphest Tasks: T91062, T86595, T83501, T81657

Differential Revision:

8 weeks agoFix: Material Library VX add-on cannot apply library materials to selected object
Iyad Ahmed [Tue, 31 Aug 2021 08:12:52 +0000 (10:12 +0200)]
Fix: Material Library VX add-on cannot apply library materials to selected object


Reviewed By: mont29, dfelinto, campbellbarton

Maniphest Tasks: T89740, T90483, T89680

Differential Revision:

8 weeks agoWhen deleting a variable from the console, the MathVis data is not updated. When...
Gaia Clary [Sat, 28 Aug 2021 12:55:47 +0000 (14:55 +0200)]
When deleting a variable from the console, the MathVis data is not updated. When later trying to remove the data from MathVis we see a stack trace.

This patch takes care to update the MathVis list instantly via the
VarStates:store_states() hook

8 weeks agoCollection Manager: Improve UI for adding QCD slots. Task: T69577
Ryan Inch [Mon, 30 Aug 2021 02:15:39 +0000 (22:15 -0400)]
Collection Manager: Improve UI for adding QCD slots. Task: T69577

Replace the X labels in the QCD header widget with operators that
generate the corresponding slot when clicked, allows for moving
objects to the new slot by pressing hotkeys when clicking.  Each
unassigned slot operator has a tooltip specifying it's an
unassigned slot, which slot number it corresponds to, and lists
the hotkeys that can be used with it and their functions.

Adds a menu item to the QVT menu (the eye icon beside the QCD
header widget) to add any missing QCD slots so that you end up
with a full 20 slots.

8 weeks agoRigify: unhide the rig before generation if it is hidden.
Alexander Gavrilov [Sun, 29 Aug 2021 20:02:25 +0000 (23:02 +0300)]
Rigify: unhide the rig before generation if it is hidden.

Rig generation fails if the target rig that is to be overwritten
is hidden, either directly or via collections. To improve usability,
try unhiding the object, and fail with an appropriate message if
it doesn't work.

In addition, slightly refactor code that selects a suitable
unhidden collection to use for generation.

This started as D11355 by @Mets, but was somewhat refactored.

8 weeks agoGPencil Tools: Fix T90976 Timeline-scrub toggle
Pullusb [Sun, 29 Aug 2021 16:23:52 +0000 (18:23 +0200)]
GPencil Tools: Fix T90976 Timeline-scrub toggle

Add a checkbox in preference to Disable timeline-scrub feature.
Following task required for industry standard keymap conflict.

Also Add {key Numpad Enter} to valid Box-deform (following user request

2 months agoUpdate addons for D9697 "_RNA_UI" removal
Hans Goudey [Fri, 27 Aug 2021 13:29:15 +0000 (08:29 -0500)]
Update addons for D9697 "_RNA_UI" removal

This is a followup patch for D9697 which applies the changes to the
addon reporistory. Almost all of the changes are in rigify, but there
is one change in "curve_tools" and two trivial changes in IO addons.

Differential Revision:

2 months agoCleanup: redundant imports
Germano Cavalcante [Thu, 26 Aug 2021 16:07:25 +0000 (13:07 -0300)]
Cleanup: redundant imports

2 months agoSnap_Utilities_Line: update clip distance API
Germano Cavalcante [Thu, 26 Aug 2021 13:25:55 +0000 (10:25 -0300)]
Snap_Utilities_Line: update clip distance API

2 months agoNode Wrangler: remove unnecessary code
jim man [Thu, 26 Aug 2021 10:55:56 +0000 (12:55 +0200)]
Node Wrangler: remove unnecessary code

Differential Revision:

2 months agoSame change as in D8422, that patch forgot to address object constraints.
Demeter Dzadik [Wed, 25 Aug 2021 11:05:08 +0000 (13:05 +0200)]
Same change as in D8422, that patch forgot to address object constraints.

2 months agoFix T77022: node wranger error with texture files on different drives
Iyad Ahmed [Tue, 24 Aug 2021 16:40:55 +0000 (18:40 +0200)]
Fix T77022: node wranger error with texture files on different drives

Principled texture setup with relative path option would lead to this,
silently use an absolute path instead like other Blender operators.

Differential Revision:

2 months agoglTF exporter: fix animation export when no channels are valid
Julien Duroure [Mon, 23 Aug 2021 20:24:15 +0000 (22:24 +0200)]
glTF exporter: fix animation export when no channels are valid

2 months agoglTF exporter: remove some channel animation if bone is not animated
Julien Duroure [Mon, 23 Aug 2021 17:16:18 +0000 (19:16 +0200)]
glTF exporter: remove some channel animation if bone is not animated

Check is done after sampling: if animated is constant and bone has no fcurve, we remove the channel

2 months agoglTF exporter: change order of format option
Julien Duroure [Mon, 23 Aug 2021 17:10:34 +0000 (19:10 +0200)]
glTF exporter: change order of format option

'Embedded' generates more heavy files, so put it at end

2 months agoglTF exporter: fix crash when trying to export some muted driver(s)
Julien Duroure [Mon, 23 Aug 2021 17:08:27 +0000 (19:08 +0200)]
glTF exporter: fix crash when trying to export some muted driver(s)

2 months agoglTF export: Do not export empty node when camera or light export is disable
Julien Duroure [Mon, 23 Aug 2021 17:06:55 +0000 (19:06 +0200)]
glTF export: Do not export empty node when camera or light export is disable

2 months agoglTF export: Add merge_animation_extensions_hook
Julien Duroure [Mon, 23 Aug 2021 17:05:21 +0000 (19:05 +0200)]
glTF export: Add merge_animation_extensions_hook

2 months agoRevert "Rigify: Clean up "Rigify Buttons" panel UX"
Demeter Dzadik [Wed, 18 Aug 2021 17:39:50 +0000 (19:39 +0200)]
Revert "Rigify: Clean up "Rigify Buttons" panel UX"

Accidental commit by misclicking in VSC, yikes!

This reverts commit 9a7afcbcae91978db8173e205f0ec73f1d6ad440.

2 months agoRigify: Clean up "Rigify Buttons" panel UX
Demeter Dzadik [Wed, 18 Aug 2021 17:23:01 +0000 (19:23 +0200)]
Rigify: Clean up "Rigify Buttons" panel UX

The UX for this panel felt like it could use a facelift. It was extremely ugly to look at, nothing about it was done the correct way and it broke every possible modern Blender UI convention it could.


After generating a rig:

- Removed the "overwrite/new" enum.
- If there is a target rig object, we overwrite. If not, we create. I think that's intuitive behaviour without the extra UI element.
- If a rig object with the desired name already existed, but wasn't selected as the target rig, the "overwrite" option still overwrote that rig. I don't agree with that because this meant messing with data without indicating that that data is going to be messed with. Unaware users could lose data/work. With these changes, the worst thing that can happen is that your rig ends up with a .001 suffix.
- Removed the "rig name" text input field. Before this patch, this would always rename your rig object and your rig script text datablock, which I think is more frustrating than useful. Now you can simply rename them after generation yourself, and the names will be kept in subsequent generations.

- Renamed the panel from "Rigify Buttons" to "Rigify Generation" in pose/object mode and "Rigify Samples" in edit mode.
- Changed the "Advanced Options" into a sub-panel instead.
- Single column layout.
- Added an info message to show the name of the successfully generated rig:

Feedback welcome.

Differential Revision:

2 months agoRigify: extract skin parent mechanism mixing into a generator class.
Alexander Gavrilov [Wed, 18 Aug 2021 10:46:45 +0000 (13:46 +0300)]
Rigify: extract skin parent mechanism mixing into a generator class.

This allows cleanly avoiding reparent propagation between mirror
siblings, which causes weird deformation in chains.

2 months agoAddon: BSurfaces: use GPLv2+ for better license compatibility
Vladimir Spivak(cwolf3d) [Tue, 17 Aug 2021 11:10:37 +0000 (14:10 +0300)]
Addon: BSurfaces: use GPLv2+ for better license compatibility

2 months agoSnap_Utilities_Line: support 3d view clip planes
Germano Cavalcante [Mon, 16 Aug 2021 16:46:11 +0000 (13:46 -0300)]
Snap_Utilities_Line: support 3d view clip planes

Elements that are not visible due to clip planes are ignored in the
main operation.

2 months agoTranslation update: Fix after recent changes to Blender init code.
Bastien Montagne [Mon, 16 Aug 2021 10:42:08 +0000 (12:42 +0200)]
Translation update: Fix after recent changes to Blender init code.

Recent changes broke calling an operator from python too early during
init process, including during first draw calls.

So now moved most of `UI_OT_i18n_updatetranslation_svn_init_settings`
logic into a static method that can be called directly in this specific

Also improved situation where init fails, by showing the reset/init
settings operator in the UI still.

2 months agoCleanup: minor wording clarification for OBJ import
Campbell Barton [Mon, 16 Aug 2021 08:27:47 +0000 (18:27 +1000)]
Cleanup: minor wording clarification for OBJ import

2 months agoCleanup: obj import/export indentation
Campbell Barton [Mon, 16 Aug 2021 08:22:49 +0000 (18:22 +1000)]
Cleanup: obj import/export indentation

Also remove commented `use_mesh_modifiers_render` option which is
unlikely to be added back since this option no longer exists internally.

2 months agonode_presets: use GPLv2+ for better license compatibility
Campbell Barton [Mon, 16 Aug 2021 08:01:54 +0000 (18:01 +1000)]
node_presets: use GPLv2+ for better license compatibility

2 months agoRigify: add an operator to upgrade the old face rig to modular face.
Alexander Gavrilov [Sun, 15 Aug 2021 17:09:18 +0000 (20:09 +0300)]
Rigify: add an operator to upgrade the old face rig to modular face.

Converted from the script originally included in the feature set.

This operator aims to preserve compatibility with the existing weight
painting, but not animations, since the latter is impossible anyway
due to major differences in the rig chains.

2 months agoRigify: call request_reparent from build_parent to simplify skin API.
Alexander Gavrilov [Sat, 14 Aug 2021 20:13:11 +0000 (23:13 +0300)]
Rigify: call request_reparent from build_parent to simplify skin API.

Realized this can be simplified while writing wiki dev docs...

2 months agoBlenderKit: fixes for HDRs
Vilem Duha [Thu, 12 Aug 2021 14:15:06 +0000 (16:15 +0200)]
BlenderKit: fixes for HDRs

Now HDRs are clearly separated between true HDR files and simple 360 photos.
the 360 photos are hidden in search filter by default.
Also fixed version check for HDRs and several little tweaks to UI

2 months agoReal Snow Updates
Marco [Wed, 11 Aug 2021 12:07:41 +0000 (09:07 -0300)]
Real Snow Updates

- make the snow mesh calculation faster (by @drewp)
- fix typos in comments
- bump version to 1.2 and update authors
Resolves T90594

Co-authored-by: Drew Perttula<drewp>
2 months agoPose Library: change how cleanup is done after Copy As Asset
Sybren A. Stüvel [Wed, 11 Aug 2021 09:22:43 +0000 (11:22 +0200)]
Pose Library: change how cleanup is done after Copy As Asset

Copy As Asset creates an asset datablock, saves it to disk, and then
removes it again. This removal has a check to ensure the temp datablock
isn't accidentally still in use by something. When this check fails, it now
still forces the cleanup. The message is now there just to ask people to
file a bug report, instead of blocking their workflow altogether.

2 months agoPose Library: use functions instead of operators to mark/clear asset
Sybren A. Stüvel [Wed, 11 Aug 2021 08:34:35 +0000 (10:34 +0200)]
Pose Library: use functions instead of operators to mark/clear asset

Replace `ASSET_OT_mark` and `ASSET_OT_clear` operator calls with calls to
resp. `ID.asset_mark()` and `ID.asset_clear()`.

No functional changes.

2 months agoCleanup: strip trailing space, remove BOM
Campbell Barton [Wed, 11 Aug 2021 00:09:25 +0000 (10:09 +1000)]
Cleanup: strip trailing space, remove BOM

2 months agoRigify: move new face rig components from the experimental feature set.
Alexander Gavrilov [Tue, 10 Aug 2021 18:19:11 +0000 (21:19 +0300)]
Rigify: move new face rig components from the experimental feature set.

Apart from imports the files are identical to the latest version.

Ref T89808

2 months agoPose Library: transparently handle removal of experimental flag
Sybren A. Stüvel [Tue, 10 Aug 2021 10:53:56 +0000 (12:53 +0200)]
Pose Library: transparently handle removal of experimental flag

Add code to deal with the future removal of the experimental flag

If the `use_asset_browser` attribute is no longer there, allow the pose
library UI elements to be shown.