I'm trying to figure out what the intended workflow for using the skeletal animation in 2D is in Godot 4.0 is and keep hitting walls that make it feel either obtuse or too impractical.

So in 3.5 you had two ways of animating characters. The first one, called Cutout Animation in the documentation, you could set up your sprites and their pivot points, use the Skeletal Options button to create a skeleton between them, then set up IK chains for your limbs and that was that. The other, you could go the more complicated route of creating a Skeleton2d, setting up the bones, then attaching sprites (or whatever you needed) onto it.

The former had some limitations, but the biggest benefit was the ease of setting it up and how intuitive it was to use- you'd select your limbs, create the bones for them, mark the limbs as IK chains, and then you could grab a bone and move it around, making the parents IK while the children remained locked to your target. It made animating something like a walk cycle dead easy, you'd just grab the foot bone, then move it around and the leg would animate for you, with the foot remaining flat (in comparison, if you just rotated bones you'd then need to counter-rotate the foot every keyframe to keep it flat. Both added work and it would often result in jitter during interpolation).

This seems to have changed in 4.0. Despite the documentation still listing the old process (Cutout Animation in Godot), the Skeletal Options menu has been completely gutted- all that remains is Show Bones (which used to be a checkbox, but now just seems to toggle visibility of bones parented to the selected target, which is... not intuitive and I'm not sure the added flexibility really outweighs the loss of a global "hide all bones with one click" functionality. Digging through my skeletal structure to select the pelvis to achieve the same is not it) and a replacement for the old Make Custom Bone(s) From Node(s) now called Make Bone2d Node(s) From Node(s).

So fine, the Skeleton2d option remains as the only way to set it all up- bit more clunky (why couldn't the old method have stayed as is, but just have it auto-insert a Skeleton2d node as the main parent and keep the rest of the process intact?), but we're in early days and not all features have finalised yet.

However, there are issues. Using the new Make Custom Bone2d option does work as expected, but doesn't create a parent Skeleton2d, and the bone lengths are all (visually) messed up, instead of spanning from joint to joint they're all just pointing to the right, minimal length.

The bigger issue I'm encountering is the loss of IK Chains. Yes, you can create a modification stack on the Skeleton2d, then add different IK options (the documentation for which is painfully spartan, with no examples, no explanations of differences and is incorrect in places- the FABRIK documentation states it supports angle constraints, but so far I've only seen those exposed in the editor for CCDIK. Maybe they're available programmatically, but that does me no good), but bone interaction feels so much more limited now. Where before I could grab a bone in the editor to manipulate it, now they appear to be click-through, at least by default, and they need to be selected in the Scene panel before manipulation, which slows down the process immensely.

Worse (and I really hope I'm just missing it), I don't think it's possible to directly manipulate IK chained bones any more? I can create a chain of bones, and then manipulate them via a target node, but that's not the same- pulling on a target node that stretches out a leg of bones is not useful when animating a character, I need to be able to grab a limb in the middle of the chain and move it without having it (or its children) rotate along with it, or manipulate a specific bone, however bones affected by active IK look to be completely uninteractable now, which makes any sort of precise adjustment impossible. This is probably fine for programmatic procedural animation, but not useful for precision character animation.

All that said, it's possible I simply missed something, so my questions:

  1. How do I achieve an animation process similarly flexible to the old cutout system- ie, IK chains that allow individual bone manipulation? The use case here is specifically character animation
  2. Related yet separate, how do I achieve jiggle animation on a chain of bones without 'pulling' on those bones? Picture something like a curly husky tail. Standing still I want the bones to be in their rest pose, and then have them sway and, well, jiggle, as momentum is applied, always striving to return to their curled shape. I was messing with the Jiggle bones and for some reason they require a target towards which they are stretched, which goes counter to jiggling an existing bone shape. It's useful if you're animating a rope, but not body part