andreibosco / hydra-ue4 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from getnamo/hydra-ue4
Hydra Plugin for Unreal Engine 4
This project forked from getnamo/hydra-ue4
Hydra Plugin for Unreal Engine 4
{\rtf1\ansi\deff0\adeflang1025 {\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\fmodern\fprq1\fcharset0 Courier New;}{\f4\fswiss\fprq0\fcharset0 sans-serif{\*\falt Arial};}{\f5\fnil\fprq1\fcharset0 monospace;}{\f6\froman\fprq0\fcharset128 ;}{\f7\fnil\fprq2\fcharset0 Mangal;}{\f8\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f9\fnil\fprq2\fcharset0 SimSun;}{\f10\fnil\fprq0\fcharset128 Mangal;}{\f11\fmodern\fprq1\fcharset0 NSimSun;}} {\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red0\green0\blue255;\red0\green128\blue0;\red0\green128\blue128;\red0\green119\blue136;\red0\green0\blue64;\red0\green0\blue221;\red255\green255\blue255;\red249\green249\blue249;\red128\green128\blue128;} {\stylesheet{\s0\snext0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\kerning1\hich\af6\langfe2052\dbch\af7\afs24\lang1081\loch\f0\fs24\lang1033 Default;} {\s1\sbasedon53\snext54\ilvl0\outlinelevel0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs48\lang1033 Heading 1;} {\s2\sbasedon53\snext54\ilvl1\outlinelevel1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs36\lang1033 Heading 2;} {\*\cs15\snext15 RTF_Num 2 1;} {\*\cs16\snext16 RTF_Num 2 2;} {\*\cs17\snext17 RTF_Num 2 3;} {\*\cs18\snext18 RTF_Num 2 4;} {\*\cs19\snext19 RTF_Num 2 5;} {\*\cs20\snext20 RTF_Num 2 6;} {\*\cs21\snext21 RTF_Num 2 7;} {\*\cs22\snext22 RTF_Num 2 8;} {\*\cs23\snext23 RTF_Num 2 9;} {\*\cs24\snext24 RTF_Num 3 1;} {\*\cs25\snext25 RTF_Num 3 2;} {\*\cs26\snext26 RTF_Num 3 3;} {\*\cs27\snext27 RTF_Num 3 4;} {\*\cs28\snext28 RTF_Num 3 5;} {\*\cs29\snext29 RTF_Num 3 6;} {\*\cs30\snext30 RTF_Num 3 7;} {\*\cs31\snext31 RTF_Num 3 8;} {\*\cs32\snext32 RTF_Num 3 9;} {\*\cs33\snext33 RTF_Num 4 1;} {\*\cs34\snext34 RTF_Num 4 2;} {\*\cs35\snext35 RTF_Num 4 3;} {\*\cs36\snext36 RTF_Num 4 4;} {\*\cs37\snext37 RTF_Num 4 5;} {\*\cs38\snext38 RTF_Num 4 6;} {\*\cs39\snext39 RTF_Num 4 7;} {\*\cs40\snext40 RTF_Num 4 8;} {\*\cs41\snext41 RTF_Num 4 9;} {\*\cs42\snext42 RTF_Num 5 1;} {\*\cs43\snext43 RTF_Num 5 2;} {\*\cs44\snext44 RTF_Num 5 3;} {\*\cs45\snext45 RTF_Num 5 4;} {\*\cs46\snext46 RTF_Num 5 5;} {\*\cs47\snext47 RTF_Num 5 6;} {\*\cs48\snext48 RTF_Num 5 7;} {\*\cs49\snext49 RTF_Num 5 8;} {\*\cs50\snext50 RTF_Num 5 9;} {\*\cs51\snext51\cf2\ul\ulc0\langfe255\lang255 Internet Link;} {\*\cs52\snext52 Numbering Symbols;} {\s53\sbasedon0\snext54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\kerning1\hich\af8\langfe2052\dbch\af7\loch\f2\fs28\lang1033 Heading;} {\s54\sbasedon0\snext54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033 Text body;} {\s55\sbasedon54\snext55{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af10\loch\f0\fs24\lang1033 List;} {\s56\sbasedon0\snext56{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb120\sa120\cf0\i\kerning1\hich\af0\langfe2052\dbch\af10\ai\loch\f0\fs24\lang1033 Caption;} {\s57\sbasedon0\snext57{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af0\langfe2052\dbch\af10\loch\f0\fs24\lang1033 Index;} {\s58\sbasedon0\snext58{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa0\cf0\kerning1\hich\af3\langfe2052\dbch\af11\loch\f3\fs20\lang1033 Preformatted Text;} }{\*\listtable{\list\listtemplateid1 {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-432\li432} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-576\li576} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-720\li720} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-864\li864} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-1008\li1008} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-1152\li1152} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-1296\li1296} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-1440\li1440} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'00;}{\levelnumbers;}\fi-1584\li1584}\listid1} {\list\listtemplateid2 {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi0\li0} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-283\li1414} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-283\li2121} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-283\li2828} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-283\li3535} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-283\li4242} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-283\li4949} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-283\li5656} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-283\li6363}\listid2} {\list\listtemplateid3 {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi0\li0} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-283\li1414} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-283\li2121} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-283\li2828} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-283\li3535} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-283\li4242} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-283\li4949} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-283\li5656} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-283\li6363}\listid3} {\list\listtemplateid4 {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi0\li0} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'01.;}{\levelnumbers\'01;}\fi-283\li1414} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'02.;}{\levelnumbers\'01;}\fi-283\li2121} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'03.;}{\levelnumbers\'01;}\fi-283\li2828} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'04.;}{\levelnumbers\'01;}\fi-283\li3535} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'05.;}{\levelnumbers\'01;}\fi-283\li4242} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'06.;}{\levelnumbers\'01;}\fi-283\li4949} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'07.;}{\levelnumbers\'01;}\fi-283\li5656} {\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'08.;}{\levelnumbers\'01;}\fi-283\li6363}\listid4} }{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}}{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment OpenOffice.org}{\vern3400}}\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709\deftab709 {\*\pgdsctbl {\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Default;}} \formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc \pgndec\pard\plain \s1\ilvl0\outlinelevel0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs48\lang1033\sb240\sa120{{\*\bkmkstart Overview}{\*\bkmkend Overview}\scaps0\caps0\cf1\expnd0\expndtw0\i0\b0\ai0\ab0\rtlch \ltrch\loch\fs36\loch\f4 Overview} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 An Unofficial Razer Hydra Plugin for Unreal Engine 4.0} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 The plugin is designed with an event driven architecture through a delegate interface. You can access device events through Blueprintable classes provided or through C++. Main C++ support is from inheriting the HydraDelegate, through it you can extend your own custom class to support Hydra events. Additional functions in the delegate support polling for latest data.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 The plugin also handles hot plugging and emits HydraPluggedIn (HydraUnplugged for the reverse), allowing you to initialize if needed when the device is ready.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{{\*\bkmkstart __DdeLink__6_2043240441}\cf1\rtlch \ltrch\loch\fs19\loch\f4 Main }{{\field{\*\fldinst HYPERLINK "https://forums.unrealengine.com/showthread.php?3505-Razer-Hydra-Plugin" }\scaps0\caps0\cf2\strike0\expnd0\expndtw0\i0\ul\ulc0\b0\langfe255\ai0\ab0{\fldrslt \cf2\ul\ulc0\langfe255\lang255\rtlch \ltrch\loch\fs19\lang255\loch\f4 discussion thread}{\rtlch \ltrch\loch{\*\bkmkend __DdeLink__6_2043240441} }} } \par \pard\plain \s2\ilvl1\outlinelevel1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs36\lang1033\sl285\slmult0\sb0\sa0\cbpat9{{\*\bkmkstart Quick_Setup}{\*\bkmkend Quick_Setup}\cf1\b0\ab0\rtlch \ltrch\loch\fs28\loch\f4 Quick Setup} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 1.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{{\field{\*\fldinst HYPERLINK "https://mega.co.nz/#!hdp2yQqD!AjL0j6qKpWqi5RGXJxitMXeevXCjK8m_0B0PH1x1VfY" }\scaps0\caps0\cf2\strike0\expnd0\expndtw0\i0\ul\ulc0\b0\langfe255\ai0\ab0{\fldrslt \cf2\ul\ulc0\langfe255\lang255\rtlch \ltrch\loch\fs19\lang255\loch\f4 Download}{\rtlch \ltrch\loch }} } \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 2.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Create new or choose project.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 3.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Browse to your project folder (typically found at }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 Documents/Unreal Project/\{Your Project Root\}}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 )} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 4.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Copy }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 Plugins}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 folder into your Project root.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 5.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Restart the Editor and open your project again.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 6.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Select Window->Plugins. Click on Installed and you should see a category called Input and a plugin called Hydra Plugin now available. Select Enabled. The Editor will warn you to restart, click restart.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 7.\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 When your project has reloaded, the plugin should be enabled and ready to use.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 (Optional) You can confirm it has successfully loaded by opening the Class Viewer, searching "hydra" should show you one actor class added by the plugin called}{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 HydraPluginActor}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 .} \par \pard\plain \s2\ilvl1\outlinelevel1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs36\lang1033\sl285\slmult0\sb0\sa0\cbpat9{{\*\bkmkstart Events_through_Blueprint}{\*\bkmkend Events_through_Blueprint}\cf1\b0\ab0\rtlch \ltrch\loch\fs28\loch\f4 Events through Blueprint} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 1.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Select Window->Class Viewer.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 2.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Search for "HydraPluginActor"} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 3.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Right click the actor and Create a new Blueprint e.g. "HydraPluginActorBP"} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 4.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Select Graph in the upper right hand corner and right click in the graph to bring up the function search} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 5.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Typing in "hydra" will narrow the events down to plugin related.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 6.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Add your desired events and linkup to your desired functions} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 7.\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Add the created blueprint to the scene (it's an actor subclass) and hit Play.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 e.g. If you want to get the position data from your Hydras add the Event }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 Hydra Controller Moved}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 . Right click again in an empty space in the BP graph and add a function call to }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 Print String}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 , connect position to string (a conversion node will automatically be made) and drag exec (the white triangle on node) from the event to the function to connect the calls.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Compile and Play to see the position data stream as printed output after you undock your hydra.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Optionally create a blueprint subclass from }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 HydraPlayerController}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 and assign it in your game mode. Functionality remains the same.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 See }{{\field{\*\fldinst HYPERLINK "https://www.youtube.com/watch?v=zRURG4Zp0Zo#t=159" }\scaps0\caps0\cf2\strike0\expnd0\expndtw0\i0\ul\ulc0\b0\langfe255\ai0\ab0{\fldrslt \cf2\ul\ulc0\langfe255\lang255\rtlch \ltrch\loch\fs19\lang255\loch\f4 tutorial video}{\rtlch \ltrch\loch }} }{\cf1\rtlch \ltrch\loch\fs19\loch\f4 for a live example.} \par \pard\plain \s2\ilvl1\outlinelevel1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs36\lang1033\sl285\slmult0\sb0\sa0\cbpat9{{\*\bkmkstart Events_through_C.2B.2B}{\*\bkmkend Events_through_C.2B.2B}\cf1\b0\ab0\rtlch \ltrch\loch\fs28\loch\f4 Events through C++} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Use, embed, or subclass HydraPluginActor or HydraPlayerController and override functions you wish to subscribe to e.g.} \par \pard\plain \s58{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa0\cf0\kerning1\hich\af3\langfe2052\dbch\af11\loch\f3\fs20\lang1033\ltrpar{\cf3\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 virtual}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 }{\cf3\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 void}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 EventHydraTriggerPressed}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 (}{\cf3\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 int32}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 controller}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 )}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 OVERRIDE}{\cf5\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ;} \par \pard\plain \s2\ilvl1\outlinelevel1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs36\lang1033\sl285\slmult0\sb0\sa0\cbpat9{{\*\bkmkstart Extend_your_own_Class_to_Receive_Events_through_C.2B.2B}{\*\bkmkend Extend_your_own_Class_to_Receive_Events_through_C.2B.2B}\cf1\b0\ab0\rtlch \ltrch\loch\fs28\loch\f4 Extend your own Class to Receive Events through C++} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 1.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Include HydraDelegate.h and IHydraPlugin.h in your implementation} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 2.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Ensure your project has }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 "HydraPlugin" }{\cf1\rtlch \ltrch\loch\fs19\loch\f4 added to your PublicDependencyModuleNames in your\~ }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 \{Project\}.build.cs} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 3.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Make your class inherit from }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 HydraDelegate }{\cf1\rtlch \ltrch\loch\fs19\loch\f4 (multiple inheritence)} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 4.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Copy }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 HydraDelegate.cpp }{\cf1\rtlch \ltrch\loch\fs19\loch\f4 from the plugin source into your project source and add it your solution. Change top include to "}{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 your project name}{\cf1\rtlch \ltrch\loch\fs19\loch\f4 .h"} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 5.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Add} \par \pard\plain \s58{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa0\cf0\kerning1\hich\af3\langfe2052\dbch\af11\loch\f3\fs20\lang1033\sl285\slmult0\ltrpar{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 IHydraPlugin}{\cf5\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ::}{\cf6\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 Get}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ()}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 .}{\cf6\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 SetDelegate}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ((}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 HydraDelegate}{\cf7\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 *}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 )}{\cf8\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 this}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 )}{\cf5\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ;} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 in your }{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 BeginPlay() }{\cf1\rtlch \ltrch\loch\fs19\loch\f4 or other initialization that is executed before the first tick.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 6.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Make your class tickable e.g.} \par \pard\plain \s58{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa0\cf0\kerning1\hich\af3\langfe2052\dbch\af11\loch\f3\fs20\lang1033\sl285\slmult0\ltrpar{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 PrimaryActorTick.}{\cf6\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 bCanEverTick}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 }{\cf2\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 =}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 }{\cf3\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 true}{\cf5\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ;} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 in your constructor.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 7.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Add} \par \pard\plain \s58{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa0\cf0\kerning1\hich\af3\langfe2052\dbch\af11\loch\f3\fs20\lang1033\sl285\slmult0\ltrpar{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 IHydraPlugin}{\cf5\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ::}{\cf6\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 Get}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ()}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 .}{\cf6\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 HydraTick}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 (}{\cf1\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 DeltaTime}{\cf4\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 )}{\cf5\chcbpat10\rtlch \ltrch\loch\fs19\loch\f5 ;} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 inside}{\cf1\i\ai\rtlch \ltrch\loch\fs19\loch\f4 Tick(float DeltaTime)} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033{\listtext\pard\plain 8.\tab}\ilvl0\ls4 \li0\ri0\lin0\rin0\fi0\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Override any of the delegate methods to receive the events.} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 See }{{\field{\*\fldinst HYPERLINK "https://www.youtube.com/watch?v=zRURG4Zp0Zo#t=733" }\scaps0\caps0\cf2\strike0\expnd0\expndtw0\i0\ul\ulc0\b0\langfe255\ai0\ab0{\fldrslt \cf2\ul\ulc0\langfe255\lang255\rtlch \ltrch\loch\fs19\lang255\loch\f4 tutorial video}{\rtlch \ltrch\loch }} }{\cf1\rtlch \ltrch\loch\fs19\loch\f4 for a live example.} \par \pard\plain \s0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\kerning1\hich\af6\langfe2052\dbch\af7\afs24\lang1081\loch\f0\fs24\lang1033{\rtlch \ltrch\loch } \par \pard\plain \s2\ilvl1\outlinelevel1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb240\sa120\keepn\cf0\b\kerning1\hich\af7\langfe2052\dbch\af9\ab\loch\f0\fs36\lang1033\sl285\slmult0\sb0\sa0\cbpat9{\cf1\b0\ab0\rtlch \ltrch\loch\fs28\loch\f4 Credit} \par \pard\plain \s54{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sb0\sa120\cf0\kerning1\hich\af0\langfe2052\dbch\af0\loch\f0\fs24\lang1033\sl285\slmult0\tx0\li0\ri0\lin0\rin0\fi0\sb0\sa0{\cf1\rtlch \ltrch\loch\fs19\loch\f4 Plugin made by Getnamo. Point all questions to the main }{{\field{\*\fldinst HYPERLINK "https://forums.unrealengine.com/showthread.php?3505-Razer-Hydra-Plugin" }\scaps0\caps0\cf2\strike0\expnd0\expndtw0\i0\ul\ulc0\b0\langfe255\ai0\ab0{\fldrslt \cf2\ul\ulc0\langfe255\lang255\rtlch \ltrch\loch\fs19\lang255\loch\f4 discussion thread}{\scaps0\caps0\cf2\strike0\expnd0\expndtw0\i0\ul\ulc0\b0\langfe255\ai0\ab0\rtlch \ltrch\loch\fs19\lang255\loch\f4 }}.} \par }
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.