From 03f88f696d1c1d8d31ec5649157b9f887f944850 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 21 Oct 2019 19:37:57 -0700 Subject: [PATCH] Renamed LipsTogether to MouthClose and bug fixes. --- interface/resources/controllers/standard.json | 2 +- interface/resources/controllers/standard_nomovement.json | 2 +- interface/src/avatar/MyHead.cpp | 2 +- libraries/avatars/src/AvatarData.cpp | 4 ++++ libraries/avatars/src/HeadData.cpp | 4 ++++ libraries/avatars/src/HeadData.h | 1 + libraries/controllers/src/controllers/Actions.cpp | 2 +- libraries/controllers/src/controllers/Actions.h | 2 +- libraries/controllers/src/controllers/StandardController.cpp | 2 +- libraries/controllers/src/controllers/StandardControls.h | 2 +- libraries/shared/src/BlendshapeConstants.cpp | 2 +- libraries/shared/src/BlendshapeConstants.h | 4 ++-- 12 files changed, 19 insertions(+), 10 deletions(-) diff --git a/interface/resources/controllers/standard.json b/interface/resources/controllers/standard.json index 8c84039b86..b6cb4e3e27 100644 --- a/interface/resources/controllers/standard.json +++ b/interface/resources/controllers/standard.json @@ -208,7 +208,7 @@ { "from": "Standard.Puff", "to": "Actions.Puff" }, { "from": "Standard.CheekSquint_L", "to": "Actions.CheekSquint_L" }, { "from": "Standard.CheekSquint_R", "to": "Actions.CheekSquint_R" }, - { "from": "Standard.LipsTogether", "to": "Actions.LipsTogether" }, + { "from": "Standard.MouthClose", "to": "Actions.MouthClose" }, { "from": "Standard.MouthUpperUp_L", "to": "Actions.MouthUpperUp_L" }, { "from": "Standard.MouthUpperUp_R", "to": "Actions.MouthUpperUp_R" }, { "from": "Standard.MouthLowerDown_L", "to": "Actions.MouthLowerDown_L" }, diff --git a/interface/resources/controllers/standard_nomovement.json b/interface/resources/controllers/standard_nomovement.json index e311a5fa62..04c0d2f329 100644 --- a/interface/resources/controllers/standard_nomovement.json +++ b/interface/resources/controllers/standard_nomovement.json @@ -103,7 +103,7 @@ { "from": "Standard.Puff", "to": "Actions.Puff" }, { "from": "Standard.CheekSquint_L", "to": "Actions.CheekSquint_L" }, { "from": "Standard.CheekSquint_R", "to": "Actions.CheekSquint_R" }, - { "from": "Standard.LipsTogether", "to": "Actions.LipsTogether" }, + { "from": "Standard.MouthClose", "to": "Actions.MouthClose" }, { "from": "Standard.MouthUpperUp_L", "to": "Actions.MouthUpperUp_L" }, { "from": "Standard.MouthUpperUp_R", "to": "Actions.MouthUpperUp_R" }, { "from": "Standard.MouthLowerDown_L", "to": "Actions.MouthLowerDown_L" }, diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index f92f8b7218..a0e70a3049 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -64,7 +64,7 @@ static controller::Action blendshapeActions[] = { controller::Action::PUFF, controller::Action::CHEEKSQUINT_L, controller::Action::CHEEKSQUINT_R, - controller::Action::LIPSTOGETHER, + controller::Action::MOUTHCLOSE, controller::Action::MOUTHUPPERUP_L, controller::Action::MOUTHUPPERUP_R, controller::Action::MOUTHLOWERDOWN_L, diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index c5dcfba1c0..87d6c57d59 100755 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -1217,6 +1217,10 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { _keyState = newKeyState; _handState = newHandState; + if (!newHasScriptedBlendshapes && getHasScriptedBlendshapes()) { + // if scripted blendshapes have just been turned off, slam blendshapes back to zero. + _headData->clearBlendshapeCoefficients(); + } _headData->setHasScriptedBlendshapes(newHasScriptedBlendshapes); _headData->setProceduralAnimationFlag(HeadData::SaccadeProceduralEyeJointAnimation, newHasProceduralEyeMovement); _headData->setProceduralAnimationFlag(HeadData::AudioProceduralBlendshapeAnimation, newHasAudioEnabledFaceMovement); diff --git a/libraries/avatars/src/HeadData.cpp b/libraries/avatars/src/HeadData.cpp index ff73677bb8..93fb0190bb 100644 --- a/libraries/avatars/src/HeadData.cpp +++ b/libraries/avatars/src/HeadData.cpp @@ -83,6 +83,10 @@ int HeadData::getNumSummedBlendshapeCoefficients() const { return maxSize; } +void HeadData::clearBlendshapeCoefficients() { + _blendshapeCoefficients.fill(0.0f, (int)_blendshapeCoefficients.size()); +} + const QVector& HeadData::getSummedBlendshapeCoefficients() { int maxSize = std::max(_blendshapeCoefficients.size(), _transientBlendshapeCoefficients.size()); if (_summedBlendshapeCoefficients.size() != maxSize) { diff --git a/libraries/avatars/src/HeadData.h b/libraries/avatars/src/HeadData.h index 218ffceaa1..083374b32d 100644 --- a/libraries/avatars/src/HeadData.h +++ b/libraries/avatars/src/HeadData.h @@ -62,6 +62,7 @@ public: const QVector& getSummedBlendshapeCoefficients(); int getNumSummedBlendshapeCoefficients() const; void setBlendshapeCoefficients(const QVector& blendshapeCoefficients) { _blendshapeCoefficients = blendshapeCoefficients; } + void clearBlendshapeCoefficients(); const glm::vec3& getLookAtPosition() const { return _lookAtPosition; } void setLookAtPosition(const glm::vec3& lookAtPosition) { diff --git a/libraries/controllers/src/controllers/Actions.cpp b/libraries/controllers/src/controllers/Actions.cpp index 6dd9a47395..36f454b5d0 100644 --- a/libraries/controllers/src/controllers/Actions.cpp +++ b/libraries/controllers/src/controllers/Actions.cpp @@ -393,7 +393,7 @@ namespace controller { makeAxisPair(Action::PUFF, "Puff"), makeAxisPair(Action::CHEEKSQUINT_L, "CheekSquint_L"), makeAxisPair(Action::CHEEKSQUINT_R, "CheekSquint_R"), - makeAxisPair(Action::LIPSTOGETHER, "LipsTogether"), + makeAxisPair(Action::MOUTHCLOSE, "MouthClose"), makeAxisPair(Action::MOUTHUPPERUP_L, "MouthUpperUp_L"), makeAxisPair(Action::MOUTHUPPERUP_R, "MouthUpperUp_R"), makeAxisPair(Action::MOUTHLOWERDOWN_L, "MouthLowerDown_L"), diff --git a/libraries/controllers/src/controllers/Actions.h b/libraries/controllers/src/controllers/Actions.h index 86821b4633..5c96923dc3 100644 --- a/libraries/controllers/src/controllers/Actions.h +++ b/libraries/controllers/src/controllers/Actions.h @@ -227,7 +227,7 @@ enum class Action { PUFF, CHEEKSQUINT_L, CHEEKSQUINT_R, - LIPSTOGETHER, + MOUTHCLOSE, MOUTHUPPERUP_L, MOUTHUPPERUP_R, MOUTHLOWERDOWN_L, diff --git a/libraries/controllers/src/controllers/StandardController.cpp b/libraries/controllers/src/controllers/StandardController.cpp index 168604ee45..936f1c391f 100644 --- a/libraries/controllers/src/controllers/StandardController.cpp +++ b/libraries/controllers/src/controllers/StandardController.cpp @@ -399,7 +399,7 @@ Input::NamedVector StandardController::getAvailableInputs() const { makePair(PUFF, "Puff"), makePair(CHEEKSQUINT_L, "CheekSquint_L"), makePair(CHEEKSQUINT_R, "CheekSquint_R"), - makePair(LIPSTOGETHER, "LipsTogether"), + makePair(MOUTHCLOSE, "MouthClose"), makePair(MOUTHUPPERUP_L, "MouthUpperUp_L"), makePair(MOUTHUPPERUP_R, "MouthUpperUp_R"), makePair(MOUTHLOWERDOWN_L, "MouthLowerDown_L"), diff --git a/libraries/controllers/src/controllers/StandardControls.h b/libraries/controllers/src/controllers/StandardControls.h index f99072af7c..965c095187 100644 --- a/libraries/controllers/src/controllers/StandardControls.h +++ b/libraries/controllers/src/controllers/StandardControls.h @@ -134,7 +134,7 @@ namespace controller { PUFF, CHEEKSQUINT_L, CHEEKSQUINT_R, - LIPSTOGETHER, + MOUTHCLOSE, MOUTHUPPERUP_L, MOUTHUPPERUP_R, MOUTHLOWERDOWN_L, diff --git a/libraries/shared/src/BlendshapeConstants.cpp b/libraries/shared/src/BlendshapeConstants.cpp index 7564c31944..91b68ed8a9 100644 --- a/libraries/shared/src/BlendshapeConstants.cpp +++ b/libraries/shared/src/BlendshapeConstants.cpp @@ -54,7 +54,7 @@ const char* FACESHIFT_BLENDSHAPES[] = { "Puff", "CheekSquint_L", "CheekSquint_R", - "LipsTogether", + "MouthClose", "MouthUpperUp_L", "MouthUpperUp_R", "MouthLowerDown_L", diff --git a/libraries/shared/src/BlendshapeConstants.h b/libraries/shared/src/BlendshapeConstants.h index 0f934b2056..8db29856c3 100644 --- a/libraries/shared/src/BlendshapeConstants.h +++ b/libraries/shared/src/BlendshapeConstants.h @@ -58,7 +58,7 @@ enum class Blendshapes : int { Puff, CheekSquint_L, CheekSquint_R, - LipsTogether, + MouthClose, MouthUpperUp_L, MouthUpperUp_R, MouthLowerDown_L, @@ -94,7 +94,7 @@ enum class LegacyBlendshpaes : int { }; // NEW in ARKit -// * LipsTogether +// * MouthClose // * MouthUpperUp_L // * MouthUpperUp_R // * MouthLowerDown_L