Most of the 3D solvers don't work after changing scale to a negative value.
The only solver that kept working for me was CCDIK do you know the reason? I believe it has something to do with how the rotation is set
Enhanced IK for the Godot game engine 路 By
My guess is that changing the scale flips the axis (or axes if multiple), causing it to be mirrored for the bones, their positions, and rotations, but it does not mirror/flip the target position, causing the issue. That would be my guess. I鈥檓 not sure why CCDIK would work, but my guess is that it鈥檚 because CCDIK is an iterative solver and it only keeps the angle to get bone in account.
That said though, negative scaled skeletons and bones can be tricky even without IK. Unless your project needs negatively scaled skeletons, I would highly recommend keeping the skeleton at a positive scale to prevent the issue.
Ah, neat! I appreciate you letting me know and I can pull it into the project and release it as a bug fix (with proper credits to you for finding the fix 馃檪)
Edit: was going to try and get it over the weekend, but other things came up and I didn鈥檛 have time. Will try to add it in this upcoming weekend. Sorry for the delay.
The biggest issue is it makes applying any sort of transform onto the bones a bit more difficult, as the positions are mirrored but can be mirrored on only one axis if there is a non fully negative scale (like (-1, 1) for example). I remember when I was doing some OpenGL stuff that matrix math for negatives had some quirks with skinning for animated characters, but it鈥檚 been a long time since I鈥檝e done OpenGL work directly and admittedly I never got too far into OpenGL 馃槄
Thankfully any complexities like that are generally handled by the game engine anyway. The only time I鈥檝e had a bunch of issues with it in modern game engines is directly modifying negatively scaled children transforms (like bones) and doing calculations with non-negative stuff. I鈥檝e also had some physics quirks in 2D a couple times with negative scales but I think that was more due to the non-fully negative aspect (flipping stuff by changing the sign on the X axis) rather than it just being negative.
Edit: I should add that if you are not having issues currently with any negatively scaled stuff, then you鈥檙e probably good to go. If there are issues, I鈥檝e found they surface pretty quickly generally.