Node Table - anticto/Mutable-Documentation GitHub Wiki

Function

Automatically exposes a new option parameter where each option is a row of a Data Table.

Use Cases

Generate multiple variations of a garment with a single node since this node allows to change meshes, textures and materials with a single parameter.

Node Properties

Table Properties:

  • Parameter Name: Name of the exposed parameter.

  • Add None Option: If checked, a new "None" option will be automatically added to the Parameter's options. A "None" option can be considered as a new Table row with all the asset columns empty.

  • Table Gathering Mode: Source where the node gathers the data.

    • Data Table: The data will be gathered from the provided Data Table asset.
    • Struct + Asset Registry: Users need to provide a Struct asset. On compilation time, the asset registry will search all Data Tables using the provided Struct asset as Row Structure. It acts as if all Data Table rows were merged into a single large Data Table.
  • Filter Paths: If Struct + Asset Registry is the method selected, users can specify where the asset registry can search the references of the struct. If there is no path specified, the asset registry will look through all the assets of the engine.

  • Default Row Name: Determines the name of the row that will be used as the parameter's default value. If this value is not specified, the first row of the table will be selected as the default value. In case that a "None" option has been added automatically, it will be set as the first row of the table.

Compilation Restrictions:

  • Version Column: If the CO has a Version Bridge asset specified, users can decide which rows of a Data Table will be compiled in the CO's compilation. As this asset can be any type of asset, with this node property, users can select which column of a Data Table will be used as the version of the rows.

  • Compilation Filter Column: Users can specify a column to determine if a row will be compiled or not. If the value (or values) of a row matches the Compilation Filters of the Table Node the row will be compiled.

    • Filter Operation Type: We can set one ore more compilation filters. If the Filter Operation is set to Or and a table row contains at least one of the compilation filters of the node, the row will be compiled. If the Filter Operation is set to AND, a table row must contain all the compilation filters of the node in order to be compiled.
    • Compilation Filters: Array of Strings that define the compilation filters of the node.

[!NOTE] Supported Column Filter Types: Float, Integers, Names, Strings, Text, Colors and Bools.

UI:

  • Options UI Metadata Column: With this option users can select which column will be used as UI Metadata for the parameter options generated by the node. As one table can be used in multiple nodes at the same time, a data table can contain more than one UI Metadata column.

  • Options Thumbnail Column: If the UI Thumbnails option of the Preview Instance Tab is checked, a thumbnail will appear next to the parameter options names int parameter's combo-box. If a column is selected in this option, the thumbnails will be the textures or asset thumbnails of each rows of the selected column.

  • Gather Tags: If this option is checked and the data table contains a gameplay tags container column, these tags will be added to the UI Metadata tags. This tags can be used to filter parameter options in the Parameter Instance tab.

Animation Properties:

  • Mesh Column: In this options, users can select a mesh column to edit its animation options.

  • Animation Blueprint Column: Animation column that will be used for the mesh column selected previously.

  • Animation Slot Column: Integer column that will be used to identify an Animation Slot for the Animation column selected previously.

  • Animation Tags Column: Gameplay tag container column that will be used in the animation blueprint selected previously.

The Animation Blueprint, Animation Slot and Animation Tags column options will not appear if the users do not select a Mesh in the Mesh Column option.

More information about what these three properties do in the Skeletal Mesh Node documentation.

Layout Editor:

  • Mesh Section: Mesh Section to edit in the layout editor.

  • UV Channel: UV channel from the mesh section to edit in the layout editor.

  • Layout Editor: Widget that allows users to edit the UV layout of the previously selected Mesh Section. The UVs previsualized in the widget are the UVs of the Default Mesh (the one set in the Structure Asset). You can find more information of how the layout editor works in the UV Layout Properties section.


Output Pins

This node will generate an output pin for each column of the Data Table asset selected on the node properties. The name of the pin will be the name of the column ("column name" + "information" for meshes).

Supported variable types:

Assets that Generate Pins:

A pin will be generated for each column of the provided Data Table.

  • Soft Object References:
    • Meshes: USkeletalMesh and UStaticMesh.

    The node will generate a pin for each LOD and for each material section

    • Textures: UTexture, UTexture2D and UTexture2DArray
    • Material: UMaterialInstance.
    • Animation: UPoseAsset
  • Structures:
    • Colours: FLinearColor
  • Numbers:
    • Scalars: Float

Assets that do not Generate Pins:

  • Soft Class References:
    • Animation: UAnimInstance
  • Structures:
    • Tags: FGameplayTagContainer.
  • Mutable: FMutableParamUIMetadata.
  • Numbers:
    • Integers: Int
  • Bool

Working with Table Nodes.

Required Assets

There are two assets required to create a Table Node :

  • UStruct: This asset will determine the row structure and default values of our Data Table. Each variable of this Struct will generate a new column in our Data Table. Also, this asset allows us to select the Default Asset which helps to set similar properties between all the assets of the same column.

image8

  • UDataTable: This asset will store all the asset of the different parameter options. Each column can represent a pin in our Table Node and each row an option for our objects.

Check the node documentation to see which types of columns generate a pin.

image24

Structure Default Values:

If a data table contains a Soft Object Reference or a Soft Class Reference users must specify a Default Value in the UStructure asset editor. The following list explains which data is used from this default values:

  • The Default Skeletal Mesh (or Static Mesh) determines which properties must be the same for all the Skeletal Meshes of the same column:

    • Number of LODs
    • Number of Materials
    • Mesh section structure (Mesh sections must be in the same position)
    • Same Layout block Structure. The UVs of default mesh are the ones visible in the Layout Editor of the Table Node.
  • The Default Texture determines the final properties of the textures Generate by Mutable:

    • Texture Size
    • Texture Format
    • LODBias
    • UTexture2DArrays set automatically the texture pin to Passthrough and can't be changed.

[!Note] We can convert a Mutable Texture to a Passthrough Texture using the pin viewer or by right-clicking on the Texture pin that we want to change. This also works to convert a Passthrough Texture to a Mutable Texture.

  • Default Material Instance:
    • The default material instance must have the same parent than the instance set in the linked Mesh Section Node.
    • All the materials instances of the same column must have the same material parent in common.

[!Note]
If we need to use instances that have a different parent, we have to check the option Disable Table Materials Parent Check (Compile Options section). If we check that option we have to be sure that the material parameters that are going to be modified have the exact same name in all the parent materials.

Mesh Section

Mesh section material can be changed using Table Nodes. To do so, users have to link a material pin from the Table Node to the Table Material pin of the Mesh Section.

image

User can override material parameters using Table Nodes.

image