This page describes how a ladder is built. The description of the steps required has been taken from the game Devastation. It is expected that the process for other unreal engine based games will be similar if not identical.
A ladder is composed of three main elements (five if you include the autogenerated ladder paths). These elements are:
- The ladder static mesh (just for the look of the thing)
- The blocking volume used to "cover" the ladder (for collision purposes: quicker than per-poly collision)
- The LadderVolume itself (makes the player climb)
- Two auto generated Ladder pathnodes (AutoLadder? objects for bot support)
- The first thing you need to do is add your ladder object to the map. I used the ladder static mesh AbitladderA from the Aquifiers package: Add a static mesh Aquifiers.AbitladderA. Place it on the wall where you wish the ladder to be.
- The ladder itself is 32 UU wide and 192 UU high. You will most likely find that you will have to rotate the ladder into the correct orientation and move it into position.
- Once you have got the ladder into position it is well worth changing the collision properties on the ladder to ensure good performance. So Set the following properties:
- Collision → bBlockKarma = true
- Collision → bBlockZeroExtentTraces = true
- Collision → bCollideActors = true
Your ladder is now ready for use.
You may have noticed that our ladder does not block any of the Actors within the game. We are going to use a BlockingVolume for this purpose. The BlockingVolume will enclose the ladder and ensure that only simplistic collision occurs.
In order to create the blocking volume you need to Add a Volume with a height, width and breadth of 192, 32, and 16 UU respetively. Depending on the orientation of your ladder you may need to swap the breadth and width values around.
A white cube will now appear in your level. Move the red builder brush out of the way and position your new blocking volume over the ladder.
So, we have the ladder in our map and a mechanism to ensure that the ladder is solid. We still can't climb our ladder though. This is where the LadderVolume comes into its own. The LadderVolume defines the area within which the "ladder effect" will occur.
- Create a cube using the red builder brush with a height, width, and breadth of 288, 64, 64 UU respectively. The height specified is 96 units higher than the ladder's blocking volume. This additional height seems to make it easier to get down the ladder without having to jump. If you find better values add them to this page. These are most likely Devastation specific.
- Left click on the Add Volume button in the left toolbutton area and select the LadderVolume option.
Another white cube will appear within your level. Move the red builder brush out of the way and position your ladder volume such that it completely encloses the ladder and the blocking volume. You will notice that the LadderVolume has a directional arrow at it's center. This arrow must be pointing towards the blocking volume. If this is not the case then you must set the orientation of the ladder volume correctly. You cannot rotate the LadderVolume into the correct orientation. Instead you need to right click on the LadderVolume, open the LadderVolume set of properties and set the WallDir property appropriately. It's most likely that you will only need set the Yaw property. Common values are: North=49152, East=0, South=16384, West=32768.
In order to make your ladder actually work you will need to rebuild the level (including the paths). If you don't see two ladder icons at top and bottom of your ladder something has gone wrong and your ladder will not work correctly within the level. Try adjusting the position and size of the LadderVolume relative to the BlockingVolume. Also ensure that the bAutoPath property is set to True. If you can see the two ladder icons within your volume your ladder should work without any problems.
Save your level and give it a go.
A picture of the ladder volume is shown on the left. The LadderVolume is in brown, the BlockingVolume is in blue, and the AutoLadder PathNodes are in yellow. The orientation of the LadderVolume is indicated by the Red Arrow. The static mesh I used for the ladder is invisible.
Be aware that I tweaked the colours to make the diagram clearer.
Mychaeel: Why did you remove all the italics from menu commands, EntropicLqd? They make them much easier to distinguish from the surrounding text.
EntropicLqd: Because I felt that it made the actual text too hard to read (at least it did on my screen). I might try using the teletype format instead tomorrow.
Thanks for adding the basic procedure stuff Tarquin. I was expecting to have to do that now. Instead I can go get some sleep.
Tarquin: np you may have noticed that most of Add A Static Mesh is your work too ...