RSS< Twitter< etc

Creating Magma Nodes - Krakatoa For Maya

Work In Progress - Last Edited on 2013/11/21

Overview

Krakatoa MY 2.3.0 implements a first iteration of the node-based Magma channels editor previously available in Krakatoa MX for 3ds Max.

For a list of all available nodes and their functionality, please see Krakatoa Magma Node Types.

Node Creation Approaches

Krakatoa Magma provides several workflows for node creation. They can be used interchangeably or exlusively - we understand that every artist prefers a different way of working and have attempted to make all of them as easily accessible as possible.

To create new Magma nodes, you can use one of these major approaches:

  • Category Menus - clicking on a Category menu title or pressing ALT+Menu Key will pop up a menu containing the node names of that Category and their shortcut keys. Selecting a node from the menu or pressing the shortcut key will create an instance of that node type in the Magma Flow field. The Menu Keys are typically the first letter of the Category, except for Trigonometry (R) and OUTPUT (P) since their first letters are already used by Transform and Object, respectively.
  • Mouse Right-Click Menu - right-clicking anywhere in the Editor's background will pop up a menu similar to the Category Menu, but without the keyboard accelerators. You can create all supported nodes using this menu. If a node or a connection is already selected, the new node will attemt to auto-connect according to the selection (see further on this page for details).
  • Keyboard Shortcuts - some of the major node types (but not all of them) are exposed as dedicated hard-coded keyboard shortcuts for even faster access. 
  • Attribute Panel Converter Shortcuts - some of the nodes like InputChannel, IntersectRay, NearestParticle etc. provide convenience buttons in the Node Attribute panel for insering typical operators at the output sockets of the node. For example, an InputChannel can be converted to a different type, transformed into a different coordinate system etc. with a single click.
  • Dragging a connection from a socket - dragging a connection from any input or output socket and release over an empty area of the Editor will pop up a Menu with special options, or a Aull Nodes Menu similar to the Right-Click Menu, but respecting the current socket type. Some sockets provide options to create one or more relevant nodes. For example, dragging from the Geometry input socket of all geometry operators will show a menu with options to create an InputGeometry node automatically or connect to an existing one; dragging from the Ray Origin of an IntersectRay will offer to create both a Position InputChannel and a ToWorld Transform node, and so on. Note that using this method will always branch out the new connections and never insert new nodes into existing connections.

When a node is created using any method, it will be automatically selected and you can edit its parameters immediately in the Magma Attributes Editor panel.

Node Placement

The Magma editor provides a Manual mode where all nodes are positioned semi-automatically on creation, and manually after creation, as well as several Automatic Reoder modes which can be cycled using the CTRL+Rkeyboard shortcut, or by selecting from the drop-down list at the bottom of the Editor's UI.

When a node is created in Manual mode, its position will depend on the last selected node's position: 

  • If an operator is being created, it will be placed to the right of a previous operator or Input node, and to the left of a previous selected Output.
  • If an Input is being created, it will be placed to the left of a previously selected operator or Output node.
  • If an Output node is being created, it will be placed underneath the last created Output node, regardless of what was the last selection - this lets you create several Output nodes in one go and they will be placed in a column in the right-hand side of the Editor. 

Auto-Connecting Nodes

If another node is selected when a new node is created, the Magma Editor will attempt to connect the two nodes automatically, typically using the first output sockets and the first free input sockets of the nodes. For example, 

  • if you have selected an Output node and create a new InputValue or InputChannel node, the output socket of the Input node will be automatically connected to the input socket of the Output node.
  • If an Input node is selected and a new Operator (e.g. Add, Multiply etc.) node or an Output node is created, the output socket of the Input node will be connected to the first input socket of the new node.
  • If an Operator node is selected and a new Operator node is created, its first input socket will be connected to the first output socket of the existing node. If the existing operator is already connected to another node, the new operator will be inserted into the existing connection by default, unless the Insert/Branch option is switched to "Branch" either via the UI or by pressing the INS key.

If a single existing Connection wire is selected during the creation of an Operator node, the new node will be inserted into it by passing the connection through the first input and first output sockets. 

Connecting Nodes Manually

In addition to the convenient auto-connecting, you can of course connect nodes using the mouse by dragging from node sockets. Magma supports dragging in both directions - you can drag from an output socket and release at an input socket of another node, or drag from an input socket and release at an output socket of another node.

In addition, since hitting sockets with the mouse is a relatively precise operation regardless of the large size that was given the sockets in the Krakatoa MY Magma implementation, you can perform some connecting operations using manual selection and hitting the SPACEBAR key. 

  • If you select one Input node and one Operator or Output node and hit SPACEBAR, the Input's only output socket will be connected to the first empty input socket of the other node, if any.
  • If you select an Operator node and an Output node and hit SPACEBAR, the first output socket of the Operator will be connected to the only input socket of the Output node.
  • If you select two Operator nodes and hit SPACEBAR, the relative X position will be used to determine the source and taget, with the source node being the left one. The source node's first output socket will be connected to the first unconnected input socket of the target node. To connect the other way, just move the right node to the left of the other node.

Node Creation Keyboard Shortcuts

In addition to using the various menu systems for creating nodes, the following accelerators are available to speed up access to some of the most often used operators. These keyboard shortcuts largely match their counterparts of Krakatoa MX Magma in 3ds Max.

Creating Output Nodes

To create an Output node and write ot an existing or to a new channel, you can press one of the following keyboard shortcuts: 

  • Ctrl+O - create a new Output node. The Output Channel will be set in the order of the drop-down list, cycling through the list as you keep on adding nodes. For example, pressing Ctrl+O four times will make four Output nodes with channels "Position", "Color", "Density" and "Emission".
  • SHIFT+CTRL+P - create a new Position Output.
  • SHIFT+CTRL+N - create a new Normal Output.
  • SHIFT+CTRL+V - create a new Velocity Output.
  • SHIFT+CTRL+C - create a new Color Output.
  • SHIFT+CTRL+B - create a new Absorption Output.
  • SHIFT+CTRL+E - create a new Emission Output.
  • SHIFT+CTRL+D - create a new Density Output.
  • SHIFT+CTRL+A - create a new Age Output.
  • SHIFT+CTRL+L - create a new LifeSpan Output.
  • SHIFT+CTRL+I - create a new ID Output. 

Creating Input Channel Nodes

To create an InputChannel node with a specific channel, you can press one of the following keyboard shortcuts: 

  • SHIFT+P - create a new Position InputChannel 
  • SHIFT+N - create a new Normal InputChannel 
  • SHIFT+V - create a new Velocity InputChannel 
  • SHIFT+C - create a new Color InputChannel 
  • SHIFT+B - create a new Absorption Channel
  • SHIFT+E - create a new Emission Channel
  • SHIFT+D - create a new Density Channel
  • SHIFT+A - create a new Age InputChannel
  • SHIFT+L - create a new LifeSpan InputChannel
  • SHIFT+I - create a new ID InputChannel  

Note that the Input Channel name and type can be freely changes after the node creation, in other words after creating a Position InputChannel, you can simply switch its channel name to Normal, Color or any other available channel name as needed.

Creating InputValue Nodes

InputValue nodes provide animatable Float, Integer and Vector values to be used in mathematical operations. The type of the value can be changed after the creation of the node, in other words a Vector input can be switched easily to Float without deleting and recreating the node.

To create an InputValue node, either use the Right-Click Menu, use the INPUT Category button and select a value type from the InputValue sub-menu, or use one of the following shortcuts which also define convenient initial values: 

  • 1,2,3,4,5,0 - create a new Integer InputValue with the corresponding value
  • CTRL+1,2,3,4,5,6,7,8,9,0 - create a new Float InputValue with the corresponding value
  • SHIFT+1 - create a new Vector InputValue with a value of Red (1,0,0)
  • SHIFT+2 - create a new Vector InputValue with a value of Green (0,1,0)
  • SHIFT+3 - create a new Vector InputValue with a value of Blue (0,0,1)
  • SHIFT+4 - create a new Vector InputValue with a value of Cyan (0,1,1)
  • SHIFT+5 - create a new Vector InputValue with a value of Magenta (1,0,1)
  • SHIFT+6 - create a new Vector InputValue with a value of Yellow (1,1,0)
  • SHIFT+7 - create a new Vector InputValue with a value of White (1,1,1)
  • SHIFT+0 - create a new Vector InputValue with a value of Back (0,0,0)
  • SHIFT+CTRL+1 - create a new Vector InputValue with a value of -X (-1,0,0)
  • SHIFT+CTRL+2 - create a new Vector InputValue with a value of -Y (0,-1,0)
  • SHIFT+CTRL+3 - create a new Vector InputValue with a value of -Z (0,0,-1) 

Creating Arithmetic Operator Nodes

To create an Arithmetic Operator node, either click on the Arithmetic Category button and select an Operator type from the list, or use one of the following shortcuts exposing some of the major operations: 

  • Numpad + - create a new Arithmetic > Add operator
  • Numpad - - create a new Arithmetic > Subtract operator
  • Numpad / - create a new Arithmetic > Divide operator
  • Numpad * - create a new Arithmetic > Multiply operator
  • SHIFT+- - create a new Arithmetic > Negate operator
  • 6 - create a new Arithmetic > Power operator

Creating Function Operator Nodes

To create a Function Operator node, either click on the Function Category button and select an Operator type from the list, or use one of the following shortcuts exposing some of the major operations:  

  • CTRL+B - create a new Function > Blend operator.
  • CTRL+ALT+C - create a new Function > Clamp operator.
  • CTRL+N - create a new Function > Noise operator.
  • CTRL+ALT+N - create a new Function > VecNoise operator. 

Creating Logic Operator Nodes

To create a Logic Operator node, either click on the Logic Category button and select an Operator type from the list, or use one of the following shortcuts exposing some of the major operations:  

  • - create a new Logic > Equal operator
  • SHIFT+< - create a new Logic > Less operator
  • SHIFT+> - create a new Logic > Greater operator
  • SHIFT+? - create a new Logic > Switch operator

Creating Trigonometry Operator Nodes

To create a Trigonometry Operator node, either click on the Trigonometry Category button and select an Operator type from the list, or use one of the following shortcuts exposing some of the major operations:  

  • [ - create a new Trigonometry > Sin operator
  • ] - create a new Trigonometry > Cos operator
  • \ - create a new Trigonometry > Tan operator
  • SHIFT+[ - create a new Trigonometry > ASin operator
  • SHIFT+] - create a new Trigonometry > ACos operator
  • SHIFT + \ - create a new Trigonometry > ATan operator
  • SHIFT+CTRL+\ - create a new Trigonometry > ATan2 operator 

Creating Vector Operator Nodes

To create a Vector Operator node, either click on the Vector Category button and select an Operator type from the list, or use one of the following shortcuts exposing some of the major operations:  

  • , - create a new Vector > VectorCross operator
  • . - create a new Vector > VectorDot operator