Merge pull request #16486 from DouglasWilcox/HMD_strafe_transition_bug

Fix HMD strafe locomotion animation.
This commit is contained in:
Anthony Thibault 2019-11-12 15:49:15 -08:00 committed by GitHub
commit 7736582f3b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 37 deletions

View file

@ -5994,14 +5994,6 @@
"state": "INAIRRUN",
"var": "isInAirRun"
},
{
"state": "strafeRightHmd",
"var": "isMovingRightHmd"
},
{
"state": "strafeLeftHmd",
"var": "isMovingLeftHmd"
},
{
"state": "seated",
"var": "isSeated"
@ -6062,14 +6054,6 @@
"state": "INAIRRUN",
"var": "isInAirRun"
},
{
"state": "strafeRightHmd",
"var": "isMovingRightHmd"
},
{
"state": "strafeLeftHmd",
"var": "isMovingLeftHmd"
},
{
"state": "seated",
"var": "isSeated"
@ -6214,7 +6198,7 @@
"transitions": [
{
"state": "idleSettle",
"var": "isNotInput"
"var": "isNotMoving"
},
{
"state": "WALKFWD",
@ -6228,14 +6212,6 @@
"state": "strafeLeftHmd",
"var": "isMovingLeftHmd"
},
{
"state": "STRAFERIGHT",
"var": "isInputRight"
},
{
"state": "STRAFELEFT",
"var": "isInputLeft"
},
{
"state": "turnRight",
"var": "isTurningRight"
@ -6278,7 +6254,7 @@
"transitions": [
{
"state": "idleSettle",
"var": "isNotInput"
"var": "isNotMoving"
},
{
"state": "WALKFWD",
@ -6292,14 +6268,6 @@
"state": "strafeRightHmd",
"var": "isMovingRightHmd"
},
{
"state": "STRAFERIGHT",
"var": "isInputRight"
},
{
"state": "STRAFELEFT",
"var": "isInputLeft"
},
{
"state": "turnRight",
"var": "isTurningRight"

View file

@ -1510,19 +1510,29 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos
if (_previousControllerParameters.inputX > 0.0f) {
// right
if (!_headEnabled) {
_animVars.set("isInputRight", true);
} else {
_animVars.set("isInputRight", false);
}
_animVars.set("isInputLeft", false);
_animVars.set("isInputForward", false);
_animVars.set("isInputBackward", false);
_animVars.set("isInputRight", true);
_animVars.set("isInputLeft", false);
_animVars.set("isNotInput", false);
_animVars.set("isNotInputSlow", false);
_animVars.set("isNotInputNoMomentum", false);
} else {
// left
if (!_headEnabled) {
_animVars.set("isInputLeft", true);
} else {
_animVars.set("isInputLeft", false);
}
_animVars.set("isInputForward", false);
_animVars.set("isInputBackward", false);
_animVars.set("isInputRight", false);
_animVars.set("isInputLeft", true);
_animVars.set("isNotInput", false);
_animVars.set("isNotInputSlow", false);
_animVars.set("isNotInputNoMomentum", false);