Skip to content

Boing Bones

Boing Bones applies bouncy spring motion down a chain (or tree) of bones or plain transforms. Use it for hair, tails, antennae, jiggly props, jellyfish tentacles — anything where motion should propagate from a root outward.

Setting Up a Chain

  1. Add BoingBones to a GameObject.
  2. In Bone Chains, set the Root transform. The bounce starts there and propagates through every descendant.
  3. Optionally add more chains; each has its own root, exclusion list, and tuning.

Each chain can opt out of effector reaction, override params, and exclude specific transforms from being included as bones.

Stiffness and Shape

Per-chain animation curves control how each property varies along the chain (root → tip):

  • Length Stiffness — resistance to stretching/compressing distance between bones.
  • Pose Stiffness — resistance to deviating from the authored rest pose.
  • Bend Angle Cap — maximum bend angle at each bone.
  • Squash & Stretch — how strongly bones squash/stretch with motion (Max Squash, Max Stretch).
  • Animation Blend — blends between the raw (animated) pose and the boing-driven pose.
  • Gravity — per-chain gravity vector.

Collision

Boing Bones reacts to two kinds of colliders:

  • Boing Colliders — lightweight colliders provided by the kit (BoingBoneCollider). Cheaper than Unity physics; preferred for in-chain collision.
  • Unity Colliders — standard Collider components, for collision against existing physics geometry.

A per-chain Collision Radius curve controls the bone capsule thickness along the chain. Inter-chain collision can also be enabled.

Effector Reactivity

Boing Bones reacts to Boing Effectors just like reactors do — wind, explosions, and player proximity disturb the chain naturally.

Twist Propagation

When enabled, axial twist propagates from parent to child using swing-twist decomposition (avoids rotational drift). On by default for new components; off on older ones for backward compatibility.

Avoiding Sudden Jumps After Teleports

After teleporting a rig, call BoingBones.HandleTeleport() to reset chain state and avoid a high-velocity snap on the next update.

Update Order with Other Procedural Animation

Boing Bones runs in LateUpdate. Other procedural-animation assets (IK, secondary motion) usually run there too, and Unity does not guarantee an order. Boing Kit must run last — set this in Edit > Project Settings > Script Execution Order. See the FAQ.

Single In-Editor Camera Caveat

Due to technical limitations, the effects of the BoingBones component can be displayed properly in only one editor tab. For example, if the scene view tab and the game view tab are both visible, then only one of them will display the effects properly. This only affects the Unity editor and does not affect in-game cameras if there are multiple ones. If there are cameras other than the main camera that render to off-screen render targets, then the effects should be rendered properly.

See the API reference.