INDEX
| |
Overview | |
|
|
Installation | |
|
|
Using MOA | |
|
|
Assistant Changes | |
|
|
How it works | |
|
|
How to add sounds using MOA | |
|
|
Identifying Optional Files | |
|
|
Quick Start | |
|
|
Support | |
|
|
Credits |
The Multiple Object Assistant (MOA) is a utility program intended to to take nearly all of the work out of dealing with custom objects and sound in Armadillo. The MOA program automatically edits your project files for you to make them ready for bundling in Armadillo. Additionally the MOA program can run the MakeCMP processor utility provided by Rainbow to automatically provide you with the necessary "in game" textures needed for Armadillo. Typically MOA can process in a couple of clicks what could take hours to do manually.
The MOA program works hand in hand with three other utilities: MakeCMP provided by Rainbow, RunMakeCmp (which runs the MakeCMP utility automatically by sending it commands and keystrokes), and MOA_Assist which takes care of some housekeeping chores and handles the manipulation of the sound information. These four utilities are necessary for full utilization of the MOA program.
No matter if you are using only one custom object or several hundred, the MOA program will help you get your track ready for bundling quicker.
** MOA cannot and will not solve all of your problems with custom objects. You must have some knowledge and/or success at making custom objects work in Armadillo.
First of all you must have MCM2 installed properly to even place custom objects [see our tutorial] in Armadillo...
Installation of files: Typically the best folder to select is one above your Armadillo project folders. For example if you had something like this:
C:\Projects\MySupercrossProject
C:\Projects\MyNationalProject
C:\Projects\MyStuntProject
C:\Projects\MyBajaProject
C:\Projects\MyEnduroProject
You would want to unzip all files in the MultiObjectAssistant zip to "C:\Projects" because it is one folder above all of your project folders. This makes it easy to access your projects quickly when using MOA.
The VB 6.0 Runtime download. (1 MB) This is required for a couple of programs included in this zip file (MOA_Assist and RunMakeCMP), if you have never installed the VB 6.0 Runtime before, then download and install it before using MOA.
After you have placed user made objects in Armadillo you should run the Multi-Object Assistant everytime that you save your project. Right after saving you can Alt-Tab to your desktop and run it. After running it you can switch back to Armadillo and bundle your project (some of your textures will be messed up in appearance but the bundle will work fine).
After launching MOA it will prompt you to open an Armadillo project.
Next it will ask if you want to add a custom sky cube. MCM 1 sky cubes will work.
After doing so, MOA will search your project SCN file for all custom objects (SLT files) and rewrite your project SCN and INI files accordingly. When it is finished processing your INI and SCN files, it will ask you if you want it to build your CMP/TEX files.
If you click yes it will run Rainbow's MakeCMP utility to build the CMP/TEX file for your project that only includes the files that are required for this project.
NOTE: It is important for you NOT to click on other applications or windows while RunMakeCMP and MakeCMP are running. This could cause RunMakeCMP to send keystrokes to the wrong program causing MakeCMP to stall and wait for user input.
When MOA is finished a log of all activity will be displayed by launching notepad. The log will contain the following information:
| The banner |
Multiple Object Assistant - Version 2.2 By Jeff Hamblin (VRT_MCMnut) |
| MakeCMP Section |
Data from MakeCMP Texture Processor... Building ColorMap... Adding To ColorMap CAT1.tga... Adding To ColorMap TdBale2.tga... Adding To ColorMap TdDog.tga... Adding To ColorMap TdScoringTower.tga... Adding To ColorMap TdStartGateLight.tga... Adding To ColorMap vidscreen.tga... Finding 256 colors... Counting files... Making TextureMap CAT1.tga... Storing 1 x 1 texture in chain CAT1.tga Storing 2 x 2 texture in chain CAT1.tga Storing 4 x 4 texture in chain CAT1.tga Storing 8 x 8 texture in chain CAT1.tga Storing 16 x 16 texture in chain CAT1.tga Storing 32 x 32 texture in chain CAT1.tga Storing 64 x 64 texture in chain CAT1.tga Storing 128 x 128 texture in chain CAT1.tga Storing 256 x 256 texture in chain CAT1.tga Making TextureMap TdBale2.tga... Storing 1 x 1 texture in chain TdBale2.tga Storing 2 x 2 texture in chain TdBale2.tga Storing 4 x 4 texture in chain TdBale2.tga Storing 8 x 8 texture in chain TdBale2.tga Storing 16 x 16 texture in chain TdBale2.tga Storing 32 x 32 texture in chain TdBale2.tga Storing 64 x 64 texture in chain TdBale2.tga Storing 128 x 128 texture in chain TdBale2.tga Storing 256 x 256 texture in chain TdBale2.tga Making TextureMap TdDog.tga... Storing 1 x 1 texture in chain TdDog.tga Storing 2 x 2 texture in chain TdDog.tga Storing 4 x 4 texture in chain TdDog.tga Storing 8 x 8 texture in chain TdDog.tga Storing 16 x 16 texture in chain TdDog.tga Storing 32 x 32 texture in chain TdDog.tga Storing 64 x 64 texture in chain TdDog.tga Storing 128 x 128 texture in chain TdDog.tga Storing 256 x 256 texture in chain TdDog.tga Making TextureMap TdScoringTower.tga... Storing 1 x 1 texture in chain TdScoringTower.tga Storing 2 x 2 texture in chain TdScoringTower.tga Storing 4 x 4 texture in chain TdScoringTower.tga Storing 8 x 8 texture in chain TdScoringTower.tga Storing 16 x 16 texture in chain TdScoringTower.tga Storing 32 x 32 texture in chain TdScoringTower.tga Storing 64 x 64 texture in chain TdScoringTower.tga Storing 128 x 128 texture in chain TdScoringTower.tga Storing 256 x 256 texture in chain TdScoringTower.tga Making TextureMap TdStartGateLight.tga... Storing 1 x 1 texture in chain TdStartGateLight.tga Storing 2 x 2 texture in chain TdStartGateLight.tga Storing 4 x 4 texture in chain TdStartGateLight.tga Storing 8 x 8 texture in chain TdStartGateLight.tga Storing 16 x 16 texture in chain TdStartGateLight.tga Storing 32 x 32 texture in chain TdStartGateLight.tga Storing 64 x 64 texture in chain TdStartGateLight.tga Storing 128 x 128 texture in chain TdStartGateLight.tga Storing 256 x 256 texture in chain TdStartGateLight.tga Making TextureMap vidscreen.tga... Storing 1 x 1 texture in chain vidscreen.tga Storing 2 x 2 texture in chain vidscreen.tga Storing 4 x 4 texture in chain vidscreen.tga Storing 8 x 8 texture in chain vidscreen.tga Storing 16 x 16 texture in chain vidscreen.tga Storing 32 x 32 texture in chain vidscreen.tga Storing 64 x 64 texture in chain vidscreen.tga Storing 128 x 128 texture in chain vidscreen.tga Storing 256 x 256 texture in chain vidscreen.tga Freeing memory Done processing D:\A_Projects\MOA_TestTrack\Assistant\Objects\MOAUserModels.ini |
| Sound Section |
----------------------------------------------------------------------
MOA_Assist Ver 2.1 by AMA_DirtTwister - Processing _Sound.INI
----------------------------------------------------------------------
Processing 2 static sound(s).
Adding StaticSound1 with sound Wind01
Adding StaticSound2 with sound Wind01
Looking for sounds for 17 static model(s).
Adding Model4 with sound truckidle02
Adding Model9 with sound WRECK01
Success
|
| File validation Section
|
---------------------------------------------------------------------- MOA_Assist Ver 2.1 by AMA_DirtTwister - Processing duplicate SLT files ---------------------------------------------------------------------- OK -------------> MOA_TestTrack.tdf optional -------> MOA_TestTrack.esb OK -------------> MOA_TestTrack.scn OK -------------> MOA_TestTrack.trn optional -------> MOA_TestTrack.seg OK -------------> MOA_TestTrack.tga OK -------------> MOA_TestTrackS.tga Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\CAT1_TD_001.slt Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\TdBale2_TD_001.slt Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\TdBale2_TD_002.slt Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\TdDog_TD_001.slt Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\TdScoringTower_TD_001.slt Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\TdStartGateLight_TD_001.slt Need to create -> e:\MCM2\TrackEditor\UserModels\SLTFiles\vidscreen_TD_001.slt OK -------------> MOA_TestTrack.cmp OK -------------> MOA_TestTrack.tex internal -------> Sound\Wind01.wav internal -------> truckidle02.wav internal -------> WRECK01.wav |
| Duplicate SLT creation Section |
Creating missing duplicate SLT files Creating 001 duplicate copies of e:\mcm2\trackeditor\usermodels\cat1.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\cat1_TD_001.slt Created dups ---> e:\mcm2\trackeditor\usermodels\cat1.slt Creating 002 duplicate copies of e:\mcm2\trackeditor\usermodels\tdbale2.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\tdbale2_TD_001.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\tdbale2_TD_002.slt Created dups ---> e:\mcm2\trackeditor\usermodels\tdbale2.slt Creating 001 duplicate copies of e:\mcm2\trackeditor\usermodels\tddog.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\tddog_TD_001.slt Created dups ---> e:\mcm2\trackeditor\usermodels\tddog.slt Creating 001 duplicate copies of e:\mcm2\trackeditor\usermodels\tdscoringtower.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\tdscoringtower_TD_001.slt Created dups ---> e:\mcm2\trackeditor\usermodels\tdscoringtower.slt Creating 001 duplicate copies of e:\mcm2\trackeditor\usermodels\tdstartgatelight.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\tdstartgatelight_TD_001.slt Created dups ---> e:\mcm2\trackeditor\usermodels\tdstartgatelight.slt Creating 001 duplicate copies of e:\mcm2\trackeditor\usermodels\vidscreen.slt Creating e:\mcm2\trackeditor\usermodels\SLTFiles\vidscreen_TD_001.slt Created dups ---> e:\mcm2\trackeditor\usermodels\vidscreen.slt Success |
| Description of SCN changes |
MOA made the following changes... .SCN File: SLTFiles\CAT1_TD_001.slt SLTFiles\TdBale2_TD_001.slt SLTFiles\TdBale2_TD_002.slt SLTFiles\TdDog_TD_001.slt SLTFiles\TdScoringTower_TD_001.slt SLTFiles\TdStartGateLight_TD_001.slt SLTFiles\vidscreen_TD_001.slt ** NOTE: If you are adding sound to objects, "MOA_Assist.exe" will have made additional changes to the SCN file not shown above. |
| Description of INI changes |
.INI File: [ResourceFiles] TotalFileSets=19 RootPath=d:\A_Projects\MOA_TestTrack FileSet_1=MOA_TestTrack.tdf FileSet_2=MOA_TestTrack.esb FileSet_3=MOA_TestTrack.scn FileSet_4=MOA_TestTrack.trn FileSet_5=MOA_TestTrack.seg FileSet_6=MOA_TestTrack.tga FileSet_7=MOA_TestTrackS.tga FileSet_8=e:\MCM2\TrackEditor\UserModels\SLTFiles\CAT1_TD_001.slt FileSet_9=e:\MCM2\TrackEditor\UserModels\SLTFiles\TdBale2_TD_001.slt FileSet_10=e:\MCM2\TrackEditor\UserModels\SLTFiles\TdBale2_TD_002.slt FileSet_11=e:\MCM2\TrackEditor\UserModels\SLTFiles\TdDog_TD_001.slt FileSet_12=e:\MCM2\TrackEditor\UserModels\SLTFiles\TdScoringTower_TD_001.slt FileSet_13=e:\MCM2\TrackEditor\UserModels\SLTFiles\TdStartGateLight_TD_001.slt FileSet_14=e:\MCM2\TrackEditor\UserModels\SLTFiles\vidscreen_TD_001.slt FileSet_15=MOA_TestTrack.cmp FileSet_16=MOA_TestTrack.tex OutputFilename=d:\A_Projects\MOA_TestTrack\MOA_TestTrack.env FileSet_17=Wind01.wav FileSet_18=truckidle02.wav FileSet_19=WRECK01.wav |
| Summary and Instructions |
Your original .SCN file has been copied to a subfolder named "Assistant". This will occur the first time you run this program. Subsequent uses will of this program will backup your .SCN file to a file named "[filename].SCN.BAK" in the "Assistant" subfolder. This assures that there will be an original copy of your .SCN file before ever using this program. Jeff Hamblin jhamblin0@aol.com |
The normal way of doing objects with MCM 2 and Armadillo has a few problems. I will explain briefly how it works out of the box and then what the problems are.
Armadillo searches the \TrackEditor\UserModels folder for custom user made objects. These objects are defined by 3 files:
If you place the appropriate files in the UserModels folder then they will show up in Armadillo. You will be able to place multiple copies of them and they will work in Armadillo. The information for Armadillo is saved in the projects .SCN file.
MCM 2 does not use the same scheme for finding the objects. When the track is bundled the .SCN is used as well as statements that need to be added to the projects .INI file. The _art.tga file is ignored and the objects texture (TGA) needs to be processed by MakeCMP, which will convert them to 3 files (CMP/TEX/PAL). These files will be needed when the track is bundled.
If you have the objects working in the editor then a problem will result if you use two or more instances of the same object. The editor will work fine but MCM 2 will have problems after you exit the track that is using these multiple instances of the same object. The solution is to either not do multiple instances of an object or to use the technique that MOA does. If your objects do not work in the editor then be sure to check out the tutorial on Twisted D.I.R.T.'s web site.
After much experimentation by several people at Twisted DIRT and the shear determination by Jeff to test a ton of scenarios it was discovered that we could work around the problem by creating seperate SLT files for each instance. To save memory we found that we could point all of the duplicate SLT's to the same texture TGA. To make this simpler Jeff created his Multi_Object Assistant.
The way MOA works is by finding all user made objects in your projects .SCN file and then renaming them using the following naming scheme. Each custom object is renamed with an "_TD_xxx" appeneded to the end. The xxx is replaced with a number. If you had 6 instances of the same object then your .SCN would contain "yourobject_TD_001" through "yourobject_TD_006". In addition the .SCN is redirected to find your SLT files in the SLTfiles sub folder of UserModels. The MOA_Assist program was provided to automatically create these extra SLT files for you.
MOA processes all of the .SCN entries and then based on what it finds it creates the appropriate INI file adding lines for each SLT file and lines for your custom CMP and TEX files. When it is done it asks if you want to build the CMP/TEX files. If you answer yes it will gather up all of the TGA files required and build the CMP and TEX files.
In addition if the file project_sound.ini exists, then all of the sound statements included in the sound.ini file will be added to your .SCN file.
Finally a pass is made over the INI to verify that the files exist. If you reference objects that need duplicate SLT's then it will check for their existence and create any that are needed by your project.
NOTE: Whenever you modify an existing object then you should go into the SLTFiles directory and delete all of the duplicate SLT's in that directory for that object. The next time that you run MOA, the duplicate SLT's will be created.
The bottom line is that it sounds more complicated then it really is to use it You just need to run it each time you save your project. Then the next time you bundle your project files are setup properly so that it will work in MCM 2. You should always remember to run MOA after you save even if you don't plan to bundle. The next time that you start Armadillo your project may not work if you haven't run MOA on it.
Before adding sounds using MOA, you should read over the Twisted DIRT Sound Tutorial.
To add sounds to locations or objects in MCM2 certain statements have to be added to the .SCN file. These statements either go into [StaticSoundn] sections if it's a location. These sections are named [StaticSound1], [StaticSound2], etc. There is another section called [Sounds], which contains the line NumStaticSounds=n, where n equals the number of Static Sound sections that you have.
To add sound to objects most of the same sound statements are added to the appropriate Modeln section for that object in the .SCN file.
Since every time that you save your project in Armadillo the .SCN file gets overwritten, these modifications to your .SCN file can be quite tedious. To resolve this issue we have created another utility, called MOA_Assist.exe to take care of the sound issues. It does this by looking for a file called project_sound.ini where project is the name of your project. If the file exists, MOA_Assist will look for the following sections and update them in your .SCN. It looks for the [Sounds] section to determine how many static sound sections that there are. It will then copy each StaticSoundn section that it finds up to the number contained on the NumStaticSounds line.
[Sounds] NumStaticSounds=1 [StaticSound1] SoundType=Emitter Position=1200.0,25.0,1800.0 SoundResourceFile=tzone SoundMaxDistance=150.0 SoundMinDistance=10.0 SoundLooping=T SoundForce2D=F [Model7] SoundResourceFile=ozonethe SoundLooping=F SoundMaxDistance=150.0 SoundMinDistance=25.0 SoundForce2D=F [Model20] SoundResourceFile=testing SoundLooping=F SoundMaxDistance=150.0 SoundMinDistance=25.0 SoundForce2D=F
The above project_sound.ini will add one static sound at postion 1200,25,1800 using the sound file tzone.wav. It will also add sound to two objects. Model number 7 and Model number 20. Model 7 will use the tzone.wav file and model 20 will use the testing.wav file.
Because of all the editing that you can do and there is no way that we can synchronize with Armadillo, it is important to place your objects that you want to add sound to as your first objects. You want to try to maintain their numbering. If you place them first and don't delete any objects before them then you won't have a problem. If you delete objects that are a lower number then the model numbers in your project_sound.ini file then you will have to figure out what there new Model number is and edit your sound.ini file.
We discovered that Armadillo will add statements to the INI but the files are not needed to actually have the project work and the files may have not been created yet. To allow for this MOA_Assist adds to the MultiObjectAssistant.INI file a new section and puts in a list of optional files. You can disable any of them by changing the Yes to a No. You can also add new lines. Any files that match will be flagged as optional if they do not exist. The #PROJECT# is replaced by the project name that is being worked on.
[OptionalFiles] #PROJECT#.tga=Yes #PROJECT#S.tga=Yes #PROJECT#*.tga=Yes #PROJECT#*S.tga=Yes #PROJECT#.esb=Yes #PROJECT#.seg=Yes #PROJECT#.wpt=Yes #PROJECT#*.wpt=Yes
If you have any problems using this please leave a message in the Twisted Forums at the Twisted D.I.R.T. web site. Someone will help you as soon as they can.
This project is the brain child of Twisted D.I.R.T. member Jeff Hamblin (MCMnut). He created the Multi-Object Assistant (MOA). Bruce (AMA_DirtTwister) created a couple of utilities to assist him with his project (MOA_Assist and RunMakeCMP). We hope that you find this utility useful. We are confident that it will take the pain out of using multiple custom objects with MCM 2 and help you avoid the problems that are caused if you do not employ the techniques used by Jeff's Multi-Object Assistant.
Of course enough can not be said about the rest of Twisted DIRT and their testing of these utilities. I can't wait to see all the objects created by our object guru's; fraser, JMS, and Mike_McCue.