# PlaneShift 3DSMax Exporters

Author: Luca Pancallo (pancallo@netscape.net)

Disclaimer: Don't build a new game! Join the crew at www.planeshift.it to build THE game :)

## Content

Level Exporter (Version 48)
Used to export complete maps including buildings, skybox, lights.

Sanity Check (Version 5)
Once a separate script, now called by level exporter. It checks the level for invalid polygons, such as lines. It has the option to fix the meshes by deleting those invalid polygons.

Lights Exporter (Version 05)
This script is for PS engine only, can't work in CS walktest. It exports the lights values. One set of values is exported for each hour of the day. PlaneShift engine will interpolate values giving a smooth transition.

Sprite Exporter (Version 07)
Used to export objects that can be moved in the level (i.e. not static ones) like swords, bottles, pieces of armor, etc... Those are called 'sprites' in our terminology.
This script is NO MORE USED to export characters. We use cal3d instead.

Fix Materials (Version 06)
You can run this script to reduce the number of materials you have defined in your scene. If two materials in 3dsmax have the same texture file, the script will get the first one and associate it also to the objects using the second material. We used it to fix the duplicate materials generated by the convertion between Maya and 3dsMax.

These scripts have been tested on 3DSMax 5.0 and 6.0 (same scripts should still work on 3DSMax 4.0)

In the doc we use:
PS stands for PlaneShift, a wonderful game! www.planeshift.it
CS stands for CrystalSpace, the 3d engine used by PlaneShift

## Features

The exporter supports ambient lights (defined in the file properties ) and omni lights, no spot or any directional lights.
For faster rendering you can use genmeshes and thingmeshes , who act like instances in 3ds max.
For higher realism you can use the 24 or 48 hours light system ( 1 frame/hour or 1frame/hour for sun and rain)
You can use helpers for creating particle emitters , then use the property tab to set all their parameters
Both Standard Materials and Multi/Sub Materials are supported
And obviously you can export meshes
The exporter supports both right-handed and left-handed objects
The Exporter can also export sprites.

## Quick Guide

1) First you have to install the scripts. Is really easy for 3dsmax5 and 6 ( only file copy needed ) and only a bit more complex for 3dsmax4 ( need to add custom menu )
2) Model your level, read the whole help in order to know special feature you can use and naming conventions. Once you are done:

3) Select PlaneShift->Export Level.

This is the export dialog:

Export Level To: In the first field you should specify the export filename including its full path. Ex.: d:\myStuff\CS\levels\level1\world.txt

Scale: This indicates which is the scale to apply to the current scene while exporting, if you follow the guideline of "1 meter = 1 generic unit" you can place "1" in this field.

Export!: This button starts the export.

Copy textures to dest dir: If you check this option, a new dir will be created in the same dir of the output file and will be called <filename>textures. In this directory there will be copied all the textures files present in the scene (the ones used by objects). Multimaterials are supported.

Generate Fake lights for walktest: ignore that for now. Explanation of it is here.

Duration (msecs): ignore that for now. Explanation of it is here.

A file will be created in the directory specified, with the name specified. Rename the generated file as "world" (no extension).

4) Create a directory with the name of your scene or whatever name you want. Example if you are using Crystal Space: /<Crystal Space root dir>/data/testlevel.
Example if you are using GFXPackage*: /<GFXPackage root dir>/levels/testlevel.

5) Copy the generated file (renamed to 'world') and the textures in the directory you just created.

6) If you are using Crystal Space open a console , cd to your directory (typing cd /the/path/to/CS ) and run "walktest /this/data/my_scene_name -relight".
If you are using GFXPackage just launch it, select walktest and select the level you want to run.

## Words of wisdom

- Read this guide in details to understand all the options you have to model your level. A level that looks great in 3dsmax can look bad in walktest if you don't model it correctly
- Before modeling a whole level, make some tests to see how the engine renders your models. Tests should include geometry, textures and lights.
- Don't expect the engine to solve all performance problems. Keep a good balance of quality Vs. polycount and remember that less polycount is always better.
- There is a good guide (even if a bit technical) to choose the best techniques depending on level type. You can find it here.

(*) GFXPackage is a tool developed by PlaneShift team.