Now that's some proper pose 🐎

#inversekinematics #godot #IndieDevs

Although #godotengine development is moving along at a rapid pace, one of the few areas not receiving much attention is specifically #InverseKinematics (sadly the built-in node for doing IK is deprecated, and with good reason). Although there was an overhaul of skeleton modifiers, upon which IK is built, the IK itself was not fixed.

But I am happy to spread the word of a new GDExtension for IK which works well: GodotIK.
https://github.com/monxa/GodotIK

GitHub - monxa/GodotIK: 3D Inverse Kinematics (IK) for Godot 4.3+! Supports scriptable constraints and multiple chains.

3D Inverse Kinematics (IK) for Godot 4.3+! Supports scriptable constraints and multiple chains. - monxa/GodotIK

GitHub

this could not be more like what I imagine prehistoric cave painters would have imagined CGI would be like

https://www.youtube.com/watch?v=moRLVMHiTtk

#karlsims #CGI #locomotion #inversekinematics

Locomotion Studies - MIT - Karl Sims (1987)

YouTube

fucking around #inversekinematics again.

SG90 is not total crap, just not good enough for the arm

#3dprinting #arduino"

My own personal wish-list for #Godot is:

* An #inverseKinematics that's smooth and works in human shapes and insane alien shapes

* A 360-Sterovision renderer.

And my wishlist for #Monado is
* Allow trackers to be tracked by Godot
* Improve Gama-brightness? I dunno why it's so dark.
* Don't require me to reboot in order to start properly in whatever crash conditions cause that every week or so.

I think there's a very good chance those things will all be fixed before I'm anything like finished with my parts of my app.

Another thing I need is called "inverse kinematics". When puppetting the characters the controllers/trackers report their position to my code, but then how does that translate in the rotation of the arm and leg bones?

Godot3 had some kind of IK system built in, but Godot4 seems to have broken it, with a new better system expected at some point, but not yet.

I would never be able to work these things out at all without the help of all the other people who have already done it and left notes, but our shoddy attempt it that we're using until the proper Godot one comes is here:

https://github.com/revpriest/godotIK

It is limited to two bones, which is okay for arms and legs but not really working great for the backbone which could use 3 or even 4 really. Hopefully the real Godot one when that comes will be more flexible and I can junk this later.

#gamedev #animation #godot #inverseKinematics

GitHub - revpriest/godotIK: A CSharp two-bone inverse kinematics solver class for Godot4

A CSharp two-bone inverse kinematics solver class for Godot4 - GitHub - revpriest/godotIK: A CSharp two-bone inverse kinematics solver class for Godot4

GitHub
Somewhat coincidentally a significant refactoring related to #InverseKinematics was merged two days ago. The motivation for the merge was actually XR hands, but hopefully there's more progress toward the proposed "Many Bone" IK system in #GodotEngine.
https://github.com/godotengine/godot-proposals/issues/6039
Solve generalized skeleton poses with Many Bone IK · Issue #6039 · godotengine/godot-proposals

Describe the project you are working on A open source social vr game made with Godot Engine. We wish to provide full body tracking with 3 body sensors and the ground or up and more than 10 body sen...

GitHub

I was able to get #InverseKinematics to behave well enough in #GodotEngine. The node is still marked deprecated (only in editor). The demo is broken. And the results are still a bit jittery. But one leg behaves.

More importantly it was *far* easier than I expected to rewrite a blender shape key driver in Godot. It's not hardcoded either, it's a reusable node. Partly because I made my drivers very simple (arithmetic only, no curves) since godot was the eventual goal. https://docs.godotengine.org/en/stable/classes/class_skeletonik3d.html

SkeletonIK3D

Inherits: Node< Object A node used to rotate all bones of a Skeleton3D bone chain a way that places the end bone at a desired 3D position. Description: SkeletonIK3D is used to rotate all bones of a...

Godot Engine documentation
@Legit_Spaghetti My only real goal is to get #InverseKinematics working (again) and maybe try to port the blender shape key drivers to godot.