Skip to content

LiveLink Blueprint Loop Doubles OSC Values — Stutter and Runaway Camera

Summary

When using an Unreal Engine Blueprint to forward or process OSC/LiveLink tracking data from Flair, it is easy to accidentally create a feedback loop where the Blueprint fires twice per frame — doubling every position value and causing exponential camera drift or stuttering motion. This typically happens when the same OSC receiver event is bound in both the Blueprint's Event Graph and in a separate OSC message handler, or when a "Set Relative Transform" node is called twice. The fix is to ensure the data chain is strictly linear with no duplicate bindings: one receiver → one transform application → one actor.

Symptoms

  • Camera in Unreal jumps or stutters instead of tracking smoothly.
  • Camera position drifts or runs away in one direction as if values are accumulating.
  • Tracking looks correct when Flair is still but goes wrong when the robot moves.
  • OSC values appear doubled (e.g., a 10mm move in Flair causes a 20mm camera move in UE).
  • Camera oscillates or vibrates around the correct position.
  • Issue appeared after modifying a Blueprint or adding a new OSC receiver.

Community Guidance

[RESOLVED] Identify and Remove Duplicate Transform Applications

Community consensus

In Unreal Engine Blueprint, the most common cause is applying the tracking transform in two places:

  1. Check all OSC receivers in the Blueprint Event Graph — ensure only ONE handles the Flair tracking data channel.
  2. Check the actor's details panel for any additional LiveLink constraints or transform controllers that might also be updating the same actor.
  3. In the Event Graph: search for all "Set World/Relative Transform" or "Set Actor Location/Rotation" nodes connected to the camera actor and verify only one is driven by the Flair data.
  4. If using both LiveLink Controller component AND a Blueprint OSC receiver on the same actor, one of them must be disabled.

Community: "Blueprint loop doubles OSC values — stutter and runaway camera caused by duplicate event binding in the Blueprint."

confidence_score: 0.88

Community

The simplest and most reliable approach is to use the built-in LiveLink Controller component on the CineCamera Actor (set it up in the Actor's component list) and let it handle all transform updates. Do not additionally apply transforms in Blueprint. If custom processing is needed, do it before the data reaches the LiveLink source, not after.

confidence_score: 0.88