This is a VR physics interaction system that I've been working on for the past few weeks. I'm using FinalIK for the inverse kinematics and Puppetmaster for the ragdoll physics. A simple AddForce is also being used to move the body based on the vector difference between the real hands and the physics hands, which allows for the very not-stable climbing system.
I've found this isn't a good way to go about player physics for VR. It seems that Puppet Master in use with Final IK can be jittery when moving around in VR, not to mention highly unstable ragdoll physics when say you push a hand through a wall. Also no push back in that case without artificially doing something like you've done here.
It's not easy to get proper vr collision but you can do it with configurable joints and target positions. It's what I'm currently experimenting with now and it's one of the more difficult things I've worked on physics wise but believe it's the proper way to go about it.
Actually, I managed to get non-jittery movement with puppetmaster and FinalIk in a previous version of this. I don't remember what I did though, and I'm not even sure if what I did is going to work with my current controller.
I'm definitely going to take a look at configurable joints and target positions. That should solve many of this current setup's flaws.
Did you know what you did to smooth it out? For configurable joints like the hand you would just set position and rotation locks to free and set x y and z drive spring to like 50k or higher, set max force to that too. Low damper. Then easiest thing to do is set connected anchor to the connectedRigidbody.transform.InverseTransformPosition(controller.position) basically.
To smooth out movement, I don't exactly remember what I did. I'll try to see what exactly I did though. However, I remember the basic concept- adjust velocity, run VRIK before the physics update, set the timescale, and I think I updated some of the camera in LateUpdate? I can't recall. This isn't exactly something that can be replicated though- I did basically the same thing in an earlier iteration and it still has the jitter.
This is a VR physics interaction system that I've been working on for the past few weeks. I'm using FinalIK for the inverse kinematics and Puppetmaster for the ragdoll physics. A simple AddForce is also being used to move the body based on the vector difference between the real hands and the physics hands, which allows for the very not-stable climbing system.
I've found this isn't a good way to go about player physics for VR. It seems that Puppet Master in use with Final IK can be jittery when moving around in VR, not to mention highly unstable ragdoll physics when say you push a hand through a wall. Also no push back in that case without artificially doing something like you've done here.
It's not easy to get proper vr collision but you can do it with configurable joints and target positions. It's what I'm currently experimenting with now and it's one of the more difficult things I've worked on physics wise but believe it's the proper way to go about it.
Actually, I managed to get non-jittery movement with puppetmaster and FinalIk in a previous version of this. I don't remember what I did though, and I'm not even sure if what I did is going to work with my current controller. I'm definitely going to take a look at configurable joints and target positions. That should solve many of this current setup's flaws.
Did you know what you did to smooth it out? For configurable joints like the hand you would just set position and rotation locks to free and set x y and z drive spring to like 50k or higher, set max force to that too. Low damper. Then easiest thing to do is set connected anchor to the connectedRigidbody.transform.InverseTransformPosition(controller.position) basically.
To smooth out movement, I don't exactly remember what I did. I'll try to see what exactly I did though. However, I remember the basic concept- adjust velocity, run VRIK before the physics update, set the timescale, and I think I updated some of the camera in LateUpdate? I can't recall. This isn't exactly something that can be replicated though- I did basically the same thing in an earlier iteration and it still has the jitter.