Before we get
started, thanks to c0mp1le, Ob1-Kenobi & Mr.Mitchell for their
invaluable advice during the creation of this tutorial.
#exec commands are used to import resources (e.g. models, textures,
sounds, etc.) into a .u file, the resource can be in the relevant Unreal
format (e.g. utx, uax) or in one of a number of other formats that UCC and
UnrealEd support. #exec commands can either be placed in the body of a
UnrealScript class or typed directly into the UnrealEd console.
Miscellaneous Resources#exec OBJ LOAD This #exec
command will import a pre-existing Unreal resource, commonly a .utx file.
Parameter |
Description |
Possible values |
Optional? |
FILE |
specifies the path of the resource to import |
|
|
PACKAGE |
specifies the name of the package to import resource into |
|
|
Example:
#exec OBJ LOAD
FILE=..\Textures\JWSKy.utx PACKAGE=SE
|
#exec TEXTURE IMPORT Imports a texture from a .pcx file.
Parameter |
Description |
Possible values |
Optional? |
NAME |
specifies the name of the texture in Unreal |
|
|
FILE |
specifies the path of the texture to import |
|
|
GROUP |
which group in the current package to place the texture |
|
Yes |
MIPS |
whether or not mip-maps should be generated for this texture,
should be OFF for textures that'll be used by UWindows (e.g. new HUD
icons) |
ON/OFF |
Yes |
FLAGS |
2 = masked texture |
|
Yes |
Example:
#exec TEXTURE IMPORT
NAME=Light FILE=Textures\Light.PCX GROUP="Icons" MIPS=OFF FLAGS=2
|
#exec FONT IMPORT Import a font texture for use as a font in
Unreal.
Parameter |
Description |
Possible values |
Optional? |
FILE |
specifies the path of the font texture to import |
|
|
NAME |
specifies the name of the font in Unreal |
|
|
Example:
#exec FONT IMPORT
FILE=Textures\MedFont.pcx NAME=MedFont
|
#exec NEW TRUETYPEFONTFACTORY Import a true type font for use
as a font in Unreal. For a thorough explanation of the nuances of
importing true type fonts read this.
Parameter |
Description |
Possible values |
Optional? |
PACKAGE |
specifies the name of the UTX package to import the font into
(but only if importing from within UnrealEd) |
|
Yes |
NAME |
specifies the name of the font in Unreal |
|
|
FONTNAME |
specifies the Windows name of the font to be imported, e.g.
"Arial" |
|
|
HEIGHT |
height of the font in pixels, which is passed to the Windows'
CreateFont() API call |
|
|
ANTIALIAS |
whether or not to anti-alias the font when importing it (1 =
anti-aliased) |
0/1 |
|
CHARACTERSPERPAGE |
specifies the number of characters per 256x256 pixel font
texture. The default is 64 |
|
Yes |
XPAD |
adds horizontal space between characters |
|
Yes |
YPAD |
adds vertical space between characters |
|
Yes |
Example:
#exec NEW
TRUETYPEFONTFACTORY NAME=Tahoma30 FONTNAME="Tahoma" Height=30
ANTIALIAS=1 CHARACTERSPERPAGE=32 |
#exec AUDIO IMPORT Import a sound from a .wav file.
Parameter |
Description |
Possible values |
Optional? |
FILE |
specifies the path of the sound to import |
|
|
NAME |
specifies the name of the sound in Unreal |
|
|
GROUP |
which group in the current package to place the sound |
|
Yes |
Example:
#exec AUDIO IMPORT
FILE="Sounds\ChainSaw\ChainIdle.WAV" NAME="ChainIdle"
GROUP="ChainSaw" |
Vertex AnimationImporting models into Unreal requires an
understanding of the LOD system, read up on it here.
#exec MESH LODPARAMS Configure various LOD options for a mesh
(vertex or skeletal).
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the mesh to configure LODing for |
|
|
STRENGTH |
per-mesh linear LOD scaler, default = 1.0, higher values result
in more aggressive LOD-culling |
|
|
MINVERTS |
the minimum number of vertices you want your mesh to always
retain at the farthest distances |
|
Yes |
MORPH |
the proportion of vertices that are allowed to contribute to the
smooth morphing, 0.0 for no morphing |
0 - 1 |
Yes |
ZDISP |
specifies in UUs the distance at which the LOD culling kicks in
|
|
Yes |
Example:
#exec MESH LODPARAMS
MESH=LodMesh STRENGTH=1.0 MINVERTS=14 MORPH=0.25 ZDISP=90.0
|
#exec MESH IMPORT Imports a vertex mesh (_d.3d).
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the name of the mesh in Unreal |
|
|
ANIVFILE |
specifies the path of the animation file |
|
|
DATAFILE |
specifies the path of the vertex mesh |
|
|
X, Y, Z |
set the origin of the mesh |
|
Yes |
MLOD |
whether or not this mesh should be LODed |
0/1 |
Yes |
LODSTYLE |
bit field with switches to change the style of building the
pre-collapse sequence |
1, 2, 4, 8, 16 |
Yes |
LODFRAME |
specify which animation frame rather than the default 0th frame
to be sampled for generating the collapse sequence |
|
Yes |
LODNOTEX |
causes texture coordinates to be ignored when importing |
|
Yes |
LODOLD |
maintain the original order of animation vertices as they are
imported |
|
Yes |
Example:
#exec MESH IMPORT
MESH=Duke ANIVFILE=MODELS\Duke_a.3d DATAFILE=MODELS\Duke_d.3d X=0
Y=0 Z=0 LODSTYLE=1 |
#exec MESH ORIGIN Sets the origin of a mesh.
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the mesh to set the origin of |
|
X, Y, Z |
set the origin of the mesh |
|
Yes |
YAW, ROLL, PITCH |
set the rotation of the mesh |
|
Yes |
Example:
#exec MESH ORIGIN
MESH=Duke X=0 Y=0 Z=0 |
#exec MESH SEQUENCE Define an animation sequence.
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the mesh to create an animation sequence for |
|
|
SEQ |
specifies the name of the animation sequence |
|
|
STARTFRAME |
specifies the frame at which the animation sequence starts |
|
|
NUMFRAMES |
specifies the number of frames in the animation |
|
|
RATE |
frames per second (though the duration of the anim is set in
PlayAnim() calls) |
|
Yes |
GROUP |
which group to place the anim in |
|
Yes |
Example:
#exec MESH SEQUENCE
MESH=Duke SEQ=All STARTFRAME=0 NUMFRAMES=265
|
#exec MESH NOTIFY Create a notifcation callback.
Parameter |
Description |
Possible values |
Optional? |
MESH |
the mesh to link the notification to |
|
|
SEQ |
specifies the name of the animation sequence |
|
|
TIME |
call the notify function after this fraction of the animation
has played (e.g. 0.1 = 1/10th) |
0 - 1 |
|
FUNCTION |
specifies the name of the function to call |
|
|
Example:
#exec MESH NOTIFY
MESH=Duke SEQ=All TIME=0.1 FUNCTION=LandThump
|
#exec MESHMAP NEW Define a meshmap to apply textures to a
mesh.
Parameter |
Description |
Possible values |
Optional? |
MESHMAP |
specifies the name of the meshmap |
|
|
MESH |
specifies the mesh which the meshmap applies to |
|
|
Example:
#exec MESHMAP NEW
MESHMAP=Duke MESH=Duke |
#exce MESHMAP SCALE Change the scale of a meshmap.
Parameter |
Description |
Possible values |
Optional? |
MESHMAP |
specifies the meshmap to scale |
|
|
X, Y, Z |
how much to scale the meshmap on each axes |
|
|
Example:
#exec MESHMAP SCALE
MESHMAP=Duke X=0.1 Y=0.1 Z=0.2 |
#exce MESHMAP SETTEXTURE Assign a texture to part of a
meshmap.
Parameter |
Description |
Possible values |
Optional? |
MESHMAP |
specifies the meshmap to assign textures to |
|
|
NUM |
where to place this texture in the MultiSkins array |
|
|
TEXTURE |
specifies the name of the texture to apply, this texture should
already have been imported |
|
|
Example:
#exec MESHMAP
SETTEXTURE MESHMAP=Duke NUM=0 TEXTURE=Duke0
|
Skeletal AnimationEssential reading for the skeletal animation
system can be found here.
#exec MESH MODELIMPORT Imports a skeletal mesh (.psk).
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the name of the mesh in Unreal |
|
|
MODELFILE |
specifies the path of the model to import |
|
|
X, Y, Z |
set the origin of the mesh |
|
Yes |
MLOD |
whether or not this mesh should be LODed |
0/1 |
Yes |
LODSTYLE |
bit field with switches to change the style of building the
pre-collapse sequence |
1, 2, 4, 8, 16 |
Yes |
LODFRAME |
specify which animation frame rather than the default 0th frame
to be sampled for generating the collapse sequence |
|
Yes |
LODNOTEX |
causes texture coordinates to be ignored when importing |
|
Yes |
LODOLD |
maintain the original order of animation vertices as they are
imported |
|
Yes |
Example:
#exec MESH MODELIMPORT
MESH=Tosc MODELFILE=MODELS\Tosc.psK LODSTYLE=8 X=0 Y=0 Z=0
|
#exec ANIM IMPORT Import an animation file (.psa).
Parameter |
Description |
Possible values |
Optional? |
ANIM |
specifies the name of the UAnimation object |
|
|
ANIMFILE |
specifies the path of the animation file to import |
|
|
IMPORTSEQS |
1 signifies that the animation sequence info embedded into the
binary .PSA file by the Max exporter is to be used |
|
|
MAXKEYS |
sets an adjustable squeeze on the number of keys in the
animation as a whole |
|
Yes |
COMPRESS |
does the same as MAXKEYS, does the same but with a simple factor
ranging from 0 to 1 |
0 - 1 |
Yes |
Example:
#exec ANIM IMPORT
ANIM=SkAnimTest ANIMFILE=models\10.psa IMPORTSEQS=1 COMPRESS=0.9
MAXKEYS=9999999 |
#exec ANIM SEQUENCE Import an animation sequence.
Parameter |
Description |
Possible values |
Optional? |
ANIM |
specifies the name of the animation |
|
|
SEQ |
specifies the name of the animation sequence |
|
|
STARTFRAME |
specifies the frame at which the animation starts |
|
|
NUMFRAMES |
specifies the number of frames in the animation |
|
|
RATE |
frames per second (though the duration of the anim is set in
PlayAnim() calls) |
|
| Yes
GROUP |
which group to place the anim in |
|
Yes |
Example:
#exec ANIM SEQUENCE
ANIM=TozcAnim1 SEQ=All STARTFRAME=0 NUMFRAMES=25 RATE=0.2
GROUP=Default |
#exec ANIM DIGEST Once you've imported animations, a DIGEST
command needs to be issued, at which point all sequences are compressed
into the internal key track format.
Parameter |
Description |
Possible values |
Optional? |
ANIM |
specifies the UAnimation object to "digest" the animations into
|
|
|
VERBOSE |
specify 'VERBOSE' to see more information in UCC.log after the
rebuild |
|
Yes |
Example:
#exec ANIM DIGEST
ANIM=SkAnimTest VERBOSE |
#exec ANIM NOTIFY Create a notifcation callback, must be
placed after the ANIM DIGEST.
Parameter |
Description |
Possible values |
Optional? |
ANIM |
specifies the animation to link the notification to |
|
|
SEQ |
specifies the name of the animation sequence |
|
|
TIME |
call the notify function after this fraction of the animation
has played (e.g. 0.1 = 1/10th) |
0 - 1 |
|
FUNCTION |
specifies the name of the function to call |
|
|
Example:
#exec ANIM NOTIFY
ANIM=TozcAnim1 SEQ=All TIME=0.1 FUNCTION=LandThump
|
#exec MESH DEFAULTANIM Link a UAnimation object to a skeletal
mesh at compile time.
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the skeletal mesh to link the animations to |
|
|
ANIM |
specifies the UAnimation object to link |
|
|
Example:
#exec MESH DEFAULTANIM
MESH=MeshSk ANIM=SkAnimTest |
#exec MESH BOUNDINGBOX Override the engine's default bounding
box with one that better fits the model.
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the mesh to define the bounding box for |
|
|
XMIN, YMIN, ZMIN |
define the lower bounds of the box |
|
|
XMAX, YMAX, ZMAX |
define the upper bounds of the box |
|
|
Example:
#exec MESH BOUNDINGBOX
MESH=MeshSk XMIN=-64.0 YMIN=-64.0 ZMIN=-64.0 XMAX=64.0 YMAX=64.0
ZMAX=64.0 |
#exec MESH WEAPONATTACH Define which bone is the weapon
carrier.
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the mesh we're defining the weapon bone for |
|
|
BONE |
the name of the bone to assign as weapon carrier |
|
|
Example:
#exec MESH WEAPONATTACH
MESH=MeshSk BONE="Right hand" |
#exec MESH WEAPONPOSITION Define the location of the
attachment point, relative to the weapon carrier bone.
Parameter |
Description |
Possible values |
Optional? |
MESH |
specifies the mesh we're dealing with |
|
|
YAW, PITCH, ROLL |
specifies the rotation of the weapon attachment point |
|
|
X, Y, Z |
specifies the location of the weapon attachment point |
|
|
Example:
#exec MESH
WEAPONPOSITION MESH=MeshSk YAW=50 PITCH=0 ROLL=10 X=0.0 Y=0.0 Z=0.0
|
|