Camera lag does not work during ground movement (walk/run)
naninanir1 Resident
Description
When moving the avatar forward on the ground (walk or run), the camera follows immediately without any noticeable lag, regardless of the DynamicCameraStrength setting in Debug Settings.
However, during Fly and Fall the camera lag works as expected.
This bug is reproducible with:
Default avatar (classic)
Legacy, Maitreya, Kemono mesh bodies
With AO, HUD, and all attachments removed (clean avatar)
Sub-accounts as well (not account-specific)
Note on small avatars:
Some smaller rigged avatars sometimes do not show this issue, or the behavior can change depending on avatar height/hover height. However, humanoid avatars (Legacy, Maitreya, Kemono, Default) are always affected and never corrected by these changes.
Confirmed in:
Second Life Viewer Release 7.2.0.16729091892 (64bit)
Firestorm Viewer 7.1.13 (78266) and 7.2.0 (78879) (Firestorm inherits this issue from the SL viewer)
====================
Steps to Reproduce
Log in with the official Second Life Viewer.
Remove all AO, HUD, and attachments.
Reset camera with Ctrl+9.
Open Debug Settings → set DynamicCameraStrength to various values.
Move the avatar forward (walk or run).
Observe the camera: no visible lag.
Compare by Flying or Falling → camera lag works correctly.
====================
Expected Result
Camera lag should smoothly delay the camera when moving forward on the ground, as it does during Fly or Fall.
Actual Result
During ground movement (walk/run), the camera ignores lag and follows immediately. The DynamicCameraStrength debug setting has no visible effect.
Log In
naninanir1 Resident
I built Firestorm Viewer for Windows, version 7.2.0.252260400 myself in order to investigate the issue.
For this investigation, I inserted debug logging into llagentcamera.cpp only, and compared the behavior of the camera in ground vs. air states.
- Camera lag is always disabled on the ground
Inside LLAgentCamera::calcCameraPositionTargetGlobal(), whenever mInAir is false (on the ground), mCameraLag is forced back to zero.
As a result, DynamicCameraStrength has no effect while the avatar is on the ground.
When mInAir is true (in the air), targetLag is properly calculated based on velocity and camera lag works as expected.
- Behavior changes depending on small avatars or shape settings
For small rigged avatars (for example, around height 50), I confirmed that simply changing the Hover value can keep inAir=1 even while standing on the ground.
Example: Hover=42 → inAir=0 (ground, camera lag disabled)
Hover=43 → inAir=1 (air, camera lag enabled)
This means that the behavior of camera lag changes drastically depending on avatar size and shape values.
- Changed understanding
At first, I thought this was a bug in the Second Life Viewer, because camera lag was not working on the ground.
However, after my investigation, I discovered that this is actually the intended design: camera lag is disabled on the ground by default.
- Results after modifying the code
I modified the relevant part of llagentcamera.cpp so that the same lag calculation is always applied both on the ground and in the air.
After this change, I confirmed that camera lag now works naturally on the ground as well.
This also solved the inconsistency where behavior depended on avatar size or Hover height.
Request
Currently, the design disables camera lag on the ground, but this is confusing for users and causes inconsistent behavior depending on avatar size.
I would like to request that the official viewer also be updated so that camera lag is enabled on the ground in the same way as in the air.
This change would ensure consistent and natural camera behavior regardless of avatar size or shape.
Dan Linden
Hi naninanir1.
Can you show me an example of an avatar that do not show this issue? A marketplace link or if you have one that you could share. I want to examine what the difference is.
naninanir1 Resident
Dan Linden
Hi Dan,
I tested with two small rigged avatars, using their included default shapes as a baseline.
From each default shape, I changed one shape parameter at a time (to 0 or 100) while keeping all other values unchanged.
This allowed me to identify which specific parameters influence camera lag.
- COCO_Gift_Rabbit_Grey
Marketplace link: https://marketplace.secondlife.com/p/COCOGiftRabbitGrey/10715700
Using the included default shape (height = 53), camera lag did not respond.
When I adjusted height between 4 → 1, camera lag started to respond normally.
Parameter testing results (only one changed at a time from the default):
Height → affected
Torso Length → affected
Leg Length → affected
Hip Length → affected
Hover → no effect (0–100 did not change behavior)
All other parameters → no effect
- :Risusipo: DEMO_Chipmunk_Girl_mesh_avatar
Marketplace link: https://marketplace.secondlife.com/p/RisusipoDEMOChipmunkGirlmeshavatarboxed/9092957
Using the included default shape (height = 0), camera lag did not respond.
Changing height (0–100) → no effect.
Changing hover (42–100) → camera lag responded normally.
Parameter testing results (only one changed at a time from the hover-adjusted shape):
Height → no effect
Torso Length → no effect
Leg Length → no effect
Hip Length → affected
Hover → affected
All other parameters → no effect
Summary
It seems the camera lag issue is influenced by certain shape parameters:
In the Rabbit avatar: Height, Torso Length, Leg Length, Hip Length
In the Chipmunk avatar: Hip Length and Hover
So depending on the avatar and shape values, sometimes camera lag works normally, and sometimes not.
You can also see the avatars and shapes I used in these screenshots:
(attach the two images)
This shows the exact inventory items worn during testing (the included default shape for each avatar).