Setting Up Ledges and Vaults

Overview

Crysis 3 will use more ledge grabs (and now vaults too) mark up in its levels; for that reason, it seemed clear that the previous tool inherited from Crysis 2 was not good enough because:

  • Far from optimal for level designers to do the mark up.
  • Not efficient from a memory and performance point of view.
  • It won't scale well if we end adding more and more of these in the levels.

All of these features are now available in the CryENGINE SDK from the GameCustom objects.

New Point & Click Ledge and Vault placement

We have not one, but two ledge object types; the idea behind this split is to save memory, because most of those ledges do not require an entity, they are just markers in the level.

Both objects are based on the shape tool for mark-up placement and they can be found under GameCustom group in the rollup bar.

LedgeStatic

When do I use it? In most of the cases, if possible, always prefer this one.

LedgeStatic is always enabled, it can not be disabled.

This object won't be exported to the level.pak, it won't exist in the game as it is, meaning:

  • Don't attach any FG logic to it.
  • Don't move it, it is meant to be static once in game.

Ledge

When do I use it?

  • When you need to enable/disable the ledge
  • When you need to attach any FG logic to it
  • When you need to move the ledge in game (e.g. VTOL ledges in MP)

If you don't need any of this (which will be the case 99% of the time), use the static one.

Properties

Most properties between static and non static ledges are common, the only difference is the fact that static ones don't have an 'Enable' options, as they are always active.

OptionDescription
IsThinFor animation, to indicate a full vault animation can be performed (and not just a step up).
IsWindowFor the logic to always execute the action, regardless of other filtering criteria applied to the normal case.
LedgeFlippedFlips the facing direction of a ledge.
LedgeDoubleSideIndicates this ledge can be used from 2 sides.

For each side of the ledge, we can define also custom properties like:

OptionDescription
LedgeTypeVault or Normal
EndCrouchedFor animation to end in crouch when the ledge/vault transition ends.
EndFallingFor animation to indicate that the player will fall after the ledge is finished (no ground on the other side).

Ledge entity node

Only available for non static ledges, allows for enabling/disabling a ledge. Also provides an output for when a ledge is used.

Notes on the old entities (GrabableLedge)
  • This entity is still available and fully working.
  • This entity has to be considered as deprecated from now on, and it should be removed from the levels, replaced with the new ones.
  • This will eventually be removed from builds.

Visual debugging

Editor
  • g_LedgeGrabManager_DebugDrawInEditor (Default 1) - Toggles debug rendering on ledges in editor: 0 - Disabled / 1 - Enabled in editing mode / 2 - Enabled in game mode too.
  • g_LedgeGrabManager_DebugDrawInEditor_Distance (Default 35) - Max distance from camera at which ledges are rendered.
  • Hide helpers button will also toggle the debug drawing.
Game
  • g_LedgeGrabManager_DebugDraw (Default 0) - Toggles debug rendering: 0 - Disabled / 1 - Enabled.
  • g_LedgeGrabManager_DebugDraw_Distance (Default 35) - Max distance from camera at which ledges are rendered.

Ledges are color coded and display their facing direction. They can also be double sided.

  • Red - Normal ledge grab
  • Blue - Vault ledge
  • Grey - Disabled ledge

Limitations

As in Crysis 2, there is a limit in the number of ledge entities which can be placed (although it could be modified, it should be more than enough), and that number is 1024.

Additionally, each ledge can have up to 32 segments, the shape tool won't allow to place more. Those can be double sided as well, so that makes for a total theoretical number of ledges of 65535.