Face BlendShape Fix is a Unity tool that bakes correction into target BlendShapes. It detects current BlendShape weights on the renderer and applies a reverse correction when building the avatar so the final shapes behave as intended. Built on the Non-Destructive Modular Framework (NDMF) for fully reversible builds and real-time preview.
When avatar faces are edited (for example, closing eyes or opening the mouth), existing BlendShapes can appear broken because they were authored on the original mesh pose. This tool subtracts the influence of currently-active BlendShapes, producing corrected deltas that behave as intended.
com.triturbo.face-blendshape-fix/
├── Runtime/ # Runtime components and data types
│ ├── FaceBlendShapeFixComponent.cs # Main MonoBehaviour
│ └── Categories/
│ └── BlendShapeCategoryDatabase.cs # ScriptableObject for categorizing shapes
├── Editor/ # Editor-only processing
│ ├── NDMFPlugin.cs # NDMF plugin registration
│ ├── FaceBlendShapeFixPass.cs # Build pass that bakes corrected shapes
│ ├── MeshBlendShapeProcessor.cs # Core mesh processing logic
│ ├── PreviewMeshBuilder.cs # Preview mesh generation
│ ├── FaceBlendShapeFixPreviewFilter.cs # NDMF preview integration
│ └── Inspector/ # Custom editor UI
│ ├── FaceBlendShapeFixEditor.cs # Main inspector
│ ├── TargetShapeArrayDrawer.cs # Target shapes list UI
│ ├── BlendDataDrawer.cs # Blend data visualization
│ ├── BlendShapeDefinitionDrawer.cs # Definition list UI
│ └── ...
└── package.json
This tool subtracts the influence of currently active BlendShapes from target shapes, producing corrected deltas. This fixes shapes authored on the original mesh pose after edits like closed eyes or open mouths.
m_TargetShapeName: Name of the BlendShape to correctm_CategoryName: Category for grouping in UI (empty string = uncategorized)m_BlendData[]: BlendShapes to subtract (inverse blend)m_AdditionalBlendData[]: BlendShapes to add (additive blend)m_TargetShapeType: Eye/Mouth categorization (affects left/right weight handling)m_UseGlobalDefinitions: Whether to use global definition weightsm_Protected flag.BothEyes, LeftEye, RightEye, Mouth, OthersUses NDMF (Non-Destructive Modular Framework):
NDMFPlugin registers the plugin in BuildPhase.Generating.FaceBlendShapeFixPass runs MeshBlendShapeProcessor.BakeCorrectedShapes() to create corrected mesh.FaceBlendShapeFixPreviewFilter: NDMF IRenderFilter for live previewShapeBlendPreviewNode: Handles per-frame preview updatesPreviewMeshBuilder: Creates temporary meshes with .inv.L/.inv.R and .add.L/.add.R shapes for real-time previewThis project is licensed under the MIT License.
com.triturbo.face-blendshape-fix
未設定
0.1.1
2022.3 以降
なし
なし
未設定