kinsi55 / CS_BeatSaber_Camera2

Adds a lot of options / tools for creating more advanced desktop viewing experiences with multiple camera angles and much more in Beat Saber
MIT License
118 stars 13 forks source link

Allow limiting the angles and positions to specific ranges #82

Closed blackorbit1 closed 1 year ago

blackorbit1 commented 1 year ago

Hello 👋

I thought the use of a 3rd person camera with a smooth following of the user was deliberately made more difficult for some technical reasons but seeing TheBlackParrot's post I though it could be a good idea to ask anyway.

I've seen in the code and on TheBlackParrot's streams that Attached cameras could allow such results but it looks like it's loosing support overtime and I found no documentation on how to use it. I've made a few experiments with the json file but never got anything usable.

I managed to have a similar result using a first person camera and merging some parameters of a 3rd person camera in it but a lot of those parameters aren't accessible on the game menu and I can't see where the camera is ingame.

Maybe it could be interesting to either add the option to show the 1st person camera ingame and display more parameters if the attached camera is going to disappear or add an example of an Attached camera json file in the documentation 🙂

kinsi55 commented 1 year ago

If some settings are not accessible ingame it is for the reason that the vast majority of users don't need them. I don't want to have every single setting accessible ingame because already, many people are overwhelmed by the amount of options, thus advanced use cases like attached cameras will always stay something that you need to setup by editing the config.

Specifically for attached cameras you need to know how to use RUE and lookup game object names. That's not something that I want to support

I could add a seperate page in the wiki for them tho, but that being said, with #80 being implemented eventually Attached cameras aren't really useful any more for this usecase

blackorbit1 commented 1 year ago

Ok, I managed to have the Attached camera works, I didn't knew about all the gameObject things. And yeah this made me experience the issues raised in #80 which made me go back to my dirty solution.

This goes a bit out of the scope of this issue but I thought it could be cool to have a min / max or a max range rotation value, so the camera can show what we look at (without being super zoomed out) but don't rotate to much when we look at / speak to the viewers for instance.

Looking at the code it doesn't seems insane to implement to me but maybe I'm wrong. If you don't have much time for it I can try to do it and make a PR if it works but can't promise anything because I've never done any mod nor C#, and I don't even know how to compile the project 🥲

kinsi55 commented 1 year ago

With every option that I decide to add, I am making sure that its something at least a hand full of people do actually need. I dont want feature creep to be part of my projects even more than it already is - Yes being able to limit the range of values is not hard to add but its at least one, or even two values extra in the config per axis, and that just adds a lot of "trash" to the config most dont need

kinsi55 commented 1 year ago

I think I'll implement it in a way where theres a seperate locking section for fp / attached cameras, the values can either be integers in which case it will lock it to that value, or a string min:max

kinsi55 commented 1 year ago

Since this is now essentially a duplicate of #80 ill lock it