Physics Handle Rotation now completely broken
I mentioned some versions before that rotation of Physics Handles is broken and now it is even more broken. Set Target Rotation of a physics handle does now nothing. With constrain rotation off It just freely rotates around. I do Set Target Rotation every tick to rotation 0.0.0. When I have constrain rotation on, it stays in zero rotation only when I do Set Rotation on the actor that is currently grabbed every tick as well. But after it collided with something it get stuck in a rotation that is slightly off from zero. I assume that it gets more extreme off the more stress it had in the colliding before. Also any collision becomes very jittery with constrain rotation set on.
Using physics constraints instead is not a good alternative since objects can just get pushed inside other collisions pretty easily and things can get very jittery.
Considering that physics interaction is really important for VR it would be great if fixing this could be made a priority. If there are any other working solutions currently for grabbing physics objects please let me know.
Here is the other bug report from some versions ago: https://answers.unrealengine.com/questions/352397/physics-handle-is-broken.html
More Problems: - Everytime I grab a object again it first goes slowly a bit down. While it does that it also moves through other collisions. - Once I had like 10 simple box collisions welded to a parent box and then grabbed that parent box. The performance became horrible, to ca 14 fps from 90 fps.
I don't actually think what your describing is a bug, as much as a misunderstanding. All of this code uses PhysX to perform the movements. When you set "TargetRotation" to 0,0,0 what it's doing behind the scenes is telling PhysX "hey, I'd like this component to move to this rotation". That's where the "Constrain Rotation" option becomes important.
We only enable angular drive when "Constrain Angle" is true. This means that PhysX can only enforce a target angular position (i.e. rotation) when it's enabled. It'd sort of be like sitting in a car and pushing the acceleration pedal. It's only going to work when the engine is on (and it's in gear of course). As far as the object hitting something and getting stuck slightly off, unfortunately this appears to just be a limitation of PhysX, where it's trying to resolve as close as possible.
However, I did notice the other issue you mentioned, where the object seems to "lag" behind. To me what looks like is happening is that the object is not creating the joint correctly for whatever reason (it's not properly rotation around the current actor). This does appear to be already fixed in 4.13, but I haven't quite figured out where / what is causing this issue yet.
On a side note, if you want the object to appear rigid and stay in an orientation similar to when it was grabbed, you have 2 options. First, turn up the Interpolation Speed; Linear and Angular Damping; and Linear and Angular Stiffness. This will still cause your object to have some dynamic motion if it's completely block, but for the most part it should feel tight.
The second way is to actually disable Simulate Physics on the object and Weld it to the parent. The nice thing about this approach is that it will give the object a completely "locked in" feel.
Thanks, Jon N.
answered Jun 03 '16 at 11:36 PM
I was able to reproduce the issue where the Target Rotation isn't registering and can't be manipulated on tick. I created JIRA UE-31366 for it.
I'm still looking into the other issues you mentioned.
answered May 26 '16 at 08:44 PM
TJ V ♦♦ STAFF
Follow this question
Once you sign in you will be able to subscribe for any updates here