psmoveservice / PSMoveService

A background service that communicates with the psmove and stores pose and button data.
Apache License 2.0
593 stars 148 forks source link

Adjust PS Move Orientation in SteamVR To Better Accomodate Shooters? #155

Open n8rockerasu opened 8 years ago

n8rockerasu commented 8 years ago

I've been wondering about this for a few weeks now. Most of the shooter games in SteamVR have you hold the Vive wand essentially vertical since its natural shape and trigger position is more similar to a gun.

The Move controller, however, was designed to be pointed horizontally. So, when using PSMoveService and playing these Vive games, you have to hold the Move upright to aim the gun properly. This makes for some pretty unnatural positions and some odd moments pulling the trigger.

I know that if you press Start/Select at the same time it will reset your orientation, and while I have gotten that to properly align the gun image in the game, it seems like it really screws up the rotation and movements within PSMoveService itself.

Is there any way this can be adjusted? Or is it just the nature of the beast in mimicking controllers that are shaped differently? It would be great if this were possible, since it would open the door for various PS Move attachments.

HipsterSloth commented 8 years ago

That's definately possible. I could add that either in the controller settings or in the steam vr plugin. It would be pretty straight forward to implement.

n8rockerasu commented 8 years ago

That would be awesome! I'd love to be able to use one of the Move pistol attachments...or even the Sharpshooter once Navigation controller implementation is in too.

zelmon64 commented 8 years ago

@n8rockerasu I'm just curious what you mean by vertical. In this image is it being held horizontally or vertically? That's how I'd hold a PSMove or any remote shaped controller.

I'm just wondering if the issue is more with what part of the controller the developers choose to align with - sometimes the shaft and others the round top. I agree that adding an alignment option would make it robust against these decisions.

n8rockerasu commented 8 years ago

@zelmon64 Yes, I'd consider that vertical (mostly...not a true 90 degrees from the floor...probably more like 70 but that's just a difference in how it's made). The round part at the top is definitely horizontal...but that lends to being more like a gun already. Vertical grip, horizontal barrel, and pulling the trigger toward you.

If you think about it in terms of the logos on the respective controllers, the Vive controller has the logo facing you, whereas most PS Move shooting applications (and attachments) want you to hold the controller like in this image...with the Sony logo facing straight up (which is what I'd call horizontal or parallel to the floor).

It's really about the design of the trigger more than anything. With the Move controller, when you hold it vertically (ie. with the logo facing you), you pull the trigger in mostly a downward motion. It more closely resembles snapping a picture than it does shooting a gun.

That said, when you point the PS Move controller and hold it horizontally (logo facing up), the trigger becomes more "gun-like", but your grip also becomes unnatural. So, the adjustment would probably only be valid for people who want to use attachments (though other instances could arise). But I still think that's worthwhile and would open up a lot of possibilities once Nav controller support is ready too.

andregm3 commented 8 years ago

Don't forget my gun =]

e39ed3f5-799f-4493-a65e-7fdd0785bc37

Source: https://github.com/cboulay/PSMoveService/wiki/PS-Move-and-Navigation-Controller-United

HipsterSloth commented 8 years ago

@andregm3 Oh cool! I hadn't seen that Wiki write up you did. Nice work. That modded configuration looks perfect for space pirate trainer. I think part of the Navi work will involve defining which navi controller is associated with which psmove controller and where it is relative to the psmove controller. I'm also not sure if that definition should be part of PSMoveService or some client library. On one hand, it's not really a core part of the controller tracking, on the other hand it would be nice to use the PSMoveConfigTool to define and configure the associations and the controller offsets. I'm open to suggestions.

zelmon64 commented 8 years ago

Here's my method for combining the PSMove and PSNavi Controllers. I swapped from "slap-bands" to hook and loop cable ties because the metal in the bands was interfering with the magnetometer. I'll add it to the wiki if that's okay.

@HipsterSloth I think it would be nice if you can somehow combine the in situ positional reset with an orientation one. This would allow for very easy adjustment to the current in-game controller model. Especially when combining the two controllers there will be a surplus of buttons that this feature could be designated to. This method seemed to work well when using the orientation reset options of both PSMoveAPI and MoveFramework.

HipsterSloth commented 8 years ago

Part of this sort of got implemented in the latest release: https://github.com/cboulay/PSMoveService/releases/tag/v0.9-alpha5.1

You can now specify linear controller offsets in the Y and Z directions. See notes in wiki here: https://github.com/cboulay/PSMoveService/wiki/Steam-VR-Setup#controller-model-offsets

jonnypanic commented 7 years ago

Sorry to bump this, but I am looking for a way to offset controllers for Doom 3 BFG and other games with the standard handgun attachment (so when you hold the gun up the psmove is horizontal). I am new to the psmove wotsit. Any idea what the steamvr command would be for that? Cheers.

HipsterSloth commented 7 years ago

This was actually on my mind recently. I'm trying to close out official support for the dual shock 4. It also has the problem that it 90 degreed off for some games (like space pirate trainer). This weekend i'm going to try and implement an controller orientation offset.