Move and rename ReadyPlayerMe synonyms

This commit is contained in:
David Rowe 2021-04-21 09:47:24 +12:00
parent bfb42c8233
commit a6d8e150f0
3 changed files with 21 additions and 20 deletions

View file

@ -1572,8 +1572,8 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash&
}
// Augment list of blendshapes from synonyms in model.
QMap<QString, QPair<QString, float>>::const_iterator synonym = BLENDSHAPE_SYNONYMS_MAP.constBegin();
while (synonym != BLENDSHAPE_SYNONYMS_MAP.constEnd()) {
QMap<QString, QPair<QString, float>>::const_iterator synonym = READYPLAYERME_BLENDSHAPES_MAP.constBegin();
while (synonym != READYPLAYERME_BLENDSHAPES_MAP.constEnd()) {
if (_file.meshes[node.mesh].extras.targetNames.contains(synonym.key())) {
auto blendshape = BLENDSHAPE_LOOKUP_MAP.find(synonym.value().first);
if (blendshape != BLENDSHAPE_LOOKUP_MAP.end()) {

View file

@ -84,3 +84,21 @@ const QMap<QString, int> BLENDSHAPE_LOOKUP_MAP = [] {
}
return toReturn;
}();
const QMap<QString, QPair<QString, float>> READYPLAYERME_BLENDSHAPES_MAP = {
// ReadyPlayerMe blendshape synonyms.
{"browDownLeft", {"BrowsD_L", 0.5f}},
{"browDownRight", {"BrowsD_R", 0.5f}},
{"browInnerUp", {"BrowsU_C", 0.3f}},
{"browOuterUpLeft", {"BrowsU_L", 0.3f}},
{"browOuterUpRight", {"BrowsU_R", 0.3f}},
{"eyeBlinkLeft", {"EyeBlink_L", 1.0f}},
{"eyeBlinkRight", {"EyeBlink_R", 1.0f}},
{"eyeWideLeft", {"EyeOpen_L", 1.0f}},
{"eyeWideRight", {"EyeOpen_R", 1.0f}},
{"mouthLeft", {"MouthSmile_L", 0.6f}},
{"mouthOpen", {"JawOpen", 1.0f}},
{"mouthRight", {"MouthSmile_R", 0.6f}},
{"mouthShrugLower", {"LipsUpperClose", 0.1f}},
{"viseme_O", {"LipsFunnel", 0.5f}}
};

View file

@ -20,6 +20,7 @@
/// The names of the supported blendshapes, terminated with an empty string.
extern const char* BLENDSHAPE_NAMES[];
extern const QMap<QString, int> BLENDSHAPE_LOOKUP_MAP;
extern const QMap<QString, QPair<QString, float>> READYPLAYERME_BLENDSHAPES_MAP;
enum class Blendshapes : int {
EyeBlink_L = 0,
@ -113,24 +114,6 @@ enum class Blendshapes : int {
// * LipsUpperOpen (not in ARKit)
// * LipsLowerOpen (not in ARKit)
const QMap<QString, QPair<QString, float>> BLENDSHAPE_SYNONYMS_MAP {
// ReadyPlayerMe
{"browDownLeft", {"BrowsD_L", 0.5f}},
{"browDownRight", {"BrowsD_R", 0.5f}},
{"browInnerUp", {"BrowsU_C", 0.3f}},
{"browOuterUpLeft", {"BrowsU_L", 0.3f}},
{"browOuterUpRight", {"BrowsU_R", 0.3f}},
{"eyeBlinkLeft", {"EyeBlink_L", 1.0f}},
{"eyeBlinkRight", {"EyeBlink_R", 1.0f}},
{"eyeWideLeft", {"EyeOpen_L", 1.0f}},
{"eyeWideRight", {"EyeOpen_R", 1.0f}},
{"mouthLeft", {"MouthSmile_L", 0.6f}},
{"mouthOpen", {"JawOpen", 1.0f}},
{"mouthRight", {"MouthSmile_R", 0.6f}},
{"mouthShrugLower", {"LipsUpperClose", 0.1f}},
{"viseme_O", {"LipsFunnel", 0.5f}}
};
struct BlendshapeOffsetPacked {
glm::uvec4 packedPosNorTan;
};