Jittery movement of grabbed object

Hello,

I made a simple prototype for my Quest 1 where you are holding a sword, however I found out that when moving it around, the movement is extremely jittery.

That is with “Kinematic” Movement type.

Switching it to “Instantaneous” makes the movement smooth, however for some reason it changes the position where I hold the object (way off the handle) and the collision detection seems to be very poor.

On the other hand grabbing a simple cylinder made inside unity makes the tracking pretty reliable with the “Kinematic” movement type.

Older version of the sword mesh, that is less complicated and with less vertices also seems to move a bit smoother.

Is it possible that more complicated meshes jitter when moved around more than simple ones?

Is there some solution that I am missing that would make the movement smooth while keeping the collision detection reliable?

Thank you

Hello =)

As I understand it, when MovementType is set to Instantaneous it is not possible to use an Attach Transform if you hear more than one collider. Try to leave your sword just a collider and I think everything will work correctly.

Hello,

My sword is using only a mesh collider. No other collider.

I implemented this script in my project to solve the issue of Instantaneous interactables not using the AttachTransform.

However you seem to want the sword to still effect the physics of other objects.
For Kinematic and Velocity MovementType, you can smooth things a little by changing Project Settings > Time > Fixed TimeStep value to 1/72 (For Quest 1) or 1/90 for Quest 2.

Then on the rigidbody of your interactable game objects, set the Interpolate option to “Interpolate” (Defaults to “None”).

Things should be a little smoother but would likely need to wait for a future update to XRITK to fully smooth out the jittering.

Increasing the Fixed TimeStep does help, I am just curious what is the lowest “safe” value for Oculus Quest 1.

And yeah, the issue I have with Instantaneous movement is that it is a bit funky when it comes to collision detection. Even more funky that the other options. I might revisit it though once I have something more to work with.

I will need to tackle this issue soon enough so I’ll be sure to check back to share anything I get working.