ghost_IK (virtual Inverse Kinematics bone/physic bone IK/C++)

I’m developing this Inverse Kinematics system to control character armature bones more easily and more effcient
It don’t need to add any extra controller bone or constraint or modifier,just use the deformed bone itself to control.
though now it’s not fully implment the features that classic IK has.
but finally it’s features will be more than the classic IK.and then I can get rid of the annoying traditional IK settings.

it has two mode,(1:manul IK(two-ik\tri-ik\spline-ik), 2:dynamic physic IK)
you can simulate coth\ softbody with dynamic physic IK,(It don’t need to add any extra controller bone or constraint or modifier)using the original bone to simulate physic IK,not like the other addons it’s truly physical bone.
the collision engine is emplemented by myself completly with C++.it don’t like the build-in collision algorithm,the algorithm is mesh surface detecting,it will caculate every bone if colliding the mesh faces,includes the bone deform mesh(which I re-implement the amature system by C++,it caculate every vertices postion after the bone deformed)
,it will never encounter penetration which is determined by my unique algorithm,If it encounter penetration that must be a bug.

this addon has about 10000 line codes now, I implemented the physics engine of cloth-like algorithm completely using C++ No external dependent libraries are referenced , all the simulation is real time

It can switch between IK and FK perfectly.
the ik solver is dynamic.

spline IK

https://i.postimg.cc/901NVHgW/twist.gif

physical IK


https://i.postimg.cc/Kzy1V6wT/dyn-ik6.gif

character rigging

hotkey:
F :activate the IK control
spline ik :alt+F/ctrl+F:contral the IK with option
ctrl+X :twist the pole of IK

ghost-ik has an Accurate mesh surface collision
表面碰撞1
Visualize collision algorithm(physical correct)
c


-------bone correction mode--------------------------------------------------------------
The principle of my bone correction is to simulate the movement and deformation of the muscles with additional bones, and when the F key is pressed, these corrected bones will automatically rotate and sclae, similar to drivers, but the behavior is more complex, and the future will allow these corrected bones to add physical properties when the characters jump will simulate the shaking of the muscles

------download------------------------------------------------------------------------------------------------
https://1drv.ms/u/s!AsZIVWqD15n6gXCg5_fxlHQ6Iu-N?e=ExdBQS

51 Likes

some of the C++ code:

tri IK code:


3 Likes

wip 20180419
almost done.now the tri-ik and two-ik and spline ik is finished. the next is to make them Interactive.

3 Likes

It looks very promising

yes ! very promising

is it animatable ?

whats an fk and what exactly dose it do

yes It’s animatable just as the normal ik does. but maybe a little different from the class IK constraint.

the FK means Forward Kinematics,when you rotate a bone press R normally is FK behavior.

ho if you could fix the problems of the traditional ik … it would be really great

I’m not fixing the problems of the traditional IK,I just develope another kind of IK system.(with this system you can switch between FK and IK seamless which the traditional IK can’t do)

nice reference , so how exactly are we going to use it, is it going to be like, press and hold to activate the fk mode for ex… or is it going to be more like the grab mode and the rotation mode

yes you need to press F key (or other key)as hotkey to activate the ghost-IK mode and move the mouse.
when you release the F key it will return to normal bone mode and you can rotate the selected bone like what you did in normal.

one i am hopping that i am not bothering you with my stupid question
2nd this is really seems very hard to understand ,not to mention making it , you must be really proud of what you do now.

1 Like

I have this concept of IK long time ago,I just decide to implement it right now, and I’m happy to doing it.

2 Likes

----WIP20180604-----
add the dynamic IK constraint:


hotkey:
F :activate the IK control
ctrl+X :twist the pole of IK

1 Like

Wow, this looks amazing! Kudos! Got to try this next time I animate something!

I got an error when tried to install it. something about missing ‘pylib’ module. Otherwise looks nice.
How does it deal with ik pole target?

I have updated the file to 20180606 try it again.
you can press F to activate the IK and press ctrl+x to rotate the pole,while you can press R to rotate the bones as usual

2 Likes

edit:

I tried it again. it was still missing the pylib module, but then i found it inside the addon folder. I moved it one level up (into the main addon folder) and now i could enable the addon.
For some reason the addon doesn’t work for me in a new blender project, but it works in the provided test file. I get an error message.
Testing the addon with the test project i found that in tri ik mode I often get stuck in some positions (after pressing the F key and moving around)
Altogether it’s a nice addon, i will be playing with it more.