INTRODUCTION

This animation of a blacksmith was originally made for Philips
Electronics here in Eindhoven, the Netherlands. It is only 9.5 seconds
taken from a larger animation, Morkramia II, which has a total duration
of over 6 minutes.

HOW TO

The file blacksmith.tgz is in compressed tar format. First you have to
decompress it:

> gunzip blacksmith.tgz

This will generate blacksmith.tar, which is approximately 2 MB in
size. Then you have te unpack the tar file.

> tar xvf blacksmith.tar

This will generate a directory blacksmith which contains all 3D models
and textures to generate several animations.

To see the animation, do:

> blender blacksmith/blacksmith.blend

Press the button "ANIM". Blender will start rendering all frames. This
will take more than one hour on a 200Mhz Indigo 2. After that you can
see the results by pressing the button "PLAY".

KNOWN PROBLEMS

If blender is unable to find any textures, you're probably running
an older version of blender. Try starting blender with:

> blender /the/full/path/to/blacksmith/blacksmith.blend

Or start blender without the file. Press the F1-key on your keyboard to
open a new file. Go to the blacksmith directory and select
blacksmith.blend by pressing the middle mouse button over it.

TECHNIQUES USED

This is not meant to be an introduction to blender. Some of the
techniques described here are rather advanced but can help you
understand how blender works.

Global Scene

There are other scenes in this blender file. At the the top of the
screen you see a button labeled SCE:04_06. Press the small button left
to it to switch to another scene. 04_01 is a scene with an animated
fire. 04_02 shows you the blacksmith at work. You can render these
animations too. Scene "global" contains all the objects shared by
04_01, 04_02 and 04_06.

A blender file can contain more than one scene. This is very convenient
when you have to render several animations at the same location. You
can change camera position, add lighting or objects to build the
animation that you want. All static objects can go into the 'set', the 
global scene. You can activate and deactivate this option in the
DisplayButtons (indicated as 'Set'). 
When you start the blacksmith the first time. It is
the button on the left which reads 'global'. Press the X on the right
to deactivate the set. Press the menu button on the left to
choose a set.

Objects from the set are drawn in a light gray. You can't select them
or change any attribute. If you want to edit them you have to switch to
the set by using the button at the top of the blender screen which
reads SCE:04_06 or whatever the name of your current scene is. Use the
menu button left to it to switch to another scene.

There is another way to share objects between scenes. You can link
them. Select an object and press Control-l (lowercase L) for Link.
Choose Link to scene and choose the scene where you want the linked
object to appear. From that moment on the object's pivot point which is
normally yellow will turn blue. This indicates that this is a linked
object.  From now on the object will be visible, selectable and
editable in both (or even more) scenes. All changes to that object
(scaling, translation, etc.) will happen in both scenes. There are two
exceptions to the rule. You can move the object to a different layer,
this only applies to the current scene. And by deleting the object from
a scene you will undo the link TO the current scene. Only by deleting
it from the last scene which uses this object will you delete the
object all together.

Linked objects and a set can be used at the same time. Linked objects
from a set to the current scene will only show up once in the final
rendering.

Textures

Blender can generate outlines from images so you can see them in your
wireframe. This came in very handy when I had to place the cartoon
characters in the 3D scene. Select one of the planes in scene 04_06
with an image texture (right mouse click on the wireframe) and press
control-d on your keyboard. Blender will generate an outline. If it is
an animated texture, pressing control-d will update the texture image
for the current frame and regenerate the outline.

There are some limitations:

1. outlines are generated by comparing the transparency (alpha) of
pixels in the input image. So only 32 bit, or colormap images will
work. Blender always sets the alpha of the first color in a colormap
to zero, and sets the alpha for the other colors to one.
2. blender will only show ONE outline for each image. So if there is
a stray pixel somewhere in the corner of your image it will show an
outline of that pixel.
3. it only works for flat image texture. Spherical or tube image
texture will also show a flat wireframe.

Anti alias

If you select one of the cartoon images and press the F6 key on your
keyboard you will see a button 'Anti' in the MaterialButtons. Blender
can anti alias colormap images on the fly. Don't try this with natural
images: it will take a very long time (it may even crash blender) and
won't produce anything substantially better. You will have to render an
image with 'OSA' on (DisplayButtons or F10 key) to see the full effect
of the anti aliasing. OSA stands for Over SAmpling.

Secret hint: with "blender -a martin/04.06.Os.anim" you can see the
original Anim5 animation that is used as a texture (blender -a
<name_of_first_pic> is the flipbook option, it works with all images
and moviefiles blender can read)

Advanced Magic

Building the fire took quite some time. It uses four different textures
and several different techniques. Go to scene "global", select one of
the planes from the fire and go to the MaterialButtons (press F5 on your
keyboard).
In the upper right corner of the MaterialButtons you see a button
labeled 'SepT'. When you push this button you will see the different
textures separately (SepT stands for Separate Textures). Don't forget
to switch it off before rendering a final animation.

You'll see four different buttons left to the 'SepT' button labeled:

	fire_blend fire_marble fire_clouds I.softedge

These four textures together give the fire its color, transparency and
movement. People with experience with generating sounds on an old
synthesizer will discover some similarities in how blender works with
textures.

Fire_blend

Fire_blend defines the color of the fire. The blend-texture (press F6
to see it, then switch back by pressing F5) is used on two 'channels',
color and transparency. Notice the 'Col' and 'Alpha' buttons being
activated just below the 'SepT' button.

The colors used are the original yellow of the object defined at the
left and the red color defined at the right. The black and white value
of the blend texture is used to switch between these two. Black: use
color defined on the left, white: use color defined on the right, gray:
use a weighted average between these two colors.

The same goes for the alpha. The blend makes the transparency gradually
go from 1.0 ('Alpha' at the left) to 0.0 ('DVar' at the right). 'DVar'
is a multifunctional slider. Instead of duplicating all buttons from
the left to the right (which would have been more intuitive) 'DVar'
defines a single value which will work on specularity, reflectivity,
hardness, alpha and emit depending on which channels you activate.

If there are multiple textures in a material, blender first applies the
values defined at the left to the material and then, from left to
right, adds an extra layer of texture. Each layer works on the
previously defined values: values defined by the sliders at the
left and by each already applied texture. So the order of the textures
is of importance as well.

Each layer you add will have it's own color, Dvar, channel setting etc. 

Fire_marble

Fire_marble only works on the alpha and it defines the flames. But what
makes the flames move ? This scene was build before you could define a
curve to displace a texture in time, so another technique was used. The
Size, rotation and offset of the texture are defined by another object:
fire_imat (notice the 'Object' button being activated and the text
fire_imat in the input field just below the fire_marble button).
Fire_imat is an empty object, you'll find it just below the fireplace.
If it rotates, resizes or moves, it will rotate, resize or move the
texture. IMPORTANT: only scaling, rotation and displacement are taken
from fire_imat, not the texture itself.

So fire_imat is used to rotate the marble to make the flames point
upward instead of diagonally and to make the marble move upward in
time. If you move through the frames (use arrow buttons on your
keyboard) you see that fire_imat moves upward.

Fire_clouds

Fire_clouds uses the same techniques and adds another layer of
transparency on the object. It adds some detail to the flames and makes
them more lively because clouds_imat moves upward at a different speed
than fire_imat does.

I.softedge

I.softedge is used to make the material become completely transparent at
the edges of the fire, so that the flames don't reach the sides of the
fireplace.

Notice that the text 'Alpha' in the button is yellow. This reverses
the meaning of black and white in the input image. Now black means: use
value defined at the right instead of use previously defined value. You
can switch between these modes by pressing the 'Alpha' button multiple
times.

Again: I.softedge uses another object to define scaling and placement.
This time softedge_imat is used to make the texture stretch over
multiple objects and it scales the texture to make it match with the
edges of the fireplace.

CREDITS

Producer and scriptwriter of Morkramia II was Jonathan Ellis. The 3D
models were made with the blender over here at NeoGeo. The 2D drawings
of the blacksmith were drawn on paper and colored and edited on an
Amiga by, and under supervision of, Martin Melis.

If you want to know more about this production please contact:

Jonathan Ellis
   phone: +31 40 296 0210
   fax: +31 40 246 6693
   email: jpe@euronet.nl

For specific 2D or 3D questions please contact:

Martin Melis (2D)
   phone: +31 411 682 871
   fax: +31 411 672 729
   email: melis@euronet.nl

Frank van Beek (3D)
   phone: +31 40 212 6588
   fax: +31 40 212 5776
   email: frank@neogeo.nl

Frank.

| Frank van Beek          -     NeoGeo Videographics |
| Floraplein 6            -        5643 JG Eindhoven |
| The Netherlands         -  e-mail: frank@neogeo.nl |
| voice: (+31) 40 2126588 -    fax: (+31) 40 2125776 |
