Unreal v227 Manual/New mod authoring tools

From Oldunreal-Wiki
Revision as of 18:29, 27 June 2022 by Neon Knight (talk | contribs)
Jump to navigation Jump to search
Article stub
The following is an article stub. You can help us by expanding it.
Unreal v227 Manual
Main pageNew maps and itemsNew menu optionsVideo renderersAudio renderersServer admin toolsNew mod authoring toolsFrequently Asked Questions
Unreal v227 Manual
<- Previous Server admin tools
Next -> Frequently Asked Questions

Here we're going to take a look at the new features introduced by the v227 patch regarding mod authoring and editing.

UnrealEd 2.0

Introduction and history

UnrealEd 2.0 is the second version of UnrealEd. Unreal being the first game to use the Unreal Engine (in it's very first iteration) the included editor, UnrealEd (1.0), by the original developers' own admission, was an unsupported beta software developed in Visual Basic. The lack of certain tools prevented level-designers to achieve complex maps.

UnrealEd 2.0, originally introduced for UT99, is a rebuilt editor written in C++ later ported back to Unreal by Smirftsch in order to provide better tools for the community. Subsequent releases of patch 227, with extra involvement from the OldUnreal community, heavily improved the tools, stability and ease of use enough to deem it an almost different version: UnrealEd 2.1, similar in its looks, but significantly improved, with many bugs corrected, new functions and overall better stability.

UnrealEd 2.0 was introduced in Unreal by Patch 227f and replaced by UnrealEd 2.1 in 227h. All information on UnrealEd 2.0 works with 2.1, except for most known bugs and problems which have been fixed. UnrealEd 2 refers collectively to UnrealEd 2.0 and 2.1.

Interface

UnrealEd 2.x features a new and nicer interface

The interface was completely redesigned from UnrealEd 1.0 and is a lot more polished. First, the Browser isn't a sidebar anymore, but a set of dockable windows. When a browser is docked, it can be accessed from other docked windows without opening a new browser, keeping everything at hand. Only the main buttons have been kept on the left side, and the width of this sidebar reduced to two icons. This leaves plenty of extra space for the viewports themselves. These viewports are configurable, lockable and can be set to cover the entire screen if needed. The interface is very easy to configure and very comfortable, and was reused with almost no changes in UnrealEd 3.0 (the version that shipped with Unreal Tournament 2003 and Unreal Tournament 2004) and 4.0 (the version that shipped with Unreal Tournament 3) on later engines.

Features

Among other things, UnrealEd 2 features a Vertex Editing tool which greatly increases the possibilities for designers by allowing them to move not only one vertex at a time but as many as they want.

The 2D shape editor is no longer a buggy beta implementation and can be used to create almost any shape without problems.

One notable feature is the possibility to use OpenGL and several versions of Direct3D rendering in the 3D viewport, which means you won't get surprised by how a map looks in the game compared to what the software rendering shows, as was sometimes the case in UnrealEd 1.0. Although the D3D implementations are not fully supported and might not be fully working, especially if you're using and ATI graphic card, they can be used without a lot of troubles. From 227g onwards, the OpenGL support is fully stable and supported.

Plug-Ins

Though there is no "plug-in" as you might know, UnrealEd 2.0 and 2.1 can both be enhanced and expanded by adding new buttons, new functions, new tools. On the provided screenshot at the top of the page, you may notice purple builder brushes. These are custom builder brushes, the Tarquin tools. A lot of tools have been created over time for UT99's UnrealEd 2.0 and are completely compatible with Unreal 227's UnrealEd 2.1: Quick camera alignment, new stairs builders, round shape creator, easy Skybox, etc...

Static Meshes

Static Meshes are a new feature implemented in 227g. A Static Mesh is, basically, a mesh with a single static frame which can be used for decoration actors. In UnrealEd, they are displayed in the 2d viewports as green wireframe objects. When a Static Mesh is imported or created, it can be viewed in the Mesh Browser, where it has no animation or frame, provided the "Show StaticMeshes" bow is ticked. By default, the second option of the contextual menu when right-clicking in a viewport is the "add static-mesh here" option.

Advantages and Disadvantages over Semi-Solid Geometry

Because the Static Mesh is loaded as an actor, it needs to be loaded only once from the hard drive, and is then kept in memory, which means it is faster than an equivalent BSP object. Static Meshes are also invulnerable to BSP errors, HOMs and BSP Holes. It is not affected by BSP cuts and does not create them. They are easy to convert from format to format, can be edited in UnrealEd without problems. Other advantages are the end of U/V mapping limits which were common with Unreal Meshes (limited to one tile), the possibility to use either a simplified or a per polygon collision instead of the basic cylindrical collision radius of other meshes, and their adaptability: polygon flags can be set and adjusted in-editor from the mesh browser. They are faster to load and more efficient, as a loaded mesh stays in memory for the next time it will be needed.

Static-Meshes are great tools, but they have also several disadvantages: Lighting is calculated differently from brushes, and in the same way it is calculated for meshes, which means complex shadows will usually not affect them - though they can still cast some. They may be glitchy in software mode and clutter the 3D Viewport if you don't use OpenGl or Direct3D rendering. Some bugs may also happen when a brush's pivot is inside a wall, corrupting lighting. It may force you to manually offset the pivot.

Supported conversions

You can convert static meshes between:

  • Brush -> Static Mesh
  • Static Mesh -> Brush
  • Any meshes + Brush -> Static Mesh
  • Export (Static) Mesh as Wavefront .OBJ
  • Import Static Mesh as Wavefront .OBJ

Because Meshes and Brushes can be converted directly into each other, it is possible to create a map with all its meshes inside UnrealEd without using any third-party 3D Software such as Maya or 3Ds Max. However, when doing so, the engine will triangulate - convert all surfaces into sets of triangles - the mesh itself, and may end up with some inefficient results regarding lighting, needing reworking by the designer.

Static Meshes as Movers

Any Static-Mesh can be added as any type of mover: when right-clicking on the Add Mover button in the toolbar, all Mover types can be added as brushes or meshes, using either the Mover or the Mover [mesh] option.

Simple collision model

Static meshes support simple collision model. To create one for a static mesh you do:

  • Add a static mesh to a level and move it to origin (1 scaling, 0 location and rotation).
  • Add simple brush shapes to cover up the parts you want to collide.
  • Now make sure red builder brush is at origin with 1 scaling and intersect the whole brush collision model you created.
  • Then right click on the static mesh actor and select "Create collision model".

Now if you enable "Show skeleton" in mesh browser you should see the simple collision model on the static mesh. To make game use it you can set on static mesh properties:

  • bUseSimpleBoxCollision - Meaning box collision checks (like pawn movement) should collide with the simple collision model.
  • bUseSimpleLineCollision - Meaning the same as above but for simple trace lines (like most projectiles or AI sight checks).

Using this gives performance advantage with complex static meshes as well as prevents you from getting stuck on complex parts of the mesh.

Other options in the mesh browsers include the Materials list, allowing you to instantly replace the textures of the static-mesh and the bFlipNormal boolean, which lets you instantly invert all the faces, so that all polygons visible from outward become visible from inward and vice-versa.

New actors

Jumpers (UJumpPad, UJumpPadEnd, UJumpDest)

Correct way to set up a Jumper

Jumpers are often the shortest way to move a player (after, maybe, a teleporter). It's an actor with a radius that throws the player in a given direction toward a given navigation point.

A jumper requires three actors: UJumpPad (NavigationPoint > LiftExit > UJumpPadEnd > UJumpPad), UJumpDest (NavigationPoint > LiftCenter > UJumpDest), and UJumpPadEnd (NavigationPoint > LiftExit > UJumpPadEnd).

  • Put the UJumpPad at the center of the pad.
  • Put the UJumpDest at the point the Jumper is aiming.
  • In the UJumpPad's properties, under the "LiftExit" tab, put something in "LiftTag" property (e.g. MyJumpPad, so LiftTag=MyJumpPad).
  • Put this same name in the UJumpDest's properties, "LiftCenter" tab, in the "LiftTag" field (LiftTag=MyJumpPad).

The point where the UJumpDest is will be the highest point of the pawn's trajectory in the air. If you rebuild and test your map at this point, you will notice that the jumper is working. If you do right-click => View => Show path in the title bar of the 3D viewport, you will see that a path connects the UJumpPad and the UJumpDest. But if you add further pathnodes, the UJumpDest won't be connected to the other paths. In order to allow bots to play normally:

  • Add a UJumpPadEnd at the end of the jump, at the point where the players are supposed to land.
  • In it's properties, LiftExit => LiftTag, put the same thing as you did previously for you UJumpPad and UJumpDest (LiftTag=MyJumpPad).
  • Add other pathnodes, rebuild and test.

The UJumpPad has an "UJumpPad" tab in its properties with a few parameters you can use to fine-tune it's behavior. The most important one is "JumpSound", where you can enter a sound that will be played when a player walks on the jumper (the sound of the jump boots is perfect for that). Other parameters include:

  • bForceFullAccuracy: aims perfectly at the UJumpDest, but may modifiy the speed of the jump
  • JumpZHeightModifier: allows the mapper to modify the height of the jump: a negative value will make the trajectory less high, while a higher value will send the player higher in the sky
  • JumpVelocityModifier: allows you to modify the speed of the player in much the same way.

The Jumper will work online. Bots can use the Jumpers provided you set up a UJumpPadEnd for them. Otherwise, strange behavior may happen (as they land outside of the paths). As the Jumper is a 227 feature, it can only be used on a 227 server or on a 227 installation of Unreal. It will make your map incompatible with previous versions of Unreal.

Bots seem to be quite incompetent with jumpers and will rarely use them, even when correctly set up. If you are in doubt, check the jumper in UnrealEd: If everything is set up as it should, the UJumpPad should be linked to the UJumpDest by a yellow line when selected. This was added in 227i.

Further reading (Wiki only section)

If you're looking for further information and questions about UnrealEd 2.0, you might want to check Unreal v227 Manual/Frequently Asked Questions.

A lot of articles and tutorials have been written for UnrealEd 2.0 by the very large UT99 community, but over the years, much of this content has been lost.

Unfortunately, as they moved to newer versions of the Unreal Engine, a lot of writers just dropped their UEd 2.0 tutorials. In case you need more help, explanations or advice on how to do a particular thing or how to use a tool, ask on the OldUnreal forums.