Layout Editor
LAUNCH
- Golaem Shelf:
- Golaem Render Menu: Simulation Cache Layout
- MEL Command: glmOpenCacheLayoutEditor;
- Stand Alone: ./scripts/glm/layout/layoutEditorStandAlone.py
SIMULATION CACHE LAYOUT GUI
The Simulation Cache Layout Editor displays the information about the deformation applied to a Simulation Cache Proxy node.
It is composed of several parts:
Menu
Open a new tab in the layout graph edition panel | |
Open a layout file in a new tab in the layout graph edition panel | |
Save Simulation Cache Layout file (.gscl) with the Deformation Layers added to the Layout Operations Panel for every Crowd Field of every Simulation Cache Proxy in the scene | |
Save As Simulation Cache Layout file (.gscl) with the Deformation Layers added to the Layout Operations Panel for every Crowd Field of every Simulation Cache Proxy in the scene | |
Clear the current tab in the layout graph edition panel | |
Change the settings of the Layout Tool | |
Synchronize selection with the DCC toggle button | |
Frame the Layout Graph Edition panel view to see all nodes | |
Frame the Layout Graph Edition panel view to see the current selection | |
Zoom the Layout Graph Edition panel view to the real size | |
Open the Simulation Cache Entity Inspector | |
Enable/Disable the Search Field panel | |
Enable/Disable the Node Library panel | |
Enable/Disable the Cache Status panel | |
Enable/Disable the Attribute Editor panel | |
The PLE indicator indicates that the Layout Editor is currently open with PLE license only. Any file saved from this session will become marked with PLE. This button is not displayed if the Layout Editor found a valid lite license. |
Nodes Library panel
This panel display the list of layout nodes that you can use to build your layout graph. Simply drag and drop them from the Layout Node Library to the layout graph edition panel.
Note node to add a note in the layout graph | |
Entity Selector node | |
Group node to organize layout in sub graphs | |
Merge node to merge layout flows |
Transformation Layers
Translate node to translate character's positions | |
Rotate node to rotate character's orientations | |
Face to to make characters face toward a given point | |
Scale node to scale characters | |
Expand node to scale distance between characters |
Duplicate Layers
Duplicate node to duplicate characters | |
SnapTo node to duplicate characters and snap them on Population Tool slots | |
CreateEntity to create an entity from a character file |
Visibility Layers
Kill node to remove characters from the viewport and the rendering | |
Unkill node to restore characters to the viewport and the rendering |
Time Edition Layers
Set Frame to set the frame data to use for characters | |
Frame Offset node to offset Simulation Caches for characters | |
Frame Warp node to warp Simulation Caches for characters |
Posture Edition Layers
Posture node to edit the orientation of Character Bones | |
Rig node to import the Simulation Cache as a keyframed Maya skeleton and allow to edit curves | |
Look At to make characters look at a given point | |
BlindData to edit the blind data values (like blend shapes) | |
Ground Adaptation node to edit the ground adaptation mode | |
PlayAnimation to replay an animation file on an entity |
Trajectory Edition Layers
Trajectory Vector Field node to constrain the trajectory of Characters to a Vector Field | |
Edit Trajectory node to edit the trajectory of characters |
Geometry Edition Layers
Set Rendering Type node to edit the Rendering Type assigned to a Character | |
Set Mesh Assets node to edit the Mesh Asset assignment of a Character | |
Add/Remove Mesh Assets node to edit the Mesh Asset assignment of a Character | |
Replace Shader node to edit the Shader assigned to a Character Mesh Asset | |
Set Shader Attribute node to edit the Shader Attribute value assigned to a Character Shader | |
Set Attribute node to edit cache attribute values, that can be used in previz or rendering operations | |
Mirror Geometry node to mirror the geometry of a Character | |
Replace LOD Distances node to replace the lod distance of a Character file |
Layout graph edition panel
The layout graph edition panel is the place where you can edit the layout graph. Each tab represents a different layout graph. The tab can can be renamed by right clicking on the current tab:
Rename the current tab by right clicking on it
Understanding the graph
You can zoom in/out in the graph by using the mouse scroll.
You can pan in the graph by holding the Alt + mouse middle click while moving the mouse in the Layout Graph Edition panel.
Nodes
There are two kind of nodes:
- 'selector' nodes changes the current selection of entities in the flow. They are represented in light gray:
- 'operator' nodes perform operations on the currently selected entities in the flow. They are represented in dark gray:
Some nodes are both a selector and an operator: they perform an operation on the currently selected entities in the flow, but also changes the current selection of entities in the flow. This is for instance the case for the duplicate and snapTo nodes: they duplicate the currently selected entities while changing the selection to be the duplicates entities from now on.
Execution flow
The layout graph executes any node that contributes (is directly or indirectly connected on the left) to the root node (colored in cyan).
A node that is connected to the left of another node will always be executed first.
When a merge occurs, all nodes connected to the left of the merge node will be executed first, but there is no guaranty about the order in which it's going to be executed. If the order of execution matters, then nodes should be connected in the same single line of execution.
For instance, a layout graph that looks like this:
Will have the following execution flow:
- Flow A will be executed before flow C, but may be executed after D as it is not connected to its left
- Flow B will be executed before both flow C and flow D
- Flow C and D will both be executed before Flow F
- The Operator that is at the beginning of Flow F will use a selection that is a union of the selections from Flow C and D
- Flow F is executed last (as it includes the root node)
- Flow E will never be executed (it's not connected to the left of the Root node)
- Flow G will never be executed (it's not connected to the left of the Root node)
Automatic replacement of duplicate Ids with node output syntax
From Golaem 7.1 and higher, it is possible to stack several layouts on a cache. That implied a change in the duplicate entities ID management. As the duplicate IDs are a general pool, shared by the whole layouts stack, generating a new duplicate ID in a low index layout file, would shift all duplicate IDs of the higher indices ones. If the IDs are stored as they are generated, this could lead to a second layout file editing different entities onces the first one grow with more entities. To avoid that, the duplicate IDs of a layout are now automatically replaced by a syntax indicating that their are the output of a duplicate/snapTo node. This syntax is o([nodeId], [entityIndex]), standing for "output of node" nodeID, [entityIndex]th entity in node output. With that modification, all tweaks added to an entity duplicated in the same layout will stay consistent.
Editing the graph
Adding a node
- Drag and drop a node from the Layout Nodes Library
- Hit the 'tab' key in the Layout Graph Edition Panel, which will open a menu in the view:
Type the node type name or simply select the node to add from the list to add it to the graph. - Use Maya translate / rotate / scale manipulators, while some entities are selected (in F9 mode). It will add a selection + node to the end of the root node with the current selection
- Double-click on a layout editor node in the shelf : if the selection is valid, it will add a selection + node to the end of the root node, else it will stack the node after the root node (if it exists). Double-clicking a selector node creates a selector with the current selection.
Removing a node
Select the node in the Layout Graph Edition Panel and hit the 'delete' key
Moving a node
- drag and drop the node in the Layout Node Library
- select the nodes to automatically layout and hit the 'L' key
Editing a node
- click on a node to show/edit the list of its parameters in the Attribute Editor panel
Check the meaning of each parameter directly in the node's documentation page
Connect/Disconnect nodes
To connect a node, you can:
- left click from one node plug to the other node's plug
- middle click from anywhere on the node to anywhere on the other node to connect
- move the node over an existing connection to insert the node between the two other connected nodes
To disconnect a node, you can;
- select a connection and hit the 'delete' key
- move the node to disconnect while holding the 'ALT' key
- use the cut tool by holding the 'ALT' key, while cutting the connection(s)
Set root node
Select a node and hit V key, or right click on the node and select the 'Set as root' option
Grouping / Ungrouping nodes
Nodes can be grouped by selecting some nodes, then right clicking and clicking 'Group'. They can also be dragged and dropped on an existing group node, or copied from somewhere and paste in the group. Ctrl + G key also groups current selection under a new node.
Nodes can be ungrouped by selecting a group node, right clicking and clicking 'Ungroup'.
Navigation one step "up" from current group can be achieved with a Ctrl + double clic.
Misc
A node can be enabled or disabled by right clicking on it and selecting the 'Enable' or 'Disable' option.
Nodes can be copied/pasted:
- by using the Ctrl-C (to copy) and Ctrl-V (to paste) key shortcut
- by using the Ctrl-D (to duplicate) key shortcut
- by right clicking on the node(s) to copy and selecting the 'Copy' option, and then right clicking in the same Layout Graph Edition panel and selecting the 'paste' option
PLE indicators
There are two distinct PLE indicators () in the Golaem Layout Editor:
- one in the Menu, it is displayed only if no layout license was found, and indicates that any layout file saved with the editor will become PLE
- one in the Layout graph edition panel, it is displayed only if the opened layout file is already PLE.
Note that once a layout file is PLE marked, there is no way to un-PLE it, even with a valid license.
Please read the PLE license section in the documentation.
Renaming a tab
Tabs can be renamed by right clicking in the Layout Graph Edition panel or the opened tab and selecting the 'Rename tab' option
Settings
The settings panel allows to edit the Layout Tool global settings
Search Field panel
The selector panel allows to select entities or nodes by search string.
To select entities, set the selector to "Entity IDs", enter a search string, and hit enter. The resulting entities will be selected in the Maya scene. Examples of selection strings are:
- '1001' : directly select a single entity by its ID
- '1001,3001': select several entities by their ID
- '1001-3001': select a range of entities
- 'et(0)': select all entities of type '1'
- 'cf(1)': select all entities that were simulated in a crowdfield index '1'
To select nodes, set the selector to "Node Names", enter a search string, and hit enter. The resulting node(s) will be selected in the Layout graph edition panel. You can use the '*' wildcard whenever searching for a partial string (for instance, 'SnapTo' won't find the node named 'mySnapTo', while '*SnapTo' will).
Attribute Editor panel
The attribute editor panel is the place where you can edit the parameters of layout nodes.
To edit a node's parameter, simply select the node you want to edit in the Layout graph edition panel, and the Attribute editor panel will display the parameters that can be edited.
Layout Cache panel
This panel displays the amount of RAM that is currently used by the Golaem Cache. Whenever the cache is full, old frames in cache will be dropped to add new frames.
Status Messages
This line will display the currently selected entities in Maya.
Layout Editor Display Level of details
The editor can use three different display modes, depending on the zoom level, to keep if fast and readable.
While the editor is focused on a few nodes, the level of detail is maximum, showing each node parameter and its value.
When the editor is being zoomed out, the parameters are not displayed anymore to (performance saving) as they are not readable anymore.
When zoomed out further, the title logo starts to be unreadable, and is moved in a bigger version, displayed inside of the node, which helps to keep track of what are the transformation types of each node.