Skip to content
Hydra Plugin for Unreal Engine 4
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Binaries remove ignored files Dec 22, 2016
Resources 4.11 preview test Feb 21, 2016
Source/HydraPlugin compile fixes Apr 2, 2019
ThirdParty/Sixense/Include Shuffle dependencies to saner places Mar 31, 2016
.gitignore
HydraPlugin.uplugin compile fixes Apr 2, 2019
LICENSE license added Oct 8, 2015
README.md Update README.md May 2, 2017

README.md

Overview

An Unofficial Razer Hydra plugin for the Unreal Engine 4.

GitHub release Github All Releases

Since version 0.8, the plugin works through both Unreal Engine Motion Controller and Input Mapping abstraction as well as through a convenience component for hydra specific events and functions.

Main discussion thread

Unreal Engine Wiki

Quick Install & Setup

  1. Download Latest Release
  2. Create new or choose project.
  3. Browse to your project folder (typically found at Documents/Unreal Project/{Your Project Root})
  4. Copy Plugins folder into your Project root.
  5. Enable the plugin via Edit->Plugins. Scroll down to Project->Input Devices. Click Enabled.
  6. Restart the Editor and open your project again. Plugin is now ready to use.

Motion Controller Documentation

Please refer to the Motion Controller Component Setup unreal documentation as this setup is hardware agnostic. Since 0.9 a basic motion controller setup should look like this:

IMG

Where visible static meshes are parented to the motion controllers which are in turn parented to a chosen offset, forward by 40cm from the camera in this particular example.

Input Mapping

You can use either the Motion Controller input mapping (IM) events

IMG

or hydra specific ones

IMG

Hydra Tracking Notes

No hydra specific component is required, tracking is handled internally and passed to the agnostic motion controller components and the input mapping system. Tracking should defer to other motion controllers if unplugged or docked.

The origin of tracking is the hydra base station.

For input mapping purposes Hydra start == Face Button 5 Hydra Joystick Click == Face Button 6

Hydra Custom Functions and Events

IMG

If you want to calibrate or do complex hydra specific things, just add a hydra controller component.

Component are multicast and their events are as well so place them anywhere in multiples if you want to. They are also where you would poll for latest data for gesture recognition/etc.

Events

How about events? Now there are no more interfaces to deal with, instead you click on your hydra plugin component and click the green + to add the event from the details pane. This should feel familiar as these are the same blueprint assignable multicast delegates that PrimitiveComponents use for collision checks (e.g. OnBeginOverlap)

On Controller Moved

E.g. draw a debug box for each hydra from a base offset scene component IMG

Button Pressed/Released

e.g. verbose log of button presses/releases. Notice that you can break additional information from the controller data structure.

IMG

Joystick Moved

e.g. a verbose log of joystick movement

IMG

Hotplugging Events

Called when you plug in or unplug the controller from the system usb. IMG

the same type of events exist for docking.

Optional Calibration methods

Used to calculated 1:1 offset for your controllers. To calibrate you simply call Calibrate or SetBaseOffset on your component.

IMG

Calibrate recalibrates the origin as coming from the centroid of your two hydras + the offset. In its default settings it should work as a good T-pose to shoulder midpoint.

If you want to do your own calibration, just come up with a good position offset and set it here, all values onward will maintain this calibration, even between PIE sessions.

Shipping

When you're ready to ship, just package the game it should all work out of the box.

Shipping Troubleshoot

You run your packaged project and you get the following errors

Error:

alt text

Your project runtime also continues working, but your hydra does not respond.

Fix: This means that you have no code added to your project, the project needs code to run a plugin. Add any code (e.g. new pawn that doesn't do anything extra) and compile to fix.

Error:

alt text

Also you search your log file and find

alt text

Fix: This error means the sixense dll file is missing.

Credit and License

Plugin made by Getnamo. Point all questions to the main discussion thread.

The Sixense SDK is licensed under Sixense EULA.

Anything not covered by Sixense EULA and Unreal Engine EULA in Hydra UE4 Plugin provided under MIT license. Do anything you want just retain the notice.

You can’t perform that action at this time.