This issue has been fixed and has been released:
Workaround for the remote IK jitter issue in VRChat when using full body tracking.
This functions similarly to SouljaVR/AutoImmobilizeOSC while not using the controllers touch capacitors to trigger immobilization, but rather the state of movement on both sticks. Hence working around the problem while having less noticeable inconveniences (at least in my opinion)
This project also features an easy installer Script in Unity.
In the below video, the left is the local view and the right is the networked view:
Credit to Natsumi-sama for this video.
untitled.mp4
The networked view has very strong visual jitter, that isn't visible locally.
This project aims to work around that problem by immobilizing your avatar automatically while you aren't moving. This also removes jittering of objects placed in the world with constraints and allows entering walls and objects, without breaking tracking.
Though it does fix the problem, it comes with some caveats:
- You will be unable to jump while not moving, as the system will immobilize you when you aren't moving.
- Your Nameplate and Textbox will stay on the last position you were immobilized to.
- When moving while calibrating and then standing still, the avatar might freeze, you can mitigate this by either:
- not moving when loading into the avatar
- reloading the avatar
- pushing the right stick downwards
- When using toggles with VRChats radial menu, you will be constantly immobilizing and de-immobilizing yourself, this can lead to physbones jumping around a little bit. This is only visible locally.
- Pointed out by 'Kung' (VRC Team), "If you turn 180 in playspace and then locomote, remote users will see a quick springing of the player root catching up to the new orientation while tweening. In local view it won't be visible."
Either download the latest release from here, or add my Repository to VCC (VRChat Creator Companion):
or
Manually adding to VCC:
- Open VCC
- Click "Settings" in the bottom left
- Click the "Packages" tab at the top
- Click "Add Repository" in the top right
- Paste
https://i5ucc.github.io/vpm/VRCImmersiveImmobilize.json
into the text field and click "Add" - Click "I understand, Add Repository" in the popup after reading its contents
- Activate the checkbox next to the repository
VRCImmersiveImmobilize
PS: You can also add https://i5ucc.github.io/vpm/main.json
to add all of my projects (and future ones) to VCC.
- Add the package over VCC or Unitypackage to your project.
- In the top left, navigate to
Tools/I5UCC/VRCImmersiveImmobilize
- Drag and Drop your avatar to the empty object saying
None (VRC Avatar Descriptor)
- Click on install
- After clicking install, a new layer named
ImmersiveImmobilize
is added to your FX controller and the parameters are added to the Expression parameters. Additionally a manual toggle is added to your Expression Menu. - Continue at #ThumbparamsOSC
- Add the package over VCC or Unitypackage to your project.
- Merge
VRCII_FX
inPackages/VRCImmersiveImmobilize
with your current FX layer on your avatar, using a tool likeAvatars 3.0 Manager
- Add the following Parameters to your avatars Expression Parameters:
- LeftStickMoved (Bool)
- RightStickMoved (Bool)
- Immobilize (Bool)
- DisableImmobilize (Bool)
- Add a two new Controls to your Avatars Expression menu with the type
Toggle
and using the parameterImmobilize
andDisableImmobilize
- Continue at #ThumbparamsOSC
This program needs ThumbparamsOSC running in the background, to capture stick movements and send that information to your Avatar via OSC.
Read the Documentation on ThumbparamsOSC, on how to set it up. For this case, we only need the two parameters LeftStickMoved
and RightStickMoved
. You can turn off any other parameters ThumbparamsOSC is sending to VRChat, if you wish so.
You can check VRChats debug menu to see if the Parameter Locomotion
switches between Disabled
and Enabled
, depending if you are moving or not.
If that isnt working, follow ThumbparamsOSC Troubleshooting steps.