Advanced Models SDK

Coding and compiling an AMS model, part 3: Compiling

Relevance

This page is relevant to:
Modellers making a plugin player model using Advanced Model Support

You will need

By the time you get here, you need to have all this lot:

Compiling

Open System\UnrealTournament.ini in Notepad and find the section headed "[Editor.EditorEngine]". Scroll down a bit until you see a list of EditPackages. Add these, in this order, if they're not already there:

EditPackages=AdvancedModelSupport
EditPackages=(package name containing the model)

If the package you're making already exists, delete it. The UnrealScript compiler won't recompile packages which already exist.

Now go to a DOS prompt and do the following:

C:\Windows>x:
X:\>cd "\games\unrealtournament"
X:\Games\UnrealTournament>cd system
X:\Games\UnrealTournament\System>ucc make

Replace x with the drive you installed UT on and \games\unrealtournament with the path to your UT folder. If you have the "Command Prompt Here" powertoy, you can also go to your UT folder in Explorer, right-click on System, choose "Command Prompt Here" and type "ucc make".

For example, I added this to my EditPackages:

EditPackages=AdvancedModelsSupport
EditPackages=AMS_DemoModels

I then typed this at a DOS prompt (my UT is installed in E:\Games\UnrealTournament):

e:
cd \games\unrealtournament
cd system
ucc make

INT files

These are text files which go in the System folder and tell the UT user interface about your model. The name stands for INternational Text.

The INT file for the model package needs to be named after the U file and contain this:

[public]
Object=(Name=(package name).(class),Class=Class,MetaClass=Botpack.TournamentPlayer,Description="(human-readable name)")
Object=(Name=(package name).(class)Bot,Class=Class,MetaClass=Botpack.Bot,Description="(human-readable name)")

Important: even if you have made UT skins before, read the next section carefully. It's not the same as what you're probably used to.

The INT file for each skin needs to be named after the UTX file and contain this:

[public]
Object=(Name=(skin package name).(4-letter code)1,Class=Texture,Description="(human-readable name)")
Object=(Name=(skin package name).(4-letter code)2(face name),Class=Texture,Description="(human-readable name of face)")

The 1 and 2 may be replaced with any single-digit number - most skinners choose the numbers so that the texture specified actually exists, but it's not required. If a skin has more than one face, add extra face lines; if a package contains more than one skin, add extra skin and face names.

If you're used to making longer INT files for skins, please note: You do not need to include any line which does not include "Description=", unless you are doing weird stuff with fractal-animated textures.

If you are using these textures, you should also include one line per texture to "register" it, like this:

Object=(Name=(skin package name).(texture name 1),Class=Texture")
Object=(Name=(skin package name).(texture name 2),Class=Texture")
Object=(Name=(skin package name).(texture name 3),Class=Texture")
...

Note that these lines are rather different - the texture name will be similar to or even the same as one of the previous ones, but there is no Description.

For example, here are Cubic Man's INT files:

AMS_DemoModels.int

[public]
Object=(Name=AMS_DemoModels.AMS_CubicMan,Class=Class,MetaClass=Botpack.TournamentPlayer,Description="AMS Demo: Cubic Man")
Object=(Name=AMS_DemoModels.AMS_CubicManBot,Class=Class,MetaClass=Botpack.Bot,Description="AMS Demo: Cubic Man")

AMS_CubicManSkins.int

[public]
Object=(Name=AMS_CubicManSkins.Cube0,Class=Texture,Description="Cubic Man")
Object=(Name=AMS_CubicManSkins.Cube1Fred,Class=Texture,Description="Fred Square")
Object=(Name=AMS_CubicManSkins.Cube1Dave,Class=Texture,Description="Dave Cubic")

AMS_CubicManSkins_Test.int

[public]
Object=(Name=AMS_CubicManSkins_Test.Test0,Class=Texture,Description="- Test skin -")
Object=(Name=AMS_CubicManSkins_Test.Test1Test,Class=Texture,Description="- Test face -")

Testing it in-game

Your model should now work. It will use the same sounds and "status doll" as one of the default UT ones, and won't be animated in the selection screen, but could be released now if you wanted. To add extra features, proceed to the next tutorial.

And, here he is in UT!

Cubic Man in UT

Building the UMOD

Please make a UMOD file for your model. Use UMOD Wizard, it's surprisingly easy.

Remember to make your model require UnrealTournament (in the Requirement Groups screen, select Add, Requirement Presets, UnrealTournament) - this is what makes Setup fill in the path to the user's UT folder automatically. You must also make your model require Advanced Model Support, using the following settings:

Product: AdvancedModelSupport
Version: 102
Developer: Psychic_313
Version URL: http://www.pseudorandom.co.uk/paradox/ams/
Developer URL: http://www.pseudorandom.co.uk/paradox/
Product URL: http://www.pseudorandom.co.uk/paradox/ams/

Notice that the product name, AdvancedModelSupport, does not contain spaces. The UT Setup utility is picky about such things.

You can change the version number to 110 if you like, but there's not much difference between the two. Models which require AMS 102 (or 101 for that matter) will work with any later version.

When packaging a mod, please remember that the correct place for help files, UMOD banners etc. is \Help\ or \Help\AdvancedModels\, not \System\. Help keep Unreal Tournament tidy :-)

In the interests of consistency, all models I make the UMOD for will place all such files in the \Help\AdvancedModels\ subfolder, which is created by the Advanced Model Support UMOD. If you use this convention too, it'll make the location of readme files more consistent.


Previous page

Coding and compiling AMS models, part 2: Skins

Next page

Extra options specific to AMS

Back to index


AMSDK compiled by Simon `Psychic_313' McVittie, http://www.pseudorandom.co.uk
This page by Simon McVittie