To the best of my (limited, lay-person-ish) understanding, VaM's person atoms do
not have inverse kinematics - a VaM person atom is (amongst many other things) what is called a "system of dampened, coupled, driven harmonic oscillators" in physics. Think a bunch of masses joined by springs - move one mass & the spring connecting its neighors is elongated, resulting in a force acting on
both. The force is linearly proportionally to the change in the spring's length ("Hooke's Law"). For each joint, there's also a "controllers" (green nodes) are "virtual" things that are connected to one particular mass ("object") via one spring - but if you move a controller, the spring only acts on its respective object, there is no force that acts on the controller itself.
Say you load a char in the default T-pose, grab the hand's controller and move it - then the whole arm will move, bcs the springs joining hand, ellbow and shoulder (called "arm") get elongated and exert forces on the respective masses. Then the system will move to a new position where all forces are again in equilibrium.
That's ...
looks surprisingly realistic - but it's not inverse kinematics. For starters, with a full IK system, the whole body would change
posture if the hand's new position is slightly out of reach - like you yourself would lean a bit forward if you tried to grab smth that is just slightly out of your arm's reach.
VaM's person atoms don't do that - if you drag the controller beyond a certain distance ....
nothing will happen. Because the
other active controllers have stayed in place, and the force
they exert on
their respective object will simply grow proportionally to the force exerted by the controller you've moved.
(Edit: Come to think of it, I've neglected bones & rigidbodies - afterall, a person atom's are won't stretch if you just pull hard enough. I guess you could simply specify a minimum distance between joints, and set the connecting spring constants to a really high value, but I'm not sure ...)
(Afaics!)
Inverse kinematics is a completely different approach - With IK, if you moved the hand controller, the program would automatically compute the correct angle & position of each connected joint in order for the hand to end up in the desired position & orientation.
And then, it would
drive each joint to assume that value - like your arm would, if you pushed a button in front of you: You don't levitate your hand to the correct position and the ellbow is dragged along; your muscles drive each of your joints to the necessary position & orientation for your finger to reach the button. And if the new position is out of reach of your hand, the whole body would change
posture - lean forward eg - or even
walk until the new position can be reached.
Afaik, the closest thing to IK in VaM "universe" is the "muscle poses" that miscreated is working on - but iirc, his plugin is not a full IK system (
Yet ...).
As far as I know,
Unity does have IK capabilities - but only if the "person" is a
"valid avatar". VaM's person atoms
are composed of Unity gameobjects, and they
are articulated kinematic chains, and the joints
can be "driven" (like a little moter in each joint) - so I recon the necessary ingredients for IK are there? - but I'm not sure that VaM person atoms satisfy the "valid avatar" definition? If they did, then why didn't Meshed just use those libraries?