(Note -) This blog works in tandem with practice 1, in the drop-down menu for developing skills and the project called Noir, where the pipeline tools were demonstrated in their early use before being developed into a plugin.
Let me tell you where this project actually started, because it’s not where most people assume.
I wasn’t trying to build “a MetaHuman pipeline.” I was trying to survive one. And if you’ve ever worked on a production without a dedicated TD team catching your mistakes, you already know the problems I mean. A file gets overwritten by the wrong version at 2am. A pivot lands off-center after export and nobody notices until the rig breaks. Geometry that looked perfectly fine in the sculpting app turns into a nightmare the moment it hits a rig. A texture gets pulled in with the wrong color space, and the lighting looks off for reasons nobody can quite explain until someone finally checks.
None of that is specific to MetaHumans. It’s specific to pipelines — any pipeline, any handoff between one tool and the next. I just happened to be building a MetaHuman-based character for a university production when I got tired of fixing the same problems by hand, so that’s the context A13x grew out of.
Here’s the thing though. When I show people this project, the MetaHuman part is what they latch onto. They assume the tools only matter if you’re also building digital humans in CC5 and Unreal. I want to walk you through why that assumption is wrong — and I’m going to use an actual CC5-to-Unreal deliverable to make the case concrete rather than theoretical.
Two layers, and only one of them cares what you're building
Here’s how I think about the architecture. There’s a content layer and a pipeline layer, and the whole argument hinges on keeping them separate.
The content layer is everything specific to this particular production: ZBrush sculpt, into Character Creator 5, into a Maya rig, into a MetaHuman assembly inside Unreal Engine. That’s the part that changes the moment you’re building something other than a stylized digital human.
The pipeline layer is different. It’s Revention handling autosave and versioning, the pivot tool standardizing where an object’s origin sits, the mesh and scene checker catching geometry problems, and the Substance loader making sure textures come in with the right color space. None of these tools look at what they’re operating on and think “ah, this is a face.” They just enforce the same discipline every time, regardless of content.
If that separation were fake — if the pipeline layer secretly needed MetaHuman topology or CC5’s rig structure to function — then everything I’m about to show you would just be marketing. So let me show you it isn’t.
Walking through the CC5-to-Unreal deliverable
I want to take you through what actually happens when an asset moves from Character Creator 5 into Unreal Engine with A13x running at each handoff, because seeing it beats hearing about it.
This is what you get straight out of CC5, before anything touches it.
Here’s Revention quietly tracking every save along the way, so if something goes wrong three steps later, I’m not hunting through a folder full of files named final_v2_ACTUALFINAL.
And here’s the pivot getting snapped to a grid standard before it ever reaches Unreal — because CC5’s default pivot placement almost never matches what the engine expects.
This is the mesh checker catching a topology issue that would otherwise have surfaced as a rigging problem down the line — caught here instead, before it costs anyone an afternoon.
And the Substance loader making sure the color space is right before ingestion, instead of after someone notices the lighting looks wrong.
That’s the finished asset, sitting in Unreal, having gone through every one of those steps.
Now compare that to what happens without any of it. A raw CC5 export usually keeps its default pivot, which rarely matches Unreal’s conventions. Nothing checks the geometry, so topology issues only surface once you’re deep into rigging or animation. Texture color space defaults incorrectly more often than not on ingestion. And versioning is whatever discipline you happen to remember to apply that day, which on a deadline is usually not much.
I’m not showing you this to say CC5 or Unreal are doing anything wrong. They’re not. The problems live in the gap between them, in the handoff — and that gap has the same shape whether the asset is a MetaHuman or not.
The proof point I keep coming back to
Separately from the CC5-to-Unreal comparison, I matched the same asset’s lighting and look across two completely different rendering paradigms — Arnold and Unreal.
If the discipline behind this pipeline holds up across two renderers that don’t share a philosophy, I think it’s fair to expect it holds up across two content pipelines that don’t share one either. It’s the same argument as the CC5/UE comparison, just from a different angle.
Where i want to be clear about scope
should be upfront: the official pitch for A13x targets MetaHuman and CC5, and that’s the production this was built and proven on. I’m not going to pretend otherwise. But I don’t think that target is a ceiling — I think it’s a starting point. The strongest version of this argument isn’t me telling you it would generalize. It’s improvising a demonstration on the spot, on something the pipeline wasn’t originally built for, and showing you it still holds up. That’s more convincing than any diagram I could draw for you.
It’s also worth pulling apart the pipeline from the pitch when it comes to something like a VIVA. A few of these tools don’t actually need the full MetaHuman/CC5 context to be useful on their own. The mesh checker can run against whatever asset a panel puts in front of me. The pivot tool can fix pivots on something pulled in on the spot. The Substance loader can correct color space on any PBR asset, not just the ones from this production. Framed that way, these aren’t just pieces of one pipeline — they’re a toolkit I can reach for individually, which is a much easier thing to defend under questioning than leaning on one MetaHuman example the whole time.
What I actually want you to take from this
A13x started as a way to solve one production’s problems. But swap out the content layer — put in a game prop pipeline, an environment kit, an animation short, an AR asset, whatever — and the pipeline layer underneath doesn’t need to change. Revention doesn’t need to know it’s versioning a MetaHuman. The pivot tool doesn’t need to know it’s snapping a face rig. The mesh checker doesn’t care what the mesh is of. The Substance loader doesn’t care what the texture is for.
That’s the whole point I’ve been trying to make. This isn’t a MetaHuman script that happens to be open source. It’s a pipeline pattern that happened to get proven on a MetaHuman first.
A13x is open source: github.com/itsakshaydilip/A13x
Personal Thoughts: