From 3e02bac412d3d1ebe3b2bc3ccee3fbe9fc3da37f Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Tue, 20 Sep 2016 10:45:13 -0700 Subject: [PATCH] more velocity tuning --- libraries/physics/src/CharacterController.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/physics/src/CharacterController.cpp b/libraries/physics/src/CharacterController.cpp index 0906b43156..ff868d5485 100755 --- a/libraries/physics/src/CharacterController.cpp +++ b/libraries/physics/src/CharacterController.cpp @@ -202,7 +202,7 @@ void CharacterController::playerStep(btCollisionWorld* dynaWorld, btScalar dt) { btVector3 velocity = _rigidBody->getLinearVelocity() - _parentVelocity; if (_following) { // OUTOFBODY_HACK -- these consts were copied from elsewhere, and then tuned - const float NORMAL_WALKING_SPEED = 2.0f; // actual walk speed is 2.5 m/sec + const float NORMAL_WALKING_SPEED = 2.5f; // actual walk speed is 2.5 m/sec const float FOLLOW_TIMESCALE = 0.8f; const float ONE_STEP_AT_NORMAL_WALKING_SPEED = FOLLOW_TIMESCALE * NORMAL_WALKING_SPEED; const float FOLLOW_ROTATION_THRESHOLD = PI / 6.0f; @@ -219,9 +219,9 @@ void CharacterController::playerStep(btCollisionWorld* dynaWorld, btScalar dt) { if (deltaDistance > ONE_STEP_AT_NORMAL_WALKING_SPEED) { vel *= NORMAL_WALKING_SPEED / deltaDistance; } else { - vel *= NORMAL_WALKING_SPEED * (deltaDistance / ONE_STEP_AT_NORMAL_WALKING_SPEED); + vel /= FOLLOW_TIMESCALE; } - const float HORIZONTAL_FOLLOW_TIMESCALE = 0.25f; + const float HORIZONTAL_FOLLOW_TIMESCALE = 0.2f; const float VERTICAL_FOLLOW_TIMESCALE = (_state == State::Hover) ? HORIZONTAL_FOLLOW_TIMESCALE : 20.0f; glm::quat worldFrameRotation; // identity addMotor(bulletToGLM(vel), worldFrameRotation, HORIZONTAL_FOLLOW_TIMESCALE, VERTICAL_FOLLOW_TIMESCALE);