Body IK

VR IK Body Plugin

Looks good. This is the next best thing after full body tracking that I have seen so far. Are you releasing this back to the community to use?

Yes i think. It’s my personal work :slight_smile:

Great work. I’ve been trying to find a solution for body IK for the past few days. Would you mind answering a few questions?

  1. What, if any plugins are you using?
  2. Poseable Mesh or Skeletal Mesh?
  3. Can you give a brief overview of the solution?

Nice!

The most relevant metric you have towards body position is the HMD position and angle obviously. People kneel differently depending on what angle their head is at. You could try capturing several target poses based on head angle and then blend between them using the HMD pitch and roll. That might give you enough variation and proper torso positioning to be completely believable without any more work.

I’m doing something similar with a Kinect which makes it way easier, except it’s a case of using IK to clean up weird data.

  1. No.
  2. I use my own Actor Component attached to player pawn that fills stucture of transforms for all body elements (feet, pelvis, neck, head, hands) and then I use it in anim blueprint to setup bones of a Skeletal mesh. You’re right, Poseable Mesh would be more appropriate here.
  3. So we have 3 basic transforms for HMD and hands that are 100% accurate and we need to keep them in-place. Our goal is to get others. Some movements are obvious. For example, if camera’s Z in higher then usual Z it means player is jumping. Other movements are more complicated. Head Yaw Rotation can mean both body rotation and head only rotation, low head Z coordinate can indicate both player’s tilt and sitting down. The main goal is to separate movements like this. To do that I save transforms data (HMD, hands in a world scale and hands relative to HMD) for a half of second and look for correlation between their speeds (their deltas actually because i use timer with a stable interval, not a Tick(dt) function). For example, high correlation coeffitient for hands and head Yaw rotation indicates that player is rotating his body. In this case pelvis rotation need to follow head rotation. Otherwise head rotaion shouldn’t affect pelvis rotation. Good understanding or pelvis Rotation gives us shoulders locations necessary for hands IK. It’s basics.

I finally have free time to continue this work.

Next steps:

  1. improved joint targets managemant for hands IK
  2. animated+IK legs instead of clear IK legs
  3. constraints for hands/body overlap

Nice work! Are you doing a player calibration yet? I’m prototyping a way for the player to set the size of the body/limbs (similar to the mentioned setup in SOA), but the IK system I’m using is not public so I can’t share it. If you’re planning to release your component then I could make a version with some of my work as well.

Yes.

I’m going to make a plugin eventually (free for non-commercial usage). It’ll include custom animation node for mesh scaling.

The lastest version. VR body correlates with the real body pretty well (i’m going to make a split screen video with webcam later), all constraints work well too. Still have some rare glitches with a leans, but they’re easy to filter.

UPD. Splitscreen video.

I need something like this for educational purposes

It’s almost ready now. I’ll publish it for free in a 1-2 weeks.

I’m desperately waiting for this :slight_smile:

Looking forward to try this out, seems like a proper full body solver. Got a question in terms of using this eventually for commercial work, any pricing, info would be much appreciated.

It goes on a bit slower then I thougth. Now i’m adding network replication.

I’m not going to make it cheap (sorry), but if you need the plugin for non-commercial project or something with educational purposes, please write me PM and I’ll give it for free.

If you submitted it now I’d buy it straight away and then I’d be happy to wait for network replication in a later update.

In fact, if you need a tester…

Executable demo: Dropbox - File Deleted

Is there a way to contact you directly? We are considering licensing your system on its current stage of development.

Private message on forum or ykasczc@gmail.com

I want to vouch for on this project. I have had good communication with Yuri and I have tested the IK body quite extensively and it has worked very well.
I implemented my own solution of replication with very helpful guidance of Yuri, although I think he also has implemented it himself now.
Either way, I want to let you guys know, Yuri has done a great work here!
I guarantee.