mwilsnd / SkyrimSE-SmoothCam

A thirdperson camera mod for Skyrim Special Edition
78 stars 19 forks source link

Alternate Conversation Camera patch affecting zoom level #50

Open derickso opened 2 years ago

derickso commented 2 years ago

With patch

with

Without patch

without

mwilsnd commented 2 years ago

Are you using ACC or ACC Plus? I really want to figure out where the problem is with this, could you share your preset so I can have the best chance at replicating the problem?

derickso commented 2 years ago

This is with a default ACC installation

This is the SmoothCam preset SmoothCamPreset2.txt

which is based on the Modern Camera preset with the appropriate patches selected

mwilsnd commented 2 years ago

You can give the new version (1.5) a try, at the very least it should fix the issues when talking to someone while in first person. If not I'll have to do some digging into how ACC figures out the zoom level to understand what is going on.

derickso commented 2 years ago

I was not aware there was an issue with first person. The issue with third person is not resolved. And with the auto-detect compatibility I can no longer disable the patch

Also an addendum, I meant the default ACC Plus installation, but the only code change Plus made was adding a setting variable, so I'm not sure it matters

mwilsnd commented 2 years ago

SmoothCam_ACC_APIEval.zip Can you try the following evaluation build above and let me know how things work. This contains an updated version of SmoothCam (same as the current repository version) and a modified version of ACC plus, for which I have a pending pull request open to get those changes merged hopefully.

This version of ACC now talks directly with SmoothCam via the modder's API I built and should work a bit better. I tested it both with and without SmoothCam installed and it seems to remain mostly consistent (as best I can make it).

Edit: Forgot to mention, if you use ImprovedCamera make sure you set bSwitchPOVMatchCameraRotX=0 in that mod's INI. I'm no longer correcting the camera pitch issue between IC and ACC.

derickso commented 2 years ago

Seems good from what I can tell. Your merge includes the other pending pull request about the missing dialogue menu?

mwilsnd commented 2 years ago

I just forked ciathyza's repo so no. I'm hoping my PR will be merged so they can release an official build. The PR you mention is still pending so I'm unsure when both requests might be merged. I don't want to distribute a build with those fixes since it really isn't my mod.

I am happy to see it works for you at least, so feel free to keep using those builds for the moment. I'm holding off on releasing an incremental update of my own mod until either my PR is merged with ACC plus or I add enough new stuff to justify it.

I'll keep this issue open for the moment, until ACC updates.

derickso commented 2 years ago

Spoke too soon, seemed to work fine on a barebones modlist, but it's still broken on my main one

mwilsnd commented 2 years ago

If you can narrow down which combo of mods causes your issues I can look into what might be going on. Likely culprits are usually other SKSE/.NET plugins, player animations and abnormal game INI tweaks.

derickso commented 2 years ago

So preliminary testing seems this was a problem with the

[Camera] fVanityModeMinDist=60.00

setting I had added in Skyrim.ini a long time ago and forgot about. I wonder if I made you waste this time debugging two mods... although other users have said they had a problem with the patch and I don't think they all have that .ini setting

As an aside, I want to say enabling SmoothCam introduces about 10-20 extra zoom levels than default ACC zoom level settings, although I could just not be at the same third person camera starting point, and it's hard to find a NPC that doesn't stop moving

mwilsnd commented 2 years ago

I don't think it was a waste at all, having ACC talk directly with SmoothCam now makes many things a lot easier to deal with as far as compatibility goes. Plus, I added some mild smoothing from the user's custom camera position to ACC's position which largely eliminates sudden camera position jumps when entering or exiting dialogue.

The zoom thing I am aware of. Since I don't use the same distance multiplier per zoom increment that the base game uses (and is even a user configurable option in the MCM), there is a discontinuity between the camera distance when SmoothCam is in control vs. any other camera mod or the base game camera. SmoothCam uses a smaller distance multiplier in general which you can observe by toggling the mod on and off via hotkey - the camera distance increases when switching to the vanilla thirdperson camera. That all translates to a different observed zoom level when ACC takes control since it expects a vanilla camera behavior. I don't really consider it a bug, since users are free to change the zoom multiplier there isn't an easy way to reconcile the difference when a mod like ACC takes camera control and uses the more vanilla behavior.

The vanity camera setting is interesting, I'll take a look at what that is actually doing to cause your observed issue.

Update: So it appears that setting acts like my "Min Follow Distance" control in SmoothCam, but for the vanilla camera. Setting it to an extreme value (500) with the vanilla camera running yields a very large camera<->player distance at the lowest zoom level, and setting it to a very low value (10) has the camera nearly inside the player at the lowest zoom level. The wording on the setting had me thinking it was for the auto vanity camera that rotates around your player when idle, but it appears vanity in this context means any thirdperson state. This all makes sense now as ACC mostly relies on vanilla camera positioning logic, which it then applies an offset to. SmoothCam on the other hand completely takes over the role of positioning the camera so you don't see the same kind of thing when SmoothCam is running.

derickso commented 2 years ago

So what settings should I change to account for the different zoom multiplier between SmoothCam and ACC? Setting it high in the ACC ini makes the initial third person zoom okay, but then when it switches to the player character it is too zoomed out. Is there an equivalent SmoothCam setting?

mwilsnd commented 2 years ago

I'm not sure, I think this is about the best I can do for the moment as far as ACC compatibility goes. I'd keep the offset options default in ACC and adjust SmoothCam's min follow distance and zoomMul until you get something you are satisfied with.

In the future I think I'll be adding a conversation camera system to SmoothCam which should work better. Eventually I'd like to replace every camera state - I've already been playing around with some firstperson stuff in dev builds.