jrbudda / minecrift

VR mod for Minecraft. For Minecraft version 1.7.10
http://www.vivecraft.org
Other
322 stars 32 forks source link

Unpredictable/better cursor behavior #329

Closed dark-penguin closed 5 years ago

dark-penguin commented 5 years ago

When "keyhole" is set to 0 degrees, the cursor behaves unpredictably. Usually, turning your head side-by-side also moves the cursor, but if you move the mouse at the same time, sometimes the cursor gets "stuck" somewhere not in front of you.

It would be even more awesome if, when the "keyhole" is set to 0 degrees, the cursor would also move up and down along with "head" movement, ignoring vertical mouse movement. It makes little sense to retain "free" vertical mouse movement when you want to "lock" horizontal movement (try it, it feels weird!).

Apparently, complete "face aim" support (including menus) is off the table (#328), but with this little change, an almost-useless clunky "zero degree" mode would be turned into a whole new partial face-aim mode for those who want it (everyone used to Android games! And everyone whose PC is too slow to use mouse free-aim comfortably!). If there was a "vertical keyhole" option, I'd just set that one to zero, but having a "vertical keyhole" really makes little sense in any other situation except this one.

Currently, I rotate with my head, using the mouse if I want to "turn my body" (with 0-degree keyhole), which is actually very comfortable. But when I fight an enemy, I forget that just looking at the enemy is not enough - I have to quickly "find" my cursor (which is up or down outside my field of view) and pull it to the center to hit!

Techjar commented 5 years ago

This is essentially the same thing as face aim. The keyhole was never even intended to function at 0 degrees, we just didn't bother clamping it to something reasonable.

dark-penguin commented 5 years ago

Well, yes, this is a suggestion to turn the "unintended" 0-degree mode into "partial" face-aim with very little effort, thus making the game accessible for two new categories of users (those who want face-aim and those who have slow systems and have no other choice).

I don't understand what's so bad about face aim - it's certainly better than using a mouse - but, of course, it's up to you if you don't want to support it at all.

Techjar commented 5 years ago

I found the mouse to be better honestly. And it's not "very little effort" it's an entirely separate code path to make the aiming use the HMD look vector directly, at which point it may as well be full face aim.

dark-penguin commented 5 years ago

Oh, ok, I didn't realize that. :) I thought it already "almost works" horizontally, so I concluded it must be as simple as making sure the cursor does not get stuck horizontally and doing the same vertically:

if keyhole == 0 then
    disregard vertical mouse movement
    cursor = screencenter # or something, to fix "cursor sticking outside"

It may be a dirty solution instead of doing it "properly" with separate code, but all we need to do is fix the cursor in place, and I thought that would do the trick. I have no idea about how any of this works, so I guess it's not this easy? %)