SubSurf applying in Objecs with Shape Keys (to use in BGE)

Yap, SubSurf does work in BGE… but, for the moment, it consumes so much CPU. Impossible to use in a game or digital puppeter, for example. And it’s impossible to apply a modifier in an object with Shape Keys. So, this is a manually way to do it.

For example, we create a cube, in edit mode, subdivide it edges, delete right verts. Then, we apply a Mirror modifier and a SubSurf. Now, we start modelling the Basis. When finished, we create an armature with some bones and we paint the Vertex Weights. Now, we make two Shape Keys, plus the Basis and modify them as we need (we can use Armature Editing Cage, too).

Now, we have something like this:


Now, we want to get rid of Mirror and SubSurf modifiers. If we try at normal way, we have a “Mirror cannot be applied to a mesh with shape keys”. So, we have to:

1.- Duplicate the Object “A” to “B” and remove Armature modifier to that.
2.- Select “B” and delete all Shape Keys, leaving the Basis to be the last to be deleted. Now, we have no Shape Keys.
3.- Now, apply Mirror modifier and then, SubSurf to “B”.


4.- Select “A”, and choose a Shape Key “Key 1”. Click in the pin button “Always show the current Shape for this Object”. Now, we can see the object with this Shape Key at 100%.
5.- Duplicate “A” (to “C”) and convert it to mesh using Alt-C “Convert to - Mesh from Curve/Meta/SurfText” (*)


(continue in the next comment)

6.- Select “C” (as selected) and then, “B” (as Active).
7.- In Properties - Object Data - Shape Keys, we click in the down arrow and, in the menu, we click in “Join as Shapes”. This will create the “Basis” with the original shape and a second shape key, with the same name as the object. Now, we have to change manually the name of the Shape Key.


Do the same with all the Shape Keys, from point 4 to 7.

Now, object “B” has Armature modifier only and all the shape keys. The vertex groups were respected and correctly done when Mirror and Subsurf were applied.


If we want to make a new Shape Key, we can modify the first object “A”, using SubSurf as a modelling feature and use the same technique from point 4 to 7.

(*): in Console, we have this error (Blender 2.66 stable): “DM_to_mesh: YEEK! this should be recoded! Shape key loss!: ID ‘MECube.005’”. Maybe something TO DO, but, for me, it’s ok. If we converto to a mesh… it should lose shape keys.

Thanks! What an useful and intricate tutorial.
Posting this to every forum I’ve been in my past one hour unfruitful search.


I have over 40 shape keys… I didn’t know you needed to apply Subsurf first and now I can’t export this thing with the shape keys on it. Although I appreciate the info, this process takes forever! Why on Earth can we not apply subsurf to an object with shape keys?!? :frowning:

Depends on your coding skill, you can write a script to do that.

No, I don’t want to spend a lot LOT of time doing that (because I don’t have skill).

It would be cool if we had something like Action Scripts in Photoshop where you could record actions and just batch process stuff like this.

I encountered this problem as well. I wrote a script to apply modifier on object with shape keys.
Here is link: https://github.com/przemir/ApplyModifierForObjectWithShapeKeys

Sa weet, that worked like a charm…

@mattgolfs, did you mean the script from @przemir? cos I didn’t test it.

@mattgolfs, did you mean the script from @przemir? cos I didn’t test it.

Hey Mario,

Yeah, it was the script that @prrzemir wrote. I tried it on a girls head with a pony tail that had multiple modifiers on 4-5 different
object. Worked great.

…thanks mario, nice info! tested the script from przemir with 2.76 with no luck…

J_Ott, I don’t have the time to test it right now, I’ll do it when I can.

Meanwhile… good job! Thanks for share!

Awesome script and a life-saver, however it removed the drivers driving my shape keys :frowning:
Any way to keep the drivers in tact?

I don’t believe drivers work in BGE at all.

needed for use in FBX export to UE4 to drive my morph targets