Announcement

Collapse
No announcement yet.

Razer Hydra Plugin

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Hey guys, I've run into the same difficulties that walldiv had earlier and was wondering if anyone has a solution yet for fixing the 3D templates arms? I've tried both IK two bone and FABRIK but the problem I'm running into so far is that when in bone space doing the translation, the hands seem to be moving in a very unique way (I'll do my best to explain). I previously had setup the FABRIK nodes where I was using the hand as the Effector Transform Bone (Bone Space) and Copy Target Rotation as the Effector Rotation Source. For my Solver, I had set the Tip Bone to be the hand and the Root Bone to be the clavicle. The problem I was seeing was that the hand was seemingly moving on the plane and orientation of what I had set as the Root Bone (clavicle). So when moving the Hydras back on forth in either of the 3 vectors (right/left for X, forward/back for Y, up/down for Z) then would move in diagonals and curves in the editor when I pushed play. I've been breaking the vectors and doing some calculation stuff to troubleshoot but haven't figured out how to get past this part >.< any help would be greatly appreciated!

    This is the Anim Graph in the AnimBlueprint where I've mostly been troubleshooting (doing the calibrate hydras have been working just like they are supposed to, been printing out the position most of the time to make sure that it was working like it should in case someone wanted to know)
    Click image for larger version

Name:	hydra2.jpg
Views:	1
Size:	397.4 KB
ID:	1064854

    If someone has the proper settings for either IK or the FABRIK nodes to work correctly in doing the 1 to 1 positions for the hydras, you will win the internet! Thanks again for all the help everyone, just a little bit further and I will release this somewhere for someone to learn from
    Last edited by cleerusher123; 01-05-2015, 06:12 AM.

    Leave a comment:


  • replied
    Originally posted by walldiv View Post
    I was able to get this workign (with some tweaking of a shoulder origin offset and flipping the x/y channels as you have discussed).... but the ORIENT is all off on just the left hand.....

    I"ve tried doing the orients in BONE space, as that seemed logical but i've tried all three. Simply put, my left hand only is rotated YAW -90 and even if i multiply/add this to my yaw of the vector variable holding the left hand's orientation data.... it still will not come out in the editor looking right.
    If you're using blueprint, try using combine rotators (C++ can swap axis and direction in quaternions ignoring W vector with impunity). This uses quaternion math underneath (Combine(A,B) = Quat(B)*Quat(A)) and will behave as expected.

    It takes a bit of mental visualization (I suggest using a physical object to help with visualization) but if you want to retarget the orientation input axis (e.g. pitch -> yaw, roll->pitch) you combine the fixed adjustment (e.g. P0,Y90,R0 swaps roll and pitch) as the second parameter.

    If you just want to rotate the axis origin you use the adjustment as first parameter instead. This will maintain your axis input-> output, but will rotate the 'starting point' for the orientation.

    Another thing to remember is that the combine rotators applies in a specific order (Roll, Yaw, Pitch) and you may have to inverse and adjustment (add 180 degrees) if you want to invert an axis influence (for axis retargeting).
    Last edited by getnamo; 12-18-2014, 12:14 PM.

    Leave a comment:


  • replied
    Originally posted by getnamo View Post
    Animation uses Y as forward, all of your positions and rotations need to accommodate this by Yawing 90 degrees with respect to the component origin. In addition you need to be aware of the difference between component space, world space and the space where you ultimately chose to drive your animation. This has been discussed in this thread starting from about page 3.

    The convenience rigged model is not yet ready for hydra and may be a few more weeks before it is ready, until then read and experiment away!
    I was able to get this workign (with some tweaking of a shoulder origin offset and flipping the x/y channels as you have discussed).... but the ORIENT is all off on just the left hand.....

    I"ve tried doing the orients in BONE space, as that seemed logical but i've tried all three. Simply put, my left hand only is rotated YAW -90 and even if i multiply/add this to my yaw of the vector variable holding the left hand's orientation data.... it still will not come out in the editor looking right.

    Leave a comment:


  • replied
    Originally posted by walldiv View Post
    Hey all! I don't know what I'm doing wrong, I got the debug boxes that look fine when I move my hydras, and I've output my variables to show that I'm correctly taking input from my hydras... but when I use the following site as a guide on mapping the output of the hydra controllers to IK system of my hand joints, I get the following result. .... and when I move the hydras up, the joints move left or right.

    Again the debug boxes look to be perfectly matched. Help!

    SITE USED AS TUT:
    https://dungeonsurvival.wordpress.co...ue4-blueprint/

    RESULT:
    ...

    BLUEPRINTS:
    ...
    Animation uses Y as forward, all of your positions and rotations need to accommodate this by Yawing 90 degrees with respect to the component origin. In addition you need to be aware of the difference between component space, world space and the space where you ultimately chose to drive your animation. This has been discussed in this thread starting from about page 3.

    The convenience rigged model is not yet ready for hydra and may be a few more weeks before it is ready, until then read and experiment away!

    Leave a comment:


  • replied
    Hey all! I don't know what I'm doing wrong, I got the debug boxes that look fine when I move my hydras, and I've output my variables to show that I'm correctly taking input from my hydras... but when I use the following site as a guide on mapping the output of the hydra controllers to IK system of my hand joints, I get the following result. .... and when I move the hydras up, the joints move left or right.

    Again the debug boxes look to be perfectly matched. Help!

    SITE USED AS TUT:
    https://dungeonsurvival.wordpress.co...ue4-blueprint/

    RESULT:
    Click image for larger version

Name:	Capture.JPG
Views:	1
Size:	25.2 KB
ID:	1062101

    BLUEPRINTS:
    AnimGraph: Click image for larger version

Name:	Capture2.jpg
Views:	1
Size:	78.1 KB
ID:	1062102
    EventGraph: Click image for larger version

Name:	Capture3.JPG
Views:	1
Size:	80.0 KB
ID:	1062103

    Leave a comment:


  • replied
    Originally posted by Mrob76u View Post
    Thanks getnamo. Awesome work as always. Also you may be in luck with the beers one day as I live just outside Southampton
    Great, this will have to happen!

    Originally posted by cleerusher123 View Post
    Hey Getnamo, I got everything set up so far using the newer method you mentioned with drawing the debug box about using the "is Left Hand" verification method. I'm currently using the first person template and ran into some issues with that so far (I'm at work right now so I'll have to include some screenshots when I get home later). I wanted to ask really quickly though about those "is Left/Right Hand" nodes are ever false once being called after the Hydra Moved event? I was trying to setup the IK hands and was trying to pass the values of position and orientation from the hydra controller blueprint using it like this: Event Hydra moved -> Is Left hand [TRUE: left hand set position and orientation] -> [FALSE] Is Right Hand -> [TRUE: right hand set position and orientation]. For some reason after having it set like this, the values recording are only the right hand and the left hand when moved does nothing to the character (which is broken all in itself anyways as the hands aren't moving like they should). Like I said, I'll post some screenshots when I get home and I'll also try migrating everything over to the third person template instead to see if that works any better.
    The nodes determine hand possession based on where you last docked your hydra in order to support controller misplacement. It is entirely possible to have two left hands/etc. It will work as expected if your hydras have been docked on either side before calling that function. You should also be able to switch on the "handPossession" property on your HydraSingleController which will give you the possible enums and you can use those to branch left/right.


    Originally posted by walldiv View Post
    It seems as though the plugin is not BACKWARDS compatible? I got an error opening my 4.5 project with the newest .dll for the 4.6 editor version. Just an FYI... i dont mind anyways i'd rather stick with the latest version than be held a version or 2 behind

    Thanks Getnamo!
    This is correct, each plugin version is compiled for the most recent vanilla version of the unreal engine. I typically aim to update most of the plugins within a week of a new engine release (never previews). If you still use an older engine version, but you want to use a newer version of the plugin, you can recompile it for your engine version (there may be some code changes needed due to engine code changes). If you use a custom fork of the engine this recompilation will be a necessary step.

    Leave a comment:


  • replied
    It seems as though the plugin is not BACKWARDS compatible? I got an error opening my 4.5 project with the newest .dll for the 4.6 editor version. Just an FYI... i dont mind anyways i'd rather stick with the latest version than be held a version or 2 behind

    Thanks Getnamo!

    Leave a comment:


  • replied
    Hey Getnamo, I got everything set up so far using the newer method you mentioned with drawing the debug box about using the "is Left Hand" verification method. I'm currently using the first person template and ran into some issues with that so far (I'm at work right now so I'll have to include some screenshots when I get home later). I wanted to ask really quickly though about those "is Left/Right Hand" nodes are ever false once being called after the Hydra Moved event? I was trying to setup the IK hands and was trying to pass the values of position and orientation from the hydra controller blueprint using it like this: Event Hydra moved -> Is Left hand [TRUE: left hand set position and orientation] -> [FALSE] Is Right Hand -> [TRUE: right hand set position and orientation]. For some reason after having it set like this, the values recording are only the right hand and the left hand when moved does nothing to the character (which is broken all in itself anyways as the hands aren't moving like they should). Like I said, I'll post some screenshots when I get home and I'll also try migrating everything over to the third person template instead to see if that works any better.
    Last edited by cleerusher123; 12-11-2014, 01:08 PM.

    Leave a comment:


  • replied
    Thanks

    Thanks getnamo. Awesome work as always. Also you may be in luck with the beers one day as I live just outside Southampton

    Leave a comment:


  • replied
    Originally posted by walldiv View Post
    I've read on here many times about the HydraPlayerController bp setup and when I open my COMPONENTS section of the newly created controller blueprint, it crashes the engine 100% of the time. I can create a brand new project, both 4.5.1 as well 4.6 have been tested... and the latest version of the Hydra plugin (0.7.4) and copy both the binaries & plugins folders to the project directory... All help is greatly appreciated.

    ...
    Gave this a check and you were right, something I changed earlier has caused this to crash. Pushed an update 0.7.6 with the fix. In general I recommend using the Hydra Component + Hydra Interface setup introduced in 0.7 rather than the convenience player controller/actor but your use case will now work properly. Thanks for catching the bug!

    Originally posted by asperatology View Post
    I'm a student working on a virtual reality assignment in a team of 3 that uses Razor Hydra and Unreal Engine 4.3.1.

    We're having some troubles with shipping our project out. We mostly did our project in Blueprints only, but we wanted to try and ship the project, so that it can be played on a different computer with no Unreal Engine 4 installed. In this case, it's our podium computer in our Immersive Human-Computer Interaction classroom located in another department of our campus, where the technical specs is lower than our department's lab computers.

    Note that we are not expert in programming.

    We're using Unreal Engine 4.3.1 with Razor Hydra v0.6.3. We cannot use the latest Unreal Engine 4.5.1 and up, as well as the newer Razor Hydra plugin due to compatibility issues with the lab computers. I have no explanation and no log messages, but the Unreal Engine 4.5.1 crashes upon loading a brand new project with Razor Hydra 0.7.4 plugin.

    I looked up the Wiki on setting up the Razor Hydra plugin, as mentioned. I don't understand the Shipping Build Instructions, so I have some questions:

    The first instruction just says, "As of UE4.3, your project needs code." What code is this, and where can I see this code, like an example code not from the live tutorial video?

    The wiki isn't really helpful at all, the live tutorial helped a bit, but it's not clear. I wished to update it myself so that it becomes relevant for people like me who are new to Unreal Engine 4 C++ programming. We just need an example code to look over, so that we can at least start scratching the surface. We have not made a single progress when it comes to shipping and packaging a project with Razor Hydra plugin, and it's frustrating to see that there aren't any additional information that can be found because of the lacking example code, other than the live tutorial.

    I'm having red lines here and there in the editor, so I think I need to come back after I cleared off my mind for a bit.

    ...


    How ironic is this.

    You don't need any code at all.

    What I did was I created a brand new "Code First Person C++" project. And then copy/paste our blueprint UASSET files from our old project to the newly created project, and start packaging it. And that is it. There is no code needed to type in Visual Studio 2013.

    UPDATE #1:

    Going to verify if Shipping is working or not. I'm getting the Address = 0x0 error, so it means that I didn't put the DLL in the correct folder location.

    UPDATE #2:

    Placed/copied the 32-bit and 64-bit DLL in all subfolders throughout the WindowsNoEditor folder, but it's still showing Address = 0x0 error. I don't see any log files. Where is that located? Maybe it's because I don't have the code set up?

    UPDATE #3:

    Okay, so the code that is required is basically an empty default-generated code of any class object from Unreal Engine 4. Literally. It just needs to somehow link PDB files with Unreal Engine 4 in order to correctly start the game after the game has been shipped and packaged.

    And I just now realized the Wiki is outdated... If only that warning is more obvious.
    The video was from when the plugin was initially released (0.5) and a fair number of things mentioned there are now outdated, back then shipping wasn't supported, that only came in v0.6.3.

    I do apologize for the outdated wiki, unfortunately I am just one person doing this for no financial gain so I do not have the resources to keep two separate sets of documentation up to date. I have cleaned it up and forwarded links to the github repository. Please refer to that readme for all detailed instructions as only that location is guaranteed to be up to date.

    I understand you're using 0.6.3 which is the first version that contained the shipping instructions. Just following those instructions should work. Specifically, the code part has been expanded to explain in more detail

    Projects require code for shipping in order to include the plugin, add an empty class and compile your project module. You simply do File->Add Code to Project and it can be anything so I usually just pick None->Create Class and then it will ask you to open visual studio where you just hit compile (Build solution). If you haven't added code before follow the unreal engine programming Quick Start guide. Essentially it boils down to downloading the free Visual Studio Community and changing a few small configs.

    The code requirement for plugins is currently an engine limitation because shipping/packaging causes the plugin DLL to collapse into a single executable, so in order for your game to recognize the plugin in a packaged form it needs the plugin code to be included in the build which is done by adding a simple empty class.

    For the newer plugin (0.7.4) problem, it is possible you experienced the same issue as walldiv, where an incorrect null check caused the plugin to crash if you used the HydraPlayerController. This has now been fixed in 0.7.6 which is also updated to UE4.6.

    I recommend using the 0.7 Component + Interface system moving forward as it gives you the maximum flexibility.

    Originally posted by Mrob76u View Post
    Thanks getnamo. Your work on input plugins is really great. Especially of the VR developers out there like myself. We owe you a lot of drinks

    On a side note I'm also a backer of the new STEM system from Sixence, The vitualizer and the full body capture suit from Perception Neuron. Does anyone else here have any of these devices on order as well?
    Cheers Mrob76u, I won't turn down a beer if you're ever in the UK . Personally backed a full Sixense STEM and PrioVR systems, so maybe those will get some plugins when I get them (if the companies haven't already made plugins of their own)! Also pushed the 4.6 update, it's available at the usual location.


    Update to 0.7.6
    -HydraPlayerController will no longer cause a crash when used in project.

    0.7.5
    -contains all compile fixes and prebuilt binary for UE4.6
    Last edited by getnamo; 12-10-2014, 02:18 AM.

    Leave a comment:


  • replied
    I've read on here many times about the HydraPlayerController bp setup and when I open my COMPONENTS section of the newly created controller blueprint, it crashes the engine 100% of the time. I can create a brand new project, both 4.5.1 as well 4.6 have been tested... and the latest version of the Hydra plugin (0.7.4) and copy both the binaries & plugins folders to the project directory... All help is greatly appreciated.

    Click image for larger version

Name:	Capture.JPG
Views:	1
Size:	95.6 KB
ID:	1061895

    Leave a comment:


  • replied
    How ironic is this.

    You don't need any code at all.

    What I did was I created a brand new "Code First Person C++" project. And then copy/paste our blueprint UASSET files from our old project to the newly created project, and start packaging it. And that is it. There is no code needed to type in Visual Studio 2013.

    UPDATE #1:

    Going to verify if Shipping is working or not. I'm getting the Address = 0x0 error, so it means that I didn't put the DLL in the correct folder location.

    UPDATE #2:

    Placed/copied the 32-bit and 64-bit DLL in all subfolders throughout the WindowsNoEditor folder, but it's still showing Address = 0x0 error. I don't see any log files. Where is that located? Maybe it's because I don't have the code set up?

    UPDATE #3:

    Okay, so the code that is required is basically an empty default-generated code of any class object from Unreal Engine 4. Literally. It just needs to somehow link PDB files with Unreal Engine 4 in order to correctly start the game after the game has been shipped and packaged.

    And I just now realized the Wiki is outdated... If only that warning is more obvious.
    Last edited by asperatology; 12-10-2014, 12:23 AM.

    Leave a comment:


  • replied
    I'm a student working on a virtual reality assignment in a team of 3 that uses Razor Hydra and Unreal Engine 4.3.1.

    We're having some troubles with shipping our project out. We mostly did our project in Blueprints only, but we wanted to try and ship the project, so that it can be played on a different computer with no Unreal Engine 4 installed. In this case, it's our podium computer in our Immersive Human-Computer Interaction classroom located in another department of our campus, where the technical specs is lower than our department's lab computers.

    Note that we are not expert in programming.

    We're using Unreal Engine 4.3.1 with Razor Hydra v0.6.3. We cannot use the latest Unreal Engine 4.5.1 and up, as well as the newer Razor Hydra plugin due to compatibility issues with the lab computers. I have no explanation and no log messages, but the Unreal Engine 4.5.1 crashes upon loading a brand new project with Razor Hydra 0.7.4 plugin.

    I looked up the Wiki on setting up the Razor Hydra plugin, as mentioned. I don't understand the Shipping Build Instructions, so I have some questions:

    The first instruction just says, "As of UE4.3, your project needs code." What code is this, and where can I see this code, like an example code not from the live tutorial video?

    The wiki isn't really helpful at all, the live tutorial helped a bit, but it's not clear. I wished to update it myself so that it becomes relevant for people like me who are new to Unreal Engine 4 C++ programming. We just need an example code to look over, so that we can at least start scratching the surface. We have not made a single progress when it comes to shipping and packaging a project with Razor Hydra plugin, and it's frustrating to see that there aren't any additional information that can be found because of the lacking example code, other than the live tutorial.

    I'm having red lines here and there in the editor, so I think I need to come back after I cleared off my mind for a bit.
    Last edited by asperatology; 12-09-2014, 06:00 PM.

    Leave a comment:


  • replied
    I did not personally back them but wish I could have, however, I have my boss very interested in the virtualizer, and a definite buy when perception nueron is available......we have the legacy mocap suit on order now.

    Leave a comment:


  • replied
    Originally posted by getnamo View Post
    Working on this next, expect an updated version by tomorrow.
    Thanks getnamo. Your work on input plugins is really great. Especially of the VR developers out there like myself. We owe you a lot of drinks

    On a side note I'm also a backer of the new STEM system from Sixence, The vitualizer and the full body capture suit from Perception Neuron. Does anyone else here have any of these devices on order as well?

    Leave a comment:

Working...
X