editor.skeletalmesh

Provides introspection of skeletal mesh assets: mesh info, bone hierarchy, morph targets, LODs, sockets, and material slots.

← API Reference

editor.skeletalmesh.getInfo

Get general information about a skeletal mesh asset.

Name Type Required Description
asset_pathstringYesFull asset path (e.g. /Game/Characters/Mannequin/Mesh/SK_Mannequin)

Returns

Field Type Description
namestringMesh asset name
asset_pathstringFull asset path
bone_countnumberNumber of bones (raw, excluding virtual bones)
skeleton_pathstringPath to the USkeleton asset
lod_countnumberNumber of LOD levels
morph_target_countnumberNumber of morph targets (blend shapes)
material_slot_countnumberNumber of material slots
has_clothbooleanWhether the mesh has active cloth simulation
vertex_countnumberTotal vertex count (LOD 0)
triangle_countnumberTotal triangle count (LOD 0)
boundsobjectBounding box/sphere (origin, box_extent, sphere_radius)

Example Request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "editor.skeletalmesh.getInfo",
  "params": { "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin" }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "name": "SK_Mannequin",
    "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin.SK_Mannequin",
    "bone_count": 68,
    "skeleton_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin_Skeleton.SK_Mannequin_Skeleton",
    "lod_count": 4,
    "morph_target_count": 0,
    "material_slot_count": 1,
    "has_cloth": false,
    "vertex_count": 6828,
    "triangle_count": 12384,
    "bounds": {
      "origin": { "x": 0.0, "y": 0.0, "z": 88.0 },
      "box_extent": { "x": 30.0, "y": 30.0, "z": 90.0 },
      "sphere_radius": 95.0
    }
  }
}

editor.skeletalmesh.getBones

Get the bone hierarchy for a skeletal mesh.

Name Type Required Description
asset_pathstringYesFull asset path to the skeletal mesh

Returns

Field Type Description
bone_countnumberTotal number of bones
bonesarrayArray of bone objects
bones[].namestringBone name
bones[].indexnumberBone index
bones[].parent_indexnumberParent bone index (-1 for root)
bones[].parent_namestringParent bone name (empty for root)
bones[].transformobjectReference pose transform
bones[].transform.translationobjectPosition {x, y, z}
bones[].transform.rotationobjectQuaternion {x, y, z, w}
bones[].transform.scaleobjectScale {x, y, z}

Example Request

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "editor.skeletalmesh.getBones",
  "params": { "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin" }
}

editor.skeletalmesh.getMorphTargets

List all morph targets (blend shapes) on a skeletal mesh.

Name Type Required Description
asset_pathstringYesFull asset path to the skeletal mesh

Returns

Field Type Description
morph_target_countnumberNumber of morph targets
morph_targetsarrayArray of morph target name strings

Example Request

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "editor.skeletalmesh.getMorphTargets",
  "params": { "asset_path": "/Game/Characters/Face/SK_Face" }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "morph_target_count": 3,
    "morph_targets": ["Smile", "Frown", "Blink"]
  }
}

editor.skeletalmesh.getLODs

Get per-LOD details for a skeletal mesh.

Name Type Required Description
asset_pathstringYesFull asset path to the skeletal mesh

Returns

Field Type Description
lod_countnumberTotal number of LODs
lodsarrayArray of LOD detail objects
lods[].lod_indexnumberLOD level index
lods[].screen_sizenumberScreen size threshold for LOD transition
lods[].has_been_simplifiedbooleanWhether this LOD was auto-generated
lods[].allow_cpu_accessbooleanWhether CPU access is enabled
lods[].vertex_countnumberTotal vertices in this LOD
lods[].triangle_countnumberTotal triangles in this LOD
lods[].section_countnumberNumber of mesh sections
lods[].active_bone_countnumberBones used in this LOD
lods[].required_bone_countnumberBones required for rendering
lods[].has_clothbooleanWhether any section has cloth data

Example Request

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "editor.skeletalmesh.getLODs",
  "params": { "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin" }
}

editor.skeletalmesh.getSockets

List all sockets on a skeletal mesh (mesh + skeleton sockets).

Name Type Required Description
asset_pathstringYesFull asset path to the skeletal mesh

Returns

Field Type Description
socket_countnumberNumber of sockets
socketsarrayArray of socket objects
sockets[].socket_namestringSocket name
sockets[].bone_namestringParent bone name
sockets[].force_always_animatedbooleanWhether the bone hierarchy is always evaluated
sockets[].relative_locationobjectPosition offset {x, y, z}
sockets[].relative_rotationobjectRotation offset {pitch, yaw, roll}
sockets[].relative_scaleobjectScale {x, y, z}

Example Request

{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "editor.skeletalmesh.getSockets",
  "params": { "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin" }
}

editor.skeletalmesh.getMaterialSlots

List all material slots on a skeletal mesh.

Name Type Required Description
asset_pathstringYesFull asset path to the skeletal mesh

Returns

Field Type Description
countnumberNumber of material slots
slotsarrayArray of slot objects
slots[].indexnumberSlot index
slots[].slot_namestringMaterial slot name
slots[].material_namestringAssigned material name (or "None")
slots[].material_pathstringAssigned material asset path (or empty)

Example Request

{
  "jsonrpc": "2.0",
  "id": 6,
  "method": "editor.skeletalmesh.getMaterialSlots",
  "params": { "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin" }
}

editor.skeletalmesh.setMaterialSlot

Assign a material to a material slot on a skeletal mesh.

Name Type Required Description
asset_pathstringYesFull asset path to the skeletal mesh
slot_indexnumberYesMaterial slot index
material_pathstringYesFull asset path of the material to assign

Returns

Field Type Description
successbooleanWhether the operation succeeded
slot_indexnumberThe slot that was modified
material_namestringName of the newly assigned material
material_pathstringPath of the newly assigned material

Example Request

{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "editor.skeletalmesh.setMaterialSlot",
  "params": {
    "asset_path": "/Game/Characters/Mannequin/Mesh/SK_Mannequin",
    "slot_index": 0,
    "material_path": "/Game/Materials/M_Red.M_Red"
  }
}

Example Response

{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "success": true,
    "slot_index": 0,
    "material_name": "M_Red",
    "material_path": "/Game/Materials/M_Red.M_Red"
  }
}