I don't need to test my programs. I have an error-correcting modem.
This is a simple placeholder actor that displays a static mesh. Every time a static mesh is added to a map, an actor of this is added, with the Display -> StaticMesh property set to the static mesh resource.
The Curse of Static Meshes is that they do not seem to offer much beyond standard shapes, though admittedly the distribution of UT2003 includes many of them. However, they can be customized to present quite different aspects.
The StaticMeshActor adds only one property of its own:
- nonzero extent projectiles should shrink to zero when hitting this actor
Other useful properties inherited from Actor...
Several properties control the textures displayed on the surfaces of a static mesh:
- the Display -> Skins array: this overrides the Materials array of the actual SM resource. To use this, Extend The Dynamic Array and set the resource property.
- the Display -> UV2Texture property: this wraps a texture around the whole mesh
The Epic static meshes are designed in different ways:
- the mesh has one texture set in its Materials array, which wraps around it entirely. This is often a "fitted texture" – one that is specially designed so its detail wraps in the right place.
- the mesh is divided into sections, and each section has a material. These may use a combination of "fitted textures" and "plain" textures
- the mesh isstored with plain textures, and a fitted texture can be applied with the UV2 property – when the mesh in an Epic map looks different to the mesh in the resource browser, this is often why.
Many of the Epic SMs come with several skins. For example, for the HumanoidHardware SM pack, look for the HumanoidHardwareBrush.utx: the texture name will identify which mesh it is designed to be used with.
Also, most meshes look fine with alternative base textures (many of the epic maps do this, for example the stair rails seen in DM-Asbestos are rusty, whereeas the SM is plain grey concrete.
All this is set for an individual StaticMeshActor under its Display -> Skins array.
Some SMs are made up of several sections. It's not always obvious which ones by just looking – it might be several simple textures, or one complicated texture. In the browser, select the mesh, and in the properties section of the browser expand the materials array: each array item is one section of the static mesh covering.
With this array you can tell which section is showing which texture. You can change the material here to update all placed actors that display this mesh (but never edit the Epic packages! – only do this if you are making your own meshes). Or you can set materials on a placed static mesh actor. (remember, we're dealing with a placed actor displaying a mesh on one hand, and a mesh resource on the other).
For example, the curved wall panel HumanoidHardware.WallPanels.Jpipewall is listed as having two materials. To change the second, set Skins. You'll need to add two array entries. Leave Skins blank, that will leave the built-in material.
There is also the Display -> UV2Texture property: this can hold a skin-like texture while the skins array holds base textures (deep mojo...)
Rotation & Scaling
- numeric rotation under Movement -> Rotation and also the Brush Rotation tool.
- the Brush Scaling mode works, but UEd 3 has a minor interface bug – the changes made with this tool don't appear "live"
- numeric scaling:
- Display -> DrawScale – all axies.
- Display -> DrawScale3D – individual axes
To mirror in an axis, use a negative number in DrawScale3D. It's offten better to mirror than to rotate 180 degrees, especially if you want to line up two of the same mesh back-to-back.