Dan’s Documentation (last updated
1/21/2004,
minor incomplete update 8/21/2006):
Tutorial #1:
Building an object and importing it into the Active Worlds engine
This is a piece of cake thanks to Polytrans, which allows you to export directly
from 3DS Max to .rwx (the AW engine reads either .rwx or .cob files) and automatically
takes care of all lighting and shading and preserves any textures you’ve applied.
1) So you’ve built
a house and textured it. Simply select export from the file menu in
3DS Max and choose .rwx from the drop-down menu.
2) Now zip the .rwx
file.
3) In each of the
world folders, there is a folder called models. Simply place the zipped .rwx
file into the models folder of the world you want the house model to be available
in.
4) All textures you
used have to be placed in the textures folder found in the same place.
5) And that’s all
there is to it. Now simply open AW, copy an existing object and rename it (i.e.
house.rwx).
Note: .rwx file names can’t include spaces, periods or other punctuation.
Note2: You always have to delete cash before any objects you’ve added will
be available or changes you’ve made to existing objects will take effect.
Tutorial #2:
Tricks and tips for Active Worlds
1) Distance:
AW has distance issues. If objects are too big, it won’t render them. You can set
your visibility as high as 200 meters, which solves the disappearing object
problem most of the time. The problem is, the more you can see the more the computer
has to render and the fewer FPS (Frames Per Second) you get.
2) Gravity:
In order to have gravity in a world, you have to have a ground object. Go to options
à world à features to set a ground object
if there isn’t one.
3) Fog:
To turn fog on, go to options à
world à lights and fog.
Fog decreases visibility and increases FPS.
Tutorial #3:
Creating an avatar
Refer to the tutorial found here:
C:\avatar tutorial or at this URL:
http://www.micromouse.ca/avatars.html
Note: Because you have Polytrans at your disposal, the only thing
you will use Accutrans for is the animation. So after you build (making sure
that all its limbs are separate objects so you can animate them) and texture your
avatar, export it as an .rwx file from Polytrans. Open this file in Accutrans
and follow the instructions given in the tutorial referenced above to animate the
avatar. Once you’ve created a hierarchy for the various parts of its body and positioned
its joints in Accutrans, export the avatar, again, as an .rwx, making sure
that the avatar box is checked (refer to Dark Knight tutorial). Zip
this file and place it with the other avatar files in the Avatars folder
of whichever world you want it to be available in. Then, remember how you saved
the animation sequence you created for the avatar as an .seq file in Accutrans?
Well, now you’ll want to zip that file as well and place it in the seqs folder
of the same world. The final thing you have to do is this: open avatars.zip
from the avatars folder and extract the avatars.dat file. Open this
file with Word Pad. Before you is a little bit of programming that tells
AW which .seq files (animation sequences) go with which .rwx files (avatars) and
for what actions. The best thing to do is simply copy an existing avatar’s data
and make any necessary changes. Let’s say I’ve made a bear avatar. It would probably
look something like this:
avatar
name=Bear (this is the name that will appear in the avatar drop
down menu in world)
geometry=bear.rwx (this is whatever you exported the model as)
beginimp
walk=shanub01 (b/c I want my bear to use the avatar Shanub’s walk sequence)
wait=bearwait
endimp
beginexp (expressions are those buttons
that allow one to make his/her avatar gesture, express an emotion, etc.)
wave=bearwave
endexp
endavatar
If You Don’t Have Polytrans, Refer to This:
So, you don’t have Polytrans and you have to do everything in Accutrans. Well, you’re
in luck because using Accutrans isn’t nearly as much of a headache as it used to
be. It now preserves UVW mapping data so you can texture your models in Max. It
also has these little buttons that allow you to copy a given setting for one layer
to all layers. First of all, what are layers? Well, when you create your model in
Max, it will be comprised of many different objects; presumably one for the head,
one for the neck, one for the torso, one for the pelvis, one for the right upper
arm, one for the right lower arm and so on and so forth. You get the idea. Anyway,
each of these objects, or layers, as they’re called in Accutrans, has a set of properties
associated with it. To change these properties, go to layers > attributes. In
the top left corner of this window, you’ll see a list of all the layers in your
object. You can select them individually and change their attributes, or you can
select individual attributes and copy them to all layers. The latter is what you’ll
want to do most of the time.
Important:
I should mention, though, that before you even export your object to .3DS file format,
there are a couple things you’ll want to check for. First, make sure that all the
objects in your scene have their pivot points in the exact same location. If this
is not the case, they will be positioned incorrectly relative to one another when
you open up the file in Accutrans. You can check where an object’s pivot point is
by selecting it and then selecting the hierarchy tab. If you want to reposition
it, just select the affect pivot only button. The best way to make sure the
pivot points of all your objects are in the same place is to attach them all together,
center the pivot of the new mega object (when you have the affect pivot only
button selected, press the center to object button) and then bust it up into
its separate parts again.
Update: Let’s say you have a scene that needs to be exported
in separate pieces, perhaps because it’s comprised of objects that need to move
independent of one another. In this case, only the pivots for the objects that will
be exported together need to line up. So if, say, you are making a house, and you
export the frame of the house and the door separately (so the door can have a rotate
command associated with it), all the objects that make up the frame have to share
the same pivot point, and all the objects that make up the door have to share the
same pivot point, but the frame pivot points don’t have to be the same as
the door pivot points. That is, they can be different, and you can still copy one
from the other in world and they will be positioned correctly relative to one another.
This being the case, my personal preference is to group all the objects that will
be exported together. This way, you can just select the whole group and choose File>Export
Selected.
The second thing you’ll want to check is that the bounding
boxes of your objects aren’t angled oddly. First, change your view from wireframe
or smooth (or whatever it’s set to) to bounding box. You’ll know if it looks right
or not. If it doesn’t, create a new box primitive and then attach it to the objects
in your scene. This will cause their bounding boxes to be aligned with its properly-oriented
bounding box. Delete the box when you’re done.
For starters, you’ll want to give your character lighting properties (actually,
even before that, make sure you select the renderware tab). To do this, first
check the box for “lit” under the “texture modes” category. Next you’ll want to
set ambient, diffuse and specular lighting levels. Depending on how light, dark
or reflective you want your character to be, these settings will differ, but I usually
go with about .5 for ambient, .5 for diffuse, and .3 for specular or thereabouts.
Make sure to copy your selections to all layers. Another thing is, you’ll probably
want to set your “light sampling” to vertex instead of facet. This will make your
model look smoother.
To give your avatar animations, click on the button with the little running man
icon. Use the < and > buttons to scroll through the different layers in your
model, and select the corresponding body part on the green man under the “tags”
tab for each one. When you’ve finished doing that, hit the “tags + tree” button.
I’m not sure if you need to hit the “merge children” button or not but I know that
if you do, your textures could get messed up because your children will assume the
textures of their parents. So, probably best not to press this button. Anyway, now
select the “joints” tab. Before I position any joints, I like to select the “preset
positions of all joints” button. This does a pretty good job of guessing where the
joints should go for a humanoid character, but you’ll still usually have to position
one or two. Remember, you’re working in three dimensions so look at your model from
both the front and the side when you position joints to make sure that they’re positioned
correctly in all axes. Once you’ve got all your joints where you want them, go to
the “action” tab. Select the button with the key icon whenever you want to create
a key frame. When you’ve finished one animation sequence, hit the “save animation
to SEQ file” button, and then zip the resulting file and place it in the “seqs”
folder of the world you plan to make that avatar available in. All done.
Note: When you animate your avatar, you’ll find sometimes when
trying to create a complex motion (i.e. one that involves a lot of rotation in different
axes) that things get pretty messed up (i.e. your avatar’s arm will flip backwards
– owe – on its way to a given key frame). Most of the time, this is because the
arms (or whatever your having trouble with) on model you imported from Max already
had some degree of rotation assigned to them. So the obvious solution is to position
your avatar in Max like it’s JC on the cross (no disrespect intended); that is,
with its arms pointing straight out at 90 degree angles from its body. This way,
they begin with zero rotation and should be easier to animate.
When you save your object, make sure to save it as an .rwx file. If it’s an avatar,
check the avatar box. UV should be checked by default, which you’ll want
to keep if your object has UV mapping from Max. You’ll almost definitely want to
scale it down, so in the box next to OSF set to type .002 or something thereabouts.
This will vary according to your specific needs and the size of your object.
Tutorial #4:
Creating a sprite (masking)
If you’re making a sprite from scratch (i.e. not using Max and working strictly
in .rwx format), check out this tutorial:
http://host.scicentr.org/people/alant/renderware/sprites.html
The above tutorial will make a whole lot more sense, however, if you read his basic
intro to .rwx object files first, which can be found
at:
http://host.scicentr.org/people/alant/renderware/model.html
Anyway, if you do have Max at your disposal, this way works as well:
1) First, go into Photoshop and figure out the dimensions of the picture
(.jpg) you want to make into a sprite. Then go into Max
and create a vertical plane that has the same dimensions. Map the .jpg to the plane
with planar mapping. Save this as an .rwx file like you would any other object.
Now return to Photoshop. Take the picture you want to make into a sprite
and do the following:
·
Make everything you want to be invisible black
·
Make everything you want to be visible white
·
Make sure that pure black and pure white are the only two colors in
the mask. AW won’t know what to do with varying shades of gray and your sprite
won’t render. Update:
this is no longer the case. The latest version of AW allows you to incorporate different
shades of grey to create a partial transparency effect.
2) You should now have a picture that looks like a white silhouette of whatever
part of the picture you want to make into a sprite on a black background. Save this
as a bitmap (.bmp), naming it whatever you named the original .jpg, only with an
m on the end.
For example: if plant.jpg is the picture I want to use, I will call the mask
(that’s what it’s called) plantm.jpg
3) Now zip the mask and place both it and the .jpg in the textures folder of whatever
world you want the sprite to be available in.
4) Ok, remember the .rwx file we created? Open that up with WordPad. Scroll
down to where all the vertex coordinates are listed and insert this little bit of
code:
AxisAlignment ZorientY
That tells the object to always align its normal with the viewer or, in other
words, always face toward the viewer.
This is what it should look like once inserted into the .rwx files code (minus
the highlights, of course):
ModelBegin
ClumpBegin
TransformBegin
JointTransformBegin
IdentityJoint
# Object name: Rectangle01
ClumpBegin # Start of 'Rectangle01'
TransformBegin
JointTransformBegin
IdentityJoint
# 4 num vertices
Tag 1
AxisAlignment ZOrientY
VertexExt 0.25 0.175 0 UV 0.999500 0.000500
Normal 0 0
1 # 1
VertexExt -0.25 0.175 0 UV 0.000500 0.000499
Normal 0 0
1 # 2
VertexExt -0.25 -0.175 0 UV 0.000500 0.999500
Normal 0 0
1 # 3
VertexExt 0.25 -0.175 0 UV 0.999500 0.999501
Normal 0 0
1 # 4
# 2 faces
# Material name 'Material #1'
Color 1.000000 0.364964 0.364964
Surface 0.179083 0.537255 0.050000
Opacity 1.000000
LightSampling Facet
GeometrySampling Solid
TextureModes Lit ForeShorten Filter
Texture plant mask plantm
Triangle 3 1 2 # 1
Triangle 3 4 1 # 2
JointTransformEnd
TransformEnd
ClumpEnd # End of 'Rectangle01'
JointTransformEnd
TransformEnd
ClumpEnd # "World" end group
JointTransformEnd
TransformEnd
ClumpEnd
ModelEnd
Notice in the example above that I also highlighted the line
Texture plant mask plantm
That’s the other bit of code you have to add. You’ll presumably have textured
the object in Max so the Texture plant part
will already be there. All you’ll have to add is mask
and then the file name of the .bmp mask you created like in the example.
GOOD TIPS
1) Known Issues with Making Copies of DV Tapes:
1) Computer may run
out of RAM when capturing large files. Best method is to capture half hour segments
or less.
2) When exporting
back to DV tape (from Premier), be sure to use export to video as opposed
to print to tape. The latter will result in a large number of dropped frames.
3) Using a tripod
is recommended. Cameras have trouble focusing on computer monitors when zoomed in
close enough to see well what’s being displayed if there is any movement. The minor
sacrifice in mobility is more than justified by the significant increase in legibility
of monitor displays.
4) DV tapes are usually
70 minutes in length. Try avoiding using more than absolutely necessary. In the
case of the Expand Your Horizons event, three tapes were used when only two were
needed, which made the capturing process more difficult.
5) If screen dialogue
is to be synched with camera footage, be sure when capturing that the beginning
and end of each separate segment overlap so there are no voids in time.
6) When filming,
focus less on what people are typing (as this is already being recorded) and more
on their faces and what they are doing.
2) Adjusting an Object’s Brightness
The brightness of a given object in Active Worlds depends on its ambient and diffuse
lighting values. These values are set in Max prior to export to RWX. Open the Material
Editor. Notice that each material has three colors associated with it: ambient,
diffuse and specular. Active Worlds discards specular lighting information,
so all you have to deal with is ambient and diffuse. Right-click on one of the boxes
(but not the specular one). Notice the value slider in the middle of the pop-up
window. That controls brightness. I usually set it slightly below the middle, but
you should experiment to see what works best.
3) Scaling an Object
I get the best results when I scale each object I export from Max by a constant
factor. First off, scaling can be done both in Max and during the export process.
Before I scale an object in Max though, I like to see how big it is in Active Worlds.
Bottom line is, scaling is very important. If you export an object from Max
without scaling it first, it will be so ridiculously big in AW, you won’t even be
able to see it. So here’s the key: when you export, scale your object by a factor
of .002. That’s something of a golden number, but of course, it all depends
on how big your object is in Max to begin with. If it’s a little too big or small
after being scaled by .002, go back into Max and make any necessary adjustments,
then export again, still scaling it by .002.
Note: I just made a Max file called master avatars. This file contains all
the avatars I made, and they are all the correct size given a .002 scale factor
in Accutrans. All you have to do is import the master avatars.3ds
file into your scene and scale everything accordingly. Then you know that
.002 will be the correct factor by which to scale your objects when you export them
from Accutrans.
Ok, a few really important updates… Scaling an object should be done thusly:
Accutrans doesn’t care what your units in Max are set to. It sees them as raw units
of measurement. In Max, by default, the distance between grid lines is ten units.
Also by default, one unit equals one inch, but that doesn’t matter at all. So, let’s
say your making an avatar. The average avatar is .18 meters
tall (AW measures everything in meters). In max, your avatar model
needs to be 180 inches, which we’ll just think of as 180 units (i.e. the top of
his head is two grid lines below the second major grid line – which are spaced 100
units apart by default – from the origin). Now, when you open this model up in Accutrans,
go to tools à adjust object.
Height will be the Z-axis information. As you can see, your avatar (assuming his
feet were positioned at zero units when you exported him) is 180 units tall. Hit
the units button. By default, both import and
export are set to meters. So import height is 180 units and export height is 180
units. Switch the import units to millimeters. Now it shows that our avatar will
export as .18 meters, just as we want him to. Click ok to exit and then click
the scale button below the units button.
Notice how our avatar is now 1.8 meters tall.
Do all scaling BEFORE you give your avatar joints/a hierarchy
and animate him/her.
4) Double Sided Objects
Double-sided geometry can be a great way to save on polygons. Things like windows
and ropes and leaves often don’t need to be 3D, but they do need to render from
both sides. In many cases, your models will have some parts that need to be double-sided
and others that don’t. You’ll need to export them separately, as it is during the
export process that you specify whether an object is to be single or double-sided
(there’s a box you have to check). I recommend that you attach all the objects that
you want to be double sided together in Max and then export them all at once. This
way you only have two objects to deal with in world; one that’s double sided and
one that’s not. The Tree Of Life, for example, is comprised of tree.rwx
and tree2s.rwx, the latter being those parts of the Tree that are two-sided
(hence the 2s designation).
5) Precise Positioning of Objects
For precise positioning of two or more objects relative to one another, position
them in Max (as opposed to in world). You may still export them separately (thus
making them separate objects in world) by simply selecting each object one at a
time, deleting everything else in the scene, exporting the selected object and then
undoing the delete and going to File
à Export Selected. One reason you might want to have precise
control over how multiple objects are positioned relative to one another is this:
let’s say you have a single object that has both single and double-sided elements.
As was just mentioned, the double-sided elements will have to be exported separate
from those that aren’t, and in most cases, you’ll want their positions relative
to one another to stay as you have them in Max. The thing is, you have considerably
less ability to fine-tune an object’s position in world as compared to Max, and
you’ll be further encumbered by the inability to view your changes from multiple/orthographic
angles. So clearly, the answer is to do all positioning ahead of time in Max. And
as it turns out, all positions will be preserved in world even if one object is
broken down into two or more for export. This is because Active Worlds preserves
a given object’s relationship to the origin in Max. If, for example, ObjectX is
at 10X, 3Y and 1Z in Max, it will be the same distance away from the origin in AW
(not the center of the world, mind you). So if ObjectY is at 0X, 0Y and 0Z in Max,
and in AW, you copy ObjectX from ObjectY, ObjectX will be ten units above, three
to the right and one behind ObjectY. It sounds funky but it’s really uncomplicated.
So as I’m sure you just picked up from that example, if you want multiple objects
to be positioned relative to one another as they are in your Max scene, you have
to create them from copies of one another, as opposed to other, unrelated objects
in world. This should be completely logical, but just to make sure you get it I’ll
give an example. Remember the Tree Of Life from the previous section? Well,
in order to be positioned correctly relative tree.rwx, tree2s.rwx
would have to be copied from tree.rwx. One last thing to mention is that
when you make a copy of something in Active Worlds, the copy is automatically moved
back one space. You therefore have to move it forward one space to offset this and
return it to the position it has to be in in order to be aligned correctly.
6) Visibility and Positioning of Objects
As I mentioned above, an object’s position relative to the origin in Max is preserved
when it’s exported to AW. This is important to note because objects that are too
far from the origin may not render in world. It’s therefore important that every
object be as close to the origin as possible. Of course, you have different degrees
of flexibility depending on what the visibility setting is for the world you’re
working in. The basic idea is this: objects render from their origin. Whether or
not an object is visible to you at any given location in world depends on how you
are positioned with regard to its origin; i.e., whether you are within “visible
range” of its origin. So if, for example, visibility is set to 100 yards and you
are 101 yards from the origin of an object, you will not see it… even if you’re standing
right on top of it. This is why you have to limit the size of the objects
you make. Let’s say you make a building that’s 300 yards in length, and before exporting
it, you position it so that its center right smack at the origin (0X,0Y,0Z). Moments
later, you’re walking through one of its rooms when you cross over the 100 yard
line, and despite the fact that 50 yards of structure lay ahead of you… woosh,
it all vanishes and you’re floating in space.
7) Modeling Recommendations
1) Keep it
Clean
As you’re constructing your model, periodically take a step back and evaluate your
progress. In particular, take note of how clean your mesh is. Ask questions such
as: Are there holes in the mesh? Excess faces/vertices? Overextended faces? Awkward
geometry? Etc. Another good thing to do from time to time is to uncheck the edges
only box in the display properties section of the object properties
window, which you can call up by right clicking whatever object you’re working
on. This allows you to see the mesh for what it really is, and it’s when
you can see those extra edges that you can do any necessary edge turning.
2) Keep it
Smooth
In Max you can smooth your models out in two ways. The first, the smooth modifier,
doesn’t make changes on the geometric level, but simply increases the level of shading
between the vertices that make up your mesh. The cleaner your mesh is, the better
this will work. The nice thing about Active Worlds is that it preserves all smoothing
information, and smoothing is a great tool in that it lets you cheat. For instance,
you can make a sphere with twenty faces look almost perfectly round. Every once
in a while I like to add a smooth operation to the stack but not check the auto smooth
box. This gives me a raw, unaltered view of the model (sometimes smoothing can make
blemishes that need to be fixed more difficult to detect). The other method of smoothing
involves the Meshsmooth modifier, which actually adds polygons to your model
in order to give it a more organic look. In most cases, you’ll only want to apply
this modifier to one or two parts of your mesh (i.e. areas that need extra detail
or need to be particularly aesthetically compelling). Use it sparingly as it rapidly
increases the polygon count of your model.
3) Keep it
Light
Try to keep your geometry simple. The fewer polygons you use in your models, the
smoother AW will run, and the smoother AW runs, the more people learn, and the more
people learn, the better we feel, so eat your beans in every meal. Wait… Er, never
mind.
The following is your official Keep it Clean and Light Toolkit:
·
Create Your Own Faces/Polygons: When you spot a group of polygons
that could be effectively replaced by a single polygon, delete them and use the
create tool to make a new one.
·
Weld Vertices: Whenever you attach two objects and their vertices
overlap, select and weld them with the weld selected tool. Welding vertices
makes your mesh a whole lot cleaner and easier to manage.
·
Monitor Your Polygon Count: Under the Utilities tab
(the hammer), hit more and select Polygon Counter. You’ll be happy
you did. Try to stick to a reasonable budget as best you can.
·
Snap: You almost always want to have snapping on. I usually
select grid and vertex snapping to begin, and then others as I need
them. I use pivot and midpoint snapping quite a bit. The thing about
the former is, make sure your object’s pivot is where you want it to be (this is
important for when you rotate an object as well). To adjust an object’s pivot point,
open up the Hierarchy tab and select Affect Pivot Only. Most of the
time you’ll then want to select Center to Object.
·
When Moving Vertices, Grab Several at a Time: This is more
important than you might think. When moving individual vertices, results are often
not desirable as polygons tend to lose their planarity and get distorted. So try
to move them in groups of two or more.
·
Delete Polygons That Won’t be Seen: As you model, you’ll inadvertently
create many hidden faces. Make sure you watch out for them and delete them because
even though you won’t be able to see them in world, AW will use memory to render
them (as of version 3.3, hasn’t been programmed to know not to render occluded objects).
For example, you create a sign made up of one long rectangular cube for the post
and another flat one for the sign itself. In this instance, two faces can be deleted…
You guessed it: the top and bottom of the post. Makes sense right?
8) Making a Torch and Other Objects That Make Use of Animated Textures
So, you want to add some light to your world. The body of the torch should be a
snap, but the flame… That’s the tricky part. Make two polygons at ninety-degree
angles to each other. Their centers should match so if you look at them from the
top they make a + (the other option would be to make the flame a sprite, but this
works too, and if you go the sprite route, you have to export each flame separately,
making it more work in the long run I think – especially if you have like twenty
torches). Ok, so here’s the thing: textures in AW animate if they have a certain
height to width ratio. I’m not sure what the exact figures are, but suffice it to
say that the length has to be bigger than the width. So most animated textures look
like a filmstrip, long and narrow with frame after frame of multiple different iterations
of the same image. This is not to say, however, that the object you intend to have
the animation play on has to be of any specific dimensions, although you’ll probably
find it works best to have it be roughly the size of one frame of the animation.
So, you’ve got your two flame planes and an animated flame texture. In Max, assign
the flame texture to the planes and bam, instant torch. Ok, well, not quite.
Now you’ve got to UVW map those planes. All the frames of the animation will
be scrunched to fit on each polygon but don’t worry, it will still look right in
world. Now, this should be logical, but make sure the texture is oriented correctly
on both. Also, make the height of the mapping gizmo a little bigger than that of
the polygon so when the animation plays, one frame doesn’t spill over into the next.
In other words, if you don’t do that, you may notice in world that floating above
the flame of your torch is the bottom of another flame, which just looks weird.
So that’s it. Congratulations, you’ve discovered fire.
9) Textures Not Rendering in World? Read This!
Really important: make sure that all the textures you use in a given object
are in the texture folder for the appropriate world or none of them
will render. Similarly, if there’s a problem with one of the textures, none
of them will render. When naming your textures, keep the names short and uncomplicated.
No spaces or punctuation. And finally, check to make sure that none of your textures
is larger than one megabyte. I think there may be a limit to the amount of texture
information a given object can have, but I’m not sure. So if none of the above solutions
work, try breaking up your model into several smaller pieces, using smaller textures
and tiling them a fewer number of times.
Since writing the previous paragraph I’ve discovered something very important about
texturing. READ THIS if you tried all of the above methods and none of them
helped. Ok, in Max, a single object can have multiple textures, right? You can apply
different textures to different polygons or simply attach two objects that
have different textures. Well guess what? If, in your Max scene, any objects have
multiple textures, none of them will render in world… That goes for the entire scene.
If you go to the material editor and scroll through the textures in your
scene, you may notice that some textures show up multiple times. If this
is the case, then some of your objects contain multiple textures. So bottom line
is, make sure that every object in your scene has one and only one texture applied
to it. This is not to say, however, that a single object in AW can’t have multiple
textures. That’s no problem at all. Once you’ve exported to .rwx, you’re home free.
Alternatively, when you load your object into Accutrans, you
can just select always when it asks you if you want to divide objects with
different textures.
This just in: Name length really matters (of textures that is). This is probably
more important than anything else. A good way to test whether a texture name is
too long is to export your scene to .3DS. Any texture names that are too
long will be shortened and Max will alert you to this whenever it shortens a name.
I think the maximum is eight characters. One other thing: make sure you don’t have
any texture repeats in your material editor. This may mess things up as well.
Yet another development: If you single out a texture that’s giving you problems
(and that’s all it takes… one bad texture will prevent all of them from rendering),
try messing around with it in Photoshop and renaming it. Dave did this with
a texture recently, and while I don’t know what it was he did, it worked.
10) Creating Pict/Sign Objects
Creating pict and sign objects is so easy when you know how and so
difficult when you don’t. The process is going to sound simple when I describe it,
but trust me, it took me forever to figure out, mostly because I was looking for
a complex answer that didn't exist. So, without further ado, behold, the magical
craft of pict/sign object production:
·
Step I: Construct your model, bearing in mind that one polygon
will be designated the screen, if you will, upon which the picture or sign will
be displayed. This polygon should be flat (planar) and rectangular.
·
Step II: Add a UVW Map modifier to the screen polygon.
Now export your model to .rwx and then open up the file in notepad.
There should be two objects – a frame and a screen – so scroll down to where the
data for the screen begins. Since its just one polygon, there should only be four
vertices and two triangles. In fact, it should look something like this:
ClumpBegin
TransformBegin
JointTransformBegin
IdentityJoint
Tag 2
VertexExt -0.15 -0.105 -0.02 UV 0.000500 0.999500
Normal 0 0
1
VertexExt 0.15 -0.105 -0.02 UV 0.999500 0.999501
Normal 0 0
1
VertexExt -0.15 0.105 -0.02 UV 0.000500 0.000499
Normal 0 0
1
VertexExt 0.15 0.105 -0.02 UV 0.999500 0.000500
Normal 0 0
1
Color 0.031373 0.031373 0.533333
Surface 0.300000 0.400000 0.700000
Opacity 1.000000
LightSampling Vertex
GeometrySampling Solid
TextureModes Lit ForeShorten Filter
Texture NULL
Triangle 2 4 1 tag
200
Triangle 3 1 4 tag
200
JointTransformEnd
TransformEnd
ClumpEnd
JointTransformEnd
TransformEnd
ClumpEnd
JointTransformEnd
TransformEnd
ClumpEnd
ModelEnd
·
Step 3: What you need to do is this: for a pict object,
add the code tag 200 after the triangle coordinates as I did above. And for
a sign object, add the code tag 100.
And that’s all there is to it. Congratulations.
11) Some Thoughts on Texture Mapping
·
Most objects can be textured using the box gizmo. Here’s a
tip though: set the length, width and height of the box to the same value, that
way your texture won’t be stretched or compressed. Once you’ve done that, go ahead
and tile away.
·
For some objects, it may be appropriate to do an Unwrap UVW
operation in place of a UVW Map operation. If, for example, it’s important
for certain parts of your texture to be positioned over certain parts of your model,
this operation will do the job. When you hit the edit button, you can play
around with the object’s UV coordinates, thus positioning the texture precisely
as you want it. A good technique is to use an Unwrap UVW operation in combination
with a UVW map operation. Perform the UVW Map operation first, choosing
the most appropriate gizmo shape, and then add a Unwrap UVW operation to
the stack. You should find that you don’t have to make quite as many adjustments
this way.
12) Polytrans
Whenever you export a model from Max, this is the interface you’ll be presented
with. These are the boxes that I check, although I don’t fully understand what all
of them do. The most important thing is that you set polygons to be outputted as
triangles.
Figure 1

This is the next interface you get after hitting OK on the one above. Here’s where
you have the option to make your object double sided. Notice also the scaling options.
As I mentioned earlier, I always choose the last one and set its value to .002.
For light sampling I usually choose vertex. Vertex Light Sampling shades
between vertices (i.e. within individual polygons), while Facet Light Sampling assigns
a single shade value to each polygon. Figure 3 shows a sphere with vertex
shading while figure 4 shows the same sphere with facet lighting. Finally,
for Texture Modes, I check all three boxes, although I’m not really sure
why.
Figure 2
Figure 3

Figure 4

13) Some Tips from Steve-o Based on His First Couple Months
1) Starting Up
- Get comfortable with interface/working
environment (takes about a week in my exp.)
- Know your short cut keys!!
2) Basic Modeling Techniques
- Primitive object manipulation (parameters)
- Sub-object manipulation (post-mesh-form)
- Low polygon count highly important!!
3) Efficient Modeling Techniques
- Use minimum number of subdivisions possible
- Cut out bottom polygons if it will be on the ground
- A good texture on a poor model goes a long way
- Use cap holes, tessellate and optimize (note from Dan: Steve’s
right, optimize is a great operation. It often recognizes unnecessary polygons
that you don’t)
4) Modeling to Active Worlds Placement
- Export to .rwx (need Polytrans
plug-in to be installed) - Transparent/double
sided objects need to be exported as separate objects
- Once converted to an .rwx file, the file needs to be zipped (with the same
name) then placed in the object path models folder
- ALL textures must be placed in the object
path textures folder or else the object will appear flat shaded in world
14) Using the Batch Functions in Accutrans
To anyone using Accutrans, read this! The latest version (2.8.13) has some
very nice batch operation features that will save you more time than you can possibly
imagine. Converting files the way I’m about to describe is infinitely better than
the way we’ve traditionally converted files, and as you’ll see, it is particularly
invaluable when you’re working with an scene that is comprised of many different
objects that have to be exported individually (moving doors, glass windows, event
triggers, double sided planes, signs, lights etc.). So, here’s the skinny:
Open Accutrans. First off, notice the buttons numbered 1 through 12 at the
bottom of the program window. These allow you to load up to twelve different objects
simultaneously. Take the observatory object, for instance:
The main structure went in slot 1:

Then the dome went in slot 2, because it has to be able to move (rotate) independent
of the rest of the building:

The telescope went into slot 3 for the same reason:

Then the left door went in slot 4, the right in slot 5. The spaceship went into
slot 6 (because it has to be a clickable object). Then there were several light
objects, and 11 sign/pict objects. Obviously, I ran out of slots the first time
around, but no big deal. Most objects don’t require 20 slots anyway.
Ok, so we’ve got all the different parts of our scene loaded into Accutrans
(see blue note at bottom). This next bit is the best part. Hit the BA (edit
and select batch attributes for layers) button and set all the attributes however
you like (this will vary depending on what your specific needs are), making sure
to hit the @ (depress button to make this a batch attribute) button for any
attributes you want to set as batch attributes. These are the settings I usually
use:
Ambient: 0.5
Diffuse: 0.5
Specular: 0.3
Opacity: 1.0
TextureModes: Lit
LightSampling: Vertex
Note: You may additionally want to specify colors, tags (for
sign or pict objects) or double sided polygons.
Now hit OK to save your settings. Next, you’ll want to go through all the
objects you have loaded (1 through whatever) and hit the button that has an @
symbol with an arrow going to a 3D rectangle (apply batch attributes to all the
layers) for each one. You’ll recognize this button when you see it.
It’s right next to the BA button. Alternatively, you can just hit the @
(if selected, apply batch attributes to all layers after file has been read) button
on the far left of the program window under the Open File (read file)
button. The layers of every file you load will have the batch attributes you set
automatically applied to them when that button is depressed.
Now you’re ready to convert all your files (1 through whatever) to .rwx format.
Happily, this operation can be batched as well. Just hit the button that shows a
folder with the word batch beneath it (batch convert files) to bring up the
batch convert dialogue. Hit the Add New File button and select all
the files you want to convert. Then select RenderWare (*.rwx) from the dropdown
menu and set an appropriate output path. Check the UV button if your objects
have UV coordinates. Lastly, set .002 for the Output Scale Factor
(X, Y and Z, of course) and hit OK.
Note: If you are overwriting an existing version of the same file, be sure to check
the OverWrite box or else nothing will happen. I mention this because when
you’re doing a non-batch save, Accutrans will ask you by default if you want
to overwrite an existing file if the circumstance arises. This is not the case for
batch saves. You have to specify during the batch save process!
Note: You actually don’t have to load all the different objects
in your scene into the numbered slots at the bottom. So long as you have the @
button selected when you run the batch convert operation, the batch layer attributes
you set before will automatically be applied to all the objects that pass through
Accutrans during the batch operation. Just another big time saver!
15) Working offline
Working offline will save you tons of time. Whenever you make a change that you
want to see in world, you won’t have to delete cache and all the unloaded objects
will be loaded locally rather than from the Internet. You can see how to setup a
local world folder by visiting this link:
http://www.activeworlds.com/help/aw34/