Putting a BodyForce within a player's character makes the camera jitter

  1. Equip a Gravity Coil tool (or parent a BodyForce under a character instance explicitly with code)
  2. Observe, regardless whether or not they’re R6 or R15, their camera has a slight jittering


Gravity Coil tool equipped by an R6 character - note the ground texture


Gravity Coil tool equipped by an R15 character - note the text on the billboard to the right


BodyForce in an R15 character’s head - note the text on the billboard to the right

This camera jittering is more prominent when using R15 and when moving your camera close to a part. There may be other physics effects and bodymovers that this occurs for.

Although the BodyForce instance is deprecated, this camera interaction is a regression (as far as I’m aware) and breaks older content. The camera jitter is quite noticeable.

Expected beavior
There is no camera jittering when using a BodyForce Instance and/or Gravity Coil.

2 Likes

If you noticed, that’s not camera jitterring but rather player floating upwards and falling back, that’s how such movers work - they can’t always keep thing at the same spot - they will try to move it when they can.

1 Like

That does indeed make sense. The end result is the same unfortunately.

Curious if this is a Mandela effect for the lack of camera jitter, as I swear this wasn’t a thing prior. Perhaps it was. Maybe higher FPS made it more noticeable?

1 Like

Humanoids seem to have this issue with the Adaptive physics mode, which is a relatively new feature, even without the legacy/deprecated movers. They don’t seem to like being run at lower than 240hz. I don’t think this issue exists with the newer ControllerManager paradigm.

I believe you’ve been seeing this more recently because Adaptive has been set as the default on all the Templates, so any new games will be using it. It hasn’t been retroactively applied to games that haven’t already opted-in, however.

1 Like

Thanks for the report! We’ll follow up when we have an update for you.

Thanks for the report. I’ve put in a fix for this, so hopefully this will get resolved soon. Until then, try switching your timestepping method to Fixed (under Workspace.PhysicsSteppingMethod) to mitigate this issue.

Apologies for the issues!

1 Like

I would like to share my understanding of the BodyMovers class
BodyPosition
This BodyMover moves a Part to a specific Vector3 location in the world.
BodyVelocity
This BodyMover applies a force to move a part continuously instead of to a specific position.
BodyThrust
This BodyMover applies a force to move a part to a specific location which the force’s origin position is controlled by the “Location” Vector3.
So if you set the Location Y to 50, the force will be originating from 50 studs or units above the Part.
BodyAngularVelocity
Makes a part spin at the rate specified by the AngularVelocity Vector3 in the instance. MaxTorque defines how much force the BodyMover can apply to make the part move.
What I don’t understand
BodyForce
BodyGyro