Kovati Docs

Garment

Fit clothing to a character, sculpt it, and skin it — the Garment Studio.

Documented in depthMeshForgeGarment0.2.0PaidMeshForgeGarmentToolset0.1.0Open source

MeshForgeGarment dresses a character in an imported or generated garment, as steps on MeshForge's Post stage.

A MetaHuman character standing on a grey checkered floor in a test level, wearing white and teal sci-fi armour: a fitted chest plate with shoulder hardware, matching thigh and shin plates, and boots. The armour follows the body's proportions and the character is lit and shadowed as part of the scene.
The end of the chain. This armour was generated from a prompt, fitted to this body, sculpted where it pinched, wrapped, and skinned to the character's own skeleton — and is now an ordinary skeletal mesh the game animates like any other.

Two definitions produced that: a chest plate and a leg set, each fitted to the same body. A garment is a definition, not a costume — you build them one piece at a time and the character wears whichever it is given.

Paid. Bought once on the account app, and installed by the hub like anything else. Its toolset is open — see distribution.

It needs MeshForge 0.3.0 or later. Removing it changes nothing about MeshForge, and what it made stays as ordinary assets.

The fit step

Exports the target skeletal mesh in its reference pose with its bone landmarks, finds and welds on a MetaHuman's face, hands the body and the garment to a Blender solver — locally or on a runner service — and brings the same garment back wrapped around the body with its vertices, UVs and material slots untouched.

Two modes

ModeFor
Place (default)A garment made on the character's own picture. Only scales, aligns, and clears the garment off the skin
FitA garment made for another body, or none. Runs the full articulate / project / relax solve

Plus a garment type (13 kinds, which decide which limbs may be wrapped), fit style, clearance, shape preservation, projection strength, relaxation and collision passes, and a yaw correction.

The Garment fit step expanded, ticked green and showing a last-run date, with Run this step and Remove buttons. Its settings: an Open Garment Studio button; Target Character set to SKM_MH_Demo_Player_Naked_BodyMesh with a thumbnail; an empty Additional Meshes array; Find Meta Human Face ticked; Garment Type set to Armour; Mode set to 'Place — scale, align, clear the skin'; a collapsed Pose Match group; Fit Style Regular; Clearance 1.2 cm; Shape Preservation 1.0; Projection Strength 0.0; Smoothing Iterations 0; Collision Iterations 3; and Garment Yaw 0 degrees. An Input group below sets Input Source to 'Step above, latest run (the Mesh stage's selected take…)'.
Every dial the solve takes, and the mode it runs in. Projection Strength and Smoothing sit at zero here because this is Place mode — it only scales, aligns and clears the skin, so the settings that belong to the full solve are left alone rather than hidden.

Find Meta Human Face is ticked by default because a MetaHuman body and its face are separate meshes, and a collar fitted to a headless body is fitted wrong. Additional Meshes is where a modular character's hands and feet go.

Input Source is the same picker every post step has — see where a step's input comes from.

Garment Type is not cosmetic. It decides which limbs may be wrapped, so a jacket and a bodysuit solve differently against the same body. Setting it wrong produces a fit that looks nearly right and clips at the one joint the solver was told to leave alone.

Additional Meshes covers a modular character's hands and feet.

Each fit writes its body, landmarks, request, Blender log and a diagnostics file under Intermediate/MeshForge/GarmentFit/<id>/.

The Garment Studio

One window holds the character and the garment, in three modes that decide who gets the mouse.

Pose and place

Two jobs in one mode, and the panel keeps them apart: place the garment, and pose the body underneath it.

The Garment Studio window titled for the Neon Vanguard chest plate. Mode tabs read Pose and place, selected, then Sculpt and Wrap; beside them are Select garment, Select character, Move, Rotate, Scale, World and Snap. The viewport shows a MetaHuman standing in the armour, with cyan joint handles on shoulders, elbows, wrists, chest, hips, knees and feet. The right panel is divided into Fitting, which names the garment and both the body and face meshes; Garment, explaining that new garments start near their body region and offering Select garment and Auto place; Body, explaining that clicking a joint handle lets W drag it and E turn the bone, with Mirror X ticked, a Show head handle option, Reset pose and Frame buttons, and the readout 'Gizmo on nothing. 0 bones turned.'; and Then, explaining what Save and Finish each do. The fit step's settings are repeated at the bottom.
The character, the garment and every handle in one window. The status line under the Body section — 'Gizmo on nothing. 0 bones turned.' — tells you what the next drag will actually move, which matters when the handles sit on top of the armour.

The instructions are in the panel rather than in a manual, and they are worth reading once:

Click a joint handle. W drags it: a wrist or foot pulls its limb, an elbow or knee aims the bone above it. E turns the bone. Bend the body until it sits inside the cloth; the arms are usually all it takes.

Up to 15 joint handles — shoulders, elbows, wrists, hips, knees, feet, chest, pelvis, and optionally the head. Mirror X is on by default and turns the opposite side too.

The Garment Studio in Pose and place with Move highlighted. A translation gizmo sits on the chest plate itself, and the readout reads 'Gizmo on the garment. 0 bones turned.' The joint handles remain visible across the body.
Move selected and the gizmo on the garment: W moves it, E turns it, R scales it. This is placing the armour, not posing the person.
The Garment Studio in Pose and place with Rotate highlighted. A coloured rotation gizmo sits on the character's left shoulder joint, and the readout reads 'Gizmo on Left shoulder. 0 bones turned.'
The same mode, a joint selected instead: the readout names the bone, so you know whether the next drag turns a shoulder or nudges the whole garment.

You are bending the body to suit the cloth, not the other way round. That sounds backwards until you read the panel's own advice — bend the body until it sits inside the cloth — and remember the pose is thrown away. It exists only so the solver starts from a position where the garment already roughly encloses the limbs.

Sculpt

Epic's Vertex Sculpt, Smooth, Lattice and Bend/twist, on the garment where it was placed and against the body as it was bent.

The panel says why that matters better than a paragraph could:

Sculpt the garment where it sits, against the body as you bent it: loosen a tight neck, pull a hem out of the legs. The wrap starts from this shape.

The Garment Studio in Sculpt mode. A brush circle sits on the chest plate, which is drawn untextured so its geometry reads. The right panel explains sculpting the garment where it sits, notes that the sculpt is kept with the definition rather than as an asset, and reports 'Nothing kept yet: the garment as the fit step receives it (12,996 vertices), as saved. Brush work joins it when you switch mode or save.' A Tools row offers Sculpt, Smooth, Lattice and Bend / twist with Sculpt in use, above Accept and Cancel and a ticked Show references. Tool settings below cover Stroke, Brush size, stamp spacing and lazy, a Sculpting group with a Move brush, falloff and region, Symmetry, and Move Brush strength.
The garment renders untextured here so the geometry is legible under the brush. 'Show references' keeps the body visible while you work — you are shaping the garment against the person, not in isolation.
The brush type palette, showing eighteen brushes as labelled icons: Smooth, SmoothFill, Move (selected), SculptN, SculptV, SculptMx, Inflate, InflateSt, InflateMax, Pinch, Flatten, PlaneN, PlaneV, PlaneW, Scale, Grab, GrabSharp and Twist.
The brush list is Unreal's own, not a reduced set — eighteen brushes, the same ones the engine's modelling mode offers. Nothing here is a reimplementation.

For shapes a brush is the wrong instrument for, two deformers:

The Garment Studio in Sculpt mode using Lattice Deform. A red lattice cage of control points surrounds the chest plate, with a transform gizmo on one of them. Tool settings show Clear Constraints and Constrain buttons, a Soft Deformation option, X, Y and Z axis resolutions all set to 5, padding of 0.01, linear interpolation, a Deform Normals option, and gizmo coordinate settings.
Lattice for broad reshaping — drag a cage point and the geometry inside follows. A five-by-five-by-five cage is coarse on purpose: it moves the whole panel rather than individual plates.
The Garment Studio in Sculpt mode using Space Warp. The chest plate is shown mid-bend with the original mesh drawn as a translucent overlay and a bend gizmo through it. Tool settings set Operation Type to Bend, with upper and lower bounds of about 25 and minus 25, Bend Degrees at 90, a Lock Bottom option, and both Show Original Mesh and Draw Visualization ticked.
Bend and twist, with the original drawn through the result so you can see how far you have moved it. 'Show Original Mesh' is the useful one: a deformation you cannot compare against is a deformation you cannot judge.

The sculpt is kept as a plain file in the definition's generated folder, not as an asset — stored as per-vertex positions plus a fingerprint of the input.

The panel is explicit about when brush work becomes part of that: "Nothing kept yet… Brush work joins it when you switch mode or save." Until then it is live geometry, and Back to the original throws it away.

A sculpt made on a garment that has since been regenerated is refused with the reason, rather than applied to different geometry. Back to the original discards it, and a changed sculpt makes the step stale.

Wrap

Runs the fit inside the window — about fifteen seconds — from My sculpt or The original, with the step's settings.

The solver reports where each vertex went and the studio moves its own vertices there, so the wrapped garment keeps the input's vertex order, UVs and material slots instead of being re-imported.

The studio flags a wrap that is out of date with the pose, placement, sculpt or settings. A wrapped garment can be sculpted too, and wrapping again over that sculpt asks first.

Save keeps the placement, pose, sculpt and last wrap on the step. Finish saves the wrap as an asset and records it as the step's output. Stop using the finished garment undoes Finish. Closing with unsaved changes asks first.

The studio puts the distinction in its own words, in the Then section:

Save keeps the placement, the turned bones, the sculpt and the last wrap with the fit step and saves the definition. Finish hands the wrap on screen to the chain as the step's output, as it is: a chain run then uses it without wrapping again, until the garment changes.

And beneath it, the current state in one line — "Not finished: a chain run wraps this step by itself, from the saved placement and sculpt." So you can always tell which of the two behaviours a later chain run will take, without guessing from whether the button looks pressed.

A finished garment goes on unchanged

If the step's input still matches the fingerprint it was finished on, a chain run passes the finished asset straight on without wrapping again.

If the input changed, or the finished asset is gone, the studio opens with the reason and the chain waits.

A step that was never finished wraps by itself, from the saved placement and sculpt — so an unattended chain still runs.

Wardrobe skinning

Makes a skeletal asset using Unreal's own weight transfer.

The Wardrobe skinning step, numbered 2 and marked 'not run yet', with Run this step and Remove buttons. A Wardrobe group sets Target Character to SKM_MH_Demo_Player_Naked_BodyMesh, shown with a thumbnail, and Bone Profile to GBP_Vest. A collapsed Inpainting group follows. Under Advanced sits a 'Sculpt in pose' button. An Input group sets Input Source to 'Step above, latest run (the Mesh stage's selected take…)', above a collapsed Pipeline group.
Two things decide the result: the body whose weights are copied, and the bone profile that limits which of its bones the garment is allowed to follow. Everything else is retry behaviour.

The Target Character appears on both steps, and it must be the same one. The fit step wraps the garment around that body; this step copies weights from it. Fitting to one body and skinning to another produces a garment that fits and then moves wrong — and nothing checks it for you.

A Mesh Definition for a Neon Vanguard chest plate. The viewer shows the plate worn by a grey MetaHuman body, with the Character picker set to MH_Demo_Pla and the output picker on post-processed; the status bar reads 4,120 triangles, 6,524 vertices, 1 material, 34 by 36 by 49 cm. On the right, Post-processing is marked 'failed — TransferBoneWeightsFromMesh: Failed to transfer the weights'. Its two steps are listed separately: Garment fit, ticked, with a last-run date, and Wardrobe skinning, marked 'not run yet' — each with its own Run this step and Remove buttons, above an Add a step picker. A note reads that Run chain executes enabled steps, Run this step uses an existing input without running earlier steps, every completed step creates a separate output, and this one costs local Unreal skin-weight inpainting, no credits. The Import stage below is stale and reads 'Nothing generated to import yet.'
Set the Character picker and the garment is drawn on the body it was fitted to, which is the only way to judge a fit. Here the fit succeeded and the skinning did not — the chain reports which step failed and with what error, and leaves the successful step's output alone.

Each step runs on its own. Run chain executes the enabled steps in order; Run this step uses an existing input without re-running anything before it. That distinction is what makes a failed skinning step cheap to retry — the garment fit above it does not run again.

Note the cost line too: "Costs Local Unreal skin-weight inpainting; no credits." A step that spends nothing still says so.

It binds to the body mesh, not to the shared skeleton. That is the whole trick: the reference skeleton comes from the body mesh, so the garment matches the character it was fitted to rather than an idealised skeleton asset that differs from it.

Before saving, every bone is checked against the body's reference pose, and the step fails if any is more than 0.01 cm out.

Retries

The configured settings, then the normal test disabled, then that plus triple radius. A rung that would leave a garment piece with nothing to inpaint from is skipped rather than run.

Those rungs live under Inpainting, collapsed by default — the step is meant to be run with its defaults, and opened only when it has failed.

Sculpt in pose…, under Advanced, opens the newest skinned garment in Unreal's Skeletal Mesh Editor with the target character and its face beside it: for posed sculpting or pose correctives, after the weights exist.

Bone profiles

A data asset choosing which body bones a garment follows.

RuleEffect
FollowKeep this bone and everything below it
Stop AtDrop this bone and everything below it

The nearest listed ancestor decides, and Drop Corrective Bones folds shape helpers into their main bones.

GBP_ArmsOnly is the whole idea in four entries:

The GBP_ArmsOnly asset open in its editor, marked Asset Type: Garment Bone Profile. Its Profile group sets Display Name to 'Arms only' and Description to 'Arm armour, pauldrons, sleeves on their own. Follows the shoulders and arms down to the wrist.' A Bones group lists Follow Bones with two entries, clavicle_l and clavicle_r, and Stop at Bones with two entries, hand_l and hand_r. Drop Corrective Bones is unticked, and a greyed Corrective Bone Patterns array holds 26 elements.
Follow the two clavicles and stop at the two hands: everything from the collarbone down is kept, and the hands and fingers below are dropped. Four bone names describe a sleeve — which is why writing a new profile is usually a two-minute job.

The 26 Corrective Bone Patterns are greyed out because Drop Corrective Bones is off. They are name patterns for the helper bones a rig uses to fix deformation at joints — real bones a garment will happily bind to, and almost never ones it should follow. Turn the option on and those bones' influence folds into the joint they correct.

The profile acts on the body before the transfer. An excluded bone's weight goes to the nearest kept ancestor. After the transfer, the step fails if any garment vertex still carries an excluded bone.

Thirteen ship: Head, Shirt/jacket, T-shirt, Vest, Arms only, Hands and feet, Pants, Pants and feet, Shorts, Full bodysuit, Full bodysuit and head, Backpack, Belt.

They are ordinary assets named GBP_*, picked in the step's Bone Profile slot — GBP_Vest in the capture above.

Thirteen Garment Bone Profile assets in the Content Browser, each showing the default data-asset icon: GBP_ArmsOnly, GBP_Backpack, GBP_Belt, GBP_Bodysuit, GBP_BodysuitHead, GBP_HandsFeet, GBP_Head, GBP_Pants, GBP_PantsFeet, GBP_ShirtJacket, GBP_Shorts, GBP_TShirt and GBP_Vest.
The thirteen that ship, named after what they cover rather than after bones. Start from the nearest one and duplicate it — a profile is a short list of rules, so editing a copy is faster than authoring one from nothing.

Make your own the same way as any other asset: Content Browser ▸ right-click ▸ Automation Forge ▸ MeshForge ▸ Garment Bone Profile.

Chest armour is a vest, not a shirt. The profile decides which bones the garment may follow, so a rigid chest plate given a shirt profile will follow the arms and deform at the shoulder — which looks like a skinning failure and is actually a profile choice.

Sculpt mesh — for any static mesh

A general hand-finished step, anywhere in a chain.

Epic's Vertex Sculpt, Smooth, Lattice and Bend/twist — all of which only move vertices. Tools that remesh are not offered, and a changed topology is refused on write-back.

The 'Sculpt mesh — in the editor' step, numbered 4 and marked 'not run yet', with Run this step greyed out and Remove available. A Sculpt group offers an 'Open sculpt window' button and an empty Reference Meshes array. An Input group sets Input Source to 'Step above, latest run (the Mesh stage's selected take…)'. A Pipeline group holds a Description and a ticked Enabled box. A line across the foot reads: 'No valid input: the previous step has no saved output. Run it first, or select a mesh / saved output.'
Run this step is greyed, and the line underneath says why and what to do about it: the step above produced nothing, so either run it or point this one somewhere else. A disabled button that explains itself beats an enabled one that fails.

Reference meshes stand locked beside the subject (a MetaHuman body brings its face), and UV seams are welded while sculpting.

The standalone Sculpt mesh window, titled for SM_TestCharacter_Sculpt, showing a grey shirt mesh with a brush circle on its shoulder. The Mesh panel reports 'Nothing beside it' and states that seams are welded while you sculpt — 7,314 vertices sculpt as 6,911, and both sides of a seam move together. Below it the controls are listed: left-drag sculpts, square brackets size the brush, Ctrl inverts, Shift smooths, Alt with left-drag orbits, right-drag looks, the wheel zooms, Ctrl+Z undoes a stroke. A Tools row offers Sculpt, Smooth, Lattice and Bend / twist above Accept, Cancel and a ticked Show references, with brush and sculpting settings beneath.
'Seams are welded while you sculpt: 7,314 vertices sculpt as 6,911.' A UV seam splits one edge into two rows of vertices, so sculpting across one unwelded tears the mesh open along it. Here both sides move together — and the panel says by how many vertices.

'Nothing beside it' is the Reference Meshes slot reporting empty. Fill it and the body stands locked beside the garment while you work, which is the difference between sculpting a shirt and sculpting a shirt that has to fit someone.

The same window serves this step and the Garment Studio's Sculpt mode — same four tools, same brushes, same controls. Only what it is handed differs.

Finish edit hands the working copy to the chain with nothing exported or re-imported.

Character in MeshForge's Mesh tab

Adds a Character control to MeshForge's viewer through the extension slot, so MeshForge itself knows nothing about characters.

Off by default. Offers No character, The one this definition fits, other characters named in the chain, a shared Recent list, and Any character. The answer is filed per definition in per-user settings, so a definition never asked about draws nobody.

The Character picker open over the Mesh tab, which shows a MetaHuman wearing the chest plate. The menu is headed SHOW WITH and offers 'No character' and 'The one this definition fits — SKM_MH_Demo_Player_Naked_BodyMesh'. A RECENT section below lists MH_Demo_Player_Naked_FullBody and an 'Any character…' submenu. At the foot, 'Show the face too' is ticked.
'The one this definition fits' is not a saved choice — it follows the fit step's Target Character, so it stays right when the fit step is repointed. Recent and 'Any character' are there for judging a garment against a body it was not made for.

Show the face too is ticked by default, and for the same reason the fit step finds the face: a MetaHuman's body and face are separate meshes, and a collar judged against a headless body is judged wrong.

With a character shown, the viewer does not centre, turn or scale anything, and Align is disabled.

Not built

  • A Studio wrap through the runner service — it fails with "the runner service does not return vertex positions yet". The local Blender route works.
  • The skeletal output creates no Chaos Cloth asset, physics asset or animation Blueprint.
  • No partial bone filter that keeps part of a bone.
  • No check that a garment is skinned to the body it was fitted to.

Traps worth knowing

MetaHuman meshes report themselves as dirty on load. The editor's is_dirty lies about them. Compare an md5 on disk before deciding whether something changed, and back up before writing.

A saved copy of a transient mesh has no geometry and asserts on the next load. Duplicate the source asset and then write positions into it — never save a transient mesh directly.

A procedural skeletal mesh needs an LOD model, or it crashes on load.

Settings

Editor Preferences ▸ Automation Forge ▸ MeshForge Garment Fit, never committed: the route (Blender here else the runner / Blender on this machine / the runner service), the runner URL, the Blender executable, and a timeout.

Auto tries local Blender first.

On this page