2020-07-18

prPanelCtx - making of


Source

Description
This script allows the user to have temporary panel settings during manipulator dragging and timeline changes (dragging, playback). The idea was to hide control shapes during this time, to allow animators to evaluate the deformation.
When using this script together with Mayas controller autohide on proximity, it can get pretty close to "Pixar style controls"

Related
The purpose is similar to "Pixar style controls". I'm not aware of a publicly available version of them. I have only seen around a dozen videos of prototypes from independent users.

Origin
I randomly stumbled upon the -preDragCommand and -postDragCommand flags of the manip*Context commands (manipMoveContex, ...). Before that I was not aware that the user can access these events. So when I saw them I thought they can be used for the purpose of this script.

Evolution
At first I thought about setting an attribute in the rig (global control visibility switch). But then I realized that it makes more sense to use it like a Maya setting and change the panel settings ("Panel > Show > .."), because:
  • It works for any rig and does not introduce any per asset requirements (visibility attribute has to exist and has to be hard coded in the script)
  • It can hide shot objects that are not part of the rig, like locators used for constraint setups
  • It makes the animator completely independent and gives them full control over what to hide
  • Can be used to hide the manipulator itself and other panel settings (wireFrameOnShaded, ...)
After that was done I added the timeline dragging / playback context. This is partially already possible in Maya:
- Custom Playblast settings "panel > show"
- Display layer playback setting

Comparison
Compared to "Pixar style controls" it is not as intuitive, but there are some advantages:
- It has less complexity than writing a Locator plugin that works in all Maya Viewports (legacy, 2.0) and on different OSs.
- It does not introduce dependency. The animator does not rely on an RnD department to develop the plugin and a rigging department to create these custom controls for each asset.
- It does not slow down the rig. In my limited speed testing it actually did speed up all the rigs a little bit.

Limitations
I could not find a way to access camera and channelBox dragging.
I could not find a way to make it work with component selection for modeling. Because the command flags I'm using require there to be a specific node type in the selection.

Personal usage
I don't think its that useful when rigging. I usually auto-hide the manipulators and only sometimes do I hide the controls in the timeline context when I'm working on the deformation. 

2 comments:

  1. Hey, I stumbled across your 'Baby Dragon' vid - I was wondering if I could have a copy of the rig for a personal project, please? Happy to pay and give full credit etc :)

    Thanks!
    Ash

    ReplyDelete
    Replies
    1. Hi Ash, sorry the rig is not publicly available and it's not worth the effort and legal implications to do so, by at least one order of magnitude in my estimate.

      Delete