skeleton
Skeletal asset structure: bones, sockets, morph targets, skin weights, physics assets, cloth.
What it's for
This namespace edits the structure of skeletal assets: the USkeleton, the
SkeletalMesh, and the PhysicsAsset that hangs off it. It covers the pieces
you would otherwise author by hand in the Skeleton, Skeletal Mesh, and Physics Asset editors: bones
and their bind poses, sockets and virtual bones, morph targets, skin weights, ragdoll bodies and
constraints, and Chaos Cloth bindings.
Reach for it when you want an assistant to set up or fix rig plumbing without opening those editors: add a muzzle socket to attach a weapon, generate a ragdoll physics asset from bone poses, create and populate a blendshape for a facial expression, or clean up skin weights on a remeshed character. Most operations write straight to the asset; a handful (like driving a morph weight or previewing physics) touch only the live editor preview.
Keep the scope in mind: skeleton is about the skeletal asset and its rig data.
Animation clips, montages, IK retargeters, and animation Blueprints live under
call("animation") and call("anim") instead.
Examples
Add a weapon attachment socket
Anchor a named socket to a hand bone so props can attach to it in-game.
You: On SK_Character, add a hand socket called WeaponR anchored to hand_r.
call("skeleton.create_socket", {skeletalMeshPath:"/Game/Chars/SK_Character",
socketName:"WeaponR", attachBoneName:"hand_r",
relativeLocation:{x:5, y:0, z:0}})
→ {ok:true, socketName:"WeaponR"}
Done. Socket WeaponR added on hand_r.
Generate a ragdoll physics asset
Build a fresh physics asset from the mesh's bone poses, then read back the bodies it produced.
You: Make a ragdoll physics asset for SK_Character and show me the bodies.
call("skeleton.create_physics_asset", {skeletalMeshPath:"/Game/Chars/SK_Character"})
→ {ok:true, outputPath:"/Game/Chars/SK_Character_PhysicsAsset"}
call("skeleton.list_physics_bodies",
{physicsAssetPath:"/Game/Chars/SK_Character_PhysicsAsset"})
→ {bodies:[{bone:"pelvis", primitives:1, physicsType:"Simulated"}, ...]}
Done. Physics asset created with 18 bodies.
Create a facial blendshape
Add an empty morph target, then write per-vertex deltas into it to shape the expression.
You: On SK_Head, add a Smile morph and push the mouth-corner deltas into it.
call("skeleton.create_morph_target", {skeletalMeshPath:"/Game/Chars/SK_Head",
morphTargetName:"Smile"})
→ {ok:true, alreadyExists:false}
call("skeleton.set_morph_target_deltas", {skeletalMeshPath:"/Game/Chars/SK_Head",
morphTargetName:"Smile",
deltas:[{vertexIndex:1042, positionDelta:{x:0, y:0.4, z:0.2}}]})
→ {ok:true, verticesWritten:1}
Done. Smile morph created and populated.