Kovati Docs

Post-processing

Chains, input sources, the Blender round trip, and steps other plugins add.

Documented in depthMeshForge0.3.0Open source

The Post stage is a chain of steps. Each one takes a mesh and produces another, or produces an asset.

The Post-processing stage, headed in red 'failed — TransferBoneWeightsFromMesh: Failed to transfer the weights'. Under it the chain is summarised as 'Garment fit — wrap around a character → Wardrobe skinning — Unreal inpainting', with the error repeated. The two steps are listed separately: the first ticked green and marked with a last-run date, the second numbered and marked 'not run yet'. Each carries up and down reorder arrows and its own Run this step and Remove buttons. An 'Add a step' picker sits below, above a note explaining that Run chain executes enabled steps using their chosen inputs, Run this step uses an existing input without running earlier steps, and every completed step creates a separate output — this one costing local Unreal skin-weight inpainting, no credits — beside a Run chain button.
A failed chain, reported per step rather than as one verdict. The garment fit is ticked and keeps its last-run date; only the skinning below it failed, and only that step needs running again.

Two different run buttons, and the difference is money. Run chain executes the enabled steps in order. Run this step takes an existing input and runs one step without re-running anything before it — which is what makes retrying the failure above cost nothing but the skinning.

Every completed step creates a separate output, so a step that worked is still there to be used after a later one breaks.

Where a step's input comes from

Four sources, chosen per step:

SourceWhat it means
Step above, latest runThe default. For the first step, the Mesh stage's selected take
Mesh stage's selected take (or Source Mesh)Skip everything above
Selected mesh / saved outputSomething already in the project
A step's outputA chosen step, and a chosen run of it. The Mesh stage is listed first, and its finished takes count as its runs

Steps can be reordered with up/down arrows. A move that would produce a chain the executor could not run is greyed with the reason.

The ordering rule: steps that make assets rather than geometry may follow one another, but nothing that works on geometry may follow them. A step's input may be a skeletal mesh where the step takes one.

A retexture only points at a vendor's copy while that copy is still ours

A step that moves vertices declares that it changes geometry. The chain remembers this, and one decision decides whether a retexture can reference the vendor's own copy of the mesh or must upload ours.

Without that, a retexture after a Blender edit would texture the mesh before the edit — and look plausible.

Edit in Blender — the round trip

A post step a person finishes in Blender.

  • Optional locked reference meshes stand beside the subject.
  • A MeshForge sidebar tab appears in Blender.
  • The chain waits for Send back to Unreal, and a result sent later can still be picked up.
The 'Edit in Blender — round trip' step in Unreal, marked 'waiting…', with Run this step greyed out and a Stop waiting button beside Remove. A Blender group holds an empty Reference Meshes array, an unticked Edit Skinned Mesh, and ticked Open in Sculpt Mode and Restore Input Materials. The Input Source is set to 'A step's output — choose the step and the run', resolved below by two pickers reading From step 'Mesh stage (Source Mesh: SM_CC5_…)' and Run 'The Source Mesh'. A line at the foot reads 'Wait for the current job to finish.'
The step in its waiting state: Unreal has handed the mesh over and is holding the chain open. 'Stop waiting' is the way out that does not require Blender to cooperate — close Blender without sending, and the step is still yours to abandon.

The From step / Run pickers under Input Source are the "a step's output" case made concrete: not just which step, but which run of it. That is what lets you send the third attempt to Blender rather than whichever ran last.

Blender opens on the mesh, in Sculpt Mode if the step asked for it:

Blender 5.2 LTS in Sculpt Mode, showing a grey shirt mesh named SM_CC5_Shirt_Source with a brush cursor on its shoulder. The outliner lists the shirt alongside a separate 'MeshForge References' collection. A vertical tab strip on the right of the viewport carries the usual Item, Tool, View and Animation tabs plus one labelled MeshForge.
An ordinary Blender session, opened on the mesh with its own collection for references. The extra sidebar tab is the only thing MeshForge adds — everything else is Blender as the artist already knows it.
The MeshForge sidebar tab open in Blender. It names the definition MSD_TestCharacter, states '6911 vertices when opened', and offers two buttons: 'Send back to Unreal' and 'Cancel the edit'. Beneath them a note reads: keep topology if the mesh will be retextured or morph-baked later.
'6911 vertices when opened' is the number the write-back is checked against. The note underneath is the reason it matters: a retexture or a morph bake both need the topology they were built on, so changing it here breaks something later rather than now.

With Edit skinned mesh it works on a skeletal mesh and brings back a copy of the same asset with its vertices moved — skeleton, weights, morph targets and materials untouched.

Topology must come back unchanged, or the step refuses and says so with both counts. Moving vertices is supported; adding or removing them is not, because the weights and morph targets on the Unreal side are indexed by vertex.

The Blender executable is set in Editor Preferences, per user.

If you are writing Blender steps of your own, two traps worth knowing: glTF import in Blender has its own conventions that do not round-trip naïvely, and FBX export to Unreal must be in centimetres or everything arrives at the wrong scale.

Steps a person finishes inside the editor

There is a defined interface for a step that opens a window, hands the mouse to a person, and resumes the chain when they are done — covering the interactive input, the result asset, a command channel, and whether a session is needed.

The Garment Studio and the sculpt step are the users of it.

A header-only extension lets another plugin register a post step without linking MeshForge at all — a settings class and a game-thread function.

They appear under From other plugins in the step picker. A definition opened without the registering plugin keeps the step and names it, rather than dropping it silently.

This is how an add-on outside the Forge monorepo entirely — a project's own clothing plugin, say — contributes a step. The shared Forge plugins are optional by design: a header-only interface costs a dependent nothing.

What ships in the family

StepFrom
Edit in BlenderMeshForge
Meshy retextureMeshForgeCloud
Tripo retextureMeshForgeCloud
Garment fitMeshForgeGarment (paid)
Wardrobe skinningMeshForgeGarment (paid)
Sculpt meshMeshForgeGarment (paid)

Free re-finishing

Collision, hull count, size, pivot, Nanite and lightmap resolution all re-apply with no provider call.

Separating expensive generation from free refinishing is the rule everywhere in this family — see providers are infrastructure.

Nanite everywhere is a trade. Turning it on across the board trades one class of warning for another, and it breaks material slots that rely on non-Nanite paths — glass in particular. Decide per asset kind rather than globally.

On this page