GithubHelp home page GithubHelp logo

hydra-ue4's Introduction

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.

hydra-ue4's People

Contributors

aryanthanam avatar getnamo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.