- Joined
- Feb 22, 2006
- Messages
- 3,052
Modeling and Animation 101
Alright, I figured every newbie needs a beginning, and this would help them get them off on the right foot. This tutorial teaches very little advanced tricks, and should be referenced more as a glossary. However, there will be tips and tricks that I'm sure almost anyone could learn from.
Recommended Tools:
- Magos Model Editor (for section 1 and 3)
- Oinkerwinkle's Vertex Modifier (for section 1)
- Oinkerwinkle's Geoset Merger (for section 1.4)
- Milkshape 3D (for section 2)
- Guesst's MDL/X Exporter (for section 2.3)
Section 1 - How to construct a mesh.
Section 1.1 - Anatomy of a Mesh
Section 1.2 - Scratch modeling in Milkshape
Section 1.3 - Editing a Mesh
Section 1.4 - Geomerging
Section 2 - Animating a MeshSection 1.2 - Scratch modeling in Milkshape
Section 1.3 - Editing a Mesh
Section 1.4 - Geomerging
Section 2.1 - Animating the Skeleton
Section 2.2 - Animating the Skeleton
Section 2.3 - Exporting using Guesst's Exporter
Section 3 - Finalizing a ModelSection 2.2 - Animating the Skeleton
Section 2.3 - Exporting using Guesst's Exporter
Section 3.1 - Introduction to finalizing
Section 3.2 - Getting textures onto your model
Section 3.3 - Nodes
Section 3.4 - Other Finalizations
Section 4 - MiscSection 3.2 - Getting textures onto your model
Section 3.3 - Nodes
Section 3.4 - Other Finalizations
Section 1 - How to construct a mesh.
This section will teach you the properties of meshes.
Section 1.1 - Anatomy of a Mesh
Words to know:
- Vertex (plural vertices) - A 0 dimensional dot. These do not show in a model's appearance, but construct faces.
- Faces - Constructed by 3 vertices connected together to make a visible 2 Dimensional plane.
- Mesh - A 3 dimensional creation that is composed of faces. Anything that is created by 2 or more faces is a mesh.
Why?
Each one of the faint little dots you see is a vertex. A vertex is the most basic dimension in the world that has been theorized, it is 0 Dimensional. In truth, these should not be visible since vertices have no width and no length whatsoever. Vertices form the outline of the model.
Now, go back to Edit -> Properties, and select "wireframe" instead of "point". You'll see something brand new, a bunch of lines connecting the points. If you are a careful observer, you should notice something: each and every one of those connections for a triangle. The triangles are also known as faces, polygons, polys, tris, or many other names. Faces are triangles that fill in the model. Once you get to texturing the model, the skin is actually applied to these faces. 2 or more faces makes a mesh.
And that is simply the anatomy of a Warcraft 3 model's mesh.
Section 1.2 - Scratch modeling in Milkshape
Words to know:
- Face - The face tool of Milkshape 3D takes 3 vertices and creates a face between them.
- Backfaces - The opposite side of the face, created by clockwise creation.
Note: It is important to face the vertices together in a counter-clockwise direction. If you do it in a clockwise direction, you will get a black backface, which will appear as see-through unless you have a two-sided texture applied to it. To turn a backface into a normal face (thus flipping the face around), select the face and press Ctrl+Shift+F.
Now, face these faces to more vertices, and before long, you will have something that resembles a mesh.Another option is to play around with the different primitives. Primitives are basic shapes that you can transform to fit your needs.
Primitives
- Sphere - Creates a 3 Dimensional circle, fairly high face count. Not recommended to use in masses.
- Geosphere - Less faces, more smoothness than the normal sphere. The downside? No easy way to UV map this.
- Box - Creates a rectangular prism consisting of 8 vertices and 12 faces.
- Cylinder - With this, you should use as little stacks as possible for lower poly count, however that will still fit your need for modifying and animating. Slices are mainly just to improve roundness, but don't do more than you need!
- Plane - Creates a basic rectangular plane, consisting of x*y*2 faces, where x is the HDivs, or horizontal divides, and y is VDivs, or vertical divides.
- Extended Primitives - These can be accesses in Tools. Most of these have a lot of faces, so use these with caution.
Remember not to go too crazy with this, as too high poly models do not belong in Warcraft 3. Usually models should be under 1500 faces. To check how many faces you have, go to Tools -> Show Model Statistics.
Section 1.3 - Editing a Mesh
Words to know:
- Axis - Comes in X, Y, and Z. The X axis is Front and Back, The Y axis is Left and Right, and the Z axis is Up and Down.
- Translation - Sliding vertices, faces, or meshes amongst the X, Y, and Z axis.
- Rotation - Turning the vertices, faces, or meshes about the X, Y, or Z axis.
- Scaling - Increasing or decreasing the size of the faces or meshes.
Note: Warcraft 3 models come in the extensions .MDX and .MDL. MS3D can only import .MDX, where as Oinkerwinkle's can only read .MDL. You can switch between the two using Yobgul's MDL/X Converter.
Note 2: It is not recommended to import to MS3D unless you are willing to redo the animations. There is NO exporter that exists that will transfer anything but the mesh and textures to MS3D, and unless you tinker with the textures a lot, you can't import those either (unless you do it manually. They cannot be in .blp format)
Now, most modeling tools will come with 3 or 4 viewports. Milkshape has 4, Oinkerwinkle's has 3. You can set the ones in Milkshape to whatever axis projection you want it to be. This is the X axis (projecting the front or back of a mesh), the Y axis (projecting to either the left or right of the mesh), or the Z axis (prjecting either the top or underside of a mesh).Note 2: It is not recommended to import to MS3D unless you are willing to redo the animations. There is NO exporter that exists that will transfer anything but the mesh and textures to MS3D, and unless you tinker with the textures a lot, you can't import those either (unless you do it manually. They cannot be in .blp format)
From this point on in editing the mesh, I will be referring to Oinkerwinkles, although most steps can be done easily with Milkshape, 3DS max, or anything else.
In Oinkerwinkle's, it is locked to certain axises. (see picture below)
After you've become friends with your model editor's viewports, you may now do the fun part: editing the mesh!
In the screenshot above, you'll see that there are 10 buttons, plus a set of 3 buttons with X, Y, and Z on them all off to the right. To use the top 3, use left click and drag on the axis projection windows, and to use the rest, hold down the right click button and drag.
Here's an overview of what they do:
Basic Overview of Oinkerwinkle's VM Buttons:
- Select - Will select all the vertices selected with a drag-selection box and deselects everything outside of that box.
- Add - Adds the vertices selected with a drag-selection box to your current selection.
- Deselect - Does the inverse of add.
- Move - Moves selected verices about the axis. Also known as translation.
- Rotate - Rotates selected vertices about the axis.
- Scale - Scales selected vertices on all axis, unless some axis are locked (see below)
- Extrude - Extrudes the selected vertices.
- Snap - Finds the midpoint between every single vertex selected and moves the selected vertices to that point. Tip: Welding (under tools) attaches the selected vertices together. It is a good idea to weld snapped vertices.
- Delete - Deletes selected vertices
- Clone - Works in conjunction with move, scale, or rotate, and duplicates the vertices and faces and then applies the movement, rotation, or scaling.
- Lock X, Y, and Z - This restricts movement, scaling, or rotation.
Section 1.4 - Geomerging
Words to know:
- Geoset - A section of a mesh. Geosets can only use one texture and one geoset animation (more on geoset animations in section 3).
- Bone - More in section 2, however, these are good to know for Geoset tranfers. Bones dictate movement in a mesh.
- Marker - A blue dot in Oinkerwinkle's that you can use to save a spot. These come in handy for positioning geosets, however they are not a requirement.
Preparing a Geoset is the first step to geomerging. Find out where you want the geoset by placing a marker graphically using View -> Add marker (you can also do this graphically or at the center of selection). Then, move the edited geoset to where it needs to be. Once you have done all of this, you
Oinkerwinkle's Geoset Merger has a very simple interface, here's what it looks like:
The fields are pretty simple, and explained in the picture. You get the model you want to add the geoset onto, the geoset seperated from its orginal mesh, and then make a save name for it.
NOTE: Always name your filename different from the last modification. Always.
The Texture path is the path for the skin, you can find the ingame ones with Magos by using the mpq browser, finding your skin, right clicking on it and selecting copy to clipboard, then pasting in the path field. Two sided means that it will be applied to the back faces as well as the front faces.The filter types are explained in the picture, and will also be explained in more detail in section 3.
The Bone is the bone to attach it to, Oinkerwinkle was friendly and gave the helper name it was linked to.
Open the file up in Magos, and see if you go the desired effect.
If not, make amends and try again!
Once you have gotten a result you like, you may either:
Go to Section 2 if you want to learn animation (should probably have Milkshape 3D)
Or if you are content with the Blizzard animations, go to Section 3.
Section 2 - Animating a Mesh
This next section will go over basic animation techniques. This next section will be done ENTIRELY in Milkshape 3D.
Section 2.1 - Creating a Skeleton
Words to know:
- Bone - A bone, as previously discussed, dictates the movement of vertices in a mesh.
- Joint - A milkshape term for a bone, these essentially dictate the movments of bones. In Milkshape, you use joints as opposed to bones.
- Parent and Child bones - Parent bones dictate the movement of their child bones, however, child bones can be moved freely without affecting its parent bone.
While most anatomy to model analogies fail, the skeleton does not. Like the human body, a model would not move without a skeleton.
A skeleton is composed of bones if you hadn't guessed, and each of these bones dictates a certain group of vertices. However, before you get to assigning vertices, the first step is to create the skeleton.
First, decide what your first bone will be. The first should be a root bone that can be used for easy rotation of the entire model. Then you need to pick your next bone. Usually, I pick a place like the pelvis or chest as a center of gravity.
In order to place a parent bone: Deselect all joints and click on the joint bone. Click on one of the non-3D viewports to place the bone, then select and move it.
In order to place a child bone: Select the joint you want to be the parent. Place and move your joint like you did with the parent bone.
Here is an example skeleton:
Depending on the complexity of the model, the number of bones will vary, however to give you a good idea, most Blizzard models average 20-30 bones.
Once you are done and happy with your skeleton, you must assign the vertices to the joints. To do this, click the select tool (make sure its set to select vertices!). With select mode on, go to the joints tab and select the first bone. Select ALL the vertices you want to be attached to this bone. Do what you think is logical.
Repeat this step for every bone until you are done.
Note: Make sure NO vertices are unassigned, vertices left unassigned are known to cause bugs.
Check to make sure you are content with the way your vertices are assigned, then after that, go to tools and run Zero Joints. This is a very crucial step, do not proceed without doing this. You have been warned.Once you are done, begin animating by clicking the Anim button at the bottom right corner of the Milkshape 3D window, and move onto the next section.
Section 2.2 - Animating the Skeleton
Words to know:
- Frame - A single frame of animation, the basic unit of time. To change the frames per second (fps), go to preferences->Frames Per Second.
- Keyframe - Keyframes are markers, whenever a keyframe is set, all the joints that are selected to have a keyframe made upon them will be at that position for that frame. Difference between keyframes, not frames, is what causes motion and animation.
- Timeline - A visual display of frames.
Proceeding from left to right, here is what everything is:
The green slider is your current frame. You can move this around to change your frame.
Each small tick mark on the timeline is a single frame.
The first number is your current frame, the second one is total frames. Total frames can be changed at any point with no consequence.
The buttons are (from left to right): first frame, last keyframe, play backwards, play forwards, next keyframe, last frame.
Whenever you want to save a pose of a skeleton as a keyframe, go up to Animation, and with all the joints you want a keyframe for selected, click on Create Keyframe, or Ctrl+K. More keyframes makes a smoother animation!
Note: Leave 5-10 frames per each animation.
Animating is a part at which you can only try and improve upon your works. After a lot of practice, you will eventually become quite good at animation, if you have patience.Some tips:
- Since Milkshape can only deal with linear animation, it is up to the animator to use easing, or smoothing out the animations.
- Move more things than you may think you need to. Every detail counts!
- Look over your animation a LOT.
- Act out your animations while looking at yourself in a mirror. As silly as this may sound, it helps.
Section 2.3 - Exporting using Guesst's Exporter
Words to know:None.
There are many options you can do for the exporter, all must be done in Milkshape comments. To see more, read the page where you downloaded the exporter from.
However, this tutorial will cover the ones required for exporting animations.
Go to the Model tab, and click on comment. Now, for each animation, put the animation name, then the frames it plays during.
Ex.:
Code:
Stand,1-30
Walk,40-60
Death,80-100
Attack - 1,110-150
Attack - 2,160-200
etc.
Now, go to the joints tab. For every single joint, make click on comment and write
Code:
Linear
After that, go to the first frame of animation, turn animation off, and go to file -> export -> Warcraft3 MDL/X
View it in Magos, and if you are content with your animations, continue onto Section 3.
Section 3 - Finalizing a Model
This section will teach you all about finalizing a model..
Section 3.1 - Introduction to finalizing
Words to know:
- Alpha - How visible something is. For most things its either rendered as 0 (invisible) or 1 (visible), however for particle emitters it is rendered 0-255, with 1-254 being only partially visible.
- Flags - Small check boxes. Most of these hardly impact the model and will usually want to be left alone, however there will be a small explanation on what the important flags do for each section.
Filter modes are used whenever a texture is being used. The filter modes are:
Filter Modes:
- None - Only displays what the texture looks like.
- Blend - Blends the texture's alphaed sections with textures behind it. Typically used with Replaceable IDs to make team color.
- Transparent - Not shown in the picture below, but simply does not show the alphaed areas.
- Additive - Ghosty effect. Typically used with particle emitters.
- Add Alpha - Adds a lighter ghost effect.
- Modulate - An inverse additive filter.
For finalizing, it is also important to know frames in Warcraft Models. These can be easily viewed in the sequence manager, you can view the first and last frame of a model. They will be listed as Start and End.
Many values can be "Animated" by checking a tick box. This is different from normal animation, you must list it as FrameNumber: Value
Ex:
Code:
100: 1
1600: 0
1800: 1
Tip: You can also do animations with this. Curious? Go to Node Manager, right click on a bone, select edit node, and click on translation. If you chose a bone with any translation, you will see that it has codes like the ones listed above, if they use linear or no interpolation. This tutorial will not explain Bezier and Hermite interpolation, as they are complex, and in the words of RDZ, "Let's just say they are evil little piggies. Only super math nerds would understand them." If you see that at the bottom of the window, it is Bezier or Hermite interpolation, you can try to figure it out, but you don't have to.
This is often used with Alpha, which is synonomous with visibility.Also, there will be checkboxes known as flags in many things you must finalize. Ignore most of these unless you feel like playing around, or this tutorial tells you to check certain ones.
Section 3.2 - Getting textures onto your model
Words to know:
- Texture: A 2D art that can be applied to a 3D mesh.
- Material: Textures and combinations of textures that are assigned to geosets.
- Replaceable ID: A blank texture that can be told, depending on its ID number, to become various useful skins.
Go to your texture manager. Gather up all the skins, or textures that you will need for your model. The textures give your model an appearance, as opposed to just being white.
In order to attach the textures, you must attach them through materials. Go to Magos Material Manager and right click on the blank white panel, and select Create New. Right click in that blank box and select again, create new. Select your texture.
If you want backfaces to be shown, then check the two-sided flag. Then, all you must do is select your filter mode, and you should be set. Play around until you get an effect you like.
Multiple layers are used for things such as team color. In order to make a Team Color, first you must right click in your Texture Manager. Select Create Empty. Right click on the new blank texture and select Edit. Change the Replaceable ID in it from 0 to 1.
Now, go to your material that you want to be team colored, and right click, and create a new layer. This layer should be on the top. Make it replaceable ID, no filter mode. Make the bottom layer have either blend or transparent. If the alpha channels were done properly in the texture, this should work.
Section 3.3 - Nodes
Words to know:
- Node: Nodes are viewed in your node manager of Magos.
- Pivot Point: Where the nodes are positioned.
The different types of nodes are listed here:
Nodes:
- Attachment*: Used ingame to define where buffs can be attached to the model.
- Bone: Dictates mesh movement.
- Collision Shape*: Makes the mesh easier to select by adding regions that can be selectable along with the model.
- Helpers: Can parent and organize.
- Light*: Creates an ingame glow.
- Particle Emitter*: Can create particles of a model or texture that have a constant and random spawn rate.
- Particle Emitter 2: Creates a generator that creates a specified texture. Frequently seen in explosions or fire.
- Ribbon Emitter*: Leaves a trail of the chosen texture.
Every Node has something called a pivot point, or where the node is positions before any animating takes place. Additionally, each one has translation, rotation, and scaling, all of which can be animated, by doing the "Animated" code like in section 3.1.
Pivot points have X, Y, and Z. As a refresher, X is back and forth, Y is left and right, and Z is up and down.
Most of the nodes are just fun to experiment with, however some need to have specific information.
Attachments - Attachments must have certain names, or else they won't function. These names are:
Attachment names
- OverHead Ref
- Origin Ref
- Head Ref
- Chest Ref
- Hand Left Ref, Hand Right Ref, Foot Left Ref, Foot Right Ref
- Weapon Ref
- Sprite 1/2/3/etc. Ref
- There are many others, but those are the main ones.
Tip: If you make a collision shape, and make collision shapes visible under properties, you can see where you place your attachments by making a sphere collision shape with the vertex being where you think you should place your attachment, and the bounds radius 10. This will serve as a marker so you can get more accuracy with your nodes that aren't normally visible.
Particle Emitter 2 is a very frequently used node in warcraft models. Most of this is just experimentation, however this will tell you what all the fields do.Particle Emitter 2
A: Visibility. Works like Alpha discussed in section 3.1
B: Emission Rate: How many particles are produced/second.
C: Speed: How fast the particles travel.
D: Variation: More variation makes more of a difference in particles. 0.92 is usually a good field for this.
E: Latitude: The variation in height differences when moving. No latitude means a straight line, and the more latitude, the more spherical.
F: Width: Variation in left and right of the relative rotation. Note that Magos interprets width and length and vice versa.
G: Length: Variation from back to front of the relative rotation. Note that Magos interprets width and length and vice versa.
H: Gravity: Reverse speed that gradually makes the particle fall (or rise with negative speed) as time goes on. This is useful for making arcs in particle movement.
I: Texture ID: What texture this particle emitter will emit.
J: Filter Mode: The exact same filters from section 3.2.
K: Segment coloring, size, and alpha: This will change the color and how visibile the particle is. It will play Segment 1, then smoothly transition into Segment 2, and then into Segment 3.
L: Head: Head is the start of a particle.
M: Tail: The tail of a particle will be dragged behind the particle, giving it a stretched effect. Note: Tails will not display in Magos.
N: Flags: The most important one to check is Head, as this will make the particle appear. Tail indicates it has a tail, and XY Quad makes it so they are flat on the Z plane. The rest you can just experiment with.
O: Rows and Columns: When using a texture that ends with 4x4, 8x8, or anything of the like, use this so that the particles will display properly.
P: Life Span: How long the particle will last before disappearing.
Q: Tail Length: How far the tail will be dragged behind.
R: Priority Plane: I've never learned what this does, leaving it as is is perfectly fine.
S: Replaceable ID: will set its texture to a replaceable ID that gets the properties of it, such as team color. This is not recommended, as scratch made emitters with Replaceable ID's tend to crash.
T: Time: How quickly the particle will pass through the three segments.
Event Objects are important in a model. They play sounds, leave footprints, squirt blood, or create ubersplats. In order to make one, all you must do is double click and edit the kind of Event Object, then create a time at which it is played. Right click on the white box and select create new, then enter in your frame number. this is hard to do from scratch, considering they wont play in Magos, only ingame.
Those are the most commonly used Nodes.
Section 3.4 - Other Finalizations
Words to know:
- Geoset animations: Can change the color and visibility of geosets.
- Portrait: Ingame, will display the portrait as the little window next to the unit's stats.
Color, which can be easily changed by clicking on the [...] Box under color. Note these will only play during animations, not in the Unanimated phase in Magos.
Visibility: General Frank has written an excellent tutorial on Geoset Animations and visibility, go here to see it.
Some tips: Placing Geoset animations with no geosets, or two geoset animations for one geoset will crash the game when you import it. MAKE SURE NOT TO MAKE THIS MISTAKE!
Portraits - Making a portrait is simple, all it is is a model with a camera. In fact, if you made a portrait animation on your model, all you must do is get the view you want in Magos, go up to the Camera Manager, right click, and select create new from current view. If you have a seperate model, you do the same thing.
The portrait for a model must be the .mdx file name + _Portrait.
Example:
Model.mdx
Model_Portrait.mdx
blah.mdx
blah_Portrait.mdx
Renaming the model: This is easy, go up to Edit -> Model Properties and change the model name.
Once you are done with this, you may pat yourself on the back, you have made a complete model!
Test it ingame, tweak it, and make any final changes.
Section 4 - Misc
Section 4.1 - FAQ
Q:
A:whats a good program to use???
-a Free program-
- Magos Model Editor (for section 1 and 3)
- Oinkerwinkle's Vertex Modifier (for section 1)
- Oinkerwinkle's Geoset Merger (for section 1.4)
Q:
A: Google search COMDLG32.OCX and see if it has a download, and if it has instructions of where to put it."Component 'COMDLG32.OCX or one of its dependencies not correctly registered; a file is missng or invalid"
Q:
A: In Magos, you can either open a custom made model by going to Open and finding your model, or if you want a blizzard one, go to Window -> Mpq Browser. Go to File, and select either War3.mpq, War3x.mpq, or War3Patch. Then, browse through the folders until you find a model you like. Also, if you want additional models, get the MPQ Master. It can extract any model or skin flawlessly, including the Blizzard Cars.I don't have any model loaded. Where can I get that?
Q:
A: Right click on that, and just change the name to portrait. If there is an animation labeled "Portrait", you're good to go. If not, you need to make one.after i cr8 new current view, then must i do next?
Q:
A: Use gangster as the base model, samurai head as the geoset.i want to merge samurai head to gangster body, n wanna use gangster animation.
Q:
A: There's a short section on portraits in the tutorial, I think what you want is the part about cameras at the top.how to make mdx portrait? i want make portrait use box, n he no talk, just box picture?
Portraits - Making a portrait is simple, all it is is a model with a camera. In fact, if you made a portrait animation on your model, all you must do is get the view you want in Magos, go up to the Camera Manager, right click, and select create new from current view. If you have a seperate model, you do the same thing.
The portrait for a model must be the .mdx file name + _Portrait.
Example:
Model.mdx
Model_Portrait.mdx
blah.mdx
blah_Portrait.mdx
Q:
A: With particles, they have either visibilities of 1 (visible) or 0 (invisible).How to make particales apper only in death animation ?
You can view the different frame numbers from the Sequence Manager.Many values can be "Animated" by checking a tick box. This is different from normal animation, you must list it as FrameNumber: Value
Ex:
Code:100: 1 1600: 0 1800: 1
For every sequence, you need to type in FrameNumber: 0 besides death. Death must have FrameNumber: 1
Section 4.2 - Credits
I, donut3.5, wrote this entire tutorial from scratch.
Thanks to General Frank for the Geoset Animation tutorial.
Thanks to RDZ for looking over, proofreading, and adding tips to this tutorial.
Thanks to Wolverabid for cleaning and repairing this tutorial when it was in need.
Thanks to Chumbalum Soft, Oinkerwinkle, Guesst, Magos, and Blizzard for such excellent tools.
Feel free to contribute any information, ESPECIALLY on the nodes. Many fields were lacking. Anyone with decent knowledge on anything may report to me. I will add them to the credits if I feel the information helped, and they will get +Repped!
Report any mistakes and typos you see!
Happy Modeling!
--donut3.5--
Last edited: