Genome Magma Editor Overview
The Genome MagmaFlow Editor (also called "Magma Editor" or just "The Editor" for short) is based on the same code as its Krakatoa MX 2.0.x counterpart, but it is currently an iteration ahead. The changes introduced in the Genome version will eventually appear in future versions of the Krakatoa MX.
Thus, most of the Editor-related knowledge from Krakatoa is directly applicable to the Genome version. This page will discuss the basic features and components of the Genome Editor and specifically note the differences to the Krakatoa version.
Each Genome Modifier will open exactly one Editor when the "Open Magma Editor" button is pressed. Pressing the button again will only set focus to the already opened Editor.
Any number of Editors from different modifiers in the scene can be opened at the same time.
Nodes from these Editors can be copied into the Windows Clipboard as MAXScript snippets that can be pasted into the same Editor or other Editors or even other instances of 3ds Max.
The Magma Editor supports two main user interaction approaches - mouse controls and keyboard controls. These are discussed in detail in the Krakatoa Magma Documentation and are largely the same in Genome.
The Editor Components
The MagmaFlow Editor has the following major UI elements:
The titlebar of the Editor displays a significant amount of useful information.
- It shows whether the editor belongs to GENOME or KRAKATOA.
- The GENOME version shows whether the plugin is licensed or not.
- It shows the name of the scene object using the modifier.
- The GENOME version also shows the name of the modifier based on the Preset being edited.
- To the right of the object/modifier name, the GENOME version shows a * symbol if the flow has been modified and has not been saved to disk.
- Next, it shows the REORDER mode, if Auto-Reorder is enabled. The reorder mode is accessible via the View menu, and can be toggled using the Ctrl+[R] keyboard shortcut.
- Finally, it shows the INSERT/CONNECT mode if a single node is selected in the editor. This mode is toggled via the Insert key on the keyboard and defines which output socket to connect the next node to, and whether to insert into the existing connection (INSERT) or branch out to a new connection (CONNECT).
The menu bar contains several sub-menus with useful functions. Many, but not all of them can be accessed via keyboard shortcuts.
- File menu - contains the New, Load, Save, Merge and Import file functions.
- Edit menu - contains the Undo/Redo, Copy/Paste, Branch/Insert, Select, Exit BLOP Editing and Delete operations
- View menu - contains the Auto-Reorder toggle and modes and display layout controls
- Options menu - contains various options related to the Editor's behavior.
- Expose menu - contains the select, expose, unexpose and update functions.
- Debug menu - the Genome Debugger is not implemented yet in the current Beta.
The Editor Field contains the actual nodes connected as a flow.
It provides a context-sensitive menu on a right-click over the empty background, and another menu over nodes.
The Nodes Depot hovers over the Editor Field and can be disabled or showed on the left side or the bottom of the Editor.
It provides a context-ensitive right-click menu with Depot-related options.
Current Modifier Indicator
The color "lamp" in the bottom left corner shows whether the modifier currently selected in the Modifier Panel is being edited (green) or not (yellow).
The second "lamp" to the right of the Current Modifier Indicator will be green when there are no errors, and red when there is an error. The actual error will be reported in the Error Report Field (see below) and the node where the error has been detected will be highlighted in red in the Editor Field and in the Navigator Window.
Error Report Field
The Error Report field will display the error message if there is an error in the flow. Also, it will show whether the currently selected modifier is being edited or not. See the color Indicators above for additional info.
In addition, the node where the error was detected will be highlighted in red.
In the above screenshot, an error is detected in Node 4 because the two inputs are of incompatible types - a Vector cannot be multiplied by an Integer, only by a Float or another Vector.
The Status Line is a text in the bottom right corner, displaying information about the last operation performed or the node under the mouse pointer.
The Undo/Redo buttons are located to the right of the Error Report line. They support both left click to perform one-step Undo or Redo, and right-click to display a list of all previous/next steps to perform multiple undo steps at once. Note that the Undo/Redo buffer uses files on disk, so performing an undo even 100 steps back or forward takes exactly as much effort as one step undo - a single file has to be loaded from disk.
The >AUTO checkbutton toggles the automatic updates of the modifier while performing editing operations inside the flow. When it is checked, the modifier will be updated on all changes. When it is unchecked, the modifier will not be updated when nodes are created/changed or deleted or connections are created or deleted. The latter mode can be useful if the evaluation of the modifier takes longer than desired and prevents the fast editing of the flow.
The UPDATE button can be pressed at any time to force a manual update of the flow and of the Genome modifier, mainly when the >AUTO option is turned off.
The Properties panel is located at the right side of the Editor and displays one or several rollouts related to the current selection.
The Navigator Window is located at the bottom right corner of the Editor. It shows a simplified schematic view of all nodes in the Editor (minus the wires and the output nodes). A blue border would display the location of the current viewing area relatively to the nodes.
Left-clicking the Navigator will center the Editor at the clicked point.
Right-clicking the Navigator will display a context menu with with options to set/reset Pan and Zoom.
The Magma Editor supports many different approaches for creating nodes. They can be mixed in the workflow depending on the situation and your skill level. After using the Editor for a long time, you will probably develop your own favorite workflow that gives you the best performance and convenience.
Dragging Nodes From the Depot
The Nodes Depot shows all built-in Magma operators exposed by Genome, and can also optionally show all custom Compound operators (aka BlackOps or BLOPs for short).
The nodes are organized in Categories listed in the Depot. To see the nodes in a Category, click on the Category button to expand its list. To create a node, drag it into the Editor Field. Note that when the Depot is located at the bottom, the node must be dragged up, higher than its original position. If the Depot is located at the left side, the node must be dragged to the right, farther than its original horizonatal position. Dragging a node in the opposite direction will cancel the operation (either dragging down when the Depot is at the bottom, or left when the Depot is on the left).
A faster system for accessing all nodes found in the Depot is by pressing a key corresponding to the Category of the Depot to open a menu with the nodes in that Category. Most entries in these menus will have their own automatically-assigned shortcuts, thus pressing another key would create the respective node. All Categories use the first letter of their name as the shortcut except for Trigonometry which uses the second letter "r" since T is already used by the Transform category.
For example. pressing "A" will open the "Arithmentic" menu, then pressing "B" will create the Abs operator. This is easy to remember since you type the first two letters of the operator's name. In some cases, the second letter might not be that obvious, but you can also click with the mouse to select a node from the menu instead.
This approach is the most universal since it can be performed very fast with just the keyboard, or intermixed with mouse clicks when desired. You can also access a full menu with all categories by pressing the [`/~] key which is usually to the left of the numbers row on US keyboards, or by right-clicking an empty area of the Editor Field and selecting "Create Nodes Menu..."
Direct Keyboard Shortcuts
Some of the most-often used operators also have dedicated single-stroke keyboard shortcuts to save even more time when creating flows.
For example, the Arithmetic operators Add, Subtract, Multiply and Divide are directly accessible via the corresponding keys on the Numeric Keypad. The Vector Dot Product is accessible by pressing the . (period) key.
Holding SHIFT and pressing a letter key usually creates a channel whose name starts with that letter, for example SHIFT+P produces the Position channel as InputChannel node, SHIFT+N is Normal channel, SHIFT+S is Selection channel and so on.
Holding Ctrl and a numeric key from the top row of the keyboard produces a corresponding Float InputValue, while SHIFT+numeric keys creates a Vector InputValue usually representing a Color (SHIFT+1 is red, SHIFT+2 is green, SHIFT+3 is blue and so on).
The full list of these keyboard shortcuts is available in the Krakatoa Magma documentation and is mostly identical for Genome. Also, this approach is used largely together with the multi-stroke approach throughout the Genome Examples section demonstrating the creation of new flows.
Dragging Wire From Socket
This approach is similar to the way the Slate Material Editor in 3ds Max lets you drag a connection from an empty socket into an empty are of the Editor and select a node from a list. In addition, the Magma editor can sometimes create the correct node automatically, given the type of the node is fully defined by the type of the Input socket. For example, dragging a wire from the "Lookup Point (WS)" socket of the NeatestPoint operator will automatically generate a Position InputChannel node AND a Transform > ToWorld operator since the input is expected in World Space (WS). In such cases, holding the Ctrl key while releasing the mouse button will show the full create node menu as an override to the automatic behavior.
Half of the flow creation process consists of connecting the nodes in a logical way. We at Thinkbox Software understand that this can be a tedious process and have worked hard to provide some intelligent auto-connecting features to reduce the need for manual creation of connections between nodes to the absolute minimum.
When a new node is created, the existing node selection in the Editor is queried to figure out possible connections. These depend largely on the type of the node being created and the nodes that are already selected.
For example, if a new operator is being created and an existing operator is selected, the new operator will be connected AFTER the existing one. If the existing operator is already connected to another node, the new operator will be inserted into the existing connection, unless the [INS] key is pressed to switch from INSERT to CONNECT mode - in that case, a new branch will be created.
If an operator is created and one or more Input nodes are selected, the Input Nodes will be connected to the input sockets of the new node.
If an Input node is created and the existing selection is an operator, the new node will become an input of the selected one, assuming there is an empty input socket left to connect to. If the existing selection is another Input node, both will become selected, expecting a new operator to connect to both of them, and so on.
In addition to this smart auto-connection behavior, the Magma editor also supports a manual connection function accessible through the SPACEBAR key. Selecting two or more nodes and pressing the SPACEBAR will sort the nodes spatially from left to right and attempt to connect from left to right based on the names of the input and output sockets. If the names don't match but only two nodes are selected, the left node's output will become the right node's input, if possible.
The Magma Modifier in Krakatoa uses the names of the output channels to define the modifier name that appears in the Modifier stack. This behavior would make little sense in Genome since all Deformation Modifiers output to Position channel, but calling a Push and a Noise the same would be a bad idea.
For that reason, the Genome modifier will be named according to the name of the Preset that is loaded in it. If a flow is created from scratch, it will have no name until saved to disk, after which the modifier will be named accordingly. In other words, if you select the "Push" modifier preset from disk, the modifier will be renamed to "GNM_Push". If you create a new flow using some Sine operators and save it as "SinWaveMadness" Preset, the modifier will be renamed to "GNM_SinWaveMadness". Note that when opening the Editor, the name of the Genome modifier will be used to determine the name of the flow. For example, if you rename the modifier manually to "GNM_JustTesting", then open the Magma Editor and select File > Save..., the proposed Preset name to save to will be "JustTesting".
After resetting the flow to start a new one, the modifier will be renamed back to "Genome" until a name is specified by a saving or loading operation.
Before replacing or resetting the current flow, a prompt will be shown allowing you to save the current flow if it has been modified. The name of the preset (if any) will be shown in the title bar and a * symbol will appear next to it when it has been modified and requires saving.
You can disable the auto-renaming of the modifier via the checkbox in its UI.