Back to Projects

UE Art Pipeline Tools

Automation and validation tools for Unreal Engine art pipeline

Unreal Engine 4/5BlueprintC++PythonJenkins
Company

Manticore Games

Year

2020

Role

Senior Technical Artist

Category
TOOLS

Context

A suite of Unreal Engine art pipeline tools for asset import, validation, bespoke asset conversion, profiling data collection, and production automation.

My Contribution

Designed and implemented UE-side pipeline tools spanning Python, Blueprint, and C++ systems for import automation, validators, data collection, bespoke conversion workflows, and generated Blueprint setup.

Impact / Outcome

Reduced repetitive artist setup work, caught asset issues earlier, and standardized Unreal-side workflows across multiple production tools.

Outcome Summary

UE Art Pipeline Tools

UE Art Tools

This page contains selected UE tools and pipelines I have contributed to. All tools are documented on the team Confluence.

Table of Contents

Asset Importer / Send to UE (Python, Blueprint, C++)

This is a set of tools for transferring asset data from DCC software to UE. The sending side is described here: Maya and Substance Painter — artists configure their export settings in the DCC, then send assets to UE with a single click and immediately review the results, eliminating the need for manual back-and-forth. It has been the most popular tool among artists since its release.

On the UE side, we use the built-in Python RemoteExecution module as the receiver. We maintain an internal Python library to handle incoming messages, parse FBX and texture import arguments, and call the UE importer with the appropriate settings. The tool also automatically creates and sets up related materials, blueprints, and data assets. For parts that require C++ functionality, we built a C++ function library to keep the tooling consistent and easy to maintain, with Python calling into it as needed.

imageimage

For avatar cosmetics, the tool handles each part — head, helmet, upper, lower, back, etc. — flexibly. Artists can import all parts for a single avatar in one click, and the tool handles all add/update/overwrite scenarios automatically.

imageimage

The tool is also integrated with Perforce to ensure the import process is never blocked by source control.

These functions are well-encapsulated and have since been adopted by several other tools that needed specialized import features.

Assets Validator (C++, Python, Blueprint)

The Assets Validator is a system that validates all art assets on save, checking whether they meet our internal asset standards, setup requirements, and dependency integrity. For example: "All static meshes in the tilesets folder must have 5 LODs", "sRGB must be disabled for ARCM textures". It has significantly reduced human error in our daily workflow. The system is built on UE's built-in Validator subsystem.

imageimage

The validator is designed to be scalable — validation rules are maintained in a data table, making it straightforward to add new checks without modifying code. It is also thoroughly documented. Since deployment, it has meaningfully reduced the volume of small errors caught in daily builds.

Template Assets Bespoke Pipeline (Python, Blueprint)

This is a custom pipeline for converting Core kitbashed items into bespoke assets, spanning the Core editor, UE, and Maya.

The core problem it solves: UE's built-in mesh merging tool with Merge Material enabled generates large texture atlases that make poor use of UV space. For example, merging 8 source meshes produces texture maps like the following, with significant wasted UV area:

imageimage imageimage

Through experimentation, we developed a pipeline that makes much better use of available UV space:

  1. Merge meshes with materials kept separate; enable Generate Lightmap UV.
  2. Export the merged mesh to FBX without merging materials.
  3. Import the FBX into Maya and re-layout the lightmap UV channel for more efficient packing. UV shells can overlap here since this channel won't be used for actual lightmapping.
  4. Import the updated FBX back into UE and re-assign materials.
  5. Place the mesh in a level, then run Merge Actors again with Merge Materials and Reuse Lightmap UV enabled.
  6. Import the newly merged mesh into Maya, use a custom tool to re-layout the UVs, and process the source textures to match the new UV layout.
  7. Import into UE and re-assign the updated textures.

The results are significantly more convincing, with more efficient UV packing and smaller final texture maps at the same effective resolution. The most challenging step is arranging UVs so that texel density is roughly uniform across the asset.

imageimage

Character/Prop Set Setup (Python, Blueprint)

These tools are also referred to as stub creators. Before actual art assets are available, we generate stub placeholder files and wire up all asset references first, allowing teams to validate functionality early. Stub files are created for skeletal meshes, static meshes, materials, textures, blueprints, data assets, animations, and more — all with correct naming conventions and folder placement. They are later replaced with the finalized imported assets.

Auto Create Blueprint for Niagara System (C++, Blueprint)

This tool auto-generates blueprints for Niagara systems and wires up the nodes for user-exposed parameters. It reads each Niagara system's configuration, generates the appropriate blueprint nodes for each parameter type, connects them to the correct initialization and event nodes, and links everything together. All blueprint graph editing is performed through C++ functions.

Profiling Info Collection Tool (Python, Blueprint)

This is a data collection tool for performance analysis. It scans specified folders and collects property data for meshes, materials, and textures, outputting structured sheets for review from a performance perspective. The system is designed to be scalable — additional asset types can be added easily, and it can dynamically enumerate properties for any asset type.

imageimage

Connecting Datatable with Google Sheet (Blueprint)

This tool syncs data between a UE Data Table asset and a Google Sheet, built on the UE plugin GSheetsOperator.

imageimage