Character Picker

While working as a co-op student at SideFX software in Toronto, one of my main tasks was improving the Character Picker tool within the 3D animation software Houdini. This was a great opportunity to learn the inner workings of the amazing Houdini software, while learning from some of the brightest minds in the computer graphics field. It was very rewarding to have my work become available to other artists!

By Lauren D. Bhagwandat

The Tool

The Character Picker is a character rigging tool within Houdini that enables the artist to set an image of the character they wish to rig, then add a series of buttons for easy access to the character's rig controls.

Programming Technology

The tool was written in Python using PySide and the Houdini Object Model (HOM) API.

My Role

I was responsible for refining the user interface, fixing bugs, as well as implementing panning, zooming, multi-selection, and grid snapping features. Afterwards, I was responsible to providing the documentation on the SideFX website with information on how to use the new features of the tool.

Features

User Interface

Unlike the old interface (top), I refined the new interface (bottom) to resemble other tools within Houdini and better match the overall Houdini interface design. 

This included replacing the “Edit Mode” checkbox with the pencil tool button and moving it to the menu bar; fixing the drop down button next to the Character line edit so that it has a more cohesive arrow icon that is properly positioned and visible within the button; and reorganizing the top menu bar with File and Select submenus.

User Interface: Edit Mode

When the edit button is toggled, either by LMB-clicking or using the keyboard shortcut I set, the tabs can be removed or rearranged. A plus icon also appears next to the last tab to allow for new tabs to be added.

The bulky buttons hovering above the panel have been redesigned so that they are smaller and translucent in the top left corner of the panel. The button with the gear icon provides grid options, while the button with the plus icon can be clicked to add a new control button.

When adding a new control button, an outline of the new button is initially positioned at the centre of the panel (or image, if set). Pressing the Enter key officially adds the control button at that default position. Otherwise, the outline of the new button will follow the cursor and be placed down in the position where the artist LMB-clicks.

Marquee and Lasso Selection

The Character Picker now has the ability for multiple control buttons to be selected (in and out of edit mode). All selected buttons can then be moved, deleted, or retargeted simultaneously for a faster workflow. The controls are also highlighted within the Houdini viewport.

This multi-selection can be performed by using either the default marquee tool or the lasso tool. The selection tool can be changed from the Select submenu in the top menu bar. I implemented both so that they appear and behave exactly the same as the marquee and lasso selection tools in the Houdini viewport.

I also included the “Set from Viewport Selection” and “Add from Viewport Selection” options that can be found in the drop down menu of the control buttons.

 

Grid

I implemented a grid feature that can be toggled on/off while in edit mode. This provides the same benefits as the grid in the Houdini viewport for formatting control buttons. The Snap Options window can be opened from the button with the gear icon to allow the artist to adjust the cell size of the grid, as well as the minimum distance for a control button to snap into a grid position, as I will further explain below.

Zooming, Panning, and Grid Snapping

The most notable features I implemented in the Character Picker were zooming, panning, and grid snapping in a similar fashion to those of the Houdini viewport.

RMB-click-and-dragging or spinning the mouse wheel on the panel zooms in/out of the current tab panel. This does so while properly scaling and positioning the grid cells, as well as the control button and their corresponding labels.

MMB-click-and-dragging on the panel allows the artist to pan around the pane, which is useful when the image is large or the panel is zoomed in.

Whether or not the grid is made visible, grid snapping can also be toggled on so that control buttons can snap onto the corners of the grid cells for easy positioning and alignment. Four dots indicate the possible snapping points in the cell where the cursor is currently residing in. The dot becomes cyan-coloured once a control button snaps to it, which is visible when adding a new control button.