INTRODUCTION
This documentation covers the basics to model and export a car into Rally Trophy, and is supplied with an example car. When making your own car, easiest way is probably by loading the example object and just replacing meshes and assigning existing materials to your own meshes. This is much nicer than assigning everything from scratch, trust me.
The example model has most of it's objects hidden, if you find yourself wondering where the tires etc are.
NOTE: To avoid too big downloads, we didn�t include textures for the car and skybox model in the package. However, you can extract all the textures you need from BZF files using BZF Manager. Alternatively, you can take a screengrab from the UVW mapping window in Max to get yourself a nice template to draw your textures on.
More detailed instructions are coming later, including car physics settings. Copy all the plugins to the plugins directory in your 3DS Max folder, such as C:3DSMAXPLUGINS and you're set.
1. MODELING
1.1 General guidelines to keep the mesh nice and tidy:
- Use 1mm vertex snap
- After scaling, rotations, bends etc it's a good idea to use 1mm quantize so the snap stays aligned.
- Try to avoid huge differences in polygon sizes where there are large and flat surfaces, such as doors. Environmental mapping will stretch and bugger up if the size differences are huge.
- Attempt to keep the polygon rows as smooth and "flowing" as possible to avoid reflection/shading artifacts in the game.
- Environment mapping makes things difficult also because it requires a certain vertex/edge order in adjacent polygons to keep the reflections straight. If your car has really strange looking reflection quirks, it probably has too many polygon edges connected to a single vertex. This is often solved by rotating polygon edges on the troublesome spot. Sometimes finding the correct order for edges takes a long while, if you're looking for a perfect reflection. Then again, nobody might care, so you don't have to lose your sleep over it.
1.2 Things to remember:
- Car body's pivot point is always in the world origo (0,0,0 coordinates). Many aspects of the car physics are dependent this.
- Tyres are placed so their road contact point is in level with origo. If they're not, they'll wobble and generally go all ove r
- Body_lod's roof is the same as in highpoly body, otherwise interior objects can clip through
- Make sure your pivot points are where they should be:
- hood and trunk pivot points at their reallife pivot points
- tyre pivot points in the exact center of the tyre model
- Interior object pivot points at origo, just like the body pivot point
- Steering wheel pivot point should be aligned with the steering wheel, i.e. model the steering wheel at 90 degree's angle and center pivot point.
- If your car parts are all in the right positions in Max but are messed up (misplaced, rotated, whatever) in the game it means Max has exported them with their old pivot point instead of what it has told and shown you all along, and things need pivot reseting and/or pivot rotating and/or 'Reset XForm' applied. This is a nice feature of Max that has made many modeler's hair fall out, and we're glad someone else gets to experience it now, too. Yay!
1.3 Required filenames and object names
model.bmf
collision.bmf
wiper01.bmf
wiper02.bmf (not needed if the car has only one wiper, like Stratos has just wiper01.bmf)
rain.bmf
## model.bmf consists of following subobjects:
body - self-explanatory.
body_lod - lowpolygon level of detail model
body_crash - damage morph target for body
collision - collision object for the car. keep this AS SIMPLE AS POSSIBLE, otherwise it'll cause a performance hit
hood - self-explanatory
hood_crash - damage model for the above
trunk - self-explanatory
trunk_crash - damage model for the above
interior_hi - interior model that shows in interior view
interior_lo - interior model that's visible through car windows when viewed from outside
tire_fr
tire_fl
tire_rr
tire_rl - naming format for the tires. fr = front right, fl = front left, rr = rear right, rl = rear left
tire_fr_lod
tire_fl_lod
tire_rr_lod
tire_rl_lod - lowpolygon level of detail models
shadow_tire_fr
shadow_tire_fl
shadow_tire_rr
shadow_tire_rl - shadowmodels that get projected to the road
steering_wheel_hi - interior view steering wheel
steering_wheel_lo - lowpolygon steering wheel when viewed from outside
indicator_rpm - indicator needle for the engine RPM
indicator_speed - indicator needle for speed
wipers - wiper animation object, look at the example car provided for reference
ext_pipe01-02 - exhaust smoke emitter dummies (tells the engine which point to push smoke from, place at the tip of exhaust pipe)
light_front_right01-03
light_front_left01-03
light_brake_right
light_brake_left
light_rear_left
light_rear_right
light_reverse01-02 - Light flare dummies (these tell the engine where to place the light flares)
## rain_drop.bmf subobjects
rain_window
rain_body
rain_hood
rain_trunk - These are highly subdivided sections of body, each vertex of these objects marks a spot where the raindrop effect occurs.
## wipers.bmf subobjects
frame00
frame01
frame02
etc - Windshield wiper animations
1.4 Materials
Look at the example object to see how the surfaces are sectioned. Brief guidelines on this: Parts of the car body that always stay shiny are assigned as body, and car parts that get dusted are body_dust. Remember, windows can't get dusted up so it might be a good idea to keep the roof etc shiny, limiting dust materials beneath the windows.
Material names should be kept the same as in reference object.
All materials must be assigned as bugbear material!
All materials have ambient/diffuse color as white and black specular color. Specular level, glossiness and soften are set to 0.
All materials have alpha source as 'none' (opaque) and alpha maps as 'mono channel output: alpha'
Assign 'no z-write' to windows in the bugbear material tab.
car exterior material id's:
1 body
2 body dust (texture morph on)
3 none
4 none
5 window front
6 window leftside
7 window rightside
8 window back
9 headlight_left
10 headlight_right
11 rearlight_left
12 rearlight_right
13 sparelight
car interior material id's:
1 cockpit
2 windows
3 steering wheel
4 meters (self illumination 50%)
5 window front
6 window leftside
7 window rightside
8 window back
9 interior_roof
10 interior_lo
11 indicators (self illumination 50%
tires:
tire (alphatest, disabled)
tire_alpha (alphatest, forced)
|