h4lfheart / FortnitePorting

Automation of the Fortnite Porting Process
GNU General Public License v3.0
251 stars 45 forks source link

Fix unintentional pose bone skipping when processing pose assets #44

Closed RedHaze closed 6 months ago

RedHaze commented 6 months ago

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 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.