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_path | string | Yes | Full asset path (e.g. /Game/Characters/Mannequin/Mesh/SK_Mannequin) |
Returns
| Field | Type | Description |
name | string | Mesh asset name |
asset_path | string | Full asset path |
bone_count | number | Number of bones (raw, excluding virtual bones) |
skeleton_path | string | Path to the USkeleton asset |
lod_count | number | Number of LOD levels |
morph_target_count | number | Number of morph targets (blend shapes) |
material_slot_count | number | Number of material slots |
has_cloth | boolean | Whether the mesh has active cloth simulation |
vertex_count | number | Total vertex count (LOD 0) |
triangle_count | number | Total triangle count (LOD 0) |
bounds | object | Bounding 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_path | string | Yes | Full asset path to the skeletal mesh |
Returns
| Field | Type | Description |
bone_count | number | Total number of bones |
bones | array | Array of bone objects |
bones[].name | string | Bone name |
bones[].index | number | Bone index |
bones[].parent_index | number | Parent bone index (-1 for root) |
bones[].parent_name | string | Parent bone name (empty for root) |
bones[].transform | object | Reference pose transform |
bones[].transform.translation | object | Position {x, y, z} |
bones[].transform.rotation | object | Quaternion {x, y, z, w} |
bones[].transform.scale | object | Scale {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_path | string | Yes | Full asset path to the skeletal mesh |
Returns
| Field | Type | Description |
morph_target_count | number | Number of morph targets |
morph_targets | array | Array 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_path | string | Yes | Full asset path to the skeletal mesh |
Returns
| Field | Type | Description |
lod_count | number | Total number of LODs |
lods | array | Array of LOD detail objects |
lods[].lod_index | number | LOD level index |
lods[].screen_size | number | Screen size threshold for LOD transition |
lods[].has_been_simplified | boolean | Whether this LOD was auto-generated |
lods[].allow_cpu_access | boolean | Whether CPU access is enabled |
lods[].vertex_count | number | Total vertices in this LOD |
lods[].triangle_count | number | Total triangles in this LOD |
lods[].section_count | number | Number of mesh sections |
lods[].active_bone_count | number | Bones used in this LOD |
lods[].required_bone_count | number | Bones required for rendering |
lods[].has_cloth | boolean | Whether 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_path | string | Yes | Full asset path to the skeletal mesh |
Returns
| Field | Type | Description |
socket_count | number | Number of sockets |
sockets | array | Array of socket objects |
sockets[].socket_name | string | Socket name |
sockets[].bone_name | string | Parent bone name |
sockets[].force_always_animated | boolean | Whether the bone hierarchy is always evaluated |
sockets[].relative_location | object | Position offset {x, y, z} |
sockets[].relative_rotation | object | Rotation offset {pitch, yaw, roll} |
sockets[].relative_scale | object | Scale {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_path | string | Yes | Full asset path to the skeletal mesh |
Returns
| Field | Type | Description |
count | number | Number of material slots |
slots | array | Array of slot objects |
slots[].index | number | Slot index |
slots[].slot_name | string | Material slot name |
slots[].material_name | string | Assigned material name (or "None") |
slots[].material_path | string | Assigned 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_path | string | Yes | Full asset path to the skeletal mesh |
slot_index | number | Yes | Material slot index |
material_path | string | Yes | Full asset path of the material to assign |
Returns
| Field | Type | Description |
success | boolean | Whether the operation succeeded |
slot_index | number | The slot that was modified |
material_name | string | Name of the newly assigned material |
material_path | string | Path 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"
}
}