NEW IN R20

Reference Cinema 4D Cinema 4D Prime Material Manager Material Nodes
Function available in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

Node Material Editor

General

The Node Editor is where everything takes place when creating and editing Material Nodes (in the following referred to as Nodes). Everything you see in the Node Editor has to be linked with a Node Material (please note this tip), i.e., to create and edit Nodes, a Node Material must be selected. The Node Editor always displays the currently selected Node Material.

Please note that Nodes are quite complex and to use them effectively you need to have a higher level of knowledge about how shading and rendering works in general. However, several functions are very simple when a pre-defined material is used such as the Uber Material, which is almost as easy to use as a normal material (and can still be used in conjunction with an image node in various material channels).

The general flow of data is always from left to right. At the far right, everything must always culminate in a Material Node (no Material Node means no working material; only 1 Material Node per material).

The Node Editor can be opened as follows:

Node Editor

Navigation:

As with other Managers; the following hotkeys can be used to navigate in the Node Editor (see also commands in the View menu):

Creating Nodes

Nodes can, for example, be created in the following ways.

Note that not all output ports can be connected with all input ports. Many file types will be converted automatically but there are limits to this (e.g., a ShadingContext cannot be connected with a BooleDatatype). Cinema 4D will show you if a connection is possible: if you hover over the port to which you want to connect, the potential connection will be either bright (possible) or dark (not possible).

Moving Nodes

Nodes can be moved at any time by clicking and dragging them. Multiple selections will be moved as a whole. If you move your selection to the edge of the Node Editor view, the view will start to scroll correspondingly.

Connecting Nodes

In order to let data flow from one Node to another they must be connected: For this, Node outputs (right Node side) of one Node can be connected with the inputs of another Node (left Node side). To do so:

The following applies:

Selecting Nodes

Nodes can be selected dragging a rectangle around them (simply click on an empty area of the Node Editor view and drag) or by clicking on them. As always, the Shift and Ctrl/Cmd keys cam be used in conjunction with making selections. In the Edit menu you will find several additional selection commands (such as Select Connected). The selected Nodes’ settings are displayed in the Attribute Manager.

Deleting Nodes

Selected Nodes can be deleted by pressing the Backspace- and Del- keys.

Node Editor Title

At the very top of the Node Editor you will find the following elements (from left to right):

Navigator

The Navigator is located at the bottom right of the Node Editor view - it’s a small depiction of the entire Node constellation and serves for better orientation and quicker navigation, especially for complex Node setups. The light gray triangle shows the visible part of the Node Editor view. You can move this section by clicking and dragging in the view.

The following Nodes have a special display:

Input and Output Group Areas

On each side of the Node you will see a dark edge. Ports can be connected with these areas by dropping a new connection into an empty region of the area. This creates an outward connection. This makes little sense for individual Nodes but if you combine different groups with one another, you can use this method to create a port that is shown as a group port (as in the image below). This means that even in a group within a group a specific Node port at the very bottom can be connected from the outside (or as an output to the outside).

Node ports in groups can be led outside.

When a port is connected with an input or output area, a small menu will open (see image bottom left) with the following options:

Parts of the described functionality (creating inputs) can also be done via the port context menu commands.

General information about Nodes

A Node setup and display example (it’s also possible to only display connected ports).

The core component of the Material Node System is - logically - the Node. A Node has inputs into which data from other Nodes is entered, which is then processed by the Node and the result is passed to its outputs. Inputs and outputs have ports through which the connection to other Nodes can be made. Basically, an input port can only have a single connection and output can have any number of connections.

Nodes can be grabbed on the left or right edge and made wider or narrower.

A typical Node has an upper area and a lower area:

Upper area

The upper area contains the Node preview. If the settings of the connected input Nodes change, the preview will change accordingly. You can show or hide the preview using the small icon at the left of the Node name (a command can also be used - see above).

Below the preview are the Node name on the left, which is also displayed in the Basic tab. Double-click on the name to rename the Node (which can also be done with port names - but cannot be undone there …). Note that differences in names of the Nodes/setting names can occur in the documentation.

At the right of the Node name is an arrow icon if the Node is a Node Group. Click on the arrow to show the group’s contents in the Node Editor view. The Solo icon is to the right of the arrow (see Solo).

The background color of the upper area can be changed using the Custom Node Color option in the Basic tab.

Lower area

The lower area contains the input ports on the left with their respective names - these can be re-named by double-clicking on them - and the output ports on the right with their respective names. Ports can be hidden and their order can be changes. Note that not all input ports will necessarily be listed in the Node itself. These can be displayed using the context menu.

Certain Nodes (such as the Layer Node, for example) even have drop-down port groups for each layer.

Depending on the data type being processed, ports will be assigned a certain color (see next data types ).

Ports can be selected (using the Shift or Ctrl/Cmd keys to add or remove selections) so they can be affected by certain commands (see Node menu or context menu).

Data types and colors

Inputs and outputs are colored accordingly. Fitting data types for input and outputs will be displayed using colors. The most important types are:

As in XPresso, atypical input and outputs can be connected with one another. As a rule, a constructive conversion of the data types will take place. For example, a texture can also be connected to an input for a float comma value. The texture’s RGB values will then automatically be converted to brightness values. Using this method, color textures can also be used to, for example, control the Roughness of a BSDF layer. This type of conversion of data types is denoted at the receiving Material Node by an additional point at the respective input.

Context menu

If you right-click on a Node/port, a comprehensive context menu will open, which contains commands mostly from the Node Editor menu. These are described here, except for the following:

Filter

Enter a series of characters here to filter out elements you don’t need (only commands, Nodes, etc. that contain these characters will be displayed).

Add Input

Not all inputs listed in the Attribute Manager have to be displayed by the Node as a port. Sometimes only the most important are shown. Use the Add Port command to show all hidden ports. If one is selected, it will be displayed again (if All is selected, all input ports will be made visible).

This menu point is not available if all input ports are displayed.

Add Output

Normally, all outputs are displayed. If not, (e.g., if Remove Unused Ports was applied) these can be displayed by selecting one of the output ports from the list.

Propagate Port

A list will be displayed from which a Node to which you can link can be selected. If multiple output ports come into question per Node, click on the small black arrow and the output ports that can be selected will be displayed. In addition to the complete Asset list, the first entries will be existing Nodes where Nodes are listed that are contained in the current Node Editor view. There is also the Add Group Input option with which a port can be drawn from a group (see also Input and Output Group Areas).

Note that this list is created dynamically and only fitting Nodes will be suggested.

Replace Node

For the current, connected input port, the "feeding" Node will be replaced by one from the list. Note that the complete Node chain will be deleted at the Node to be deleted. This only applies to the Nodes being fed: Nodes that are connected to other output ports remain unaffected.

Add Converter

If ports are already connected, this command can be called up. It places a Converter Node in the connection, i.e., its input and output are already properly connected.

Textures

All loaded textures are listed here. Select a texture from the list to feed it into the input port.

Load Texture

Selecting this option will open a context window from which you can select a bitmap or video, which will then be fed to the input port using an Image Node.

Remove Port Instance

Several Nodes such as the Layer Node or the Gradient make this command available. With it you can delete elements such as Layers or Knots.

Hide Port

Selecting this command will hide the selected ports. This only works with ports that are not connected. The hidden port will then appear in the previously described list under Add Input (and can be made visible there).

Note also the Show All Ports command and the next two commands described there. This is a different functionality from the hiding or displaying of ports.

Move Port Up/ Down

Use these commands to move ports up or down in the hierarchy.

Reset to Default Value

Most settings have a default value, which is defined when the Node is created. Using this command, modified values will be reset to their default values. This only affects Nodes that are not connected.

Propagate Port

Calling up this command (only of use when the Node Editor view shows a group’s contents) creates a connection to the outside or to the parent hierarchy. See also Input and Output Group Areas.

Solo Port (only output)

A Solo functionality can be enabled for Nodes. If this Node has multiple outputs, one of them must be defined as a Solo Port, which is what this option does.

Set as View Port (only output)

In the upper area of a Node you will find the Node’s preview. If a Node has multiple outputs, this option can be used to define which output should be displayed in the preview.

Lock Group
Unlock Group

These commands can be used to lock and unlock selected groups. Locked groups can be viewed but not modified.

Connections

Proceed as follows to connect a Node port with another port:

Connections can also be selected, whereby you can almost always do so in conjunction with the Shift and Ctrl/Cmd keys to add or remove selections (clicking and dragging a box can also be used to make a selection). So what can be done with selected connections? They can, for example, be deleted or modified per context menu commands described below (only those commands not described elsewhere are described below).

Remove Connection

Deletes selected connections.

Muted connections will be displayed with a dashed line. Values will not be accepted from the previously connected Node but from the Attribute Manager instead. This lets you temporarily disable connections for test purposes, for example.

Other Node Editor components

The icons at the top right

At the top right of the Node Editor you will find the following 5 icons, from left to right:

Attribute Manager

The Attribute Manager is available in the Node Editor in a somewhat reduced form. The Attribute Manager shows the properties of selected Nodes or Node Materials. Most functions work as described under Attribute-Manager. Below only the major differences are described.

Create a Spiral Node, for example (Asset list: Shape/ Spiral):

As you can see, all input ports are also listed in the Attribute Manager. The Attribute Manager even offers more settings than the Node has input or outputs. The Attribute Manager contains all settings. The Node generally only has one selection as an input or output - Preview and Basic tab settings are not included.

Output ports are not listed here since their values result from calculations within the Node, which you can only modify indirectly by changing input values.

Connectors

The most major change compared to the previous Attribute Manager are the linked fields that have been replaced by Connectors. Node inputs can either be fed with values by simply entering values for given settings or - and this is new - by connecting Node inputs with node outputs of other Nodes, i.e., make a connection (which is what Nodes are all about).

Click on the icon at the right of the setting name (the "connector") and select a Node from the Connect Node list to connect with the input that you select (you can, of course, simply connect ports in the Node Editor view). The selected Node will be created and linked:

Bitmaps can at any time be dragged from outside of Cinema 4D onto a complete parameter line *incl. parameter name, connecting icon and GUI element) to link a given setting using an Image Node.

As soon as a parameter is connected with another Node, the following applies:

The animation icon displays dependencies between animation and XPressions, while the connector icon symbolizes dependencies between shading and renderer.

The connector icon can have one of the following 3 states:

Clicking on a connector icon will make the following commands available, from which most should already be familiar from the port context menu. The connector icon makes a similar functionality available, which makes it possible to access a port in the Node Editor per right-click.

In the following, only the Connector’s commands are described.

Add Layer

This command can, for example, be found in the Layer Node. The selected Node will be linked with a new layer.

Copy

Copies the connected output port to the cache.

Paste (Link)

The cached output port can then be linked with a different input port. This way, multiple inputs can be connected with the same output port.

Paste (Duplicate)

This command connects the output port in the cache with the input on which you click. Contrary to the previously described command, a duplicate of the entire feeding Node is created.

Remove

Removes the connection from the input port.

Mute Port

The connection is maintained but no data will be passed. Instead, the value defined in the Attribute Manager will be used for the input. Call up the command again to allow data to be passed again.

Show Subchannels

Several Nodes such as the Layer Node or Grading Node offer this mode. Enable this mode, for example, to display the layer settings as animatable or adjustable settings. In addition, the input settings of the feeding Node can be displayed by clicking on the small black arrow at the left of the Color setting. In the following example, the inputs would be those of the Circle Node.

For the Grading Node (click on a Knot and on one of the subordinate connector icon to call up the command), the settings of all Knots will be displayed. Call up this command again to return to the previous mode.

Inherit Interface

Several Nodes such as the Distance or Value Nodes can assume the units and the parameter displays of subsequently connected Nodes for their input ports.

Node list

At the top left you will find the Node list where all Nodes and Groups in the current group hierarchy are displayed. Here you can:

The list order has no influence or further meaning.

Search icon

Klick on the search icon at the top right to display a text filter. Enter a series of characters to hide all nodes that do not contain these characters in their names.

Asset list

In the Asset list you will find all Nodes included in Cinema 4D as well as custom Assets (the Node Commander makes the same functionality available and can be called up from within the Node Editor using the c key) in drop-down groups. Using this list, Nodes can be created that are then displayed in the Node Editor view. To quickly access an Asset, a filter is integrated into which you can type a series of characters to exclude elements that don’t contain these characters in their name.

Example: The Color Grading Node internally contains the keywords "correction, tones, HSL, HSV", etc. If you enter these characters, this Node will be displayed. Another example would be noise names (e.g., Luka, Stupl, etc.), with which Noise Nodes can be located. A special function is also used here: if you create an Asset containing ,Stupl’, it will be set to the Noise Type Stupl. This also works, for example, with the Mix Node (type ,multiply’, for example).

For several Nodes such as the Mix Node, this can even be taken further. For example, if you filter for ,multiply background’ (several characters are combined with a logic AND) and create a Mix Node, both the Mix Mode and Use Alpha selection menus will be set accordingly.

The Node name itself will, of course, also be found (and will be given a higher priority than the keywords).

Multiple selections can be made in the Asset list (use Shift and Ctrl to add or remove selections). Drag all selected Assets into the Node Editor view or double-click on one of the selections to create all.

An Asset can be created via double-click on the filtered list. Alternatively, you can also use the cursor keys to navigate and create the selected Asset via Return.

Otherwise you can open and close a selected Group using the cursor keys Left and Right.

In addition to the Assets themselves, the Asset list has a Database column, which shows where the Asset is saved, For example, if Builtin is displayed, you know that this is a core Asset from a Base Node created by MAXON, which cannot be "looked into". Other Assets are core Assets combined in groups (and can be "looked into"). These are, for example, databases with names such as Utilities or Materials.

For Preferences and other databases you name yourself or imported Assets, these are not Assets created by MAXON that are saved in the Preferences menu (in a folder named userrepository or anywhere else.

Information about creating and managing Assets can be found under Assets (here, all context menu commands are described).

Info area

At the bottom left you will find the Info area in which you will find information pertaining to Nodes, connections and ports.

For Nodes:

Additional information for connections:

Additional information for ports:

Node Editor Menu

Create menu

Create Empty Group

Creates an empty group for the current Node Material.

Click on the arrow icon to open the group.

What is a Group?

Groups are summary, parent Nodes that contain a network of Nodes (and/ or groups as well) The ports of Nodes in these groups can also be propagated outwards in order to feed values from Nodes outside of the group or to access values of Nodes within the group.

Groups can be converted to Assets and passed on.

You can also select multiple Nodes and group them using the following command.

Group Nodes

Groups selected Nodes (see also previous command).

Ungroup Nodes

Ungroups grouped Nodes and deletes the Group Node. Connections are maintained - as well as outwardly, if possible.

Tip:
To dissolve Assets they must be converted in groups first.

Create In Port
Create Out Port

Creates new input/ output ports. This is only useful for Nodes within groups (see also Input and Output Group Area).

Propagate Port

With this command you can create parameter input ports for all selected ports. See Input and Output Group Area for differences between input and output ports and propagated ports.

Asset command

Details about Assets can be found under Assets.

Create Asset...

Assets are most often created from Group Nodes (an example process is described here).

As soon as this command (or several - they will be processed in the order they are called up) is called up for a selected Node, a dialog window will open:

Name

Define a name for the Asset. This Asset will appear with this name in the Asset list. This name will also appear in the Info area if you use it in the Node Editor view as an instance (i.e., you drag it from the Asset list into the Node Editor view). Even if you rename the Node, this name will remain unchanged.

Version Tag

Assets can have several versions (versioning). Imagine you create an Asset, build a scene with it and save the scene. You then edit the Asset (right-click on the Asset in the Asset list: Edit Asset) by, for example., changing a color or adding Nodes. If you now save the Asset (Save New Version) you can use the Version Tag to define a version (e.g., 1.1 or Version 2, etc.). The Asset will then contain both the original and the new version.

If you now load the originally saved scene or use the Asset anew, the newest Asset version will be used by default. You can, however, switch between versions in the Asset instance (i.e., the Group Node) at any time:

You can also imagine versioning as follows: Assuming you saved a primitive cube in Cinema 4D R15. A Fillet setting was added in R18. If you load the R15 scene into R18 you often had a compatibility mode that let you load and older version. If the option is enabled, the cube is loaded without fillets, if disabled, with fillets. Sometimes the cube would be loaded without any prompt regarding its older state. If versioning were applied to primitives, you would be able to switch back-and-forth between versions.

MAXN can update the nodes it supplies in the application via the Online Updater. This is done in a manner that ensure that older scenes remain functional.

What you define here in the Version Tag will subsequently appear in the Asset instance as the Asset version name.

ID

This is a unique ID (you don’t have to enter anything) is assigned with which an Asset can be clearly identified by the application. This ID - supplemented by a random set of characters - is then displayed in the Info area of the Node Editor when the respective Node is selected.

Database

Assets can be saved in different databases.

Most often, the following will be offered:

This menu is dynamic and will display all corresponding locations.

Category
New Category Name

If you take a look at the Asset list you will see numerous Assets in the alphabetically arranged categories. You can add categories at any time (these are themselves Assets by the way).

The Asset to be saved will be placed in the selected category. If you select New Category, a new category can be created using the New Category Name option. Custom Assets can be dragged and dropped to other categories.

Clicking on OK will save the Asset and add it to the Asset list and will make it visible in the Node Commander where it can be used.

Convert Asset To Group

Asset Nodes, which are mostly created from groups, can be converted back to Groups using this command. The arrow icon will then be displayed again.

Opens the group.

Save new Version...

When editing existing Assets, modifications made should be saved using this command. A dialog window will open that you should be familiar with from the Save Asset command (see above). Since the old Asset state is also saved, versioning will be implemented.

Save as new Asset (Copy)...

When editing existing Assets, a new Asset can be saved without the aforementioned versioning. A dialog window will open that you should be familiar with from the Save Asset command (see above).

Quit Edit Asset Mode

If you open an Asset using the Edit Asset command, you will be switched to Edit Asset mode. Calling up this command will exit this mode. You may be prompted to confirm or discard the changes made to the Asset. Changes made to Assets must be confirmed (e.g., via Save New Version).

Edit menu

Undo
Redo

These are the usual commands with which you can delete changes made in the Attribute Manager or undo/ redo functions. Contrary to the XPresso editor, moving or expanding Nodes is not included for these functions.

Cut
Copy
Paste

Here you can copy selected Nodes to the cache (for Cut, the Nodes will also be deleted) and Pasted in the Node Editor.

Duplicate

Selected Nodes will be duplicated, excluding existing connections.

Delete

Selected Nodes will be deleted. Pressing the Backspace- or Del keys will do the same.

Select All
Deselect All

Selects or deselects all Nodes.

Select Connected

Selects all Nodes connected to the selected Node. This makes it easy to select a series of connected Nodes.

Nodes Commander

The Node Commander offers functionality similar to the links in the Node Editor’s Asset list. You simply have to press the c key to open the list. The Node Editor must, however, be active.

In addition to the functions described in the Asset list, the Node Commander offers the following functions:

Node menu

Show Preview
Hide Preview

These commands can be used to show or hide the Node’s preview (in the upper area of each Node). The application’s Preferences menu has a Material tab in which a default setting defines if the preview for new Node creation should be visible or not. What good does it do to hide the preview since it actually offers valuable information. Well, for very extensive Node networks it can be very computationally intensive to update all previews when changes are made. In such cases it can be useful to hid the preview.

Horizontal Layout
Vertical Layout

Left a vertical, right a horizontal layout.

Use these settings to define how the input and output ports should be arranged in the Node:

Show All Ports
Hide all Ports

Hide all Ports hides the port area for all selected Nodes (double-clicking on a Node will do the same). The connections are maintained. This is a purely optical effect, for example, to get a better overview of your setup. Double-clicking again or calling up the Show all Ports command will reverse the effect.

Selected ports can also be defined as hidden via the context menu. The Show all Ports command will then not make these visible again. You will have to define the respective port as being visible via the Add Input command.

Show Connected Ports

Only the ports with connections will be shown for the selected Node. All others will be hidden. This can be undone using the Show all Ports command.

Set Solo Node / Port
Clear Solo

Different Nodes defined as Solo Nodes, rendered texture on a cube.

The Solo Node omits all other Nodes. In the Node Editor view and for rendering, only the Nodes fed into the Solo Node and the Solo Node itself will be evaluated and displayed. This is, for example, very useful if your Node preview is too small because you can display or render the effect of individual Nodes at any scale.

Use this command for a selected Node (possibly with a selected output port: see also Solo port) or simply click on the Node’s S icon.

Logically, only a single Node can be a Solo Node. To exit the Solo Node function, call up the Clear Solo command or simply click again on the S icon.

Set as Start Node
Clear Start Node

Node Materials can be made up of very complex networks consisting of hundreds of Nodes. If you want to make minor changes to a material without diving too deeply into the Node Editor, one Node - a single Node per Node Material - can be defined as a Start Node. This Node’s inputs (and only this Node’s inputs) will be displayed in the Attribute Manager or the Material Editor’s Input tab when the material is selected.

If, on the other hand, you only want to display a few ports and you’re working with groups, propagate the respective ports from the group and define the Group Node as a Start Node.

Start Nodes will be marked with a green frame if unselected and with a bright yellow frame if selected.

In the following example, only the Spiral Node’s Arms setting should be displayed as an externally-controlled setting. Proceed as follows:


  1. Place all Nodes in a group by selecting them and selecting Group Node from the context menu. Open the group (click on the Group Node’s arrow icon).
  2. Right-click on the Spiral Node’s Arms port and select Propagate Port from the context menu.
  3. Exit the group by clicking on Node in the Material or Group Name
  4. Select the Group Node and select Set as Start Node (Node menu)

As soon as you select the Node Material, only the Arm setting will be displayed (image bottom right).

If you now right-click on the Group Node and select Create Asset, the Asset would already be created.

The Clear Start Node command removes the Start Node state.

Open In Material Editor

Opens the Material Editor for the material currently displayed in the Node Editor. In principle, the Material Editor has the same settings as the Attribute Manager for a selected material.

Select in Material Manager

This command selects the corresponding Node Material in the Material Manager for the active Node Editor, whose material settings will then be displayed in the Attribute Manager.

Remove Unused Nodes

Unused Nodes are Nodes without connections (filled groups and materials are not included). They therefore serve no purpose and can be deleted using this command.

Remove Unused Ports

This command only works if at least one connection exists for each input or output port group: for the selected Nodes, all ports without a connection will be hidden (these can be unhidden using the Add Input or Add Output commands). Otherwise the ports will remain visible.

View menu

Frame Selected

If Nodes lie outside of the Node Editor view, these can be shown simultaneously using this command. The view will be scaled accordingly to ensure that all Nodes are displayed.

Frame All

Shows all Nodes in the Node Editor view. The view will be scaled accordingly.

Center Selected

Selected Nodes will be displayed at the center of the view without changing the zoom factor. For multiple selections, the center of the selected Nodes will be placed at the view’s center.

Center All

All Nodes will be placed at the center of the view without changing the zoom factor.

Zoom In
Zoom Out

Enlarges or reduces the Node Editor view. Using the 2 hotkey and the mouse works faster.

Zoom 100%

If you have a Node network made up of 376 Nodes, for example, you won’t see much detail in the Node Editor view. This command sets the zoom to a quite legible 100%.

Show Grid

Hides or shows the grid in the Node Editor view. Grid snapping works independently of this display.

Snap to Grid

Enables or disabled grid snapping. If enabled, Node edges will snap to the grid lines.

Show Group Wires

Enable this option to display group connections (Wires). See also Input and Output Group Areas. These are often outgoing connections that clutter the view because they are so numerous - which is why you can also disable this option.

Bezier Wires

Connections are curved by default. Enable this option to make the connections appear linearly.

Show Navigator

Shows or hides the Navigator.

Show Errors

If a Node produces errors or is fed with invalid data types, a red frame will appear here (then look for error messages in the Node list or the Info area that can provide more information). This frame can be hidden if the Show Errors option is disabled.

Step Up

When working with groups you often have to delve into these, i.e., the Node Editor shows the contents of a given group. Call up this command if you want to move up a level, i.e., out of this group. Alternatively you can click on a layer to which you want to jump next to the material or group name.

Layout Selected
Layout All

Selected or all Nodes will be arranged so they are visible in the current view - compact, arranged in order and positioned horizontally/ vertically:

Before and after the Layout All command is called up.

Example scene

The following material was created using Nodes only. Not bitmap or texture was used!

Load the following scene:


Here you can get an idea of what is possible using Nodes. Right-click on the material and select Node Editor to see what the Node setup looks like. Note the Plaid Group Node in which additional Node networks are nested.