Poseable Limbs (Grab IK)¶
Add SSGrabIK to a limb and players can grab the hand or foot and pose it — the whole limb follows with inverse
kinematics, and letting go holds the pose (or springs back to the animation). It works on anything with a 3-bone
limb: player avatars, AI NPCs, and props (a posable mannequin, a lever arm). Grabbing and the pose replicate, so a
posed NPC looks posed to everyone.
Set it up automatically¶
For a humanoid NPC, Social Scape ▸ Make Poseable Character (NPC) does the whole thing: drag the character into the scene, select it, open the wizard and press Set Up.
The wizard asks for a posing style:
-
Full Body Ik (the default) — a posing mannequin, with a handle on every joint: shoulders, elbows, wrists, spine, chest, neck, head, hips, knees and ankles. Drag any joint and the bones above it swing to put it where you want, while everything below stays rigid — exactly like posing an action figure. Drag a knee and the foot on the end of it does not twist, and knees and elbows always fold the way real ones do however far you pose them. The hips handle moves the whole character. Pure IK, no physics: poses are exact, nothing wobbles, settles or fights, and it costs almost nothing. Everything replicates and stays for players who join later.
-
Full Body Physical — a physical character set up for posing: every part has weight and collides, the back is built in segments, and it can be picked up and carried. The right choice when the character must also be shoved, knocked down, and fought with.
- Hands And Feet — the minimal version this page describes: a poseable limb on each wrist and ankle, bend goals placed so elbows and knees fold the right way.
IK and physical do not mix
A physical character overrides poseable limbs, so a character cannot usefully have both. The wizard makes it a choice and clears the other kind for you rather than leaving you to find out later that nothing happens.
For the hands-and-feet setup it reads the arm and leg bones from the humanoid avatar rather than walking up the hierarchy. On a rig with twist or roll bones between the hand and the forearm — common on game rigs — walking up lands on the twist bone and the limb bends about the wrong joint, which looks like a bad solver rather than a bad setup. Running it again updates what is there instead of adding duplicates, and everything it does is undoable.
The wizard is for NPCs and props. It will tell you if you point it at a player avatar.
Set it up by hand¶
Drop SSGrabIK on the tip bone — the wrist or the ankle. It auto-derives the rest of the limb from the
hierarchy (tip → its parent is the elbow/knee → the grandparent is the shoulder/hip). The inspector shows the resolved
limb (Upper → Mid → Tip); if the auto-derive is wrong, assign the three bones yourself.
| Field | What it does |
|---|---|
tipBone / midBone / upperBone |
The three limb bones. Empty = auto-derived up the hierarchy from this object. |
bendGoal |
Optional. A point the elbow/knee bends toward — set it so the joint folds the natural way. |
allowGrabbing |
Who may grab this limb: On (everyone), Off (no one), Other (only other players, not the owner). |
grabRadius |
How close a hand must be to the tip to grab it. |
holdOnRelease |
On release, hold the pose where left (on), or spring back to the animation (off). |
weight |
How strongly the pose overrides the animation while held (1 = fully). |
That's the whole setup. No IK plugin needed — the solver is built in and runs per-viewer on top of the animation.
Grabbing it¶
Poseable limbs share the same grab as Social Bones: right-click on desktop (when nothing else is under the reticle) or grip in VR. Reach for the hand/foot, move it, release. If two grabbable things overlap, the nearest one wins — so a limb and a nearby hair bone don't fight. The grabber's Comfort settings (grab my own / grab others') and the target's consent apply here too.
Testing it in the SDK¶
You do not need to upload a world to try a poseable limb. Add an SSPhysicalDesktopPoser anywhere in the scene
(the camera is a natural home) and press Play: every poseable limb shows a sphere at its grab point, coloured
white under the cursor, amber while held, and green while holding a pose — the same handles physical characters
use. Point at one, hold the mouse button, drag the limb, scroll to push it further away or pull it closer, and
let go. R returns whatever you are pointing at to its animation.
The poser works on physical characters and poseable limbs alike — whichever handle you are actually pointing at wins, the same way a hand picks the nearest thing in game. If you would rather control the handles yourself, add an SSGrabIKHandles and the poser will use yours instead of providing its own.
Which limb a reach selects, and what grabbing one does, is the same code the live game runs, so a limb that behaves correctly here behaves the same after uploading. Turn the handles off before players see them.
Networking¶
The pose is networked from the start: while a limb is held, the grabber advertises which limb it is, where the effector is and which way the tip faces, and every other player solves the same limb to the same spot — so a posed NPC (or avatar) looks the same on every screen, with no per-frame bone traffic. The rotation costs nothing extra on the wire; it travels in a field the link already carried.
When the limb is released, the pose is stored as part of the character's own shared state, which is what lets it outlive the grab.
A pose belongs to the character, not to whoever made it. Once you let go, the pose stays for everyone — after
you use that hand for something else, after you walk away, and after you leave the world. A player who joins later
sees the limb exactly where you left it. Release the limb (R in the SDK, or grab it and let it spring back) and
it returns to its animation for everyone.
Because the pose belongs to the character, the last player to move a limb decides where it is.
Example — a poseable NPC arm¶
- On your NPC, find the right-hand bone in the hierarchy and add
SSGrabIK. Confirm the inspector readsRightArm → RightForeArm → RightHand(or assign them). - (Optional) Make an empty just behind the elbow and set it as Bend Goal so the elbow folds backward, not sideways.
- Set
allowGrabbing = OnandholdOnRelease = On. - Press Play, walk up, and grab the NPC's hand (right-click / grip). Move it around — the arm follows; let go and it holds. Other players see the same pose.
Repeat on the other hand / the feet for a fully poseable NPC.
Rules & limits¶
- A hand-authored
SSGrabIKlimb is a 2-bone IK chain (upper + mid + tip). The wizard's Full Body Ik style is not limited that way — it gives each joint its own chain, from one bone (an elbow) up to the whole spine. - There's a per-entity budget on poseable chains; extras beyond it are ignored at runtime. A full-body character uses about sixteen and the ceiling clears that comfortably.
- Posing rotates bones only — bone lengths never change, so a character can't be stretched. Moving the whole character is the hips handle, which is a separate thing.
- On avatars this composes with everything else — animation, Social Bones, gestures — because IK is applied last, on top.