Physbone/Contact Position Jitter When Moving
available in future release
WingmanDraws
There seems to be an odd issue where Physbones jitter when moving. Specifically speaking, their position seems to jitter from where they were before moving, to where they have moved to. This jitter is not limited to artificial contacts, but also built in ones (fingers, for example).
This causes many issues with anything that uses moving parts or requires the user to move while interacting with the part.
to recreate, simply put a contact or physbone on the avatar and move. Notice how it jitters between two locations.
Log In
This post was marked as
available in future release
Kiro
marked this post as
closed
In regards to contacts what people are seeing is expected behavior, though it might look incorrect. Contacts update every 1/60th of a second. In high framerate environments the character's locomotion/IK/animations are updating every frame, which leads to the visual jitter you see. Locomotion tends to have higher visual jitter, not only due to the movement being larger, but the local player is locomoted via the fixed update frame which can differ from the regular update frame.
Though you see jitter in the debug view, when the actual calculations happen everything is correctly in the right place. The frame in which contacts update the transform is read and contact calculations happen, that frame is the only on the matters. All contacts for the entire scene are updated together.
If people ever end up noticing that the actual values coming out of contacts are jittering due to movement that would be an actual bug and should report it. At this time any actual value jittering hasn't been observed.
Contacts/Physbones which are affected by a constraints will lag a frame behind due to the ordering of when constraints are solved. This is something we would like to fix with the updated constraints system currently in beta. With our own system we can correctly build a dependency chain and execute things in piecemeal order. However those additions won't go out with the initial release of the new constraint system.
The Physbone debug view is a similar situation to contacts. However I will note PhysBones is currently dealing with an issue with a jittering which affects the actual bones while the player is locomoting, that is something we have been looking into. I would expect a fix for that in the near future.
Smash-ter
Kiro why is the issue closed?
TohruTheDragon
Kiro Is there a technical reason for this? Is this not possible to fix?
Kiro
Sorry about that, my original post was hidden. Comments posted above.
Zevvy
Kiro Does this mean there should be no Jitter with Physbone chains that are not affected by any constraints in the execution order? E*: Or do the last 2 paragraphs mean that there's 2 issues with Physbones & Jitter?
I've got multiple examples of simple armatures having jitter.
StormRel
marked this post as
tracked
Zevvy
Hey, this issue is still present. I've been trying to find some consistencies across multiple instances of it happening to various degrees.
What kind of additional information are you looking for?
Phasedragon
marked this post as
needs more information
Is this still an issue? It sounds a lot like this other issue, which has been fixed: https://feedback.vrchat.com/open-beta/p/1306-physbones-no-longer-animate-smoothly
WingmanDraws
Phasedragon: This issue still does exist. This issue is unrelated to the one you linked. The jitter that I am referring to above is when players move using locomotion of any kind and unlikely to be related to animation as it applies to both contacts as well as physbone components. Its less severe, but it can also be seen when waving hands and other IK based movements. A good way to experiment and replicate this issue is to simply put a contact on your hand, then walk around while viewing the contact in debug mode. You will see the contact jump and jitter around as you walk/move.
Phasedragon
WingmanDraws: Can you provide some video examples and avatar IDs demonstrating this issue?
WingmanDraws
Phasedragon: Here's some footage of it happening. However, I will note that the monitor I use makes it FAR more apparent. I use a 144hz monitor and can see the jitter MUCH faster than the recording shows. In actuallity the jitter is extremely quick and almost looks as if it's vibrating. That being said, the recording does show it happening when both moving the armature and locomoting.
WingmanDraws
I would also note that this occurs no matter the component, whether contact or physbone and regardless of avatar. It can also be seen on remote players.
Smash-ter
Phasedragon
My analysis of the problem:
Contacts/The Contact overlay jitters due frame rate. If a player is at a high frame rate the game doesn't interpolate the contact position/rotation value. The same logic is also applied to physbones.
The likely reasons for the jittering issues:
- There's frame rate/motion compensation on physbones with the bone physics, but there is no frame rate/motion compensation for player movement relative to the player transform relative to the world. This was also why before the update was pushed to live that disables player root rotation in full body caused the jitter. This also used to be a problem with constraints being attached to humanoid bones.