The most involved part of editing MetaHuman DNA requires understanding how poses interact. Customization and/or fixes require fine control over which expressions are affected by a given edit.
Expression Editing presents an interactive graph view of the rig’s discrete data points (expressions), their tiering, and their relationships.
The graph offers the following functionality:
Node Selection | Selection is a transient, per tab state and sets context for tool operations. |
Node Locking | Node locks are a global state (shared across all graph instances in all tabs) and control whether a node receives edits performed on upstream nodes or not. |
Node Coloring | Nodes can be individually colored. This is accessible from the right click menu, as well as directly from each node’s paint bucket icon, and saved with bookmarks. A node’s color is part of a tab’s state, and not global for that node. |
Dependency Management | Dependency Highlighting and dependency based selection and tab creation |
Graph Analysis | Heat Graph of activity (based on frame state analysis) |
Bookmarking | Custom bookmarks are possible, and Expression Editor also comes with a number of useful factory bookmarks. Bookmarks save position and color of nodes, and consider upstream and downstream nodes to prevent the creation of incomplete dependencies. |
Search Bar | Searching nodes present in the currently active tab. |
Selection and Isolation
Each node in the graph represents an expression in the rig, and can be directly interacted with in a number of ways. Controlling what’s on display in a tab is an important part of editing.
Selecting Nodes
Nodes can be selected individually or by dragging a marquee style selection box.Buttons and modifiers as follows:
LMB click and/or drag sets the selection anew
LMB Click on canvas clears the selection
Ctrl + LMB Click toggles the selection state of nodes without altering the rest of the existing selection
Ctrl + LMB Drag adds to the selection
RMB Click summons the RMB Menu with contextual options
Select Upstream Nodes
Select Downstream Nodes
Select Upstream and Downstream
Highlight Last Node’s Dependencies
Toggles an additional state that can only exist on one node at a time, marking that singular node and all its dependents both upstream and downstream for further display options. That node is always the last node that was selected (even in a multi selection case.)
Isolate Selected Branches
Opens a new tab with all selected nodes, and their upstream and downstream dependencies (as it’s always necessary to monitor their lock/unlock state for propagation.)
Isolate Highlighted Nodes
Relies on the unique highlight status of the above option to isolate highlighted nodes into a new tab regardless of selection.
Animation Support
Animation can be loaded on a rig, both Faceboard Controls and Raw RigLogic animation are supported. The type of animation loaded configures the scene appropriately.
This allows loading real world data to diagnose issues, as well as the use of artificial animation (for example, specific poses), to quickly zero-in on the important sections of Data that will need editing.
Frame Analysis
The time shuttle can be placed anywhere on the timeline. From there, using Analyze Frame updates the graph to indicate contributing elements for the pose at that frame.
Frame analysis works on keyframed channels as well as channels that have simply been set by tweaking the rig on the spot. The results are color coded (heat graph) according to their value in that pose.
This is a key component of the workflow that makes identifying what nodes to assemble and modify intuitive, and it doubles as a great diagnostic tool that requires nothing more than normal Maya interactions to use.
Previewing Expressions
The graph can reflect the state of the rig, but it’s also possible and useful to trigger updates in the opposite direction.
Selecting in the graph can update the scene to display the full effect of an expression in isolation (if the Preview Selected Node option is active)
The scene’s state can be updated to reflect the activity in the graph. Combined with the ability to have tabs hosting a subset of nodes the user can move quickly from animation, to finding a single expression to work on, to seeing their full and isolated effect, before going into editing mode.
Selection Based Analysis (Control Selection)
Update Analysis on Control Selection is also available as a RMB menu option in the graph, offering another mode of inspection for isolated contributions. Control Selection analysis, when active, will heat highlight the graph based on what Faceboard controls are selected.
This option will work in conjunction with Preview Selected Node if desired.
Bookmarks
Bookmarks, accessed from the icon at the top right corner of the graph pane, are prepopulated with factory presets for some of the most commonly edited selection sets. Users can also create their own.
Everything related to bookmarks is directly accessible from the menu, including any user bookmarks that have been created.
Expression Preview
A key part of Expression editing is ensuring that the transition between expressions looks believable.
Once an expression has been assembled one or more sliders will appear between the graph and outliner.
The top slider is always a global transition between the neutral pose and the currently edited expression.
More sliders can appear under the global slider, one for each contributing upstream expression that’s “combined” into the currently edited one. Those can be manipulated independently to inspect all transitions from upstream dependencies into the currently edited expression.
More information on Expression previewing (sliders and downstream shapes as meshes) can be found in the corresponding section of the workflow overview.
Utility Toolbar
Expression Editing offers a variety of tools hosted in a toolbar by the outliner.
The toolbar is divided in 7 sections
Mirror commands
| Button | Function | Description |
|---|---|---|
Toggle active side | Master to target left to right or right to left. When subsequent tools have directionality, the direction the copy flows in is determined by the state of this button. | |
Mirror vertex positions | Opens submenu of mesh options, options are predetermined based on available mappings. Mirror vertex positions will look at symmetric vertices (based on index pairs, not on position), then consider the selection in the scene (as a target) and symmetrize positions. If a subset of vertices are selected the operation will be limited to those alone. | |
Mirror joint transforms | Mirroring joints will consider the scene selection. If nothing is selected it will operate on the entire set of skinned joints. |
Flip commands
| Button | Function | Description |
|---|---|---|
Flip Vertices | Opens submenu of mesh options, options are predetermined based on available mappings. Flip vertex positions will look at symmetric vertices (based on index pairs, not on position), then consider the selection in the scene (as a target) and flip positions left to right and vice versa. If a subset of vertices are selected the operation will be limited to those alone. | |
Flip Joints | Flips joints left to right and right to left based on a joint sidedness correspondence map. |
Mesh Utilities
| Button | Function | Description |
|---|---|---|
Transfer Vertex Positions | Will target a mesh selected in the Expression Editor outliner, a mesh selected. | |
Delete History | A shortcut to Maya’s native functionality applied to selected meshes. |
Revert to Neutral
| Button | Function | Description |
|---|---|---|
Revert Mesh to Neutral | Opens submenu of mesh options, options are predetermined based on a specific set of meshes and their presence as blendshapes matching the selection. Reverts vertex positions of a whole mesh, or of a subset of vertices if any are selected, to each vertex equivalent position in the Neutral Pose. | |
Revert Joints to Neutral | Reverts joint transforms a selection of (unlocked) joints in the active expression, or all unlocked joints in the active expression if none are selected, to each joint’s equivalent transform in the Neutral Pose. |
Revert to DNA
| Button | Function | Description |
|---|---|---|
Revert Mesh to DNA | Opens submenu of mesh options, options are predetermined based on a specific set of meshes and their presence as blendshapes matching the selection. Reverts vertex positions of a whole mesh, or of a subset of vertices if any are selected, to each vertex equivalent position in the currently active expression as stored in memory in the DNA. | |
Revert Joints to Neutral | Reverts joint transforms a selection of (unlocked) joints in the active expression, or all unlocked joints in the active expression if none are selected, to each joint’s equivalent transform in the currently active expression as stored in memory in the DNA. |
Copy and Paste
| Button | Function | Description |
|---|---|---|
Copy Joint transforms | Copies the transform of all joints in the active expression. | |
Paste Joint transforms | Pastes the transform stored in the joints copy and paste buffer onto selected unlocked joints, or all unlocked joints if none are selected. |
Joint Matching
| Button | Function | Description |
|---|---|---|
Machine Learning based Joint Matching | Applies Machine Learning based Joint Matching to the active expression based on the in-scene mesh representing the active expression being edited. This is the only instance of Joint Matching directly available at Expression editing time (as opposed to global MLJM or NLSJM). |
Next Up
MetaHuman DNA Upgrade Tool
Upgrade an existing DNA file to the latest rig definition and DNA file format.