Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent handling of SS vs BL replays #54

Open
raineaeternal opened this issue Oct 16, 2022 · 6 comments
Open

Inconsistent handling of SS vs BL replays #54

raineaeternal opened this issue Oct 16, 2022 · 6 comments
Labels
good first issue Good for newcomers wontfix This will not be worked on

Comments

@raineaeternal
Copy link

raineaeternal commented Oct 16, 2022

I just tested the new replay feature and its pretty awesome, but I find some inconsistencies between the replay handling.

BeatLeader replays do not smooth at all, whereas the same map with the ScoreSaber replay does get smoothed by Camera2.

I can provide examples if necessary.

Edit: I'm reporting it here, since you bundle Camera2 in the release - and therefore think it's part of your responsibility to fix

@Reezonate
Copy link
Contributor

Thanks for your report. I found the problem. As soon as you touch any camera setting in Camera2, it will update previous config and add limits field in the camera .json file. After this everything works just fine

old config:

"Smoothfollow": {
    "position": 10.0,
    "rotation": 5.0,
    "forceUpright": false,
    "followReplayPosition": true,
    "pivotingOffset": false
  }

After touching any camera setting:

"Smoothfollow": {
    "position": 10.0,
    "rotation": 1.1,
    "followReplayPosition": true,
    "limits": {
      "pos_x": "-Infinity:Infinity",
      "pos_y": "-Infinity:Infinity",
      "pos_z": "-Infinity:Infinity",
      "rot_x": "-Infinity:Infinity",
      "rot_y": "-Infinity:Infinity",
      "rot_z": "-Infinity:Infinity"
    },
    "pivotingOffset": false
  }

Looks like Kinsi unintentionally added backwards incompatible feature with adding support for BL replays. Sadly, it cannot be gracefully handled on our side :c

please go over to Camera2 github and forward this issue to Kinsi 🙏

@raineaeternal raineaeternal changed the title Inconsistent camera handling between ScoreSaber and BeatLeader replays Inconsistent handling of SS vs BL replays Oct 17, 2022
@kinsi55
Copy link

kinsi55 commented Oct 17, 2022

That is not what is happening - Camera2 configs always get updated / migrated on game start - So if you update from the pre-limits version and start the game, the config file is updated right on game start. Demo of me deleting Limits and just starting the game: https://user-images.githubusercontent.com/8348306/196133120-58b7aa67-8fa3-4e2b-8650-89efb7144cfa.mp4

That being said, the limits have nothing to do with smoothing, thats just for limiting positional / rotational ranges

The issue here is probably that Scoresaber replays get smoothed twice - Once by scoresaber itself, and then again by Camera2. This is becase the only values that I can get from Scoresaber are already smoothed by it for usage with its own replay system. I have asked Umbra multiple times if I could somehow get unsmoothed values but to no avail.

So that its probably why it feels like SS is smoothed but BL is not, because SS is oversmoothed to hell and back. If you up the smoothing in Cam2 you would get a similar result - But the end result should look the same as it does in Solo, if its not, something is wrong - As you can see the smoothing is unconditionally applied in any situation: https://github.com/kinsi55/CS_BeatSaber_Camera2/blob/ecbb037721f7b79be027ce6a8f7533eeb7c5fe57/Middlewares/Smoothfollow.cs#L201-L202

@Reezonate
Copy link
Contributor

Oh yeah, I doublechecked and you're correct - there is nothing wrong with Camera2, my apologies 🙏
But also there is nothing wrong with BeatLeader, I don't think we should introduce inconsistency between Solo mode (live recordings) and Replays.

Although it was my fault, I do have a bit of a feedback on what confused me, @kinsi55 . Initially I had rotation smoothing on 5, which turns to look like no smoothing at all. Then I tried different values on slider, nothing worked, and I left it in a roughly the same spot as before, but it was on 1, which turns out to be too smooth.. That being said, why the top value on slider is 50? :DD it is so sensitive in the start, very confusing.. Pls change 🙏

@kinsi55
Copy link

kinsi55 commented Oct 17, 2022

The value goes directly into the lerp methodas you can see above which of course isnt linear - I would have to add some extra math / mapping behind it to change the behaviour

@Reezonate
Copy link
Contributor

nono, I propose changing the slider top limit, not the logic. I doubt that anyone uses values larger than 10, if 5 already looks like an earthquake :DD

But anyway, returning to the original topic. The only solution I can see (without changes from the SS team) - is separate smoothing settings for SS replays in Camera2. We won't add additional smoothing to compensate the difference. Cam2 will have full and predictable control over the camera behavior in BL replays

@kinsi55
Copy link

kinsi55 commented Oct 17, 2022

I might just go ahead and disable cam2 smoothing in SS replays until I get raw values from SS on the next full moon, maybe.

@Hermanest Hermanest added good first issue Good for newcomers wontfix This will not be worked on labels Aug 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

4 participants