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 ...
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 ...
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:
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 ...
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 ...
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 ...
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 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 ...
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 ...
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 shapeKey in bpy.context....
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 ...
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 key coordinates live in a bmesh "layer"
I have included a copy of http://web.purplefrog.com/~thoth/blender/python-cookbook/explore-shape-keys.html here:
bm = bmesh.new()
for key in bm.verts.layers.shape.keys():
val = bm.verts.layers.shape.get(key)
print("%s = %s"...
All shape keys are stored in bpy.data.shape_keys and can be applied to multiple objects. Each object possesses an attribute pointing to the shape key if it is using any. Thus
shape_key = bpy.data.objects['yourObject'].data.shape_keys
will give you access to it directly.
bpy.data.shape_keys is a bpy_prop_collection which allows access to its elements by ...
Quoting from the Blender wiki:
If you add a vertex/control point, an edge or a face in one shape, it will automatically appear in all other shapes (at exactly the same place, until you edit it).
If you delete a vertex/control point, an edge or a face in one shape, it will also be deleted in all other shapes.
So, if you modify the topology ...
You could use vertex parenting to have the objects follow parts of your mesh. This has similarities to the hook modifier.
Select the teeth, shift select the head, go into edit mode, select the target vertex (only one or three vertices can be selected, three vertices allows rotation when following) press CtrlP to parent the other selected object to the ...
The sin function expects angles in radians, rather than in degrees,
which is why the correct driver expression will be:
Here's an example of this expression driving the Z value of a cube (you can see that it does indeed get negative values as well, and oscillates between -1 to 1):
Though as you pointed out, shapekeys have a min value ...