Controlify icon indicating copy to clipboard operation
Controlify copied to clipboard

Flickstick Improvements

Open AmbrosiaEgg opened this issue 11 months ago • 5 comments

Flickstick is a nice feature to support, but it feels off when it doesn't allow the usual spinning via spinning the stick, and the camera rotates smoothly (which makes an easier on the eyes, but less responsive feel to the camera control)

Flickstick being a continuous input, stopping when the stick is released, and rotating the camera as the stick rotates at a 1:1 rate would make it feel much more responsive, as well as being able to disable the smooth camera rotation towards the initial flick position, these could be options and would improve feature parity with Steam Input

AmbrosiaEgg avatar Jan 19 '25 06:01 AmbrosiaEgg

Thank you! That makes sense.

isXander avatar Jan 22 '25 17:01 isXander

This is a duplicate issue to #484, though seeing as this issue describes it better, I'd suggest making this the main issue.

Lokito23 avatar Jul 04 '25 22:07 Lokito23

As to how to implement it, you would have to save the yaw angle that the camera was in before using the flick stick, ~~and then adding the angle of the flick stick to that (having Up being the original angle).~~ This is wrong since I did not consider player.turn() being additive.

After the flick stick returns to neutral the original angle of the camera can be dropped since it's no longer the angle the camera is in (or it didn't change).

Lokito23 avatar Jul 04 '25 22:07 Lokito23

Thinking about it, you would also need the current yaw angle of the camera, for calculating the difference between the original, as player.turn() is an additive function.

It would result in the following:

yawOrigin: The original yaw yawCurrent: The current yaw flickAngle: The angle of the Flick Stick

~~flickAngle - (yawCurrent - yawOrigin)~~

EDIT: This does not work since flickAngle needs an addition of 90 degrees in order to make "Up" actually up on the stick.

Lokito23 avatar Jul 06 '25 22:07 Lokito23

Seems like I got the new implementation working, still needs testing though.

Lokito23 avatar Jul 27 '25 18:07 Lokito23