Download

Spline IK offsetting pose with no moved points.

Hello,

this post is me documenting what I have found with the new 4.16 SplineIk anim graph node as I am going to post a bug report too but thought I’d add it to the forum for people to see.
Please let me know if there’s anything I have missed and you think this should be expected behavior. To me it seems wrong. Either a bug or a design choice that doesn’t seem right.

Basically the problem is that the mesh I’m adding the splineIk to gets moved even with no input to the node, ie with no spline points moved.

So for reference this is how the mesh looks with a static idle pose is added.
Note the little cubes around the pelvis. They are positioned from a Get Socket Transform on the same mesh.
3d79f7bfe409d8f039b5e219ffb1c4bbc7ae28ee.png
noIk_pose.png

I then add a splineIk node but don’t add any numbers to the points.
See how the mesh is now now moved forward away from the socket/bone positions.


withSplineIk_pose.png

So I added some numbers to the points until they lined up again and then tried to make sense of it.
These are the exact versions of the numbers I ended up with, just visually re-aligning.
0b33db8d4eb5a0378d906603a025a69aae95fe09.png
magicNumbers_pose.png

I figured out that the numbers are the [INPUT POSE BONE LOCAL LOCATION] - [SKELETON BONE LOCAL LOCATION] = magic number

pelvis_bone_idleAnim4.png

minus

pelvis_bone_skeleton.png

Now the problem is that even if I know this and tried to add it to the solution it seems like I get some kind of feedback loop or something maybe with the socket gets as the result is that even if the skeleton points and the ‘not modified’ out pose line up, it now still does not line up with the rest of my rig. Exactly why I have still not figured out.

Let me know if you think this should be desired behaviour and why.
To me it seems like if I don’t move the splineIk points then the out pose should be the same as the in pose.

EDIT: Just wanted to update for anyone else encountering this that this was indeed the problem and I have now solved it by creating a new Skeleton + Animation BP and have a matching default/idle pose piping into the SplineIK node. This seems to be working well so far.

Cheers
Fred