Skip to content

Workaround for the remote IK jitter issue in VRChat when using full body tracking.

License

Notifications You must be signed in to change notification settings

I5UCC/VRCImmersiveImmobilize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VRCImmersiveImmobilize Github All Releases Buy Me a Coffee at ko-fi.com

This issue has been fixed and has been released:
image

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.

Contents

The Problem, Workaround and Caveats

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."

Download

Either download the latest release from here, or add my Repository to VCC (VRChat Creator Companion):


or


Manually adding to VCC:
  1. Open VCC
  2. Click "Settings" in the bottom left
  3. Click the "Packages" tab at the top
  4. Click "Add Repository" in the top right
  5. Paste https://i5ucc.github.io/vpm/VRCImmersiveImmobilize.json into the text field and click "Add"
  6. Click "I understand, Add Repository" in the popup after reading its contents
  7. 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.

Installation

Automatic Install

  • 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
    grafik
  • 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

Manual Install

  • Add the package over VCC or Unitypackage to your project.
  • Merge VRCII_FX in Packages/VRCImmersiveImmobilize with your current FX layer on your avatar, using a tool like Avatars 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 parameter Immobilize and DisableImmobilize
  • Continue at #ThumbparamsOSC

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.

Testing if it works

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.