Motion controller vibration

Hi,

<TROLL DANGER>
I was wondering how can I use the vibration feature of the Vive controllers. Does anyone knows how to trigger it?
</TROLL DANGER>

Thanks :slight_smile:

Try

and

Also instead of “vibration” you could just call it Haptic pulses/feedback of it’s linear actuators.
After doing some research, Haptic also turns out to be the magic keyword to get the controls you need.
There’s nodes that let you play back “animations” of the haptic response or even nodes that let you adjust the frequency and amplitude based on variables in the game!

EDIT:

I’ve just been trying to get it to work, and even though i have linked it up to a key input, set amplitudes and frequencies, and specified player 0 as the reference (with a specified hand as well), i cant get the controller to trigger.
If theres a solution to this problem i would also like to know how to fix this…

Thanks for replies, I’m going to test all this to see if I can get it working. I think it’s a pretty important feature of this system and I hope unreal has it already integrated.

I do have this in a doc but it is not ready to go live just yet. In the meantime I do go over how you can set up in the following live stream.
https://.com/watch?v=6ALnsdQnkVQ
Let us know if you have any questions or problems.

Thanks! I’ll be waiting!

I have seen the video, though this mostly covers just the basic inputs/motiontracking.
Though how to trigger the vive’s specific haptic feedback is not shown.

There is a segment during the hydra section of the video where they trigger feedback on an xbox controller, it should work similarly (calls something like ClientPlayForceFeedback with simple feedback effects).

That said it would be clearer if they actually showed Vives being used for motion controllers, maybe another video?

Just wanted to mention that the hydra setup shown in the video is outdated and it works like other motion controllers now with an optional Hydra component for calibration and other hydra specific functions.

Interesting, I now do get a “rumble” from the “play force feedback” node, but it doesn’t allow me to specify the frequency, only the amplitude of the rumble.
The “haptic” nodes do seem to contain these variables and seem to be specifically introduced for the haptic feedback present in the vive controllers (and steamcontrollers). The play forcefeedback seems to only be able to address the original “spin motor faster/slower” input present in the xbox/ps4 controllers.

Currently i am unable to trigger an effect that has a low frequency.

I have managed to workaround the issue a bit by triggering feedback in pulses of 0.05 seconds, this allows the haptic actuator to move exactly one time.
So whenever pulses are triggered with a interval of at least .1 sec it feels like separate pulses instead of just a “rumble” emulation.

I have solved the problem. Thank you all !

For quick solving I post here the process :slight_smile:

  1. Create a force feedback effect file: in the content browser->RightClick->Miscellaneous->Force Feedback Effect
  2. Edit the force feedback effect curve and select what hands do you want to affect.
  3. Simple blueprint to activate force feedback on object hit or overlap:

Hi there.

I’ve tried getting this to work with the Vive Pre, but unfortunately UE4 crashes to desktop instantly with the Play Force Feedback node getting called. Anyone else managed to test this?

I am using Vive Pre and got force feedback working without any issues. I’m using UE 4.9.1

We’re running 4.10, but I’m not sure how much difference that makes. Are you using the Force Feedback or Haptic Feedback curves?

I just using a linear force feedback curve which increases at a constant rate from 0 to 1 in 10 seconds.

Anyone gotten the haptics on the Pre working on UE 4.11 (I am running 4.11 preview 7)? Calling force feedback crashes the engine and using play haptics effect node in BP does nothing? Would implement my own blueprint library to do this but I do not know how much I can do on a binary version of the engine in this regard.

I’ve got force feedback working on 4.11v7 using blueprints.

I’m only using it for occasional dynamic pops and clicks, it was crashing during longer feedback periods.

I use the dynamic force feedback node.

Make sure you enable Left or Right Large actuators.

Are you using the latest version of SteamVR? What is the timing of that then I am still getting crashes when using 0.015 seconds?

Also tested 4.10.4 now, no crash but I could not really go back to 4.10 due to the performance and other enhancements made :confused:

Downloaded editor symbols to see if it helps with debugging, now got an actual call stack:



Access violation - code c0000005 (first/second chance not available)

UE4Editor_SteamController!FSteamController::UpdateVibration()
UE4Editor_Core!FWindowsApplication::SetForceFeedbackChannelValues() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\windows\windowsapplication.cpp:1835]
UE4Editor_Engine!APlayerController::ProcessForceFeedbackAndHaptics() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\playercontroller.cpp:3657]
UE4Editor_Engine!APlayerController::TickPlayerInput() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\playercontroller.cpp:3878]
UE4Editor_Engine!APlayerController::PlayerTick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\playercontroller.cpp:1980]
UE4Editor_Engine!APlayerController::TickActor() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\playercontroller.cpp:3954]
UE4Editor_Engine!FActorTickFunction::ExecuteTick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\actor.cpp:110]
UE4Editor_Engine!FTickFunctionTask::DoTask() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private	icktaskmanager.cpp:228]
UE4Editor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\public\async	askgraphinterfaces.h:886]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\async	askgraph.cpp:779]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\async	askgraph.cpp:526]
UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\core\private\async	askgraph.cpp:1534]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private	icktaskmanager.cpp:486]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private	icktaskmanager.cpp:1373]
UE4Editor_Engine!UWorld::RunTickGroup() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\leveltick.cpp:702]
UE4Editor_Engine!UWorld::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\engine\private\leveltick.cpp:1187]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\editor\unrealed\private\editorengine.cpp:1356]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\editor\unrealed\private\unrealedengine.cpp:370]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\launchengineloop.cpp:2640]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++ue4+release-4.11\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll


FIX: Edited enabled plugins and this fixed the crashing: disabled Steam controller(not enabled by default), Oculus input and a whole bunch of other things.

Has this actually fixed it?

I’m in steamVR beta, so it’s updating a lot.

I haven’t touched the plugins.

I still get random editor quits (vr pie freezes). Don’t know if it is an actial crash as there is no usual editor has crashed, send us infos window. Maybe it is something on steamvrs end as it looks similar to the situation when you close the steamvr server (if you are using it)

The length of the vibration does not seem to be at fault at my end (I tested this by mapping vibration to triggers and i could hold them down for as long as I wanted without problems). I think it might have something to do with the don’t trigger haptic feedback twice in 5ms thing, but as I have only started playing around with the Pre, haven’t gotten round to testing it properly/digging through stramvr logs.