cancel
Showing results for 
Search instead for 
Did you mean: 

Unofficial PSMove - Give it a try, please be gentle.

bullale
Honored Guest
There's a sample UE4 project here. Feel free to ask questions or post your errors here. I'll try to update the documentation there and in the UE4 plugin it points to.

Note that the PSMove Unity plugin in the wild (UniMove) is not designed to work with my version of the psmoveapi. A Unity user needs to come along and update it. I'll help out where I can.

Some things to note:

1. The plugin currently assumes you are using a PSEye with the PS3EYEDriver as this is the only driver that works with MSVC 64-bit, required by UE4 Editor. PS3EYEDriver is GPL'd, so you can't publish closed-source games using this driver. We will eventually get around this by turning the psmoveapi into a server/client model, where the server will be GPL'd and the client - the only part that needs to go in your project - will have a much more permissive license. In the meantime, you can build for 32-bit and use the non-free 32-bit drivers from CodeLaboratories. Your users would be required to purchase these $2 drivers too.

2. Getting the PSMove paired to the computer can be quite tricky. It seems to depend on the bluetooth dongle and possibly what other USB devices are attached during pairing. The good news is that once it is paired, it connects very reliably in the future. If it doesn't, then you either have a defective controller (e.g., bad battery) or an incompatible bluetooth dongle. We don't have a list of 'good' bluetooth dongles, but the ASUS BT-400 has worked well for me and the other main plugin dev.

3. It's pretty sensitive to lighting conditions. Sunlight or fluorescent light sources (& reflections) in the FOV of the tracking camera will cause lots of problems for you.

4. Everytime you move the PSEye camera, or DK2 camera, you will have to redo a coregistration step. It only takes about 20 seconds and it should be good as long as the cameras don't move relative to each other.

5. You have to recalibrate the PSMove magnetometer (and other sensors) definitely every time you change rooms, and it's probably a good idea to do it once per day.
5 REPLIES 5

konstantin_loze
Explorer
Thnks, downloaded the project, will test soon. I want to know though, can you use the plugin in non VR projects? I would expect so, no need for coregistration then?

bullale
Honored Guest
"konstantin_lozev" wrote:
Thnks, downloaded the project, will test soon. I want to know though, can you use the plugin in non VR projects? I would expect so, no need for coregistration then?


First, I'm sorry that I didn't see this message sooner.

Yes, you can use the plugin without VR. Can I ask what your use-case is? I only envision people using the plugin as a stand-in for the Vive or Touch. The reliability, sampling rate, and latency are probably inadequate to do anything too high-level with it, and its installation is probably too cumbersome to actually ship a product with it and expect customers to setup their system accordingly... except Mac & Linux users. It's super easy for them.

opamp
Protege
Hi bullale,

Just had a chance to try this out, And Ive got to say this is very cool.
One thing I noticed is that the controller orientation seems to be effected by the hmd's rotation.
It looks like you need to apply the inverse of the hmd's rotation to the controller after you have finished setting the world position.

i.e holding the controller vertical and rolling my head will make the still vertical controller roll in the same direction.

Asides from that Excellent job!

P.S Are there any plans to support two controllers? As this currently doesnt work.

Opamp

Edit*

I just notices this commit on github. https://github.com/EpicGames/UnrealEngine/commit/8b6a9d7071362ce989d189190596372bea2959fe

Im guessing this is only for ps4 dev's but we can live in hope. 🙂

PS4 Move controller support and motion controller late update.

Original changelists: 2655305, 2664499, 2664902, 2672559, 2709769.

Per changelist summaries:

2709769: Minor tweaks and fixes to Move Controller code before 4.10 integrate.
-Crash fix when using Move controllers with Oculus HMD
-Changing "Move" button to trigger Grip1 instead of shoulder, this is more consistant with Touch controller usage.

2672559: Motion controller late update fixes:
-MotionControllerComponent now caches "bHasAuthority" state from the game thread for reference on the render thread
-SteamVRHMD code now allows position/orientation sampling on the render thread

2664902: RebaseObjectOrientationAndPosition to IHeadMountedDisplay. This allows for an external object to be remapped to the HMD's current base.

2664499: Motion controller late update:
-Applies a more up-to-date controller transform to dependent visible objects immediately before rendering occurs
-Can be disabled on a per motion controller component basis through a blueprint option "Disable Low Latency Update"
-Can be toggled holistically by a console command "vr.EnableMotionControllerLateUpdate"

2655305: PS4 Move motion controller plugin:
-Supports position and orientation tracking as well as button presses on both PS4 and Windows(via hmd_client)
-Supports vibration on PS4

#jira UE-21034, UE-21035
#platformnotify Josh.Adams

[CL 2710298 by Chad Taylor in 4.10 branch]

bullale
Honored Guest
I'm sorry I didn't see this message sooner. I don't know how/why this forum decides to not e-mail me sometimes but it does others.

The orientation problem you mentioned should be fixed.

I've heard from multiple sources, including someone from Epic on a UE4 Twitch stream, that UE4 PSMove integration is for PSVR devs only.

Diragor
Honored Guest
What's the trick to making two controllers work? I'm using your sample UE4 project. I tried adding a second instance of the Controller_Blueprint to the scene with the hand changed to Left in the MotionController and PSMove components, but I can't get the second one to show up when it runs. I'd add another MotionController and children to the blueprint but the existing MotionController is the root node.

I'm still pretty new to UE4 so I apologize if I'm missing something obvious, but I'd appreciate any tips you can offer on this. Thanks!