Third-person camera centres on the linkset root (deep below) while seated on a moving child prim (elevator car) #1528

Open
opened 2026-11-12 06:04:20 +00:00 by sky_line · 0 comments
Owner

What happens: you sit on a moving child prim of a linkset, for example an elevator car that is not the linkset root, and the linkset moves (the elevator rides). The third-person camera then centres somewhere deep below the avatar, apparently at the linkset ROOT, instead of on the avatar.

Expected: the third-person camera's focus follows the seated avatar's actual drawn position, i.e. the position of the child prim it sits on, the same as when standing.

Notes:

  • It happens while the elevator moves. A seated avatar's position is relative to its sit target prim, so the camera focus is probably being taken from the parent/root object's position (or an unrotated/unchained parent transform) instead of the avatar's world position.
  • Check:
    • LLAgentCamera focus / target computation for a seated agent (getCameraPositionGlobal, calcFocusPositionTargetGlobal, sit camera offsets);
    • how the seat object's world transform is resolved when it is a moving child;
    • interaction with our own changes: position sync (#1417 / #1526) moves only mRoot for others; camera smoothing.
**What happens:** you sit on a moving child prim of a linkset, for example an elevator car that is not the linkset root, and the linkset moves (the elevator rides). The third-person camera then centres somewhere deep below the avatar, apparently at the linkset ROOT, instead of on the avatar. **Expected:** the third-person camera's focus follows the seated avatar's actual drawn position, i.e. the position of the child prim it sits on, the same as when standing. **Notes:** - It happens while the elevator moves. A seated avatar's position is relative to its sit target prim, so the camera focus is probably being taken from the parent/root object's position (or an unrotated/unchained parent transform) instead of the avatar's world position. - Check: - LLAgentCamera focus / target computation for a seated agent (`getCameraPositionGlobal`, `calcFocusPositionTargetGlobal`, sit camera offsets); - how the seat object's world transform is resolved when it is a moving child; - interaction with our own changes: position sync (#1417 / #1526) moves only mRoot for others; camera smoothing.
sky_line added this to the Slipstream project 2026-11-12 06:04:20 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#1528
No description provided.