NEW IN R21
Cinema 4D Basic Features Material Manager Material Nodes Node Material EditorResource Editor
The Resource Editor is used to configure user interfaces for nodes. You can define a range of file types that should be shown to the user in the Material Editor when the Node Material is edited. Various strings for different language versions can also be saved.
An example of how this can be applied can be seen in the Uber Material, which is a material based on nodes but offers the same information as the default materials in the Material Editor.
The different groups and parameters for these settings were defined using the Resource Editor.
If you already have a Node Material or Node Shader open the Node Editor, you can right-click in the Node Editor and select Edit Resource to open a separate Resouce Editor window.
The Resource Editor is divided into different areas. At the left is a column with an overview of the existing attributes and file types as well as those you added yourself. The priniciple is comparable to adding User Data via the User Data menu in the Attribute Manager. The entries can be organized into groups.
The bottom section of the left column shows templates. These are the default Cinema 4D file types and user interfaces for input that can also be used for custom parameters. Here, you will, for example, find color fields, text input fields and option check boxes. Elements can be easily dragged and dropped from the templates directly onto the area above.
The center column of the Resource Editor shows a description of the currently selected parameter. Here you can, for example, activate the permissible minimum and maximum limits for numeric values or the use of a slider in the interface. More uinique attributes such as if a parameter should even be visible or the units that should be used can also be defined.
The right column of the Resource Editor shows all activated parameters and attributes of a given node, as would be displayed in the Attribute Manager or Material Editor.
In many cases you will first create a new Node Material and open it in the Node Editor. Now you can construct a material with the help of various Material Nodes or at least mull over the most effective inputs for your material that can be used to control its look. In simple cases, these can, for example, be color values or brightness that can be defined or how textures and other numeric values can be linked in order to control intensity.
The more complex a material’s attributes, the more it makes sense to simplify the material’s modification and use in order to be able to use it for future projects. What this can look like can be seen in a Cinema 4D Uber Material. This is a normal Node Material that does not have to be modified using the Node Editor but with the known Material Editor after you double-click on it.
Select all of your material’s nodes and group them. You can use the shortcut alt+g or the Group Nodes command in the Node Editor’s Create menu, which is also available as an icon at the top of the Node Editor.
Then open the new node group by clicking on the arrow icon below the group node’s preview area. You can now see the Material Nodes again where you can edit them or easily add nodes. You can also add groups within a group, which can help maintain an overview when working with complex materials.
Whenever you want to pass data to the nodes within the group that should be editable in the Material Editor, simply add an input port within the top-most node group. This can be done in different ways:
After the desired inputs have been added, their data type and attributes will be adjusted in the Resource Editor, if necessary, and configured in accordance with the user interface. We will cover these options later.
After all input ports have been created and linked to the respective inputs of the Material Node in the group you can exit the group display by reverting back to the material’s node layer in the Node Editor’s tree view. Select the group node and then select Start Node in the Node menu. This command is also available as an icon in the Node Editor’s icon menu.
If you double-click on the Node Material in the Material Editor, the Material Editor (and not the Node Editor) will open where you will find the input ports that were created.
If the material is so good you want to use it for other projects, you can save it as an Asset with a unique name. It can, for example, then be saved to the preset menu for materials and easily accessed via the Node Editor’s Asset section.
After a Node Material has been opened in the Node Editor and the Resource Editor has been called up you will find elements that each material already has. This includes a Preview section, which consists of both preview renderings that show several funtions of the Material Node and the material as it looks in the end.
A Basic section is also available where you can define unique names for an asset or a group.
Below the Name field you will find an Asset Version selection menu, which can be used to more easily manage edited versions. When a node group or asset is configured for the first time in the Resource Editor you can only select Latest as the Asset Version.
The remaining settings in the Basic menu are more cosmetic in nature. Enabling the Custom Node Color option will let you assign a custom color to the asset using the Node Color setting.
The entries for Inputs and Outputs represent all input and output ports for a given group or asset. Here you can subordinate your own ports, if necessary, but you can’t modify any of the settings.
All of the following settings for the individual user data and ports of a given group or asset can be configured in different languages so the correct translation is displayed if you switch to a given language in Cinema 4D. As a rule, English will be used for the default installation. In addition, you may also have German installed. In such cases it makes sense to first make all settings for the universal English layout and then modify the namels of the settings for German (or the target language).
Select en-US - English as the base language for Cinema 4D to create and name all required user data and ports. After this is done, switch to de-DE - Deutsch in this menu to enter German terminology for these settings. If additional languages are installed, this process can be repeated for each of these languages by simply switching to the desired Language. If language versions exist for which strings have not been translated, these will be marked by a symbol with a small warning sign (see this example)
The data from different application parts, modules or plug-ins are saved in separate databases. These databases are logged in automatically when the application is started and will be made available for use.
Internally, objects are differentiated using unique numbers called IDs. The respective objects can be selected from this drop-down menu. If an object is edited via the Resource Editor, the database and respective ID will be blocked.
Creating and managing attributes
As a rule, you will not use a single setting to define material properties but several settings that should be grouped thematically. This is the sampe principle as with other materials, e.g., where grouping is used to define material properties so properties for color, bump, reflection or displacement can be arranged in separate groups for a better overview and workflow. There is also the option of making some of the settings available only optionally. For example, the calculation of the displacement or lighting may not be necessary in every material. Accordingly, these settings can then only be displayed if needed. As a rule, Cinema 4D uses a list of options in the left column of the Material Editor where the optional material channels can be enabled.
A group can be used to combine several inputs and to define layout options for your settings.
The Resource Editor offers exactly this possibility through the use of groups in which you can organize user data and properties. The simplest option for creating a group is to drag the Group setting from the Template field into the field above.
Here you will find settings that normally result directly from the type of selected property and therefore cannot be edited.
Here the type of the selected property is displayed. For a group, ,group’ will be displayed or an input value ,attribute’. For other special types of properties it can be a Command such as ,separator’, which simply creates a dash in the user dialog to make the text easier to read. The Command ,preset’ can also be used for an element from the preset menu such as a Fresnel refraction index.
Each property has a unique Identifier made up of a series of letters, characters and numbers and is assigned automatically. Using this Identifier, a relation between groups and attributes can later be made, e.g., to display groups only when a specific activation option is enabled. An Identifier can itself not be edited or selected in the text field but you can right-clickk on an Identifier’s name and copy the selection to the cache and paste it to another location.
In this menu you will mainly find options with which you can define the display of the selected property and the layout in the Material Editor.
If desired, you can enter a custom Identifier here for the group. This can be any combination of lower-case letters, points, underscores and numbers. The group ID can, however, not begein with a number. Furthermore, you should not use upper-case letters.
If this field is left empty, the Identifier from the General settings will automatically be used.
Only if this option is enabled will the groupt itself be listed in the Node Editor’s port list. This method of control can be used independently of the group’s elements. Disabling this option will leave the display of the settings in the group unchanged in the port list.
The display of the group can be made dependent on the options. To do so, simply enter the name of the respective option between the wavy brackets in this field. Examples of what this can look like: (Checkbox) or {Value}<5.0 ; {Text}=="text" ; {Enum}=="enumvalue". In addition, a formula parser is also behind this function that also permits bracket terms. Alternatively, the Identifier of the respective option can be copied and pasted.
As known from the XPresso user data, groups of settings can be opened and closed by clicking on the small triangle next to the setting. If this option is enabled, the group will be displayed opened by default so that all suburdinated entries are visible in the port list.
By default, each group starts with a title bar with a different brightness in which the group’s name can be seen. If you don’t like this type of display, simply disable this option. The settings contained in the groupt will then no longer be displayed indented in the Attribute Manager.
This combination of numbers defines the number of columns for this group. With two columns, for example, up to two properties will always be displayed next to one another.
This option hides a setting and its value and interface will no longer be displayed if the corresponding object is opened in a link field in the Attribute Manager.
See Text.
Attributes make up the actual parameters and settings that you want to make available to whoever is using the given material. In order to more clearly present attributes and to do so in a more attractive layout, the Group element can be used, which can also be used, among other things, to create a two-column display in the Material Editor.
A new attribute can be created in one of several ways. You can either drag the desired element from the Template field into the field above or you can select Add Attribute from the Attribute menu. Attributes are available in a variety of data types. It therefore makes sense to consider which data type you want ahead of time.
An attribute’s data type defines how this property will subsequently be displayed, evaluated and operated by the user. A color, for example, uses different settings than does a text field. The controls will be correspondingly different. Let’s take a look at the most common data types for settings and attributes as they can be found in the Templates field:
This group of settings can be used anytime to modify the Datatype of a selected attribute or other setting, e.g., to unify or limit a value range.
Here you can read out or switch the current Datatype.
This setting defines the type of attribute. Once you’ve selected a Classification, this selection cannot be changed. The Input option should be selected as a rule so an input port is created with which the value entered by the user can be passed to the material. Alternatively you can select the Output option which will also create a port but on the output side of the group or asset. This way, user-defined values can also be gotten from the node group. A third possibility is the Data option, which will also make the configured attribute available for the user as an input but will not create a port.
If None is selected, the attribute will remain unspecific.
Here you can define the desired unit, e.g., a numeric value. This unit determines, among other things, if this numeric value is an angle or a unit of measure, for example. You can select from the options Percent (%), Degree (*), Meter and Time. If None is selected, the numeric value will remain without a unit.
Here you can select the color, setting or value that should be used the first time the dialog for this setting is called up. This ensures, for example, that a material will show a result, even if a user has not yet defined all settings. The Default Value format changes depending on the Datatype selected. For Boole settings, only one option will be offered; for colors a color field; for float settings a numeric field, for example.
Enabling this option will make additional input fields available that can be used to define admissible maximum and minumum limits for values.
Depending on the Datatype and Gui Type ID selected, separate definitions can be made between which user inputs have to remain. Small values will be increased to the defined Minimum and larger values will be restricted to the defined Maximum.
If the Gui Type ID net.maxon.ul.enum is used, the Datatype can also be restricted to the respective Minimum and Maximum values that were defined.
This element is available if Datatype is set to Into or Internedid and lets you create an individualized list of elements that will be offered as a menu for the attribute. If Datatype is set to Int, fill the list with Identifier names of the menu entries and set a colon for each followed by a sequential number.
If enabled, this value can also be overwritten using the Take system in Cinema 4D.
If enabled, the Number of Variadic Ports setting can be used to assign any number of sub-values. Commands can be registered in the Variadic Commands field, which will then appear as buttons such as Add or Delete and will have to be executed in their function as a command code.
If enabled, this port can only be assigned a static value. The value cannot be modified during rendering, for example. A port cannot be connected with the output port of a color gradient or noise node, for example.
If enabled, the variable will be marked as a Template Variable, as is also the case the also exist in C++. This type of variable has no defined datatype and can be used to dave static values. A typical example would be a variable for π, which is read out as the flowt 3.1415 … and simply as 3 as an integer.
If enabled, other Datatypes linked to this port will be converted to the port’s native format, if possible.
This option should only be used for one output port on the node because this port will be the preferred port for calculating the node’s preview image.
If enabled, an input port will automtically assume the unit of the output port to which it is linked.
In this menu you will mainly find display options for the respective attribute, its port and its dependency on other groups or attributes.
This option reflects the function of the Hide All Ports command in the Node Editor and hides the attribute’s port in the Node’s display by default. Hidden ports can be unhidden at any time and remain visible in the Attribute Manager at all times.
Material Editor – Show on Left side
This option is primarily designed for the options shown below the material preview in the left column of the Material Editor that are for activating the material channels.
Material Editor – Group Activation ID
Using this option, other groups can be enabled or disabled according to the state of a given option. A material channel in the Material Editor, for example. If the Bump option is enabled, the group with the bump settng will be activated. This option can only be used in conjunction with the Boole type. Use the group’s Identifier as the Group Activation ID.
Often, various interface elements are available for the selected Datatype. The following are available:
As soon as an attribute is placed into a group, an Identifier for the group will automatically be placed here. As a rule, this field cannot be modified manually.
Here you can enter the name or Identifier, e.g., for an option. Only if this option is enabled will this attribute also be visible in the user dialog. For complex Datatypes, fixed values can be checked, e.g., with the operation {my value}==2. In this case, the attribute will only be displayed if the setting with the name "my value" assumes the state or value 2. Strings can also be evaluated using this method if these are set in quotations, e.g., {my value}=="Hello". If multiple conditions should be true simultaneously, use the "&&" characters to simulate the logical ,and’ and place the terms to be checked within parenthesis, e.g., ({my value}==2 && {my value}=="Hello").
This setting worlks exactly like the Activation Condition only that the attribute will not be hidden but only grayed out if the linked option is disabled.
Makes it possible to create groups that can be opened or closed in the Attribute Manager. The group must be assigned a unique ID. All settings that are assigned this ID via the Parent Folder ID function can be opened and closed together.
If GUI Type ID is set to net.maxon.ui.enum, enter the Identifier number from the Enum List here as it should appear in the attribute’s menu.
If enabled, the strings from the list will not be made available for translation.
If enabled, an additional slider will be displayed next to the input field for a number.
If enabled, an additional option for Minimum and Maximum will be made available. These can, for example, be used for sliders to restrict their value range.
These settings define the numeric value range for interactive control elements. Note that these values don’t have to be the same as the value restrictions in the Data settings group because they only directly affect a slider’s value range. Smaller or larger values can be applied within the data value range by manually entering the values.
Here you can define the step size with which the attribute value should change when the small arrow next to the input field is clicked or when using the scroll wheel.
This option is available for string attributes and makes an enlarged String field available for entering text.
This option blocks the string attribute’s String field for input and displays the string’s Default Value grayed out.
In this menu you will mainly find the name of the selected property. A group name can be entered for a group. This name will also appear in the Attribute Manager. For attribute properties, the name of a color or numeric value can be defined. Note that these inputs are dependent on the language that was selected. If possible, start with the Engish language en-EN - English and enter the desired name for the group or attribute in the String field. Then switch the language to another intry and translate the string for the setting or group.
Makes mult-line inputs possible for Strings and Reference Strings.
Here you can enter the name for the selected group or attribute.
After switching to another language you will find the group or setting names as a reference as it was entered for English, for example. This makes it easier to translation the terms.
Here you will find a previously assigned name for the setting that has been replaced by a new string. To use the current string for the selected parameter and language, you have to click on the Approve Translation button. Otherwise, warning icons may be displayed in the properties list that will warn you that the translation has not yet been approved.
Jumps to the next string that has not been translated for a laguage other than English. Each modification made to the base language English will result in all languages being marked as not being translated.
Opens a pop-up window with similar translations.
Using an external tool to compare long texts can be very helpful. To do so, the environment variable or command line parameter g_externalCompareTool must be set, e.g., g_externalCompareTool="C:\Program Files (x86)\Beyond Compare 4\BCompare.exe,
Clicking on this button will confirm the current translation in the selected language. Translations not yet confirmed will be marked with a warning icon in the Resource Editor.
In this menu you will find additional options for attributes that can be helpful when managing multiple versions of a given asset and its resources.
Here you can, for example, add comments for an attribute to document its function. This information is not made available to normal users of the material.
For developers, C++ header files are exported directly from the tool. If this option is enabled, this attribute will not be exported to C++.
Lets the string be inherited for includes without having to translate it again.
If enabled, the translators will not be forced to translate the text.
In the Resource Editor’s menu you will find items for creating custom data types and for creating, copying and deleting attributes.
Saves all databases to your hard drive.
Here you can create a custom data type to which you will have to assign a name. After confirming, the Resource Editor will empty and you can assign the new data type new properties, e.g, from the Templates or Properties fields.
A dialog window will open for the currently selected data type in which you can change its name.
Creates a copy of the selected data type.
Saves the selected data type to a database whose name can be entered in the dialog window that opens.
Removes the active data type from the database.
In this menu you can create, copy and delete groups and ports, among other elements. The property types available reflect those of the Resource Editor’s Templates field.
A menu will be made available in which you can call up the desired type of new attribute or group or separator.
Saves the selected attribute to the cache / copies the attribute from the cache to the Resource Editor. The same commands can also be found in the context menu that opens if you right-click on a setting. There, you will also find two additional versions. Copy ID can be used to copy the respective setting’s Identifier. The Paste (Keep IDs) command will paste a copy of the attribute. The Identifier will not be updated. This should remain the exception for special applications since all Identifiers should normally remain unique.
Deletes the selected property and its port from the Node Editor. The same can be done by right-clicking on the property and selecting Delete from the menu that appears. Note that this deletion cannot be undone!