Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[SOLVED] Do blendshapes need to sum to 100?

Discussion in 'Asset Importing & Exporting' started by bcroughan, Dec 2, 2021.

  1. bcroughan

    bcroughan

    Joined:
    Nov 12, 2021
    Posts:
    2
    I have a model I'm exporting from Blender that has 3 blendshapes (in blender called shape keys). In Unity, if the blendshape values sum to 100%, the model looks OK and the resulting mesh shape is the correct blending between the three shapes. However, if the weights don't sum to 100% the vertices are each offset seemingly at random so that the model becomes a big spiky mess. In blender I can individually move the shape key weights from 0 - 1 and any combination looks OK.

    Why is Unity messing up when the weights don't sum to 100%? Is this a bug, or am I missing some constraint I should know about?

    I've tried removing the drivers on the shape key values in Blender, and either exporting animations or not exporting animations, all of which give the same result. The same thing happens if I directly use the .blend file asset instead of the fbx exported file. I've toggled I think every option under the asset import inspector menu. I've also successfully exported a different blender model with 2 blendshapes before without any issue.

    To illustrate, here are the screenshots where I'm modifying the blendshapes (which you can see on the right in the inspector). Thanks in advance!

    Screenshot at 2021-12-02 14-33-45.png Screenshot at 2021-12-02 14-33-56.png Screenshot at 2021-12-02 14-34-05.png Screenshot at 2021-12-02 14-34-20.png


    Versions:
    Unity 2020.3.22f1
    on Linux (arch)
    Blender 2.93.5
     

    Attached Files:

  2. bcroughan

    bcroughan

    Joined:
    Nov 12, 2021
    Posts:
    2
    Solution: delete the shape key drivers in blender

    I tried deleting the shape key drivers again in Blender, then re-exporting, and this time it worked. I thought I'd tried that before but maybe I forgot to re-export or something... I'm not sure how to delete threads, so I'm marking as solved and putting the solution here in case anyone else runs across the same issue.