Skip to main content

Animation Basics on Blender 2.57; Walking Cycle

Now for animation.  And I want to apologize for constantly changing the models I use for tutorials, I don't really have an excuse, I'll try to make this the last time I do it.  For this introduction to animation I'll be using a honey badger model, already rigged.  So, on that note, let us begin.
Here is the honey badger, rigged and ready to be animated.
Truth be told, basic animations are not all that hard to accomplish as long as you know what to and not to select.  In order to start animating, click on the armature and go into pose mode, here you can edit the position of each armature and the vertices assigned to them freely.  Animation in Blender is based on and made simplified by a key frame system, making the animation process easy and the finished product smooth.  Now to actually conducting an animation.
Although you can manually put in keyframes, I prefer using the automatic keyframe setting, which can be enabled by selecting the two buttons which are circled in blue.  Now when you edit a frame, a key frame will be added.

To start the animation, I'll keep honey badger in rest pose, this will be frame one.  You can tell when a key frame is set by the yellow line that is marked in the timeline.  You can save this pose in a couple of ways; 
  • Select the entire skeleton and go to Pose> Pose Library> Add Pose.  When you save a pose, it will only save the bones you have selected.  The same goes for copying poses.
  • The other way is by, again selecting the skeleton, and clicking SHIFT + LKEY.




Now I deselect the entire object and jump to a point in the timeline a little further ahead, around frame 6.  Make sure to deselect your object before adding a keyframe later in the timeline
Here is my new pose.  If you play the animation (ALT+AKEY) you can watch how Blender makes the transition between the two poses smooth.
I deselect everything and jump ahead another 5 frames, adjust, and deselect.

After a few more frames are added, I set the object back to it's original resting position as the last frame,  however, I set it so that the animation ends a couple frames before it reaches that last position, that way it smoothly loops into the beginning of the cycle.

When the model is exported, the animation is exported along with it, no tinkering with settings necessary. Hopefully this has been a helpful introduction to basic animation.  If you have any questions, feel free to email the blog.



Comments

Popular posts from this blog

How To Import and Use Fonts

-Made by Chrome Fx Films

To use different fonts in your game, your going to have to acquire some fonts. You can go somewhere like 1001 free fonts and download ones you like and want to use.

When you download the file, you'll need to extract the file if its in  a .zip

The text file should have the extension .ttf. If you text files have a FFIL extension, simply rename the font file (yourname.ttf).
Drag the text file into unity to import. By default the Character variable should be labeled Dynamic.

The Dynamic setting means  that Unity won't pre-generate the texture, so if you look at your material containing your font, It probably will be blank. (read more here)
Now your over all objective should be getting your font to look like this (unless you prefer dynamic):
Where the characters of the font are not jumbled up and visible.
Now usually all you have to do to achieve this is change the Character variable from Dynamic to Unicode.
and that should work.
Now what some people over…

Handling Music and Sound Effects In Your Games

Initiative  While developing Treva's Adventure I had to figure out a way to handle multiple music tracks and sound effects in a clean manner or suffer horribly.  What was going to help me achieve a simple solution was taking all the different sounds and centralizing them in a single class in order to black box them.  Any other code trying to play a sound wouldn't even know the sound file's name.  All code trying to play a music track would reference a enum that defines all the track names.
Defining The Class Creating The Enum When I first started defining types in my enumeration,  I was naming the types to be exactly like the file name.  For a scary sound effect I had found a file named "ghost breath".  So around my code would be scattered lines like SoundManager.Play(SoundEffectType.GhostBreath);  This was fine until I found a sound that better fit the situation it was being used in,  and decided to use "ghost breath" for a different situation like a …

Don't Destroy On Load..

So if you want to keep an object or script that keeps up variables (or for any other reason) when you go from scene to scene, you need to attach a don't destroy on load static function, which goes something like this:

function Awake () {
    DontDestroyOnLoad (transform.gameObject);
}

The Awake function is call only once, when all the objects in the scene have been created. Read more about it here.

DontDestroyOnLoad has what ever is in the ( ) to not be destroyed when creating a new scene.

(transform.gameObject) is what will not be destroyed when the new scene is loaded, in this case, it will be the game object and all it's children the script is attached to.