| PKG Commandlet

#### Overview

This commandlet was written to make the creation of packages easier for people making skins and so on. What it does it it provides an easy way to export data from package and to create new packages. Currently, it works with sound and texture packages. You can download it here.

Rather than explain the command line options in depth, I'll just give some quick examples ...

#### Exporting Data

To export data from a texture package, you might use the following syntax (starting from the system directory) ...

"ucc pkg export texture ..\textures\starship c:\temp\starship"

What this will do is export all textures from the "starship.utx" file into the "c:\temp\starship" directory. Group names become sub directories. So you'll end up with something like the following on your hard drive...

This is the exported data from the texture package. Inside of each directory are the PCX files for the textures that were in each group. If there are no groups, then the textures would just be in the base "c:\temp\starship" directory. There is also an extra file stuck in the "c:\temp\starship" directory called "spec.ini". This file is created automatically when you use this commandlet to export the textures. It allows you to customize the importing of each texture when the time comes. A sample from this file looks like this ...

    [ImportInfo]
    sh_ep2=mipmap=1 masked=0
    sh_spts=mipmap=1 masked=0
    sh_wl1=mipmap=1 masked=0
    sh_pnl3=mipmap=1 masked=0
    sh_plw3=mipmap=1 masked=0
    sh_grd4=mipmap=1 masked=1
    sh_grd3m=mipmap=1 masked=1

This is not a complete list of course, but what you see here are the names of the textures in this texture package. After each one is a string which tells the commandlet how to import each texture. This gives you the same options as you have when importing textures via UnrealEd.

#### Importing Data

Importing is very similar to exporting. To import the directory structure that we exported above, we would use the command ...

"ucc pkg import texture ..\textures\MyStarship c:\temp\starship"

This will create a texture package called "MyStarship.utx" from the files found in the "c:\temp\starship" directory. It will read one sub directory deep, and use those directory names as group names. So if you use the directory that we created above, the "Base", "Ceiling", etc directories would become groups within the package.

When it imports the textures, it reads the file "spec.ini" from the base directory ... in this case "c:\temp\starship". As explained above, this file contains information about each texture and how it is to be imported. If a texture is not listed in this file, it is imported with the default settings ("mipmap=1 masked=0"). If this file is missing altogether, then ALL files are imported with the default settings.

#### Sound Packages

We haven't talked about sounds yet, because the procedure is exactly the same as for textures with the exception of "spec.ini". Sounds don't have any import parameters so this file is not necessary for sounds.

#### Advantages

Now, you might be asking, why does this commandlet exist when you can create packages with UnrealEd? Well, the simple answer is that this is easier and faster than starting up the editor and handling all the importing yourself. Importing itself isn't so bad, but exporting via the editor is a pain since each file has to be imported individually. This can take a long time.

One advantage of this is if you set up a source art (or sound) directory somewhere and put batch files in each one to create the corresponding package, then throughout development all your artists have to do to update texture packages is to put the PCX files into the proper directories, and double click the batch file. If you have questions about how any of this works, feel free to contact me at warren@epicgames.com.

- Warren