rig_serpent
Rig fish, eels, snakes, dragons, or tentacles with a traveling wave along a bone chain to generate swim, idle, turn, and reach clips for Spine animations.
Instructions
Fish, eel, snake, dragon body or tentacle: ONE long chain along the body layer with a travelling wave.
Layers by name (case-insensitive): body (required, one long layer), head + eye*/jaw/mouth (ride the first bone), fin* (2-bone strands with physics on the nearest body bone), tail_fin / fluke (strand on the last bone).
Physics: y(s,t) = A(s) sin(2 pi (s/lambda - f t)) head -> tail, amplitude growing toward the tail
(head_amp = the head's share). speed (body lengths/s) sets the beat like a fish: f = speed / (0.7 lambda);
the tail amplitude follows Strouhal St = 0.3 (x exaggerate) unless amp (fraction of length) is given; the head
recoils sideways and thrust surges the body at 2f. Clips: swim (exact loop, cycles beats, event sfx_swim per
beat), idle_float (slow hover wave + heave), turn (fish C-start: curl, tail kick, spring decay; sfx_turn).
mode="tentacle": the root is the base (root_end auto = the bottom), wave 1.3 lengths, plus 2-bone reach IK on
the tip and a reach clip (wind-up, constant-curvature strike on an exact spring, grab; sfx_reach).
reach = [x, y] in the tentacle's frame (x along it from the base). Clips merge by name into existing ones.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| amp | No | ||
| mode | No | swim | |
| name | No | serpent | |
| side | No | ||
| slot | No | ||
| clips | No | ||
| reach | No | ||
| speed | No | ||
| cycles | No | ||
| parent | No | ||
| n_bones | No | ||
| project | Yes | ||
| head_amp | No | ||
| root_end | No | auto | |
| exaggerate | No | ||
| turn_angle | No | ||
| wavelength | No |