My head is constantly offset by ~2cm left on all avatars
tracked
Xan
This is a very, very specific issue that I have been wrangling with since at least 2021 or so, and I doubt it's happening for anyone else, or people just don't care enough to notice, but I figured I ought to report it anyway. This occurs both with and without FBT.
Switching into any avatar in the game, calibrating my full body, and placing my arms at my side reveals that my arms are not centered about my body. Additionally, my avatar has a very slight lean to it.
Currently the problem is solvable, but it requires a trick in SteamVR to basically lie about where my hardware is physically located (OpenVR Input Emulator), adding a ~2cm right offset to my HMD.
Since this is not so easy to explain with words, I have recorded my raw VR view and demonstrated the problem and how I fix it for myself: https://youtu.be/jvfrAz4HVL8
And, since it is a very legitimate question that might come off as a bit impolite to ask, I will answer it ahead of time: I did indeed check my real physical self to make sure my spine isn't messed up or something, and I can confirm that I stand up straight as an arrow in person :P
Addendum:
I have also checked my playspace configuration. This has persisted across several different spaces as I have used different parts of my home for my VR setup. I'm using an Index with 3 Lighthouses.Log In
Wunder Wulfe
I thought that initially I was having this issue as a result of not standing up correctly to t-pose but thankfully this does explain a lot. When I look straight down, my feet are always not where they are in real life, and are usually to the left.
Fires~
Ive had this problem for as long as i can remember. I thought it was my hip tracker being offset for awhile and watching your demonstation made me understand what is actually happening now. Thank you for making a video and properly reporting this. Your video shows exactly what i have a problem with on my end. Hopefully vrchat fixes this finally.
Rivera․
I thought this whole time it was SteamVR doing this to me and not vrc :( . I even tried to find any info on this like a few months ago and didn’t find anyone with the same issue.
Thanks for making this canny cause otherwise I would have never known.
StormRel
marked this post as
tracked
Lun․
My friend Tohru has a tool for this, helps you counteract the offset from the idle position of your head
Skele™
Lun․ This is a nice tool and also recommend it. It can solve the view positional offset which is more than enough for 99% of avatars of a normal scale, but taller avatars that have the hip/neck rotation offsets mentioned in my other response will still have their character's upper body and head looking slightly askew.
Skele™
Hello! I've actually been investigating this, this is NOT an issue with VR setups/playspace config and will actually happen in desktop. If you enable wireframe view in the editor and use a gesture manager, you'll actually see your avatar will tilt as the default idle animation loads.
I've found there's three things that seem to happen here:
- The armature root position is shifted to the left slightly.
- The hip roll is slightly rotated.
- The neck yaw is slightly rotated.
You can only somewhat counteract this by moving the avatar descriptor onto roughly where you see the eyes ingame. For me, that is setting the X to -0.003110882. However, this isn't perfect as spine and above still aren't aligned true forward.
I have exported my avatar in many formats and using an exporter preset that better suits Unity;s expectation of armature scale and rotation, and have been able to replicate this on numerous armatures on new projects HOWEVER, I have also had a friend do the same with their armature and it was practically perfectly centered. I'd say almost all avatars have the offset, but not all.
I think there's the rounding error issue with Unity's humanoid editor is making the idle slightly offset compounding with VRChat's idle proxy not being perfect., and the issue is further compounded by the scale of your avatar. My avatar is 192cm tall. I copied the values from all left-bones to right-bones. This seems to repair the rotation, but the leftward position offset just can't be prevented.
To summarize, the two ways I have been able to "fix" this:
- Disable your locomotion entirely and just rely on IK, this won't matter for FBT users, but will make desktop/upper body users "skate".
- Create a better proxy idle, offset your view position.
Xan
Skele™ Oh this actually correlates with some other stuff! Specifically the -0.003m offset. Sometimes I have a snout in first person on my avatars, and I have to set my eye offset to this value on the X axis to get it centered in my VR view. This is actually super informative.
I'll do more experimenting with this in mind and edit my post with the extra information, but your solution seems very promising.
Edit:
I did some cursory testing by trying to replace various animators with empty controllers (or, they had one empty animation clip). This did not fix it. I attempted to replace the idle controller and also disabled the locomotion options. This did not fix it either.Edit 2:
Replacing my t-pose and IK-pose did not seem to help either, unfortunately. It seems the only possible fixes are purely "reactive" for lack of a better word, that is, correcting the error after it happens, rather than stopping it from happening in the first place.Skele™
Xan Unfortunately, the locomotion thing only seems to work in desktop only. It seems whatever offset the humanoid editor applies to humanoid-based animations also affects the head IK target when in VR.
There isn't much that can be done, because even if the rotations I listed in my first post are counter-acted in Blender/Unity which gets you 90% of the way there, the root armature is shifted additive to view pos seemingly as soon as the player's VRC animation controller stack initializes.
I did make headway using empties with both the position/rotation offsets I required and then a Final IK/Stub setup with my avatar to track to those positions instead which seems to have it aligned. But this is a really hacky workaround and I don't recommend it. Hopefully we see a real fix for this soon.
For future ref, the way I have found to easily test avatars in Desktop without being in the editor is to go to a world that lets you see your avatar's wireframe, I use The Avatar Studio by MetaCreatorsTYO for example. Then while looking in a mirror, I'll align a centered vertex with the VRChat crosshair, then hold W. You'll press against the glass and begin skating to the side in most avatars. The benefit here is that you can do this to any avatar, not just your own. This is how I was able to find out almost all avatars have this offset. I used my old Humanoid and Generic rig avatars uploaded from SDK2 era, and was how I noticed that my generic rigs weren't offset, but humanoids were.
Fires~
Skele™ I can feel the offset offset of each bulletpoint you layed out. Its super frustrating and i have personally been confused with my own irl body thinking i may have like really bad scoliosis or something. I was like how heck is my hip rotated each time I calibrate. I've almost considerd to quit using FBT over these problems.
SapphireSouls
I've been experiencing the same issue since 2021 as well.
Funnily enough just a few weeks ago my partner and I were investigating this as it is a GLOBAL issue with Unity/VRC. No matter what headset you're using, even on desktop, ALL avatars have their viewpoint incorrectly shifted.
What we found was that it seems to be related to the stock locomotion animations. If you check the position of your head in Unity while T-Posed and then enter playmode with gesture manager emulator to make your avatar stand in the default idle pose, their head and viewpoint both move.
Notably it's not just a left offset, it's rotated slightly too.
We've yet to find a solid fix as it's potentially floating point precision issues with Unity itself, though VRC could potentially rectify it by adjusting the viewpoint on avatars on upload to counteract the position and rotation errors. Or a set of stock animations that counteract the behaviour.
I'm glad someone else has noticed this issue because it proves I'm not crazy.
Drives me insane because looking 'straight' at a mirror makes me look more towards the tear duct of my eye instead of dead center on my nose.
Xan
Excellent, your information aligns too. I am doing some testing.
Michael`
I couldn't really say but it may be that your floor is literally tilted in Steam VR. I have had an issue with slight tilt here and there especially when I lose tracking but the way your describing it makes it seem a lot like something to do with your playspace or hardware. You could try using 1 then 2 then 3 base stations and see if it changes, and I also would suggest when you calibrate the floor the left controller determines height but I believe the right one determines level (MAYBE) so try separating them a bit more and then calibrate the floor.
Xan
Michael` I had a look at this. As mentioned before this has persisted across several different playspaces in my physical home, so I had my doubts. Resetting my playspace from scratch with some base stations on or off made no difference.
To be extra sure, I ended up checking in other games too (BONELAB, Skyrim VR, Blade & Sorcery, ChiloutVR). The issue is exclusive to VRChat and does't happen in any other VR titles.