Shadnix-was-taken / BeatSaber-SaberTailor

A Beat Saber mod to customize the grip position/angle of the sabers, trail appearance and saber length/width.
MIT License
35 stars 8 forks source link

Rotating around the saber axis: doesn't just rotate around that axis? #20

Closed kierenj closed 3 years ago

kierenj commented 4 years ago

I'm using the Index controllers. I rotate them in my hands by 90 degrees around the saber axis.. as I do the same in Saber Tailor to offset it, the direction of the saber/pointer changes. This suggests there's some other rotation in play? But I'm set to all 0s with the new built-in adjustments too.

Is there anythin I can do around this?

Shadnix-was-taken commented 4 years ago

Hi and sorry for the late reply. I haven't got time to look into this any deeper, but considering nothing has changed on my or other grips, it is probably working for now. So, I'm not really sure what to answer right now.

I do know that the game also adds a correction factor to the grip based on your VR hardware for the default position. I assume what you are seeing is the combination of the interaction of both.

The problem I see is, that I can't really change what SaberTailor is doing to the base game at this point, as that would effectively invalidate all existing grips for players.

Shadnix-was-taken commented 4 years ago

So, since I've finally got a bit of spare time on my hands, I started looking into this again. So, the gist of it:

If you modify the grip using SaberTailor, the game will:

  1. Move the sabers using the values entered in SaberTailor
  2. Rotate the sabers using the values entered in SaberTailor (which changes the orientation of its local axis)
  3. Rotate the sabers using by a fixed amount based on the type of controller it detects (which changes the orientation of its local axis even more)
  4. Move the sabers using by a fixed amount based on the type of controller it detects along its rotated axis.

If you modify the grip using only the game options, the game will:

  1. Add the configured rotation to a fixed amount based on the type of controller it detects
  2. Add the configured position to a fixed amount based on the type of controller it detects
  3. Rotate the sabers using the previously combined amount
  4. Move the sabers using the previously combined amount

I think I should be able to mimic the way the game handles this adjustment in SaberTailor. However, as stated previously, just changing it would invalidate all existing grips for players, so this is a No-Go.

I'll think about adding an extra option for changing the behavior of the adjustments, so that I can keep backwards compatibility with existing grips.

I hope that answers the question somewhat. I'll keep this issue open for the time being and mark it as a feature request.

Shadnix-was-taken commented 3 years ago

The next version of SaberTailor for Beat Saber 1.12.1 will add an option to change the "adjustment mode" between the current SaberTailor behavior and a second mode that mimics the base game way of applying the adjustment.

Shadnix-was-taken commented 3 years ago

Released with 3.0.1