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. 

2020-03-31

Tips when working remotely in Maya with VNC

I spent a few hours optimizing my VNC homeoffice setup and this is what I learned. (I only tried the free editions of realVNC and tightVNC.)

TL;DR

  • realVNC supports dual monitor full screen
  • tightVNC has more control for compression/encoding
  • While moving the viewport camera, let go of ALT, but keep holding the mouse button to get rid of lag
  • Maya settings to improve framerate
    • Set background to solid color (don't use gradient)
    • Disable "Display > Grid"
    • Hide as many objects as possible for the moment
    • Get rid of color transitions on surfaces
      • Use solid shader colors 
      • Viewport panel "Shading > Wireframe" 
    • Use small viewport panel

Explanation

  1. realVNC supports dual monitor full screen. tightVNC does not (in the free edition).
  2. tightVNC has more control for compression/encoding, but it does never seem to get faster than realVNC, even with low quality and fast encoding.
  3. While moving the viewport camera, let go of ALT, but keep holding the mouse button to get rid of lag. It seems like a random bug to me: While holding a mouse button at the same time as either ALT, CTRL, SHIFT there is an artificial lag with both VNC clients. The workaround can get annoying when quickly switching camera movement types, so I thought about changing the ALT hotkey. It would also be a good idea to look at more VNC clients, to see if one does not have this issue.
  4. Maya settings to improve framerate By reducing image complexity and changes between each frame you can increase the framerate a lot, because the compressing and encoding of images will be faster (...something like that)
    • Set background to solid color (don't use gradient) ALT+b hotkey
    • Disable "Display > Grid"
    • Hide as many objects as possible for the moment this includes creating temp mesh duplicates with all polyFaces deleted that are not needed for the current task.
    • Get rid of color transitions on surfaces because this is often responsible for most of the pixel changes between frames
      • Use solid shader colors for this I got rid of the color falloff on the default material (diffuse 0.0, set incandescence), so I can switch to "use default material" + "wireframe on shaded" most of the time.
      • Viewport panel "Shading > Wireframe" 
    • Use small viewport panel to have a smaller moving object. It's the same benefit as when zooming out (==fewer changing pixels over time)

2020-02-09

The One Tool Challenge

Because there are so few useful and production ready Maya tools online. I was thinking how nice it would be, if every technical Maya user in the world would share (+support) even just one such tool in their lifetime. Putting it that way, should make it sound trivial. And if it were the case we would all be better off.
For myself I would consider prSelectionUi (https://vimeo.com/pazrot/prselectionui) to be a success in that regard. It is mostly for animators and after publishing it on highend3d and making a Vimeo video in 2012 it self distributed and to this day I find it installed at every company I go to and a lot of animators are using it.

In general I would recommend to consider:
    • Is the tool actually useful? (doing something difficult != doing something useful)
    • Can it already be done in Maya? Or has someone else already made a publicly available version?
    • Is it useful enough for other people to be worth the time and effort to learn it, install it and keep it updated?
    • Test it a while in production with a small group of people before sharing it publicly.
    • Are you willing to support it?
    If someone is looking for useful tool ideas. The most fundamental Maya UIs have a lot of room for improvement, so pretty much ever Maya user would benefit from those:
    • Connection editor with name search/filter field to reduce the time and focus required to find the right attribute. Even with alphabetic ordering is it pretty tedious and that also does not work well together with child attributes, because it orders them together with the root attributes. In addition, it would also be nice to make it scalable, like the option to connect one output into multiple nodes input attributes at the same time.
    • Add and Edit Attribute Editor for the 21st century. They have probably not been changed since 1999 and could benefit a lot from a major overhaul. I would also merge them into one.
    • A non-destructive Node editor / Hypergraph: One that does not move the editor-view and nodes around on it's own when working with it. The node editor version would be a lot more work, so I would probably start with something closer to the Hypergraph.
    • Attribute editor for multiple nodes at once (setting values applies to all nodes, not just one). I don't know how the aeTemplate reading works, so it might be really hard to do. In that case an improved Attribute Spread Sheet could be a better goal.
    I'm not much of a UI guy, so that's probably why those have been on my mind for a while and I haven't done any of them. They also don't have the biggest impact, but a huge target audience.