ID fuse UE Plugin

 ID Fuse is a UE5 plugin designed to reduce the number of Material IDs on Static and Skeletal Meshes. It does this by combining the textures used by multiple Material Instances into a single texture atlas and automatically modifying the UV coordinates of each Material ID to match the atlas layout.

Once the plugin has merged the Material IDs, the mesh can be rendered using fewer material slots, reducing the number of draw calls and thereby improving rendering performance. www.fab.com

Plugin Setup

After enabling the plugin via Edit → Plugins, it will appear in the Window menu.


Getting Started with the Plugin

Presets

Working with the plugin begins by selecting a preset. Four presets are available, each with a different number and size of slots.

After a preset is selected, a set of parameter structures will appear on the right side of the window. The number of structures displayed corresponds to the number of slots defined by the selected preset.

There’s nothing to worry about if a preset contains more slots than the number of Material IDs you want to merge. The unused slots will simply appear as black areas in the texture atlas and will not participate in the mesh modification process.

Texture resolution

There is an option to select the texture atlas resolution. By default, it is set to 4096 × 4096 pixels.

Names and Path

The user can specify an output path where the plugin will save the modified copy of the mesh with updated UVs and merged Material IDs. The generated texture atlases and the new Material Instance will also be saved to this location.

If no output path is specified, all generated assets will be saved to the root Content folder: /Game

The user can specify a custom asset name (YourName) and a comma-separated list of postfixes for the texture array if it contains more than one element (for example: BC, N, ARM). These values will be used when generating asset names.

The following prefixes are automatically added to asset names: T for textures, MI for material instances, SM for static meshes, and SKM for skeletal meshes.

Examples: SM_YourName, T_YourName_BC, T_YourName_N, T_YourName_ARM

If no custom name is provided, the plugin will generate asset names using the default text stored in the corresponding fields.

It is important to understand that the Postfix field serves another critical purpose. The number of postfixes specified determines the number of elements in the texture arrays.

For example, entering BC, N, ARM will create three texture array elements, while entering only BC will create a single texture array element.

The user can assign textures manually and generate a new model with textures merged into an atlas. However, there is a second workflow.

Automatic Mode

After selecting a model and specifying the Material ID index for the desired material slots, the user can press the GetTextureParameters button. This activates the automatic mode. In this mode, the plugin gathers all Material Instances associated with the selected model and Material ID index. It then collects textures from all texture parameters found in those Material Instances and automatically populates the texture arrays.

If the plugin successfully finds the texture parameters and builds the texture arrays, the user will see the populated texture arrays as well as the name of the parent material that will be used to create the new Material Instance in the status field.

Merge

After pressing the Merge button, the plugin generates a new model, one or more texture atlases, and a Material Instance. The Material Instance is generated only when the automatic mode is used. It follows the same naming convention as the other generated assets, for example: MI_YourName.

Parameter structure description:

The first parameter is Mesh. Here you need to specify the model that will be modified. It can be either the same model for all four elements or different models.
The second parameter is the Material ID Index on the model. The same index cannot be used for identical models.
Next come the Textures. There can be several of them — from one to five, possibly more.


Requirements for a Successful Merge

  • At least one Static Mesh slot must have a valid mesh assigned, and at least one element in the Textures array must contain a valid texture asset.
  • Each Index must be valid and unique. The same index must not be assigned to multiple slots for the same model.
  • Texture types (such as Normal, Base Color, Mask, Linear Color, etc.) must be consistent. The corresponding elements in the texture arrays must contain the same texture type across all slots.
  • The number of textures, their types, and their order must match exactly in every preset slot.
  • When using Automatic Mode, all Material Instances must share the same parent material.
  • All parts of the mesh that use materials processed by the plugin must have their UV coordinates within the 0–1 range and be mapped to UV Channel 0.