Skip to content

Impulse TriggerΒ #34

@JOELwindows7

Description

@JOELwindows7

Introduction

Xbox One controller has aditional small vibrator on each of the two triggers. Microsoft calls this Impulse Trigger.
Demo Video: Xbox One controller Impulse trigger demo
Article: GamesRadar
Sorry for I couldn't find good articles right now.

As you can see, aside from its large vibrators on the grip, the trigger has its own little vibration to increase feedback clarity.

Experiencing

If you have a device that runs Universal Windows Platform app such as Xbox One, Windows 10, etc. you can test your Xbox One controller with this app called Game Controller Tester. This free utility allows you to test whether or not your controller works well.

To the Impulse Trigger

To understand what does Impulse Trigger actually feels, please do the following:

  • Install Game Controller Tester
  • Press Start and type Game Controller Tester
  • select new interface
  • select test option
  • setting the impulse trigger
  • start testing
  • select controller
  • Now press which trigger. LT will vibrate left Trigger, and RT with vibrate right trigger.
    press trigger

If you are using Xbox One controller, you will feel vibration just on the trigger since the Impulse Trigger was ticked on the test setting.
Otherwise, you will feel nothing on Xbox 360 Controller since there is no vibrator on each trigger.

if you tick Vibration, and start testing again, you will feel the grip vibrates.

Problem

Xbox One Impulse trigger is one of the cool feature that may fit within our Stand Out standard. This is because it is unusual and unique feature that stands out from the rest.
Therefore we have a desire to implement Xbox One Impulse trigger on most of our game in Unity.
Unfortunately, we encountered troubles as we are finding out ways to do so.

  • Xbox Impulse trigger is exclusive to Microsoft Environment. Many developer could only implement Impulse trigger for Microsoft's closed environment such as UWP, and Xbox One xex. You will be disappointed for that you could not experience Impulse trigger on a version that it not Microsoft Store like UWP or xex Xbox One. e.g., Game A supports Impulse Trigger on Microsoft Store version, but Game A doesn't support Impulse Trigger on Steam version.
  • Unity editor cannot debug Windows namespace, cannot have Windows namespace in editor. The manual according to this Link did not give clear and exact action for what to do to create placeholder namespace for editor, nor give any dummy namespace library for it. the name space using Windows.Gaming.Input only works if you build it to UWP. therefore the only solution to prevent error is to wrap them inside
#if !UNITY_EDITOR
// Plugin code
 using Windows.Gaming.Input;
#endif
  • Also you have to make sure to wrap code with UNITY_WSA defintion to detect exactly if you are on UWP export build and not in editor. This version if for cross platform project.
#if UNITY_WSA && !UNITY_EDITOR
// Plugin code
 using Windows.Gaming.Input;
#endif

Unity platform dependent defintion

  • You will be blind to test things for that. You will not be able to find out if something went wrong.
  • There are not much information regarding Impulse Trigger development API. only the premade example found on Gamepad and Vibration. and that is the UWP raw project made with just some c++ or c# codes from scratch.
  • Nobody talked about Unity Impulse Trigger, or the search engine placed the discussion somewhere too far.
  • Only one company managed to Impulse trigger outside UWP. the F1 2017 game, the exe version according to this Impulse Trigger on PC Games. Please note that however we haven't yet tested the F1 2017 ourselves to confirm the information whether it is fact or hoax. Beside of that, all UWP games supports Impulse Trigger.
  • We did not found the Impulse trigger method in this XInputDotNetpure

Thank you for your attention.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions