Select Mesh from the pop up menu then Relative Keys from the next pop up menu. A line will appear in the IPO view. This line is your neutral pose. Now, figure out how many key frames you will need. If you want to move both eyebrows up and down then you will need 4 additional IPO lines. Press the up arrow cursor key to move to forward 10 frames. Press the I key while over the 3D View and select Mesh. Repeat until you see a total of 5 lines in the IPO window.
Right click on the Neutral pose line in the IPO window. This sets the mesh to the neutral pose. Now Right click on the next line up in the IPO window. Enter edit mode in the 3D View and move the vertices as desired in this case you will be moving verts to get the left Brow up pose. Press Tab to exit edit mode.
Now right click your Neutral pose line in the IPO window. You will see your object in its neutral state. Right click the next line up and you should see the changes you just made to your object. Set up all your mesh poses following the above instructions. Click on the arrow next to the Sliders text. This will give you access to the pose sliders. Move to frame 20 to start your action. Move the pose slider but release the mouse when set to 0. Now move 10 frames forward and move the same slider to 1. Use this method to set up all your actions c.
Remember to add a 0 value frame to end the pose. Right click the spline you want to edit and press TAB to enter edit mode. It is done so that your pose lines are separate from each other. This will give you weird results. Although sometimes they can make your animation more interesting. To fix this edit the IPO, select the point where the line dips below zero and press the V key. Do the same at the other end of the curve if needed. Click here to read the advanced animation tutorial guided tour.
This allows you to interface with Blender through the Python programming language. The Python interface allows you to control almost all aspects of Blender, for example you can write import or export scripts for meshes and materials of various formats or create procedurally generated textures. You can also create complete animations procedurally and write scripts to modify existing scenes in any way you can think of. On top of all, you can easily create a user interface for your script, transforming it into a generally usable tool. Download Python Scripts from the Blender site here.
This forum on blenderartists. Scripting in the older 2. Python is a powerful, high-level, dynamic language. The version of Python used in Blender 2. If you are unfamiliar with Python, start with the Python book. If you are familiar with older 2. If you are familiar with Python scripting in older versions of Blender, be aware that 2.
Open a new, default Blender document. Perhaps increase its height to let you see more lines at once. In fact what you have here is an iterator ; to see its contents, just do the usual Python thing and convert it to a list. Try entering this:. The Vector type comes from the mathutils module provided by Blender. But unlike bpy , this is not automatically imported into the Python Console.
Note the doubled parentheses: mathutils. Vector takes a single argument, which is a tuple of X, Y and Z coordinate values. You should have seen the cube jump to a different position. As soon as you do this, the cube will jump another step, like before. The contents of the bpy module are divided into several submodules, among which are:. The module mathutils defines several important classes that are used heavily in the rest of the Blender API. Blender is not just useful to create complete animations, but it's also a great modeller. You can build your complete 3D scene in Blender, and then export it to a useful format.
In fact, you can use it for much more, for example I was using it as a level editor for a freeware 2D game someone else made. There was a short deadline for the game to be finished, and 2 weeks before that deadline, there still was no level editor for it. It had a custom ASCII level format, consisting of lists of materials, vertices, triangles and objects. So, remembering the Blender Python exporters, I volunteered to write an export script for Blender, so it could be used as level editor. And it worked out very well, Blender can be completely used as level editor for that game now.
In this tutorial we'll learn how to write a simple Python export script for Blender. Without requiring previous Python knowledge, it will explain how to query the objects in your scene, and how to write them to a file. It will also demonstrate the usefulness of export scripts, by showing how you can process the data while exporting, so you can achieve things that would not work by using any other existing format.
Before we can export something, we must know what to export. It will list all the things currently known to Blender. Now, we want the same information from a script. Click the editor selection button and from the popup menu choose Python Console. Now, you are ready for the big moment, you are about to execute the first Blender scripting command. Now, what just happened? The variable given to "list" in "list bpy. The dots separate different things. The first, bpy , means to use a function from the bpy module. And finally objects is an iterator of bpy.
The list function is used to loop through all data in bpy. In our case, this is a Camera, a Cube, and a Lamp. To get more information about an object, you can use the object name as a key in bpy. We just assigned the three objects to three variables, camera, cube and lamp. To see the contents of a variable, type just its name:. Sometimes it's useful to use Python's dir function to get more information about an object.
For example. Quite a lot. But don't worry, soon you will know how to use all of them. You also may want to find out the type of something, which you can do like this:. In this case, just typing "cube" already displays the type, but from within an actual script, you would use type. Something else which can be useful is viewing the documentation of Python objects. To do so, use the help function on a variable or object. This will print the documentation of the bpy. Of course, an easier way to view the documentation is the online HTML help. If not, you should find it also here:.
In the documentation, click on bpy, then on data and you can see more examples. Using the documentation will get absolutely vital whenever you need to do something in a script not covered in a tutorial.
And you will need to do so, else you wouldn't want to learn scripting at all. Another resource you will need, depending on how far you will go with scripting, is the Python reference:. For this tutorial, maybe read the "Tutorial" section in the python docs, but you will understand everything without doing so.
It will tell us that the cube really is a Mesh object in Blender. Look up "type" in the online docs. Since the variable cube holds an Object, and "type" is an attribute of that Object, click on Object. There you find its "type". Every Blender object has data assigned to it, depending on the type. In the case of a mesh, the data are of type Mesh. In the documentation, go to the top again, and look for the Mesh module. It will contain documentation for the Mesh type. You can also try. The first line will list the 8 vertices of the cube's mesh.
The second line will list its 6 faces.
Note: in Blender 2. To get a member out of a list, you specify the index in square brackets, starting with 0. This will assign the first vertex of the cube to the variable v. By now, you already know how to use dir to get a list of possibly interesting things in v, find out about its type with type , and where to look for the API documentation. This will display the 3D coordinates of the first vertex. Now, what if we want to know the coordinates of all vertices? We could of course assign them all to a variable, but the real way to do this is using a looping constructs.
There are numerous ways to do this, but one simple way looks like this:. The for variable in list: construct assigns each element of the list to the variable in turn, and then executes the commands after the colon with the variable having the value of one particular list element. In a real script, you will have much more than a single command after the colon - so you would write them in the following lines.
You can write scripts either in an external text editor, or in Blender's built in text editor. If you want, you can enable line numbers and syntax coloring with the buttons at the bottom. As name choose something with the extension. Put it into Blender's user scripts path. NOTE: For version 2. More info: [  ] Blender 2. Try exporting any scene with it. It should open the file chooser dialog, and after you select a file and press the "Export" button, write a list of all objects in the scene into it.
There will be one object per line, with the type, followed by a colon and the name. How does it work? If you look at the script, you probably already know. But just in case, let's look at the script line by line. The first line contains this:.
It tells Blender that this is a Blender script, and therefore it will consider it when scanning for scripts. Next simply follows a string, enclosed in triple quotation marks, so it can span multiple lines. It contains four items, which Blender uses to place the script into its menus. The name, group submenu name , and tooltip, all enclosed in single quotes. And the Blender version this is for. Remember how we said all functions from the bpy module start with "Blender.
So the above simply allows us to use the functions from the Blender module in our script. This defines a function in Python. The syntax is def name parameters :. In our case, the name is "write", and we have one parameter, called "filename". Here we open a file for writing the "w" , with the name passed to the function filename. The python function "open" will open the file, and return a reference to it, which we store in the variable "out".
These three lines are our real export script. You already know what the first line does - first we get the current scene, then get a list of all objects in that scene, the for loop is assigning each one in turn to the variable "ob". The second line writes to the file - first the type of the object, then the string ": ", then the name of the object, and finally a newline. This is where execution of the script starts. It is simply a call of a Blender function look it up in the API docs , which opens the file selector. It will display an "Export" button, and when the user clicks it, our function "write" from above gets called and is passed the selected filename.
This script isn't really very useful yet, but it shows the basics.
Pick the name of the first walk cycle. The general structure of a typical Bone, containing a " Head ", " Tail " and " Body " - note that although both 'Head' and 'Tail' can be selected independently of each element, the body cannot The different 'display' types for Bones - the default " Octahedral ", " Stick ", " B-Bone ", " Envelope " and " Wire ". Rune Arleth November 1, You rock! If you don't do this, only this action will play. Also, some kind of poll would be a better way to access it, maybe a poll for Blender Dev Fund and Blender Cloud donors.
You should now be able to e. Hint: They are just like objects, try to find them in the API docs. In the next section, we will learn how to export additional information about objects to our text file. Our export script lists the type and name of every object, but that's not very useful yet. If we want to load the exported data in another application, we need more. Let's try to export a mesh object in the OBJ format. Here is a simple obj export script that exports a selected mesh object, used to export the OBJ file above.
This script will export an OBJ file that can be read by many applications. Let's look at what's going on. Here we are getting the object you last selected in the current scene. This will raise an error if there are no selected objects, but its an easy way to test a new exporter. This gets the objects linked datablock. At the moment we don't know its a mesh, another case where error checking would need to be added. In the OBJ format each face references a number of vertex indices.
For every face we have a line starting with "f", then loop through the vertices in the face. Just as mesh. This is because with the OBJ file format the first vertex is indexed at 1, whereas with Python and Blender the first item in a list is 0. A new line is written so the next face will start on a new line. Importing objects into Blender is not that different from exporting.
However, there are a few additional things to take care of. Firstly, all references to "export" in the header should be changed to "import". Secondly, instead of simply writing out data that Blender provides to us, we are responsible for giving data to Blender and ensuring that it is properly formatted. Although Blender is flexible, allowing us to ignore things like vertex indices, we do need to be careful that we do things in a sensible order. Additionally, there is a bit of housekeeping to deal with. We should be in edit mode while modifying the mesh data.
We also need to link up our newly created data to the scene, after it has been properly constructed, so that Blender can see it and maintain it. This makes it visible to the user, as well as ensuring that it gets saved along with the scene. Here is a simple script that can import an OBJ file created by the export script.
This will load an OBJ file into Blender, creating a new mesh object. Let's take a look at the more interesting portions. Finally, we attach the new object to the current scene, making it accessible to the user and ensuring that it will be saved along with the scene. We also select the new object so that the user can easily modify it after import. Copying the scenes layers ensures that the object will occupy the scenes current view layers. Now the finishing touches.
We turn off the wait cursor. We also redraw the 3D window to ensure that the new object is initially visible. If we didn't do this, the object might not appear until the user changes the viewpoint or forces a redraw in some other way. A Blender document can contain text blocks , which are not the same as text objects in a 3D scene though the former can be converted to the latter. Besides generating text objects, a text block can serve any purpose you like; for example, use it to pass workflow instructions to a colleague along with the document; display a copyright or help message in the initial layout that a user sees on opening the document; or hold a Python script that can be run by the user to perform some useful action related to the document.
Text blocks are edited in the Text Editor window. The Text Editor also provides commands to load the contents of a text block from an external file, or save it to an external file. And also execute the text as a Python script. Split the 3D View in two vertically. Change the type of one side to a Text Editor window.
Unlike the Interactive Python Console, nothing is automatically imported for you. So as in any other Python script, you need to mention every module you want to access. Let us write a script that inserts a new mesh primitive into a Blender document, namely a tetrahedron. Or in Python:. In your 3D View, get rid of any default cube to avoid it obscuring things. If there is any error running the script, Blender will display a cryptic message to let you know. For example, the following simple one-line script.
On Windows the message appears in the console window. By hunting around in the appropriate place, you should be able to find the full Python traceback:. See saltshaker a basic but functional Python script for Blender. The page includes details of how it was made. Often, your script will need to get information from the user, such as parameter settings, before performing its action.
You can do this in two different ways: either present a modal popup that the user has to deal with before doing anything else, or alternatively you can take over the entire Scripts Window with a custom display that the user can freely switch to and from while doing other things. The simplest way to add a GUI to your script is to pop up a simple menu with some items to choose from. Displaying a menu is as simple as calling Blender.
The value returned from the call will be the index of the selected menu item starting from 1, ignoring the menu title , or -1 to indicate that no selection was made. We will use the menu selection to negate a scale factor which will be applied to the Z coordinate of the vertices of the tetrahedron. But only the last vertex has a nonzero Z coordinate, so this is the only one that needs a change in its computation. So the body of our script now looks like this:. It is very easy to create a GUI for your script, and that way make it easy to change aspects of it for everyone.
However, this command will NOT work by itself!!! You first need to define these 3 functions. Inside this function we will draw the GUI. Here is an example of a drawing function we can use. It will clear the current window. And the next command will draw a button. Note that the first number in the command, '1' identifies the button as button 1. We will refer to this button later. Next, we will define the event function. The code of a key pressed on the keyboard is passed into the function as the variable evt.
Next, we will define the button function.
This function will perform an action if the button is pressed. If it is pressed, we will move the selected object in the 3d window back to the centre and redraw the screen:. That's it!!! To enter the script yourself, type the following into the Text Editor window in Blender, and then press alt p to execute the script. Here's the entire script. Everything after the hash is a comment and can be left out.
I changed "Blender. This section will show you the Animation system as it is in Blender 3D. Most of the features will be explained and some tutorials will follow. It is assumed that the user has a good understanding of Blender here. Welcome to the wonderful yet complex world of computer animation! Through these pages I will try to show you everything old and new about the new animation system in Blender 2.
But, before we get started, there are some basic notions about datablocks you should know. Animation in Blender is based on the fact that you have something moving in a Blender scene. For example, a ball bouncing on a floor plane:. The only goal of an object is to hold the whereabouts of the data you want to see in your scene. It also holds the object instance's properties such as "does it have soft body or particle options, and do we draw its name? An object links to all of the data you can see in a 3D view such as mesh , curves , nurbs , lattices , armatures , metadata , the empty property, text, camera and lamps.
So the ball you just added to the scene is in fact a mesh, linked to an object that is in turn linked to the current scene. Now there are also data blocks you can't see in 3D view, such as material , texture , Ipo , action and image. Instead, you have a special window in which to edit them. This is the idea behind the Blender interface, wherein each data block has a window for you to edit the data.
So back to this bouncing ball: It's also moving across the plane! So an ""Ipo"" data block is linked to the object, telling it where in space the object will be at each frame of the animation. This Ipo is editable in the Ipo window when selecting the ball in 3D view. In Blender, the work you are performing is always on the currently active selected object and data.
Again, you are working in the scene "Scene", with an object "Sphere" linked to the mesh data block "Sphere" and the Ipo datablock "ObIpo". Why is that important? Because from there, you can start playing with the datablocks, linking them all around your projects to reuse old work. For example you can create more than one Ipo, and use the one you want, or tell more than one object to use the same Ipo, or to use the same object in more than one Scene.
Where you can tell an object to use another mesh's data block for Ipo, material, texture or image. There is always a little dropdown menu button for you to select an already-existing data block. Now, when it comes to animation, you have to understand the way Blender handles data very well, because using Blender is always a matter of plugging data blocks together when working with Ipos, actions and NLA objects. Here I'll show you all the stuff you need to know about the interface when animating.
Where is it? Why use it? The Armature Object in itself is a tool for the animator to move an object or group of vertices in a reliable way. An armature is made of bones, which can be parented to each other, or connected to each other. It was built with the idea of a skeleton in mind. And in fact, in the 3D world with animation inclusive, its considered to be the skeleton.
You'll then enter into Edit Mode where you can add or move bones to build your default rig. An armature has 3 states. Note: The following 3 pages of this tutorial contain screenshots and discuss techniques that are only available in Blender 2. Refer to the Blender 2. When you add a new armature, you'll enter editmode automatically. Now you've got your armature , but it's not much use until you add some more bones to it.
Think about your body for a moment -- you've got this thing you call a 'skeleton', which for our purposes corresponds more or less to an armature object. Your skeleton consists of a number of bones about , to be precise , but generally these are not independent from each other. If you move your femur the bit of your leg between your pelvis and your knee then conveniently the rest of your leg moves with it.
In this way, you build up a hierarchy of bones, making animation much simpler. Editing an Armature Object gives you the chance to add, move or connect bones together. Whilst in edit mode, you will see all of the bones within the currently selected Armature. When you create a new armature in Object mode a single bone will automatically be created for you, centered at the cursor position. Blender will then switch straight to Edit mode to allow you to add further bones.
At this point we're just defining the default 'rest' position of the bones and specifying how they connect together -- you'll have to wait until the next chapter to find out how to create specific poses. Having created and selected an armature in Object mode, you can add and modify the bones in this armature by switching to Edit mode. In many cases, rigs are symmetrical and can be mirrored in half. In these cases, it is helpful to use a left-right naming convention. This is not only useful for your own sake, but it gives Blender a hint that there is a pair of equivalent bones, and enables the use of some very cool tools that will save you some significant work.
Now we come to the X-Axis Mirror Edit feature. This handy little number allows you to define only half of your character and tell Blender to automatically repeat the same actions on the other side. It's cool, it's simple and it saves a whole lot of time. We will create a little guy out of sticks for the occasion -- don't worry about the geometry yet. Posemode is a very versatile place where you Animate your character, create and manage constraints and apply your rig to your character.
Contrary to Editmode, Pose mode isn't an obligatory mode where you can't do anything else. It's now part of the UI like any other object. A good example of it is you can be in posemode and still select another object. When you are done building your armature, you can go into Posemode to add constraints and start creating actions. There are also some new tools accessible in Posemode that you may want to look at.
You can easily get into "pose" mode by selecting the mode from IPO type list box in the left portion of the lower screen. There are two ways to tell Blender which vertex will go with which bone: Vertex group, and Envelope. There is also a tool useful when animating which is part of the mesh object: the Shape key, to create a preset deformation. For example: deform the face to look like a smile. As such, we should use it over existing methods to pair mesh and armature, as the modifier stack is optimised and simple to use.
Note: You don't need to parent the mesh to the Armature anymore. The only case you could need to do this would be animating the Armature object itself. Then the mesh should also follow the armature. The clean way to do so is to go in the Editbutton window F9KEY and press "Add modifier" in the Modifier panel, then select "armature" in the dropdown menu. Then you'll get a new modifier "Armature" like the previous picture. Change the OB: field to the name of the armature object that should control the mesh.
This step is very important! Without the armature object being defined, Blender won't know how to modify the mesh since there may be multiple armatures within your world. To limit the effect of the modifier, you can enter the name of a vertex group in the VGroup : field.
This will minimize unwanted distortions in very dense meshes. Parenting the mesh to the "armature" will create an old-way link, still visible in the modifier stack, but not very useful. You should not use that kind of connection when you see that. Press "make real" to get a working modifier. This way is not recommended but can still be useful. The workflow is very simple. When you are done with the envelope's tweaking and you have gotten the best out of it, delete the Armature modifier and parent the mesh to the armature. Select Create From Closest Bones.
Now all the envelope influence are converted to Vertex Groups. This way you can further tweak influence zone using Weight paint. More info in the following pages. Envelope is a new visual tool to help you rig your characters faster and easier. It can often save you a lot of time. Each bone has a special area around it, allowing you to tell Blender what part of the geometry will follow each bone. This zone is customizable so you can move, scale and blend them together. This area in the middle will assign a weight of 1 to all vertices contained in here.
All vertices with a weight of 1 will completely follow this bone. The white transparent area around the center is a zone of influence which loses power as you go away from the center. It's real time, and lets you tweak the influence while you animate. So if you notice there is a vertex not following in the new pose you just did: Just select the bone it should follow, and scale the zone a bit until the vertex goes back with his friends.
Enabling the Deform button will tell Blender to deform geometry with this bone. It's useful because in a more complex rig not all the bones are there to deform, some bones are just there to move other bones. The Mult option will tell Blender to multiply the weight it gets from envelope let's say 0. The result will be 0. This way you can give custom shape to your envelope.
More on weight paint on next page. In this example of a formerly flat surface you can see that all the selected vertices are not following the bone when it is moved upwards. This is because I painted a weight of 0 on them. In weight paint you'll see nothing. But just the fact that they are part of the group with a weight of 0 will make that possible. If Mult is off and you have both a vertex group and envelope, Blender will add value.
If you have vertices assigned to multiple groups for example, in a character you may have some vertices in the "upper arm" vertex group that are also in the "lower arm" vertex group , you can assign weights to those vertices to specify how much relative influence the different groups have.
A weight can range from 0 to 1 and is assigned when you create the group. As mentioned above, you may often find that you have some vertices that are assigned to more than one vertex group. By assigning weights, you can specify the relative influence each of the vertex groups have.
You have two options to assign weights: 1 manually selecting each vertex and typing in a weight value, or 2 use weight painting to - you guessed it - paint weights. Weight painting lets you paint weight values on the mesh like you were painting on a wall with a can of spray paint. It is a Mode of the 3Dview and is accessible in the 3Dview's header in the dropdown menu with Objectmode, Editmode and such. In Weightpaint Mode, the first thing you'll notice is the blue color of the mesh. Blender provides an easy way to quickly visualise the weight value of each vertex.
This is the color spectrum used:. When you are in Weightpaint mode you can paint all over the mesh as if it was a solid object on your desk. The paint only works on vertices so don't try to paint in the middle of an edge or a face, it will never work. To help you in your task there is a new panel in Editbutton:. So what use are vertex groups in rigging? You can specify what vertices will move when a bone moves. When you want to paint a mesh for an armature, do the following:. You'll notice that, if there is no group created when you first paint, Blender will create a group for you, and give it the same name as the selected bone.
This is important, because when the "Vert. Groups" toggle is on in the Armature modifier, Blender will try to match bones with Vertex Groups based on the same names. What happens when we try to blend groups together? See this simple example of 2 bones trying to bend a tube:. The Groups are painted so the body of each bone is in red and the zone between the two bones are gradually going from 1 to 0.
This will bend nicely. If, for a special reason, you want a side to react differently, you can always move the bone while painting and try the new modification you just did. By the way, having Subsurf on while painting can be very cpu expensive. It's a good idea to turn it off. Armatures are used for many purposes, but one common use is to deform a mesh with an armature.
This example will demonstrate how weight painting can improve armature-deformed meshes. In this example, we have two objects; each has an armature modifier applied. The one on the left is going to be the "before" and the one on the right will be the "after". For the object on the left, take a look at the vertex groups as initially assigned from left to right: Bone1, Bone2, Bone3, and Bone4.
These same vertex groups were assigned for the object on the right:. Important: A bone in an armature will only act upon those vertices that are in a vertex group with exactly the same name as the bone. If you enter Weight Paint mode CTRL-TAB with object selected right after assigning the vertex groups, you can see that the vertex groups as assigned all have a weight of 1. OK: both objects have vertex groups assigned and they have armature modifiers.
We haven't made the objects different from each other, so after moving their armatures in the same way. That's good.
rapyzure.tk: Death to the Armatures: Constraint-Based Rigging in Blender eBook: Christopher Kuhn: Kindle Store. Death to the Armatures book. Read reviews from world's largest community for readers. A guide to rigging hard-surface models in Blender.
Shape keys are modifications of the original mesh that you can animate and mix with each other. The idea behind Shape keys is simple. The basic, undeformed mesh you start with is the "Basis" shape. You can add a variety of different versions of this shape and store each one as a Shape Key for use in an animation other software sometimes refers to these as "morph targets".
When I play with the influence, this key has over the basic shape, the result will be as follows 0. If I play with the slider from 0 to 1, Blender will gradually apply the Key 1 shape with a constantly varying amount of deformation. So from 0 to 1, it will slide from the basis shape to the Key 1 shape. The movement of the vertices is linear from start position to end position and you can even set an influence greater than 1 or lower than 0 and Blender will extrapolate the movements of the vertices relative to the basis shape marked as a dotted line above.
This feature allows you to set general shapes such as a smile and then exaggerate the shape without needing to remake it. Go to F9 Editing window. Find and select the " Shapes " panel. Press the " Add Shape key " button. This adds a key called " Basis " and this stores the " basic " mesh in its undeformed state. Make sure the " Relative " button is pressed should be default.
It now says " Key 1 " and you have a slider and some other settings. Go into Edit Mode , grab a vertex and move it. Exit Edit Mode. The mesh returns to normal but you've just added a real Shape key and Blender has stored it. You can rename the keys to whatever you want.
Normally you create each new shape by first selecting the "Basis" key but if you select an existing key from the list and immediately press "Add Shape Key" then enter Edit Mode, the mesh will already be deformed. This is useful for making similar but unique keys.
Sometimes just clicking on the slider at the zero point is enough to set the key. You'll see your object deform.
Move more frames and slide another key. And so on and so on. Each time you move the slider, you set a keyframe for that Shape Key. Setting Shape Keys. You should add shape keys to a finished mesh. Don't work on a mirrored mesh or a partially finished model. Adding geometry vertices, faces, loops, joining etc Not always, but probably when you least expect it.
There are scripts available to make some of these things possible. That's the basics. Note that shapes will constantly transform between keys so if you set a key at frame 1 to zero and at frame 10 you set the slider to 1 then at frame 5 the slider will be at 0. If you want it to hold shape for a while before changing e.
You can also edit the IPO curves use Shapes pop-up to really mess with the transformations. Here I will attempt to explain my recent dealings with using Blender Shape Keys to produce convincing lip-sync Lip-synchronisation, i. This is aimed at people with an understanding of Blender fundamentals like vertex loops , face loops , sequencer and of course, Blender's new Shape Key system. If these terms mean nothing to you, then you may well struggle to keep up.
If you're familiar with them then I hope this tutorial will prove to be a breeze and your characters will be speaking so fluently you'll have trouble shutting them up! Other Lip-sync tutorials, if you can find them, recommend using other software like Magpie, Papagayo and others, but while I've no doubt they provide a valuable service and maybe make syncing easier, I will be using only Blender for this tutorial. I haven't tried using lip-sync software yet so I can't really say if it's easier or not.
You will find links to interesting audio files you can use for testing animation and lip-sync near the bottom of the page. First, set up your Blender screen so you have everything you need for this project. If you've got the room, a Side-view 3D Window would be handy too. It goes through the functions of using keyboard inputs directly for accurate modeling. Thanks for finding this tute in it's newer iteration. Mechanical Modelling in Blender for Trainz Note: In addition to this reply in the General Trainz forum, I have also posted this comment in the Trainz Content Support thread where, I think, further comment and discussion best resides.
This is an eBook of tutorials available from Amazon designed to show how constraints may be used to animate models constructed in Blender. With a little imagination the possibilities are probably endless.
The tutorials also give an excellent and easy to follow introduction to perhaps the most useful of the 28 constraints currently available in Blender. Here is a picture of the last, and most challenging of the tutorials in Death of the Armature, an internal combustion engine. I have played around with the piston part of this tutorial, which uses only constraints to convert the reciprocal motion of the piston rod to the rotary motion of the wheel.
The use of the Locked Track constraints is also covered nicely in this tutorial. Another interesting source of information on using constraints for animating Blender models is the course due out next month from Explore Blender. The introductory tutorials on this site for use of Shape keys, Modifiers, Armatures, Constraints and Drivers are easy to follow and, I think, useful for grasping the basics of these Blender features.