Use Blend From Shape:
Select all vertices whose positions you want to reset,
Execute Blend From Shape, accessible from W, Ctrl-V or Mesh > Vertices menu,
Set "Basis" as shape key to blend from (by default),
Set blend factor to the maximum value 1.0 (by default),
Uncheck Add, so only values from "Basis" will be blended in, effectively reverting all selected ...
Try creating a new shapekey by pressing the arrow under the add/remove buttons and selecting new shape from mix:
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.
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.
My first choice would be to run the simulation for the entire animation, but the idea of using the MDD exporter could be applied a bit differently than the example you gave.
Export the cloth simulation to an mdd file.
Remove the cloth simulation from the object and add a Mesh Cache modifier. Set the File path to the mdd file you saved previously.
Just by going by the description of your process for inserting keyframes it sounds like you are only creating 1 keyframe.
The process to animate a property is to:
Set the value of the property (in this case the 'Value' property of the shapekey)
Insert a keyframe by pressing I with the cursor over the Value property.
Move to a different frame in the ...
You don't need to delete and recreate the entire shape keys, just fix the points that have changed.
In edit mode, Mesh -> Vertices -> Blend From Shape is useful here. It copies the positions of selected vertices from one shape key to another, so you can select just the vertices you've changed and copy them to keys where they're broken. You generally want ...
Select the profile mesh, run script. Creates a copy for each frame from scene frame start to scene frame end.
A simple edge loop animated with follow path constraint, scale, and a mix of two shape keys. BMesh.from_object gives a mesh snapshot at that frame (Apologies for low quality gif)
from mathutils import Vector,...
Shape keys work by smoothly, but blindly, moving each vertex from one location to another. It's likely that as each vertex is blindly trying to get to its destination, the intermediate result is this shrunk version of your mesh.
Shape keys are "dumb." They do absolutely nothing to maintain volume, do any kind of skinning, or anything "smart" like that. It's ...
There are at least two ways to create and animate facial expressions, not even involving python (although it's possibly to automate this):
Shape Keys - allows you to deform mesh vertices and blend multiple "states" together and also animate
Armature - a skeleton to control the mesh, with strong control over deformation using vertex weights, but also more ...
I assume you're talking about the blendshapes like these available in Maya (example tutorial: https://www.youtube.com/watch?v=WtfYPxhLO30). If so I'll show you how to do it in Blender on the same example.
Create a mesh, duplicate it 3 times and make some deformations on the duplicates.
Select all the deformed objects and then the base object. Then click on ...
Morphing objects with different vertex count is impossible AFAIK with the blender tools, unless you use a scripting. Here's a temporary solution though. It uses a to sphere tool.
I have three objects here with a different vertex count. I'll use a sphere as a midpoint for all transformations.
Add a shape key (Key 1) and set its value to 1.000. Enter Edit ...
Yes, you can definitely do this with drivers. Here's how:
In this first image you can see that I've created 2 spheres, each with a Basis shapekey. Sphere 1 has a second shapekey called Sphere1Key, which changes the sphere to a fatter shape. This key is animated (keyframed) from 0 to 1 over 50 frames. You can see the value field is green due to the keyframed ...
This answer comes from a previous one here Cannot Apply Array Modifier. I simply add some more details in the explanation and a way to do it for all shape keys at once.
Here is a simple shape, which has a subsurface modifier and shape keys :
Make one copy of your initial object for each shape key and set for each the shape key to "1" :
Select this copies ...
You want Shapekeys in this case.
First add a basis key as shown below.
Next, add a second key, and then go to edit mode, add edit the object to the second shape with the second key selected.
Here is the result:
key_block names can be used for different shape key lists, which means same shape key name but different objects. Every object uses its own action, thus you need to use the action the object references (Object.data.shape_keys.animation_data.action). See:
The basic idea is to open a socket, poll the data and apply the received values to the shape keys:
# open network socket
port = 13001
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print "waiting on port:", port
# poll data (could use a timer)
data, addr = s.recvfrom(1024)
# set float value from ...
Iterate through the shape keys and check the current state of the mute attribute. Since it is a simple bool property which only can be True or False, I'd suggest write a toggle in order to enable or disable all shape keys of the selected object per execution:
# iterate through the shape keys of the active object
for shape_key in bpy.context....
You can create shapekeys directly as well as set the position of each vertex for each shapekey without using edit mode or even changing the active object. An object has a shape_key_add method that you should use instead of the operator, one advantage of the object method is that it returns the shapekey it creates, so you don't have to use an index into the ...
Found an imperfect solution.
Go to Edit mode.
Select the Vertices you wish to reset.
Select the shape key you want to modify.
Use "Blend From Shape" from the specials menu (W key on the 3D view while in edit mode)
In the "blend from shape" tool properties select BASIS shape key.
Blend to 1.0
Turn OFF the "Add" checkbox
That should cancel out the effect of ...
You're left-clicking. Blender uses Right-Click to select. if you don't like this, you can change it in your user preferences (Ctrl+Alt+U), though there are some advantages to just getting used to it so you can follow what everyone else is doing with Blender.
I see your question has been answered already, and you probably no longer need help with this issue, but you (and others) may want to know that there is a very efficient way to create text like that in your reference image.
(The following instructions assume your text reads from the Top View)
Give the Curve or Text object some thickness
If it is a Text ...
Let's say you have 3 shapekeys: Base, new Face, expression.
The first is the old mesh, the second the new modified mesh, the third the old expression movement you want to preserve.
Select the object and the basis mesh, enter edit mode, select all vertices, Ctrl V "Blend from shape": in the toolshelf (T) in the bottom left of the 3D view you will have to ...
Select both objects then in the mesh properties under ShapeKeys you will find an option to "Join as Shapes" in the menu under the add/remove buttons. This makes a shapekey in the active object that matches the other object.
With the shapekey selected in the list you can animate the value to morph between the two shapes. Either press I while the mouse is ...
You may use shape keys to make such animation, but it demands joining the objects together.
Join the meshes with Ctrl+J. Connect the meshes' vertices in Edit Mode. Try to keep the topology clean. After making it one solid mesh add two additional edge loops (Ctrl+R) and place them as pictured below. These will be helpful for further creasing.
Go to Data ...
For an ultra-fast driver for corrective shape keys based on the angle between two bones, you can use this one:
The driver type is Scripted Expression, with this line (depending on your Blender version):
poseBones[A].matrix.col * poseBones[B].matrix.col
(Same line as above, but replace * with @)
(In order for this ...
This answer targets a beginners level and will include lots of lengthy explanations.
I understand that this answer doesn't utilize drivers as requested, but for this example a simple python script is very easy to produce and maintain, which is why I wanted to add this method.
A slight problem is, that a change of position implies a change of viewing ...