Version
menu

Design Considerations for Rumble and Advanced Haptics

After you initially design content for Motion on gamepads that have a "rumble" feature and use weighted motors to generate vibrations, we recommend that you modify the content for advanced haptics because most content for rumble-based gamepads is incompatible with haptics, and might feel weak or non-existent.

In general, rumble-based gamepads vibrate with greater intensity as the amplitude of the source waveform increases. However, the haptics on haptic-based gamepads vibrate with greater intensity the more the waveform fluctuates. Therefore, constant, high-amplitude waveforms, such as those generated by a default Motion source, produce strong vibrations in rumble-based gamepads but no vibration in haptic-based gamepads.

As a temporary means to achieve stronger vibrations without redesigning your Motion source content, open the Motion source plug-in Source Editor and set the Actuator Configuration to Generic Haptics 2-Channel. Afterwards, you can further develop other solutions for more advanced haptics implementations.

A detailed explanation of how the Motion source and Wwise Motion Audio Device operate can provide some additional context.

The following example shows a Motion source plug-in used to generate a simple, decreasing rumble effect.

This is a Motion source plug-in with a single Driver that runs for one second, starting at a maximum amplitude and ending at an amplitude of zero. When played, the Motion source plug-in generates the waveform shown in the following image. To observe this, you can record the output of a bus with the Recorder plug-in, or send the output to a System Audio Device and record the loopback in external software.

The Wwise sound engine fully interprets this source just like any other audio source. Similarly, the Motion Audio Device accepts any waveform and uses it to determine the desired amplitude of vibration on supported gamepads.

When the Wwise sound engine is running, it generates samples of audio with each "Audio Render" tick, which occurs at a corresponding tick rate for the primary output. For example, for a 48KHz audio output with the default configuration of 512 samples per tick, Wwise runs "Audio Render" ticks at a rate of 93.75Hz. As a part of the "Audio Render" tick, Wwise sends all rendered audio data to all active Audio Devices, including Wwise Motion Audio Devices. The Wwise Motion Audio Device takes the quantum of audio data, such as the 512 samples of audio, and transforms that into a single vibration value suitable for most gamepad APIs. This is commonly done by obtaining the maximum amplitude of the provided waveform and sending it to the gamepad API.

For example, it is possible to zoom into a small part of the waveform shown above to see what the amplitude of the waveform is for a given 512 sample window:

In this case, the intensity of the vibration in the gamepad is approximately 0.90, where 1.00 is the maximum amplitude. On most gamepads, this value drives the voltage of an electrical current that is attached to a motor, which causes the motor to spin faster, which then creates movement in the gamepad.

Even if the amplitude of the curve is a flat 0.90, as shown in the following image, it still sets the vibration intensity to that value repeatedly for the duration of the effect, and the motor continues to spin at that amplitude, which creates a consistent rumble vibration.

However, when Wwise Motion drives advanced haptics on PS5 or PC, it does not try to obtain a single vibration intensity to send to the device. Instead, the entire 512-sample waveform is sent to the device without any additional processing, and is used to directly drive the physical position of a mass inside of a linear actuator in order to generate vibrations in the gamepad. This is similar to how audio waveforms drive the physical positions of drivers inside speakers to generate sound waves in the air.

Because the actuator is directly positioned by the waveform, if there are no variations in the amplitude of the waveform, there is no perceived vibration in the gamepad. That is, if you create content that uses the Motion source plug-in for the purpose of rumble-based vibrations, then effectively no vibration is generated or felt, as shown in the following examples:

There is a simple solution, which we recommend that you do when you first configure advanced haptics: set the Actuator Configuration of the Motion source to Generic Haptics 2-Channel.

This mode of operation attempts to emulate the vibration in the DualShock 4 and Xbox controllers, in which one motor in the left handle provides low-frequency and impactful movement, and a second motor in the right handle provides high-frequency and light movement. To do this, the Motion source creates a unique waveform for each channel. The left channel is a low-frequency square wave and the right channel is a high-frequency sine wave, as shown in the following image:

After you update your content to run in that mode, you can incrementally develop and incorporate more content specially built for advanced haptics, such as prerecorded audio, Tone Generator sources, Synth One sources, or runtime processing of other in-game audio submixes.

Although a high-quality implementation of advanced haptics requires a lot of new content, it is often possible to use some of that content to drive a rumble-based Wwise Motion Audio Device. For example, the following waveform, intended for audio, has a strong impact and tail:

As described previously, a Wwise Motion Audio Device for a rumble-based gamepad transforms the waveform into a single amplitude value for each quantum of audio data and then sends those amplitudes as vibration intensities to the gamepad. The amplitudes calculated for the previous example are demonstrated in the following image:

Additional tuning or design work might still be desirable for a rumble-based gamepad. You could compensate for the inertia of the motors as they start or stop spinning, or the lack of accurate panning of the output. Such adjustments might keep more content aligned among the different types of gamepad your game supports.


Cette page a-t-elle été utile ?

Besoin d'aide ?

Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !

Visitez notre page d'Aide

Décrivez-nous de votre projet. Nous sommes là pour vous aider.

Enregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !

Partir du bon pied avec Wwise