Skip to content
EN

Event Maps and playback

An Event Map is a Data Asset that centralizes the parameters of a haptic stimulus: Clip, Gain, Target, and Loop. Game code only decides when to play which entry; the Event Map adjusts the haptic type, intensity, destination, and duration.

  1. In the Content Browser, select Add → Hapbeat → Hapbeat Event Map.
  2. Open the asset and add an entry.
  3. Set its Display Name and playback method. Stream Clip uses a Clip asset; Command uses the Category and Event Name of a deployed Kit. Adjust Gain, Pan, Target, and Loop as needed.

Each entry has the following values:

  • Id: an automatically assigned GUID. It keeps references stable when entries are reordered; do not enter it manually.
  • Clip: the haptic clip to play, or an event already deployed to the device.
  • Gain: base intensity.
  • Pan: left/right placement.
  • Target: logical address of the Hapbeat that receives the event.
  • Loop: whether to continuously play a Stream Clip. Repeating a Command depends on the Kit definition.

When Target is empty, every connected Hapbeat is eligible. See Targeting to separate destinations for multiple HMDs using player / group.

Add Play Event (Hapbeat) to the Event Graph and specify its Map and Entry.

Game event
→ Play Event (Hapbeat)
Map: DA_HapbeatEventMap
Entry: pickup

Gain Multiplier, Pan, and Delay Seconds are advanced pins. They adjust this call only, without changing the entry. A Stream Clip entry returns a Hapbeat Stream Playback, which can adjust Gain / Pan or Stop at runtime.

For node inputs and return values, see Blueprint nodes.

UHapbeatBlueprintLibrary exposes the same Event Map path as the Blueprint nodes to C++.

#include "HapbeatBlueprintLibrary.h"
UHapbeatBlueprintLibrary::PlayHapbeatEvent(
this,
EventMap,
Entry,
/* GainMultiplier */ 1.0f,
/* Pan */ 0.0f,
/* DelaySeconds */ 0.0f);

UHapbeatSubsystem::Play(EventId, Gain, Target, Pan) sends directly without an Event Map. Use it only when the event ID must be assembled at runtime or cannot be managed by a Data Asset.

See C++ API for the API reference and guidance on direct delivery.

GoalUse
Play one entry from a button, UI, or custom game eventPlay Event (Hapbeat)
Watch Hit / Overlap and play an entryHapbeat Collision Trigger component
Combine start, held loop, and endHapbeat Sequence component
Continuously change a Stream Clip’s Gain / Pan from a valueHapbeat Parameter Binding component
Play a one-shot at each step of a knob or sliderHapbeat Tick Emitter component