Contents
Getting Started
1.Preparing Anim8or
2.Other programs needed
3.Specific Anim8or issues
4.Known Bugs in Anim8or
Drawing
Part Naming
Materials
Positioning textures in UV mode
Collisions, sorting problems and see-trough effects
The purpose of this tutorial is to help whoever wants to use Anim8or to build 3D models for RB3D. It is not a manual on the use of Anim8or, you can find such a manual on the Anim8or website: http://www.Anim8or.com.
I assume that you have downloaded the program and the helpfile and have installed it.
On some PC’s with voodoo 3 or higher cards, there are installing problems. Don’t use the latest 3dfx driver (1.09 and higher) but an older one (1.05).
If you experience problems, you’ll probably find a solution at the programmer’s forum or you can directly contact the programmer. He’s always willing to help.
Introduction
Models can be built with a 3D program like 3Ds Studio Max ($4000) or Anim8or (freeware). In the case of Anim8or the an8 file has to be exported as a 3ds file. The 3ds file is run through a converting program to obtain the dts and dml files of a plane. When using Anim8or, the dml file needs adjustment, feasible with a few special programs.
A model is composed of different parts (called meshes in 3D) that all have names with an extension. These extensions identify the parts and relate them to the damage and movement animations. For animation purposes, most parts are multiplied: each sequence of an animation is represented by a separate part in the 3ds file.
Getting started
(Contents)
Drawing
(Contents)
Most faces you’ll draw will be one-sided faces. In a 3ds file these have to be triangles. This is not required in Anim8or. When exporting the model into a 3ds file, Anim8or fills in the necessary lines and splits all faces into triangles. So, when you draw flat faces, don’t bother to divide them into triangles. You can do the same for folded faces, but the result may not please you. For instance, a twisted prop has to twist around a particular line, so it’s better to draw the line yourself.
There are 2 ways of building a 2-sided face. The easiest way is to add extra diagonals to a face. For example when you have a square, draw 2 diagonals in it. The intersection of these doesn’t need a point. Then you’ll be able to fill in faces on both sides. There is a restriction to this method: when using textures on it, the shading will be awful (one exception to this: textures with a PAB extension). Nevertheless, it works very well for parts with only plane colors. This is the method I use for wires (stretched, narrow rectangles). I’ve never seen this on any model made with 3D Studio max, but MCU accepts it without problems.
The second and most used method is somewhat elaborated. First build the mesh single sided, then copy it, paste it and
flip normals of this last one. Apply textures to both of them (these can be different). Then select both of the meshes and
join solids. This will give you a 2 sided mesh with correct shading. This is how wings, wheels, struts, rudder and elevator
were done on all original RB planes. All lines, points and faces are doubled. This gives us an opportunity to make wings,
elevators and rudder three-dimensional without adding faces. Just lift some points (not on the edges) of one of the meshes
before you join them and the result will be 3D.
Part Naming You can use any name for the parts as long as you don’t use the same name twice (even with other extensions) and give
them the correct extensions. All parts can be made out of several meshes if all these connect without visible joints.
Most parts have a normal, damaged and missing state. Note on these lasts: they are single-point meshes that won’t show up
in the game. Draw them first as 2 points with a line in between, give them a name and delete one of the points. (You can’t
select a single point mesh, so you won’t be able to give it a name.) Warning: when you delete all points of a mesh, you
will get an ‘empty’ mesh. MCU will choke on this. But you can delete the mesh in wordpad (Thanks, Uhlan!). Always make a
backup before you change something.
Fuselage, engine, guns: name.aa (or just name, the extension is not obliged)
In most models manifolds and wires also have no extension. The drawback with this is that they won’t take damage.
After crashing, they will be floating around the fuselage.
Prop: name.aa to name.az
Prop 2: same as prop; used for heavy bombers. name.ta to tz
Landing gear: name.ba to name.bc
Lower wings: made out of 4 sections
Elevator: made out of a left and a right section
Rudder: name.ha to hi (b=damaged; c=missing)
Upper wing: made out of 3 sections.
Upper Wing Center section: name.ka to kc (kb damaged, kc missing section)
Outer struts and connected wires: same as left and right part of the upper wing.
Wing radiators and connected pipes, inner struts and connected wires: same as the central section of the upper wing.
Middle wing: (only for triplanes) made out of 4 pieces the same way as the lower wings
Gunflashes: 2 guns: name.qa to name.qb for the left gun; name.ra to rb for the right gun. Use only q for a single gun mount.
Pilot: name.va to vb
Gunner: same as the pilot; name.ua to ub
Oil: a-state is a single point mesh; b is the ‘losing oil’ mesh
Flames: a-state is a single point mesh; b to i are the flame animation meshes
Materials There are 3 kinds of materials. First, the palette colors: named #0 to #255. These are the 256 plane colors used by
Red Baron. Second, the RGB colors: you can specify any color by filling in RGB values and giving it a name. For example
‘DARK METAL’ (R=G=B=79) is used in most models. Third textures: these are the bitmaps. They require positioning on the
part.
As stated above, Anim8or cannot attribute properties correctly to materials.
After running your 3ds file through MCU, you will have to work on the dml file with Matilda.exe. Study some existing
dml files to learn more. Palette colors and RGB-colors should be set to ‘Flat’ or ‘unlit’. ‘Smooth’ will result in a
white part. Textures can be set to smooth, flat or unlit.
Transparent, translucent and perspective: most wing, wheel, elevator and rudder bitmaps must be set to transparent or
the black portions of the bitmap will be visible in the game. Don’t do this with the fuselage bitmap. Only the propstop
bitmap is set to perspective. All textures with a PAB extension must be set to unlit, transparent and translucent.
Applying multiple textures and/or materials is more difficult. More than one texture on a mesh is only possible when you
apply it first on 2 separate meshes, and join them afterwards. A good example of this is the wing (different textures
applied to top and bottom). When you want to apply a combination of plane colors and a texture, you have to select the
appropriate faces in point mode and apply the materials.
Positioning textures in UV mode Positioning of the textures is perhaps the most difficult work when building models.
The actual dimensions of the bitmaps used in the game are not relevant. Textures co-ordinates are positioned with
relative co-ordinates. So you can stretch, disfigure or slope a texture anyway you want, as long as it covers all the
part(s) it’s applied to. Sometimes you will have to rotate the view window before you can position a texture. For
instance, when you’re working on a sloped strut, you first have to rotate the view until it’s parallel to the screen
edges. For this purpose there is a very handy feature in Anim8or: the arc rotate. It’s not easy to use but surely worth
the effort of learning how to work with it.
Before you enter the UV-mode, select the part(s) you want to paint. Always position textures in wire view. (You can
change to flat or smooth view but what you see in Anim8or does not correspond to what you see in RB!)
When entering UV-mode you’ll get a yellow rectangle of the same size as the smallest part you’ve selected. The
positioning and transforming of the box is done in a similar way as with the arc rotate feature. You can switch between
different views in this mode. You even can export the model without leaving the UV mode (Then you can run the 3ds file
through MCU and check the result in RB; the dml file is not altered by this operation). Make sure the yellow box is
slightly bigger than the selected part(s), or you will get the well-known ‘black lines’ around the edges of your part.
The yellow circle is a tricky one. Try to keep it simple: always begin with your mouse pointer in one of the little
boxes. This locks unintentional movements in the 2 other directions. A normal UV-operation should look like this:
select the part to paint; enter UV; drag the yellow box with the right mouse button towards the selected part; scale the
yellow box with the middle mouse button; repeat these 2 operations until the part is completely covered. Beware of the
left mouse button: it causes rotation around the screen’s x (or y) axis when starting in the circle or around the z-axis
when starting outside the circle. This is very hard to control. For those without a middle mouse button: you can overcome
this with the right button and the Alt-key.
As I mentioned before, you can position textures on several parts in one operation. For example, all the states of a
strut or the entire upper wing (UWT and UWB together).
Be careful of the mirrored bitmaps in RB. In Anim8or side view shows the right side, but the fuselage bitmap shows
the left side. So rotate the view 180° first. Same thing with the rudder. The best solution for the lower wing is to
build the left wing first, apply and align the texture and then mirror the meshes.
Once you’ve positioned the texture, it’ still possible to select and of these points drag points of the mesh. The
bitmap co-ordinates of these points however stay the same. If you do this on the fuselage for example, you’ll get a
distorted look. Don’t do this! You’ll get the artists all over you. One exception to this: the damaged states. You can
get nice crumpled effects when you begin with a copy of the a-state and deform it on purpose. Try to position textures
with respect for the work of artists. They put a lot of effort in their work, so make sure they don’t have to start from
zip every time someone builds a new model.
Collisions, sorting problems and see-trough effects There are 2 different types of collisions. First an actual collision, two parts take up the same area. This is very
easy to solve: adjust the position of one of them. Remember that any type of collision can be between any of the
different states of the 2 parts, even the single point c-state.
This is a good reason for positioning these points within the a-state and not scattering them around the plane, as I’ve
seen in many models. Putting these points far from the center will also reduce the scale of the plane in object preview.
You also can solve collisions by reducing the shrink in MCU, but this is a very poor solution and will result in
see-trough effects. The smoothing of structures in RB however, influences the collisions, so you’ll never be able to
raise the shrink to 1.0 (unless you have the well-known gaps between all parts; very poor technique). Shrink of an
unwired model should be at least 0.85; a wired one not below 0.80. For example, my AlbDVa has a shrink of 0.90.
The second type of collision is between enveloping boxes of 2 meshes. You can not have a mesh that surrounds another
mesh, even when there is absolutely no contact between them. Splitting the surrounding mesh in two or more pieces can
easily solve this. Not every collision is as simple as the example above, but the principle is basically the same. The actual splitting is
done as explained in the section about N shaped struts. The resulting parts should not be joined and need a different
name but with the same extension.
Again, you can overcome light collisions by lowering the shrink. This is done in the case of the upper wings, which to
some extent surround struts and wires.
Sorting is determining which faces will be seen from each angle of view, and which will be covered. Sorting problems
are sometimes related to very light collisions.
I haven’t figured everything out about sorting, but I can give a few guidelines to avoid problems.
Always begin with the parts in the center, working towards the outside. A good building sequence is: fuselage/ engine/
landing gear/ elevator/ rudder/ pilot/ guns/ lower wings/upper wing/ struts/ wires/ prop. I’ve noticed that when you copy
the fuselage of a completed model, delete it and paste it again, the sorting done by MCU afterwards will be all wrong. You
will see the fuselage trough wings, rudder etc. This is probably caused because the fuselage isn’t mesh01 anymore, but
the last mesh in the model. This is however not always true, it is not a strict rule.
Another good bit of advice is to build every sequence of animation before you continue with other parts. When you build
the elevator for instance, build all 9 states of it before you build the rudder. This causes all meshes of this animation
to have successive mesh numbers, and therefore making it easier for MCU to solve the sorting. Remember MCU is limited in
its abilities. You can of course change the mesh sequence in WordPad to solve the problem, but as stated before - be
careful!.
See-trough effects are sorting problems between faces of a particular mesh. When you have a banana shaped fuselage for
example, it’s highly probable you will see face A trough face B: A lot of the models we are using at the moment show such a problem. It’s very clear on models with a head-rest or with
the cockpit hollowed out. Some modelers are using firewalls in their model to solve the problem. This is an internal face
in the mesh that sometimes solves the problem. It adds faces to the model and doesn’t work in all viewing directions. A
better solution is to split the mesh in two or more pieces, as explained in the collision section above. This does not
add any faces and in fact improves the sorting and shrink.
When splitting a mesh after texture positioning, you will see a shading edge. If you want the complete structure to be
smooth, split first and then apply the texture. This last trick only works for limited angles. When the angle of the two
faces is bigger than 5°, you will again obtain a sharp edge instead of a smoothed one.
You can use the splitting method to obtain sharp edges on a fuselage. MCU tends to smooth all edges, even on 90° angles.
(Contents)
The first 20 extensions (aa to at) show the starting prop. (prop0000.bmp) This is a 180° sequence; all successive
parts are rotated by 9°.
The following 6 (au to az; prop03) represent the spinning prop. Also a 180° sequence: each part is rotated by 30°
versus the previous one.
Make sure your prop turns in the right direction. Rotating spinners should have the same sequences. It’s also
possible to link effects such as ‘smoke on startup’ with this.
The ba extension is for the normal parts (wheels, wheelstruts etc), bb for the damaged parts, bc for the ripped off
parts.
left outer: name.ca to cc
left inner: name.da to dc
right inner: name.ea to ec
right outer: name.fa to fc
a=normal part; b= damaged part; c=missing part
left: name.ga to gi
right: name.ia to ii
From elevator full up to elevator full down: f-e-d-a-g-h-i ;b and c are the damaged and missing states.
Don’t forget “name” can not be the same for these two parts, although they have different extensions. It’s customary
to give them names as nameL and nameR.
from full left to full right: i-h-g-a-d-e-f
left section: name.ja to ji
right section: name.la to li (from aileron full up to aileron full down: f-e-d-a-g-h-i)
name.jb and name.lb are the damaged sections; name.jc and name.lc the vanished sections.
This means every strut has 7 exactly the same states for every position of the ailerons.
Note on the damaged wires: it’s common to use a single point mesh for them as well.
left outer: name.ma to mc
left inner: name.na to nc
right inner: name.oa to oc
right outer: name.pa to pc
Here the a-state is a single-point mesh (not visible) and the b-state is the flash.
The a-state is the visible pilot; the b-state is a single point mesh for a pilot who has jumped out.
left oil: name.wa to wb
right oil: name.za to zb
left fire: name.xa to xi
right fire: name.ya to yi
(Contents)
(Contents)
(Contents)