Since we don't seem to have an obvious guide for this, and it's asked by just about every new member... I think it's about time we had a thread dedicated to it. Might be nice if it ended up in the FAQ database.
- Determine which type of object or object set you are dealing with:
- Single object, no physics models
- Single object, assigned physics models
- Single object, unassigned physics models
- Multiple objects, no physics models
- Multiple objects, assigned physics models
- Multiple objects, unassigned physics models
- Decide if you want your object set to remain at its current world location, or be centered at 0,0,0. If you will be exporting many objects from one level into another, it's a good idea to retain in-world positions, rather than centering, so they do not end up ontop of each other and difficult to select properly (especially true if unassigned physics objects are involved). If you just want one or a few objects from a level to bring into another, you may wish to center them at 0,0,0 so you can find them easily when you enter the destination level.
- Select and export your objects properly:
- Single, no physics models
Select object, export.
- Single, assigned physics models
Select the master object (which lists the compound models "$"), export.
- Single, unassigned physics models
Select visible object + each of its invisible instance objects, export.
- Multiple, no physics models
Select objects, export all at once.
- Multiple, assigned physics models
- Select each master object separately, export separately.
- (Advanced) Select each master object + each compound model (ignore warning), export.
- Multiple, unassigned physics models
Select visible objects + all invisible instance objects, export all at once.
When you select a single CAnimal and export it, the basement model is ALWAYS exported instead, due to the Mesh and Physics values pointing towards it. To export an ingame CAnimal reference:
- Cut all values from the instance and update values (paste into an open notepad for safekeeping). Export this model, then EITHER write an appropriate value file and import, or import and then apply the new values in TresEd (keeping in mind that you will not be allowed to apply new Mipmaps or Diffuse values).
- If you have multiple objects selected, including the ingame CAnimal reference, it will be exported without defaulting to the basement model. This is the simplest way but does mean you'll need to bring something else - a nearby trigger will do the trick nicely.
Do not copy any CAnimal mesh in TresEd without first removing its values, or the basement subobjects will be shifted out of place (not a serious error, but one to be avoided). This also applies to copying other objects with assigned compound models.
You now have your object set(s) exported. Before importing, note that GeomAdd will crash upon attempting to import too much at once. The exact details of this are unknown; if you manage to pack a ton of stuff into a single TPM, it will not care, but if you spread it across.. say, 30 TPM files, there's a chance GeomAdd will not only crash but corrupt your current level files. When carrying out mass-exports spread across multiple TPMs, best to limit 20 TPMs to a folder, unless you'd like to indevidually import each of them (which, if you accidentally put too many in a single folder, you may find yourself doing). However, I have seen LARGE numbers of TPMs imported at once, in cases where each TPM contains one or very few models. It's probably something to do with GeomAdd's separation and data management during import.. just be careful and always backup a level before large imports.
- Determine if you will be importing your TPM files one at a time or altogether. One at a time is always safer but often unnecessary, and time-consuming.
- Select destination level.
- Select import TPM, or a single TPM from import source directory.
- Decide if you wish existing meshes/instances to be replaced. Replacing a mesh will automatically look up any textures of the model (and will not if the mesh was not replaced), and will serve as the mesh for all instances of a given object, but will not affect any ingame locations or scales. Replacing instances will replace any existing instances in the level of the same exact name as any found in the TPM with the new ones.
CAUTION: When dealing with the ext_ImportScale value at any setting other than 1.0, things can get very sticky very fast. With a setting of 0.1, the object will be scaled down to 10% (without affecting it's stored scale value) each time it is imported. This value is meant for dealing with larger objects in Max for ease with editing - when you have your object imported at the size and scale you want in the level, delete the ext_ImportScale value immediately, or you will forget later and wonder where your (tiny) object went when you or someone else imports it later on.
- Always operate GeomAdd in Verbose mode, so you can pay attention to GeomAdd's actions to see if any objects, textures, or value tables are flagged with warnings. A mesh material with an assigned but missing texture map will get a non-light-receiving black color (good for making powerlines and monoliths). A mesh material with assigned UVW coordinates but no assigned map file in the TPM will get a "white" gray-appearing surface that looks quite ugly (but appear black in TresEd). An object with no recognized value table will become a CInstance-class Box-type object with no physics that casts shadows. Value tables may be added in TresEd but certain default values may not be changed (Diffuse, Mipmaps, etc.), and the object cannot be changed from GeometryType 2. If you import a box that is meant to be for physics without valuetables, you can successfully change it into a $ model, but it will become black.
GEOMETRY TYPE GUIDE:
- Visible Objects ~ 2
- Spherical/Point Triggers (Bounding Volume 0) ~ 1
- Box Triggers (Bounding Volume 1) ~ 2
- Water Entities ~ 2
- Compound Models ($ubobjects) ~ 2
- Compound Models for CAnimal ~ 1
- Invisible Instances ~ 1
- Import, stay alert for warnings. Sometimes you do not need to worry about them - GeomAdd flags 24-bit textures as Notes, and missing value tables as Errors (but sometimes you don't need to give certain objects a value table). Be sure that the flagged 24-bit textures are only for semi-transparent textures, such as windows or ice.
- At the end of the import, the saved level will be verified (it is at this point when GeomAdd sometimes crashes because the level has been corrupted). Be sure you are using the latest GeomAdd known values file, found in Trespasser Custom Edition. Values that are unrecognized by Trespasser's engine will be flagged; many retail Trespasser levels (if not all) contain "spelling" mistakes in some value tables. Don't worry too much over these, but it is a good idea to fix them in your own levels.
When importing animated-texture objects, sometimes you will find that textures are flagged during verification as missing from the PID (Picture ID) file. Many times, the animated sequence textures of an object are applied to another, out-of-sight object in the level. You will have to seek these out on your own or find other members to help (Tip: In TC Ops levels, search for "strip" to find some of these). If you find these, import, and are still having trouble, check to make sure that the Diffuse value is not less than 1.0 (if it is, raise it to 1.0).
- Open your level and make sure your objects got in like you expected. If you left them at their original locations, do a Find (Ctrl + F) for part of the name of an object you remember importing, or Go-To (Ctrl + G) 0,0,0 for any objects you centered upon export. Select objects and move them the same way you select them for exporting (a selected master mesh will bring its compound models with it; unassigned physics must be selected in addition to visible objects; do not selected assigned compound models or they will move at twice the distance you specify).
When using the Compy or other tiny CAnimals, you must manually select the Foot and LeftFoot objects when exporting and moving them in TresEd, as TresEd was not designed to detect their master-slave relation.