imchillin / Anamnesis

A standalone tool that allows the user a greater degree of flexibility for making creative and interesting screenshots.
MIT License
834 stars 164 forks source link

X angle camera control setting does not change to correct value #1251

Open voxymd opened 1 year ago

voxymd commented 1 year ago

Describe the bug In the camera control section of anamnesis, typing in a number or importing a saved camera location does not move the X angle to the correct number as typed in/loaded, but is off by 4.5 in the direction that the camera was originally prior to typing in the number. For example, if X angle is currently -100 (or any large negative number) and you type in 0 (or load a saved camera setttings with an X angle of 0), anamnesis will set X angle to -4.5 instead. If X angle is currently 100 (or any large positive number) and you type in 0, anamnesis will set camera angle to 4.5. This works for any values of starting/ending X angle, as if you have a number such as 0 or 2 or -50 currently set as X angle and type in 10 it will set X angle to 5.5, or any number like 15 or 20 or 100 and type in 10 it will set X angle to 14.5. In order to actually set the X angle to the value that you want, you have to 'overshoot' the angle by 4.5, for instance when changing X angle from -100 and you want to set it to 0, you can type in 4.5 instead of 0 and anamnesis will set X angle to 0 as you originally wanted, or if starting at 50 and want to set it to 100 you have to type in/import a camera file with an X angle of 104.5, in order for anamnesis to set it to 100. This is an issue for me when trying to create multiple screenshots from the same camera position using saved camera files. This bug only appears to affect the X angle setting, not the Y angle or any of the position/rotation/pan/zoom/fov settings.

The above does not work for any number that is less than or equal to 4.5 away from the current position, as in that case the X angle does not change at all. I understand that this 'not changing at all' may be a slightly different bug than this one being reported, but it can come up during bug testing and I thought it was worth mentioning. It is a less serious bug than I am reporting here, as it is easier to avoid happening. This one is also easy to replicate, by entering gpose and typing in/loading a camera file less than 4.5 away from current X angle, or simply by pressing the +/- buttons next to the X angle slider, and you'll see that the angle does not change. This is not strictly relevant to the above bug, but I thought should be mentioned as it can interfere with reproducing this bug that's being reported above. I can make a separate bug report for this one if requested.


To Reproduce Steps to reproduce the behaviour:

  1. Open FFXIV
  2. Open Anamnesis
  3. Enter gpose
  4. Navigate to the home tab and the camera section
  5. Note current X angle prior to changing value
  6. Change X angle to a number greater than 4.5 away from current value, either through typing in/pasting in a value or importing a saved camera settings (.shot) file
  7. Look at the number that is now located in the X angle setting, as it is not the number typed in/imported.

You can test to see that the camera angle really is not what it should be (rather than only the visible number being off, but the angle being correct) using the following steps (or any similar steps):

  1. Open FFXIV
  2. Open Anamnesis
  3. Enter gpose
  4. Take screenshot and export .shot file (or write down current values)
  5. Change X angle to some number significantly different from current
  6. Import .shot file that was just exported and retake screenshot (or retype in original values)
  7. Compare angles in both screenshots to see that angle is incorrect for X angle

Repeatability How often does the bug occur: This bug happened every time that I tested it. I tried it with FFXIV opened both through the quick launcher and the SE launcher, and with camera control 'delimit' box checked and unchecked. Appears to work regardless of whether actor motion is enabled or disabled, or whether posing mode is enabled or disabled. I tested it inside an apartment (Kobai Goten) and in a housing area (Shirogane). I have also made sure that anamnesis is running as an administrator, etc. I have noticed this being present for months.


Expected behaviour I am expecting that when you type in a number into the X angle box, it would move the X angle to that value. I would expect that if I type in any value like 0 or 10 or -100, that number would not immediately change from that value as soon as it updates the number.


Log file 2022-11-30-01-51-52.txt

Let me know if any further information is necessary, thanks!

Yuki-Codes commented 1 year ago

good write up! Sounds like we may need to freeze the camera values to get them closer, but unsure if we can get them exactly the same in-engine.

FFXIV does something to the values (I think as part of the camera collisions system?) that pushes them slightly off what the memory value we have says. I'm unsure if we can get enough accuracy with the current memory addresses, but its worth investigating.