Hi everyone,
I’m struggling to export blendshapes (shape keys) from Blender to Unity without severe mesh distortion, and I’d appreciate your expertise. Here’s a breakdown of my pipeline and issues:
Problem Summary
- Source Data: Motion-captured facial animations (recorded separately from body animations) merged with body animations in Blender.
- Initial Approach: Used Blender’s Shape Key Editor with keyframed blendshapes.
- Issue: Unity refused to play nicely with shape key keyframes, leading to distorted meshes (example: Image 3).
Attempted Solutions
-
Bone Driver Workaround:
- Wrote a script to convert Shape Key Editor keyframes into driver bones (second armature) controlling the blendshapes.
- Expected Outcome: Avoid Unity’s Shape Key Editor incompatibility by using bone-driven blendshapes.
- Result: Bone-driven version still caused distortion in Unity, despite working perfectly in Blender (see Image 1 vs. Image 3).
-
Simplified Test Case (Cube):
- Exported a cube with:
- A) Shape Key Editor keyframes
- B) Bone driver-controlled shape keys (no keyframes)
- Result: Only the bone-driven cube worked in Unity. This suggested bone drivers should resolve the issue, but scaling this to the full character failed.
- Exported a cube with:
Current Symptoms
- In Blender: Blendshapes animate smoothly (see Image 1).
- In Unity (Static): Manually scrubbing blendshape sliders works (Image 2).
- In Unity (Playback): Both bone-driven and keyframed animations break, causing chaotic mesh deformation (Image 3).
Troubleshooting Steps Taken
- Export Settings (Blender 4.1):
- Tried FBX with/without “Apply Modifiers,” “Bake Animation,” and separated mesh/animation files.
- Tested exporting the armature as “Deform Only” vs. including all bones.
- Import Settings (Unity 2021.3.3f1):
- Adjusted rigging settings (Generic/Humanoid), enabled “Import Blendshapes,” and toggled “Resample Curves.”
- Verified normals/tangents (Image 4 shows current settings).
Suspected Causes
- Export/Import Settings: A hidden checkbox or FBX version mismatch?
- Bone Driver Setup: Are driver bones improperly weighted or conflicting with the main rig?
- Animation Curves: Could resampling in Unity corrupt the data?
Requested Help
- Has anyone successfully imported bone-driven blendshapes from Blender to Unity?
- Are there critical FBX export/import settings I might have missed (e.g., specific FBX versions, “Always Sample Animations”)?
- Could normals or skinning data cause this? (Note: Manually scrubbing blendshapes works, so they’re technically “loaded.”)
Attachments:
- Image 1: Blender working preview.
- Image 2: Unity static blendshapes.
- Image 3: Unity playback distortion.
- Image 4: Export/import settings.
Thanks in advance! Let me know if you need more details. ![]()
TL;DR: Bone-driven blendshapes work in Blender and a cube test in Unity, but full character imports fail. Suspecting export/import settings or driver bone conflicts. Need advice!




