There is no spoon

Legacy:General Scale And Dimensions

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

This page is in the process of being cleaned up.

Material has been moved to:

Units & Scale[edit]

The Unreal engine uses two units:

Length[edit]

Unreal Units, or UU. Often simply called "units", or even not given a name at all ("build a 256x256x64 box"). The UnrealEd grid, dimensions of brushes, positions of actors and sizes of collision cylinders are all measured in these units. The Unreal World can have a maximum size of 65536 UU (=2^16) in Unreal/UT. UT2003 and U2 have worlds of 524288 UU (=2^19).

One UU doesn't actually mean anything in the real world, it's just something within the engine.

An arbitrary scale is used for game programming because the scale may change. One game may be an FPS, while another may be a space sim with several planets on an entire map. Obviously, because of the constraint on the map size, you cannot have a whole planet on a map scaled to an appropriate size for an FPS. That is why everything works in abstract "units."

But each game picks a scale to work at: the size of players and objects, which means there is an effective conversion factor between UU and real physical units. In the Unreal series of games, this is generally held to be roughly:

  • 256 UU = 487.68 cm = 16 feet.
  • 1 meter = 52.5 UU
  • 1 foot = 16 UU
  • 1 cm = 0.525 UU
  • 1 UU = 0.75 inches

Note that these are approximations. To illustrate, try converting the TournamentPlayer (UT) dimensions listed here to the 16 units/foot and 12 units/foot scale and you will find that although the 12 units/foot scale is more reasonable, neither is quite right.

Scale TournamentPlayer(UT) height = 78uu JCDenton(DX) height = 95uu
256uu 128uu 1uu Player height(UT) Player height(DX)
16ft(192in) 8ft(96in) .75in. 4'11" 5'11"
20ft(240in) 10ft(120in) .9375in. 6'1" 7'5"
256in(21.3ft) 128in(10.67ft) 1in. 6'6" 7'11"
6in 3in .0234375in 1.83" (Giant scale map!) 2.23"

Looking at player heights, 16 units/foot makes sense for DeusEx but not for UT (unless the players are meant to be dwarves!) The 12 units/foot scale gives a reasonable player height for UT and works well if you think in inches (1uu=1in). Using 1uu=.9375in. gives a very similar player height and works well for larger distances where you tend to think in feet(128uu=10ft).

Using UnrealEd for other Unreal games, e.g. DeusEx or UT2003, is a little different, due to the characters being different sizes. Also, there is a slight distortion between the horizontal and vertical dimensions. If you were to try to create a replica of a real-world structure, the above conversion would make you a giant horizontally, though your vertical dimensions would seem only a little small. Therefore you may want to use horizontal measurements: 1 meter = 70 units, vertical measurements: 1 meter = 60 units.

UUs are not completely arbitrary: there are some things you have to scale to that you can't change. Specifically, light and sound have radii that have a set range, which you can't change. If you don't scale appropriately to the max limits of lightradius and soundradius, you will either lose resolution on those controls (if your world is too small) or be unable to make those things big enough. (if your world is too large). Also, the engine will not render anything that's more than about 60000 UUs away from the camera (the far clipping plane), and if you make things too small the loss of precision when the engine converts various things from float point to integers becomes significant.

UT2004 Scale[edit]

UT2004 appears to be using 1 meter = 50 unreal units scale.

  • The UT2004's Karma physics engine uses 1 karma unit = 50 unreal units scale internally.
  • Player is 88 unreal units high, that's 1.76m, an average human male height.
  • Player running speed is 440 unreal units per second, that's 8.8m/s, an average speed of a 400m runner.

Angle[edit]

Unreal Rotation Units are used to measure angles, to set the direction and rotation of actors for example. 65536 (=2^16) is a full circle. These units are used by rotators, a special UnrealScript variable type. An actor's orientation is given by a rotator in the property Movement -> Rotation.

Not all angles in unreal use these units though:

  • Maths functions such as sin() use radians.
  • When importing a mesh into the engine with an exec directive, you can specify a rotation for the mesh during import ('# EXEC MESH ORIGIN MESH=Blablabla YAW=..PITCH=..YAW=...) . In this case the rotation unit is a byte: a full circle is 255.
Value Degrees Remarks
3640 20 0-19 degrees slope does not slow down players
6371 35 20-35 degrees slope slows down players but is climbable
8192 45
16384 90
24576 135
32768 180
40960 225
49152 270
57344 315
65536 360

Conversion Utilities[edit]

If you want to use a handy unit conversion, you can use a postoperator for this, like so:

const Meter=52.5;
 
// These can be somewhere fairly global...
static final postoperator float Meters( float Units )
{ return Units * Meter; }
 
static final postoperator float MPS( float Units )
{ return Units Meters; }
 
function SetSomething()
{
  SetCollisionSize( 5 Meters, 3 Meters );
  Velocity = Vector( Rotation ) * 5 MPS;
}

See Useful Maths Functions for angle conversion factors.

Two handy javascript unit converters:

Actor Dimensions[edit]

Dimensions of players and bots in UT:

  • 78 units tall = Collision -> CollisionHeight * 2
  • 34 units wide = Collision -> CollisionRadius * 2

Dimensions of players and bots in UT2003:

standing crouching
height 88 UU 58 UU
width 50 UU 50 UU

This is the size of the collision cylinder: it's this that determines an actor's size for bumping and fitting into spaces. Note that crouching does not change this in the original UT, although some mods have implemented it (Jailbreak).

Humans in UT are represented by the class TournamentPlayer. To check other classes without having to add one to a map, right-click in the Actor Classes browser, open the default properties and look in the collision properties. Remember these give the radius and half the height: in this case, a CollisionHeight of 39 means the actor's cylinder is 78 units tall.

Movement[edit]

For the maxmimum and minimum distances players are able to move, see:

Player Environment[edit]

Ceilings[edit]

  • Absolute minimum: 83 units
  • Recommended: 128 units

From experience, it is known that a Player can walk into any room 83 Units or higher (the engine has the Player bobbing up and down), and cannot walk into a room with a height less than 83. It is suggested that rooms be designed a minimum of 128 units in height.

For best results, the ceiling should always be at least two feet above the player's head, and it looks best when significantly higher. In regular domestic architecture, ceilings under 10 feet high are uncommon.

Hallways[edit]

  • Absolute minimum: 48 units
  • Recommended:

These must be a minimum of 48 units wide, and, this is generally considered too narrow for Bot Pathing. PathNodes should be placed at intersections and turns so that there is as much clearance as possible from corners (at least 50 world units if possible). And PathNodes should be clear to the width of the maximum width (twice the CollisionRadius) of creatures which will use this path. See also Bot Support.

When creating a passage that must be crouched through, the minimum ceiling height is 66 units, the minimum hall width is 52 units, and the maximums are 1 less than the minimum values described above for normal hallways.

Steps[edit]

  • Maximum: 24 units
  • Recommended: 16 units

TournamentPlayers can climb any step that is 24 units or less. Using 16 as default stepheight is a smart thing to do, because stuff will align to the grid better that way.

Tarquin: has this increased in UT2003? I seem to be able to do 32.

Jumps[edit]

  • Approx. maximum jump up a step: 64 - 72

It is generally reported that the ability of Players to jump to some maximum height in game varies somewhat. Typically, all Players can jump up to a height of about 64 units, and cannot reach 72 units without JumpBoots.

SuperApe: Could the variation be due to the bobbing up and down mentioned in 'Ceilings'?

Some things that might be handy to know[edit]

Does anyone know these?

  • Equivalent minimum distances that Player can maneuver in Low Gravity and Water environments.\
  • Normal running speed of a bot or a player (so we don't make a house with a room which takes 15 seconds to cross - i.e., out of proportion)
  • Normal silent creeping speed of a player
  • Maximum horizontal distance cleared from an impact hammer jump.
  • Maximum distance of dodges, sideways, backwards & forwards
  • Maximum distance the translocator can be thrown.

SuperApe: It appears the maximum vertical distance a translocator can be thrown in normal gravity is 1536 units. Fancy math should be able to determine horizontal distance with normal gravity and a 45° angle.

MarZer: Using a small projectile motion program I wrote a whole back, I came up with the following figures (variables used shown):

Velocity 1200 UUs-1-, Angle 45°, Gravity -950UUs-2-

Maximum height 378.947368421053 UU,

Horizontal displacement 1.51578947368421 x103 UU,

Time of flight 0.893187513077744 s  :-)

CMan: Doing a dodge however will change the distances, much like a double jump would raise the height. I suppose you could get the velocity modifiers from the Code of xPawn to get the max.

Slopes[edit]

  • A slope less than 20 degrees behaves exactly like a floor (and is actually considered a floor). Players can move on these without obstruction.
  • A slope between 20 and 35 degrees is a grade. The player can move up these but he/she slides and must continually struggle to climb to avoid sliding all the way down.
  • A slope over 35 degrees is unclimbable.

KingMango: Since when? I hesitate to edit this page but the slope info seems to be way off. I don't slide on any slope 45 degrees or less.

SuperApe: This section could be referring to UT99. I agree that UT2k3 and later seem to be more forgiving on slopes.

Tips[edit]

Many experienced mappers place a model of a player in a prominent location when designing the level.

  • Actor >> Decoration >> Introdude
  • Actor >> Pawn >> Bot >> HumanBotPlus >> one of the child classes

Introdude is exactly the same height as the TournamentPlayer when set at a drawscale (in the Properties window) of 1.075.

I've had intermittent problems with an Introdude simply not showing in any view except Wireframe, so I use a bot. Anyone know why this might happen? →Tarquin

A good way of checking to see if bots will take an odd path is to try to set a pathnode in the region. Some brushes (128 units high) vertex edited up or down will be ok for a player to run through, but some bots will not take the path. Try setting a pathnode on the slope by right clicking and selecting "Set Pathnode Here (don't duplicate or move a pathnode there). If it appears, you're set. If not, you may want to change your brush.

Discussion[edit]

Niaht: I would like to suggest moving the "Scale" section to the top of the document. It seems to be good information to prep for reading the specs on the actors, player environment and other information. It was also one of my first questions when I started working in UnrealEd and I think would be canidate for entry into a kind of Mapping Quick Ref (is there one already?).

Tarquin: Done :) Some of the pathnoding stuff under Hallways and Tip should probably be moved to either Pathnoding or maybe a new page on design considerations for bots. (snappier title needed...)
On the subject of a Mapping Quick Ref: we have UnrealEd Tips and Unreal Mapping FAQ, but the problem is that any "quick ref" page rapidly bloats up, simply because there is sooooo much to cover. beginners expects them, but I'm starting to think that "quick ref" pages are the documentation equivalent of the beginner coder's "DoIt" procedure...

Kerlin: What about double jumps? Lift jumps? Jump distance increases with speed (adrenaline) but does jump height increase as well? If I had the first clue in gathering such metrics, I'd update it myself. :)

Wormbo: The Playtesting Values above are the results gathered using a HUD mutator for the original UT. I'm currently working on a hopefully network compatible version for UT2k3, but don't hold your breath. ;)


Tarquin: This page is getting long. Here's my suggestion for splitting it:

  • "Unreal Unit" – for the top bit
  • either this name or "Metrics" for the rest.

Wormbo: I guess everything above == Player Environment == would be moved to Unreal Unit or UU then.

Tarquin: Yup. I'd forgotten about UU.

Tarquin: Phase 1 of cleanup: stuff has been moved out to:

EdgeCrusheR i dont know... i think there is something wrong with my AOT ed(its not so different from UTed) so anyway i make a CUBE 160*256*256 and from to TOP view it isnt a square!(looks more like 160*256*380 and the worst part is in AOT i can jump in this cube...

what is wrong with my ED?

Legal: I doubt there's anything wrong with your UED, I'd rather suspect you've resized your (red) builder brush. Rightclick on it and in the popup menu click on Transform> Transform Permanently. This resets any rotation and scaling the next time you build your brush (click the box icon again )

This is unrelated to this page, please delete this when you've read it :) A better place to get answers quick is the Help Desk, as more people will look at that page to help.


CCFreak2K: I'm new around here. :| There's mention of the ceiling (83 units high, 128 recommended), but no mention of crawlspace (where the player crawls...) ceilings. I've never actually seen this done outside of Deus Ex and Perfect Dark, but it might be useful information. Maybe someone can measure and add this...?

DawnTreader: i just noticed that there are measurements for 2003, i assume that 2004 is the same? if not can someone post them? and i may be able to post stuff about the double jump and such, have to see if one of my cohorts still has that info.

GRAF1K:

  • Removed chunk on 3DSMax units that should be on the application's page instead.
  • How does one place a player for scale reference in UT200X? I haven't really been into mapping since UT

UltraNew-B: There is a handy universal uu conversion calculator here: http://home.tiscali.nl/ariadohq/tutes/uu_convert.html


BobTheBeheader:

I'm a real n00b, so I'm not to sure how a postprocessor is implemented by UnrealEd, although I understand the concept. Could someone please elaborate?

Foxpaw: What do you mean by a postprocessor in this context?

Kirk I think he meant the bit about the postoperator. See Scripting_Operators.


Tidalwv: Is there information out there on the optimal surface angle for wall jumping (Climbing a surface with a slope > 35 degrees by jumping up against it) or if there is a height at which it becomes ineffective?


Geist: Hmmm... it seems that UE3 must be using a different scale? Like maybe 1uu = 0.5 inch? In a recent interview, Lead Level Designer Lee Perry had this to say about Marcus Fenix in Gears of War (http://gearsofwar.com/BehindTheScenes/Interview_Lee_Perry.htm):

Gamers love Marcus Fenix. If you had to describe Marcus to someone who knows nothing about Gears of War, what would you tell them about Marcus?
GearPawn_Marcus is 162 Unreal units tall, has a 50 unit wide collision cylinder, requires 96 units of vertical space to be considered “in cover”, has a default health value as well as movement rate of 300, has 50 bones, 2048x2048 texture resolution, and 12,570 polygons. That’s pretty much how I see Marcus.

Now, using UE2 conversions, this would put Marcus at over 10 ft tall! But at 1uu = 0.5inch, that makes him 6' 9" (including full gear), requires 4' for cover, is 2' 1" wide (collision to the shoulders), and moves at about 8.5mph (could sprint a mile in 7 min, if he could keep up that pace, assuming that's 300uu/s). Can anyone confirm this change in scale for UE3?

Related Topics[edit]