Motion Matching
Set up Motion Matching with Pose Search. Unreal Engine 5 command reference with parameters and examples.
Set up Motion Matching with Pose Search. Unreal Engine 5 command reference with parameters and examples.
10 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.
get_pose_search_assetRead a Pose Search Schema (skeletons, channels) or Database (settings, entries)
A schema: sample rate, cardinality, skeletons (skeleton, mirror data table, role) and channels by index with their fields. A database: its settings (Schema, cost biases, tags, search mode...) and entries by index with asset, kind, enabled, mirror option, sampling range and whether the asset's skeleton fits the schema.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_path | string | Yes | Pose Search Schema or Database path |
| filter | string | No | Substring filter on a database entry's asset path |
| max_results | int | No | Max database entries to return (0 = all); reports truncated |
cfa get_pose_search_asset /Game/MM/PSS_Locomotion
cfa get_pose_search_asset /Game/MM/PSD_Locomotion --filter Jogadd_pose_search_channelAdd a feature channel to a Pose Search Schema (Pose, Trajectory, Velocity...), or Epic's default pair
--type is a channel class from this engine's reflection: Pose, Trajectory, Velocity, Position, Heading, Phase, Curve, Group, Padding... (an unknown name lists the real ones), or default for the Trajectory + Pose pair the editor puts in a new schema. --properties sets the channel's fields by reflection, e.g. {"Weight":2}. Undoable.
| Parameter | Type | Required | Description |
|---|---|---|---|
| schema_path | string | Yes | Pose Search Schema path |
| type | string | Yes | Channel type (Pose, Trajectory, Velocity...) or default |
| properties | json | No | The channel's fields as JSON |
cfa add_pose_search_channel --schema-path /Game/MM/PSS_Locomotion --type default
cfa add_pose_search_channel --schema-path /Game/MM/PSS_Locomotion --type Velocity --properties '{"Bone":{"BoneName":"hand_r"},"Weight":0.5}'set_pose_search_channelChange a Pose Search Schema channel's fields by index (Weight, SampledBones, Samples...)
| Parameter | Type | Required | Description |
|---|---|---|---|
| schema_path | string | Yes | Pose Search Schema path |
| index | int | Yes | Channel index from get_pose_search_asset |
| properties | json | Yes | The fields to change as JSON |
cfa set_pose_search_channel --schema-path /Game/MM/PSS_Locomotion --index 0 --properties '{"Weight":5}'remove_pose_search_channelRemove a channel from a Pose Search Schema by index
| Parameter | Type | Required | Description |
|---|---|---|---|
| schema_path | string | Yes | Pose Search Schema path |
| index | int | Yes | Channel index from get_pose_search_asset |
cfa remove_pose_search_channel --schema-path /Game/MM/PSS_Locomotion --index 2set_pose_search_skeletonAdd or update a Pose Search Schema skeleton by role, with its Mirror Data Table
Plain animations use the default role (leave --role out). Mirrored entries need a Mirror Data Table on every schema skeleton, or the index build fails. --mirror-data-table none clears it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| schema_path | string | Yes | Pose Search Schema path |
| skeleton | string | Yes | Skeleton asset path |
| mirror_data_table | string | No | Mirror Data Table path, or none to clear; leave out to keep |
| role | string | No | Role name; leave out for the default role |
cfa set_pose_search_skeleton --schema-path /Game/MM/PSS_Locomotion --skeleton /Game/Characters/Mannequins/Meshes/SK_Mannequin --mirror-data-table /Game/MM/MDT_Mannequinadd_pose_search_animationsAdd animations to a Pose Search Database (sequences, blend spaces, composites, montages)
Done the way the database editor adds them (Modify, add, PostEditChange), so it is undoable. --properties sets entry fields on each added entry by reflection: bEnabled, MirrorOption (UnmirroredOnly, MirroredOnly, UnmirroredAndMirrored), SamplingRange ({"Min":0,"Max":0} is the whole asset), and on 5.7+ the blend space sampling fields. An asset already in the database is skipped and named.
| Parameter | Type | Required | Description |
|---|---|---|---|
| database_path | string | Yes | Pose Search Database path |
| assets | stringlist | Yes | Animation asset paths |
| properties | json | No | Entry fields applied to each added entry, as JSON |
cfa add_pose_search_animations --database-path /Game/MM/PSD_Locomotion --assets /Game/Anims/MF_Jog_Fwd,/Game/Anims/MF_Jog_Bwd --properties '{"MirrorOption":"UnmirroredAndMirrored"}'set_pose_search_animationChange one Pose Search Database entry by index or asset (enabled, mirror option, sampling range...)
| Parameter | Type | Required | Description |
|---|---|---|---|
| database_path | string | Yes | Pose Search Database path |
| index | int | No | Entry index from get_pose_search_asset |
| asset | string | No | The entry's animation asset path (instead of index) |
| properties | json | Yes | Entry fields to change, as JSON |
cfa set_pose_search_animation --database-path /Game/MM/PSD_Locomotion --asset /Game/Anims/MF_Jog_Fwd --properties '{"bEnabled":false}'remove_pose_search_animationsRemove Pose Search Database entries by asset or index
| Parameter | Type | Required | Description |
|---|---|---|---|
| database_path | string | Yes | Pose Search Database path |
| assets | stringlist | No | Animation asset paths whose entries to remove |
| indices | json | No | Entry indices to remove, e.g. [0,3] |
cfa remove_pose_search_animations --database-path /Game/MM/PSD_Locomotion --assets /Game/Anims/MF_Jog_Fwdbuild_pose_search_indexBuild a Pose Search Database's search index and wait; returns the engine's own errors and warnings
Uses the same request the cooker makes, then waits. A failed build is an error whose text is the engine's LogPoseSearch message (for example a schema with no channels or a mirrored entry with no Mirror Data Table).
| Parameter | Type | Required | Description |
|---|---|---|---|
| database_path | string | Yes | Pose Search Database path |
| timeout_seconds | int | No | Seconds to wait (1-570) |
cfa build_pose_search_index --database-path /Game/MM/PSD_Locomotionvalidate_pose_search_databaseVerdict for a Pose Search Database: schema, channels, skeletons, mirror tables, assets, then the index build
Returns verdict = pass | pass_with_warnings | fail plus findings. Each rule is one the index build applies. Errors: no_schema, schema_no_channels, schema_no_skeleton, negative_channel_weight, mirror_table_no_skeleton, mirror_table_missing (a mirrored entry with a schema skeleton that has no Mirror Data Table), asset_no_skeleton, index_build_failed (the engine's own message). Warnings: entry_no_asset, skeleton_incompatible (the engine leaves the asset out), blend_space_sync_phases, no_enabled_entries, index_build_unfinished. --build-index=false skips the build.
| Parameter | Type | Required | Description |
|---|---|---|---|
| database_path | string | Yes | Pose Search Database path |
| build_index | bool | No | Also build the index and report a failed build |
| filter | string | No | Substring filter on the finding code, target or message |
| max_results | int | No | Max findings to return (0 = all); reports truncated |
cfa validate_pose_search_database /Game/MM/PSD_Locomotion