WIP: Rigify - modifier keys on Rig Layers buttons #104998

Draft
Paolo Acampora wants to merge 6 commits from PaoloAcampora/rigify-ui-improvements:panel_modifier_keys into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Member

I was looking for a quick way to select rigify controls so I added modifier keys to the rigify layer buttons. The interface remains the same, but I can use Shift + Left Mouse Click to select all the bones of the layer

rigify_keys_crop.gif

Ctrl + Left Mouse Click deselects the bones of a layer

rigify_keys_unselect.gif

Using Alt + Left Mouse Click on a layer displays a bone selection panel, similar to a picker

rigify_keys_panel.gif

Bones like Leg.L.001, Arm.R.003 are grouped under their base bone and accessed via a subpanel

rigify_keys_subpanel.gif

The old Click to show/hide behavior is mantained

display.gif

But since I am using an operator instead of a property, the ability to show/hide multiple layers at once with drag click is lost. So I implemented the old behavior as an option

layer_modes.gif

And since it's a lot of new stuff, I added an info icon to expand the button labels and display a brief

layer_info.gif

Please let me know if we can merge this in main and if any change is required from my side: I will be very glad to have this in rigify

Thanks,
Paolo

I was looking for a quick way to select rigify controls so I added modifier keys to the rigify layer buttons. The interface remains the same, but I can use **Shift + Left Mouse Click** to select all the bones of the layer ![rigify_keys_crop.gif](/attachments/2fe0f4ce-faff-4672-8d45-49f358bde3fe) **Ctrl + Left Mouse Click** deselects the bones of a layer ![rigify_keys_unselect.gif](/attachments/e07f9f6e-93b0-45b3-8343-9b99644195ef) Using **Alt + Left Mouse Click** on a layer displays a bone selection panel, similar to a picker ![rigify_keys_panel.gif](/attachments/218210b4-229f-4c8c-be17-42375d23f3c2) Bones like Leg.L.001, Arm.R.003 are grouped under their base bone and accessed via a subpanel ![rigify_keys_subpanel.gif](/attachments/41e53d25-5b4d-4384-9f14-1c57d598560b) The old Click to show/hide behavior is mantained ![display.gif](/attachments/3a15c06e-ef97-48e6-b623-0d67fa514e48) But since I am using an operator instead of a property, the ability to show/hide multiple layers at once with drag click is lost. So I implemented the old behavior as an option ![layer_modes.gif](/attachments/cacd608d-fbc6-40a1-88ae-15b11ed3558d) And since it's a lot of new stuff, I added an info icon to expand the button labels and display a brief ![layer_info.gif](/attachments/4d0eb6d9-e3a6-44e8-9b9e-54727f087576) Please let me know if we can merge this in main and if any change is required from my side: I will be very glad to have this in rigify Thanks, Paolo
Alexander Gavrilov was assigned by Paolo Acampora 2023-11-15 00:37:09 +01:00
Demeter Dzadik was assigned by Paolo Acampora 2023-11-15 00:37:09 +01:00
Ivan Cappiello was assigned by Paolo Acampora 2023-11-15 00:37:09 +01:00
Nathan Vegdahl was assigned by Paolo Acampora 2023-11-15 00:37:09 +01:00
Sybren A. Stüvel was assigned by Paolo Acampora 2023-11-15 00:37:09 +01:00
Paolo Acampora added 6 commits 2023-11-15 00:37:12 +01:00
Member

Nice idea! I think the discoverability solution is a bit unorthodox, but it's better than nothing and Blender, or at least the PyAPI, doesn't really have a standard design for teaching users about alternative mouse interactions, afaik.

Note that I don't really consider myself either a Rigify user or developer lately, so I'm merely giving feedback as a fan.

Nice idea! I think the discoverability solution is a bit unorthodox, but it's better than nothing and Blender, or at least the PyAPI, doesn't really have a standard design for teaching users about alternative mouse interactions, afaik. Note that I don't really consider myself either a Rigify user or developer lately, so I'm merely giving feedback as a fan.
Member

Seems quite an improvement to me.

But since I am using an operator instead of a property, the ability to show/hide multiple layers at once with drag click is lost. So I implemented the old behavior as an option

I don’t like this though. We can try to sort out a better solution.

Specifically i believe that either we take in account the drag select as a useful method (in which case we should make something similar work too) or we drop it in favor of a new solution.

The new/old style method seems to me something like a global preference. Having it constantly exposed, even if useful, contributes to ui/ux clutter imo.

Seems quite an improvement to me. > But since I am using an operator instead of a property, the ability to show/hide multiple layers at once with drag click is lost. So I implemented the old behavior as an option I don’t like this though. We can try to sort out a better solution. Specifically i believe that either we take in account the drag select as a useful method (in which case we should make something similar work too) or we drop it in favor of a new solution. The new/old style method seems to me something like a global preference. Having it constantly exposed, even if useful, contributes to ui/ux clutter imo.

I don't know by heart if there are any guidelines for altering a button's behaviour with modifier keys. AFAIK none of the buttons in Blender do this. I also can't find anything in the HIG about this.

@pablovazquez @JulianEisel could you enlighten us about this?

I don't know by heart if there are any guidelines for altering a button's behaviour with modifier keys. AFAIK none of the buttons in Blender do this. I also can't find anything in the [HIG](https://wiki.blender.org/wiki/Human_Interface_Guidelines) about this. @pablovazquez @JulianEisel could you enlighten us about this?
Member

I don't know by heart if there are any guidelines for altering a button's behaviour with modifier keys. AFAIK none of the buttons in Blender do this.

There are a few places where it does. Snapping, Outliner, Edit mode selection modes too.

The Outliner uses multi-line tooltips, which I think makes it the most clear:
outliner

Edit Mode selection modes use "Shift-Click" or "Ctrl-Click" which I think is less readable than the Outliner's approach.
Selection modes

> I don't know by heart if there are any guidelines for altering a button's behaviour with modifier keys. AFAIK none of the buttons in Blender do this. There are a few places where it does. Snapping, Outliner, Edit mode selection modes too. The Outliner uses multi-line tooltips, which I think makes it the most clear: ![outliner](/attachments/097f551c-153d-47ee-a402-43322339b896) Edit Mode selection modes use "Shift-Click" or "Ctrl-Click" which I think is less readable than the Outliner's approach. ![Selection modes](/attachments/3ee2aa39-25a3-4153-a391-7ccc07f69315)
123 KiB
162 KiB
Author
Member

Hi, make sense: I'll switch the info to tooltips and polish the UI

Cheers,
Paolo

Hi, make sense: I'll switch the info to tooltips and polish the UI Cheers, Paolo
This pull request has changes conflicting with the target branch.
  • rigify/rig_ui_template.py

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u panel_modifier_keys:PaoloAcampora-panel_modifier_keys
git checkout PaoloAcampora-panel_modifier_keys
Sign in to join this conversation.
No reviewers
No Milestone
No project
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#104998
No description provided.