I made the incorrect assumption that only the bone being transformed as part of a pose may or may not be skipped based on whether or not it has an active associated vertex group. This is true for most cases, however, for metahumans, the bone FACIAL_C_LowerLipRotation is actually not a child of FACIAL_C_Jaw but rather a child of FACIAL_C_FacialRoot.
I double checked the pose asset and FACIAL_C_LowerLipRotation is in-fact driven separately. It was incorrectly being excluded from the final pose since FACIAL_C_LowerLipRotation has no associated vertex group, however, its children's bones do have associated vertex groups.
Therefore, I updated the logic to only skip posing if the bone being posed and all of its children have no associated vertex groups.
Summary
I made the incorrect assumption that only the bone being transformed as part of a pose may or may not be skipped based on whether or not it has an active associated vertex group. This is true for most cases, however, for metahumans, the bone
FACIAL_C_LowerLipRotation
is actually not a child ofFACIAL_C_Jaw
but rather a child ofFACIAL_C_FacialRoot
.I double checked the pose asset and
FACIAL_C_LowerLipRotation
is in-fact driven separately. It was incorrectly being excluded from the final pose sinceFACIAL_C_LowerLipRotation
has no associated vertex group, however, its children's bones do have associated vertex groups.Therefore, I updated the logic to only skip posing if the bone being posed and all of its children have no associated vertex groups.