Unreal Engine 5.8 plugin · Beta

Cloth Wrinkle Solver

The real-time half of Looma. It reads the driver bones every frame and shows the wrinkle maps that fit the pose — folds that follow the body, with no empty frames and a fixed shader cost.

Unreal Engine 5.8Win64Chaos Cloth
Pose
Wrinkle maps

    An illustration in your browser: five wrinkle maps of a T-shirt pattern handing over to each other as the arms rise.

    On screen

    Folds that belong to the pose.

    You bake a wrinkle map for each pose that matters. The runtime does the rest: every frame it works out which of your maps fit the body right now, and how much each one should show.

    You don't wire curves by hand, and no pose falls between the cracks.

    Rest
    Arms up
    Twist L
    Twist R
    Bend
    This frame
    01

    Follows the body

    Folds change with the driver bones, frame by frame — not with a timeline or a state machine.

    02

    No empty frames

    Wherever the pose goes, there are folds. They don't drop out between the poses you authored.

    03

    No popping

    Moving from one pose to the next is a smooth hand-over, not a switch.

    04

    Calm on fast motion

    A guard on how quickly folds may change keeps snaps and quick turns from flickering.

    Analyzer

    The pose set, chosen from your animations.

    Which poses deserve a map? Point the analyzer at your animations and it proposes a set that covers them — then shows how it holds up on clips it never saw.

    Animations in

    Your whole pack

    Add animations or whole folders. Mark what the set must be tuned for and what it only has to cover.

    Your say

    Must-have poses

    Tell it which poses have to be in the set. It builds the rest around them.

    Fewer maps

    The smallest set that works

    It compares sets of different sizes and recommends the smallest that holds up — fewer maps to bake.

    Honest scores

    Checked on unseen clips

    Every result is measured on animations the analyzer didn't learn from, so a set can't just look good on paper.

    After launch

    Re-tune when animations change

    A changed animation pack gets new runtime presets — livelier, cleaner, calmer — without re-baking a single map.

    Pipelines

    Headless, too

    A commandlet runs the same analysis from the command line, and the pose set is plain JSON.

    Material

    One material function. Any number of poses.

    Drop the material function into your cloth material. It adds the live folds onto your base normal.

    • Fixed cost per pixel.However many poses the set has, the graph and its cost never change: new maps are new slices of one texture array.
    • Packed or single maps.Single maps in BC5, or two to a texture in BC7 for half the memory.
    • A whole outfit on one mesh.Up to three regions — shirt, shorts, socks — each with its own pose set, picked by a section mask.
    • Folds that keep their edge.Detail Contrast keeps fine folds crisp where maps mix.
    MI_ClothWrinkle_ShirtMaterial Instance
    Wrinkles
    WrinkleMapsPackedT_Shirt_WrinkleArray
    PackedMaps
    WrinkleStrength1.1
    Regions
    UseSectionMask
    SectionMaskT_Kit_SectionMask
    Detail
    DetailContrastBlend
    DetailContrast0.75
    Two ways to drive it

    In the Anim Blueprint, or on the actor.

    AnimGraph node

    Wrinkle Pose Solver

    Add the node to your Animation Blueprint. It writes one curve per pose, plus optional diagnostic curves.

    • Fits rigs that already drive materials from curves
    • Debug view of what's active
    Actor component

    Wrinkle Material Driver

    Add the component to the character. It solves from the skeletal mesh's pose — or reads the node's curves — and writes straight to the cloth components.

    • Custom Primitive Data, or one scalar parameter per pose for your own material
    • Extra sections for outfits, all from one body pose
    • An Alpha to fade it per character, from Blueprint
    Setup

    From animations to folds in six steps.

    1. Analyse

      Create an analysis setup, add your animations and run it. Pick the set size you want.

    2. Write the pose set

      One click writes the pose set asset and a document Looma can read.

    3. Bake in Looma

      Import the document in Looma, simulate and bake one wrinkle map per pose.

    4. Build the maps

      Add the maps and press Build: they're matched to poses by name and packed into a texture array.

    5. Drive

      Add the AnimGraph node or the Wrinkle Material Driver component to the character.

    6. Shade

      Use the cloth material, set its texture array and how deep the folds should be. Done.

    Looma bridge

    Maps arrive by themselves.

    Send finished maps from Looma, or let an assistant do it. The editor picks them up from the project's inbox, imports them as normal textures, updates the pose set and writes a receipt Looma can read back.

    Loomafinished bake
    in
    Project inboxpicked up by the editor
    UE
    Textures + pose setimported and updated
    ✓
    Receiptread back by Looma
    Specifications

    The technical bits.

    The plugin is in beta. This is what the current version does.

    EngineUnreal Engine 5.8
    PlatformWin64
    ClothChaos Cloth components; any material that uses the material function
    ModulesRuntime · Editor · Analyzer
    DriversWrinkle Pose Solver AnimGraph node · Wrinkle Material Driver component
    OutputsCustom Primitive Data or scalar parameters
    Shader costFixed per pixel, independent of the number of poses
    TexturesTexture2DArray · BC5 single maps or BC7 packed pairs
    RegionsUp to 3 per mesh, each with its own pose set
    PipelinesPose sets as JSON · headless analysis commandlet

    Put it on your character.

    Early-access studios get the runtime, Looma, and our help taking the first garment from animations to folds.