← All namespaces

pose_search

Animation & rigging Experimental

Pose Search schema and database assets for Motion Matching.

What it's for

Motion Matching in Unreal is driven by two assets: a Pose Search schema, which describes the skeleton and the feature channels the matcher compares against, and a Pose Search database, which holds the animation entries searched at runtime. This namespace builds both from your assistant, so you can stand up a Motion Matching setup without hand-authoring the assets in the editor.

You would reach for it when you want to scaffold a schema bound to a specific skeleton, create a database that points at that schema, and populate the database with animation sequences. Each operation follows the normal editor create-and-save path, so the resulting assets open and edit like any hand-made ones.

The three operations compose: create the schema first, create a database that references it, then keep appending sequences as your animation set grows. You can seed the database with sequences at creation time, or add them one at a time afterward with an explicit sampling range.

This area is experimental and still improving. Channel support is currently limited (Position is the supported channel kind), and the shape of parameters may change as it matures.

Examples

Create a schema bound to a skeleton

Start the Motion Matching setup by authoring a schema with a position channel against your character skeleton.

You: Make a Pose Search schema for SK_Mannequin with a position channel.

  call("pose_search.create_schema", {assetPath:"/Game/MM/PSS_Locomotion",
        skeleton:"/Game/Characters/SK_Mannequin_Skeleton",
        channels:[{kind:"Position"}]})
    → {ok:true, assetPath:"/Game/MM/PSS_Locomotion"}

Done. Schema created and bound to the skeleton.

Create a database that references the schema

With the schema in place, create a database wired to it and seed it with a couple of sequences.

You: Create a Pose Search database using that schema, seeded with my idle and walk clips.

  call("pose_search.create_database", {assetPath:"/Game/MM/PSD_Locomotion",
        schema:"/Game/MM/PSS_Locomotion",
        animations:["/Game/Anims/A_Idle", "/Game/Anims/A_Walk"]})
    → {ok:true, assetPath:"/Game/MM/PSD_Locomotion"}

Done. Database created with 2 sequence entries.

Append a sequence with an explicit sampling range

Add one more clip to an existing database, sampling only the middle of the sequence.

You: Add A_Run to the locomotion database, but only the 0.5 to 2.0 second span.

  call("pose_search.add_database_animation", {assetPath:"/Game/MM/PSD_Locomotion",
        sequencePath:"/Game/Anims/A_Run",
        samplingRange:{min:0.5, max:2.0}})
    → {ok:true, assetPath:"/Game/MM/PSD_Locomotion"}

Done. A_Run appended over the 0.5-2.0s range.

← Back to all namespaces