updated the ease in function

This commit is contained in:
Angus Antley 2019-04-24 08:27:36 -07:00
parent 7f3101eefb
commit 5aee2f35f0
2 changed files with 16 additions and 12 deletions

View file

@ -2011,25 +2011,29 @@ void Rig::updateFromControllerParameters(const ControllerParameters& params, flo
return;
}
const float OVERLAY_RAMP_RATE = 8.0f;
if (_previousIsTalking != params.isTalking) {
_talkIdleInterpTime = 0.0f;
}
_previousIsTalking = params.isTalking;
const float TOTAL_INTERP_TIME = 1.5f;
if (params.isTalking) {
if (_talkIdleInterpTime < 1.0f) {
_talkIdleInterpTime += dt;
_talkIdleOverlayAlpha = glm::clamp((_talkIdleInterpTime*_talkIdleInterpTime*_talkIdleInterpTime), 0.0f, 1.0f);
//_talkIdleOverlayAlpha = glm::clamp(_talkIdleOverlayAlpha + OVERLAY_RAMP_RATE * dt, 0.0f, 1.0f);
_talkIdleInterpTime += dt / TOTAL_INTERP_TIME;
float talkAlpha = glm::clamp((_talkIdleInterpTime*_talkIdleInterpTime*_talkIdleInterpTime), 0.0f, 1.0f);
_animVars.set("idleOverlayAlpha", talkAlpha);
} else {
_talkIdleInterpTime = 1.0f;
_animVars.set("idleOverlayAlpha", 1.0f);
}
} else {
if (_talkIdleOverlayAlpha > 0.0f) {
_talkIdleInterpTime += dt;
_talkIdleOverlayAlpha = glm::clamp((_talkIdleInterpTime*_talkIdleInterpTime*_talkIdleInterpTime), 0.0f, 1.0f);
// _talkIdleOverlayAlpha = glm::clamp(_talkIdleOverlayAlpha - OVERLAY_RAMP_RATE * dt, 0.0f, 1.0f);
if (_talkIdleInterpTime < 1.0f) {
_talkIdleInterpTime += dt / TOTAL_INTERP_TIME;
float talkAlpha = 1.0f - glm::clamp((_talkIdleInterpTime*_talkIdleInterpTime*_talkIdleInterpTime), 0.0f, 1.0f);
_animVars.set("idleOverlayAlpha", talkAlpha);
} else {
_talkIdleInterpTime = 0.0f;
_animVars.set("idleOverlayAlpha", 0.0f);
}
}
_animVars.set("idleOverlayAlpha", _talkIdleOverlayAlpha);
_headEnabled = params.primaryControllerFlags[PrimaryControllerType_Head] & (uint8_t)ControllerFlags::Enabled;
bool leftHandEnabled = params.primaryControllerFlags[PrimaryControllerType_LeftHand] & (uint8_t)ControllerFlags::Enabled;

View file

@ -422,8 +422,8 @@ protected:
float _leftHandOverlayAlpha { 0.0f };
float _rightHandOverlayAlpha { 0.0f };
float _talkIdleOverlayAlpha { 0.0f };
float _talkIdleInterpTime { 0.0f };
bool _previousIsTalking { false };
SimpleMovingAverage _averageForwardSpeed { 10 };
SimpleMovingAverage _averageLateralSpeed { 10 };