24
$\begingroup$

I used shape keys to create a middle shape between other two. Can I now remove shape keys and 'apply' them as a modifier to the resulting mesh?

$\endgroup$

9 Answers 9

37
$\begingroup$

Try creating a new shapekey by pressing the arrow under the add/remove buttons and selecting new shape from mix:

shape key options menu

This will create a new shapekey from the current mix. You can then delete all the shapekeys, making sure you delete the new one last.

This gives you a shapekey-free mesh with the shape from the original shapekey mix.

$\endgroup$
3
  • 6
    $\begingroup$ Deleting shapekeys one by one until we have the last one is quite tedious, actually. We need an operator to simply: bake shapekey, leave final shape. $\endgroup$ Aug 23, 2019 at 4:03
  • 2
    $\begingroup$ this doesn't even seem to work any more in 2.93.8 or 3.0.0. moving the desired shape key to the top, then deleting others (including the demoted basis) until it is the last key, and then deleting it... just reverts it back to the basis. i ended up having to use Apply: Visual Geometry to Mesh. note this also applies all modifiers as well. (like the below-mentioned Oscurant tools option.) $\endgroup$
    – blr
    Jun 14, 2022 at 12:30
  • $\begingroup$ @blr 'new shape from mix' still works for me in Blender 3.2. 'Apply: Visual Geometry to Mesh' doesn't. $\endgroup$ Nov 25, 2022 at 8:23
19
$\begingroup$

You can use the Corrective Shape Key addon. It's under Community > Animation in Addons.

Once installed, just find the desired blend you want, press the black triangle in the Shape Keys panel and choose Create duplicate for editing. This will apply the state and create a new copy while preserving the old one with the keys.

enter image description here

$\endgroup$
7
$\begingroup$

Apply shape key to your mesh

This will affect all the objects on your scene :

import bpy
scene = bpy.context.scene

for ob in scene.objects:
    if not hasattr(ob.data, "shape_keys"):
        continue
    ob.shape_key_add(name='CombinedKeys', from_mix=True)
    if ob.data.shape_keys:
        for shapeKey in ob.data.shape_keys.key_blocks:
            ob.shape_key_remove(shapeKey)

Go to the script editor : enter image description here

Copy-paste the code and click on the "Play" button

enter image description here

$\endgroup$
2
  • $\begingroup$ Script fails when scene contains objects that cant use Shapekeys like Camera, Light, ... $\endgroup$
    – vklidu
    Nov 2, 2020 at 20:10
  • 1
    $\begingroup$ Seems to no longer work when tested in v2.93 (ed5507de8a25). The solution is to add , from_mix=True to the shape_key_add line. $\endgroup$
    – Irastris
    May 3, 2021 at 23:57
3
$\begingroup$

To apply a key you should just delete 'basis' in the Shape keys pannel and then delete the key itself. Then it would be applied to original mesh. It works for me

$\endgroup$
2
$\begingroup$

There is a way most people don't know.

Go to File > User Preferences > select Community supported level Object -> Category Oscurart Tools. For Blender version 2.8+ select Addons > Only Community and type in the search bar os now you should see Object : Oscurart Tools.

enter image description here

Tick it to active and save settings.

  1. Select the mesh you want to copy (no edit mode needed)

  2. Press enter to open the search function and then type mesh

  3. Make sure its typed with small letters and spelled the right way.

If this happens then you didn't select the mesh.

enter image description here

If you get this option you did it the right way:

enter image description here

  1. Select Object to Mesh

Done, now you have a copy of the mesh the way you setup the shapekeys and or pose but without shapekeys.

Note that it also applies modifiers like subsurface etc. and because its a copy you still got the original mesh with all modifiers, bones, shapekeys you started out with.

$\endgroup$
4
  • 2
    $\begingroup$ I'm having trouble reproducing this behavior .. Version? Add-ons? $\endgroup$
    – Robin Betts
    Jun 11, 2019 at 7:44
  • $\begingroup$ Thanks for the edit, still no luck, object selected, couple of builds of 279, search gives some options you're not getting, because of add-ons I've installed but you haven't.. maybe see if you still get 'Object to mesh' with all you add-ons temporarily disabled? $\endgroup$
    – Robin Betts
    Jun 11, 2019 at 20:17
  • 2
    $\begingroup$ ty for the respond. Ive looked it up again tried some enable and disable and found that there`s indeed a addon that enables this option. ive re-edit the post. hope it works now for you. $\endgroup$ Jun 11, 2019 at 21:43
  • $\begingroup$ Seems for 2.8 that useful function was removed? I can't find it in search and the only similar thing the OscurartTools context menu contains is "shapes to objects" which creates one object per shape key. EDIT: Damn, seems the tool doesn't even work anymore, since the objects that "shapes to objects" generate doesn't have the shapekeys applied. :( $\endgroup$
    – eobet
    Feb 7, 2020 at 13:19
1
$\begingroup$

I found a simpler solution for Blender 3.0

(1) Add new Shape Key from mix
(2) Press tab to go into Edit Mode
(3) With last (new) shape key selected, go to Vertex > Propagate to Shape

This will let you delete all the shape keys and keep the last shape data.

(Note that Blender 3.1+ has no Vertex > Propagate to Shape option)

$\endgroup$
1
$\begingroup$

In Blender 3.3 you can find it inside the down arrow button

enter image description here

$\endgroup$
1
$\begingroup$

In Edit Mode, select the basis (or the destination shape) and go Vertex > Blend from Shape, there you can pick the source shape in the popup, tick Add, and then you can delete or untick the shape you just applied to Basis.

$\endgroup$
1
$\begingroup$

In Blender 3.6, when you select a shape key, there is an option called "Apply Selected Shapekey to Basis", which lets you apply specific shape keys to the base mesh. I'm not sure when this was added but it seems like it wasn't in older Blender versions.

Blender 3.6 shape key dropdown menu with a red circle around the "Apply Selected Shapekey to Basis" option

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .