Legacy:Building A SkyBox - Unreal Wiki

# Legacy:Building A SkyBox

### From Unreal Wiki, The Unreal Engine Documentation Site

## Introduction

The SkyBox is a method of adding a continuous sky above a map.

A nice skybox adds greatly to the realism of an outdoor map or an indoor map with windows. It also adds to the realistic effect of moving from one point to another one in a map.

A skybox is much better than adding a small box containing sky Texture (UT)s just outside of each individual window.

A skybox can be almost any shape but a box is usually used because it is easier to align the textures than a cylinder, trapezoid, or sphere. A sphere should be avoided because of texture alignment problems.

Probably the best way to get to understand the design of the skybox is just open a map in UnrealEd that has sky that you like. They are generally simple; just a cube with size selected to fit the textures used, lighting, and one or two transparent sheets on top for the actual sky texture. I would suggest the CTF-EpicBoy skybox as an optimal design. They can be quite complex, however, with multiple movers and decorations, and numerous textures with different surface properties set.

Sunlights are a special kind of light, casting parrallel shadows. They had to be placed in a skybox and pointed at the SkyZoneInfo actor to be effective.

## A Simple SkyBox

- Subtract a box some distance away from your level (If it is too close, it may cast a shadow!) The size depends on the backdrop textures you plan to use. Say you're using a texture set consisting of 8 panels and each is 512x512. A skybox that is 1024x1024x512 high should suffice. A typical skybox is 128*1024*1024.
- Make sure your textures are aligned. You may have to select No Smooth in the surface properties to prevent seams at the edges of the sky box itself.
- You can also throw in a sheet with a moon texture in the sky or some clouds for extra foggy effect.
- Do your lighting to get it looking the way you want it.
- Add a Actor >> Info (UT) >> ZoneInfo >> SkyZoneInfo actor in the middle of the skybox.
- Back on your level, select the surfaces on which you want the sky depicted. Open the Surface Properties Window and in the Surface Flags (UT) tab check Fake Backdrop and Unlit. If you don't make it unlit than your level's lighting might spoil the nice lighting in your skybox. Experiment with this aspect if you'd like.
- Rebuild your level.
- To see the skybox projected on surfaces in the editor, make sure realtime preview mode is turned on in the 3D UnrealEd Viewport.

## Advanced Skyboxes

You can create MultiSkyBox or a rotating skybox.

## Static Mesh Skyboxes

This is another way of creating a nice skybox. Im using Devastation for the basic tutorial, but im sure the procedure for other editors should be roughly the same.

Tarquin: Needs rewriting so it DOESN'T use Devastation

1. subtract a box a little bit away from your level. Make it 1024x1024x1024. The size does'nt really matter that much, but its better to be too big rather than too small.

1. Go into the Embarcadero package and look for the sky static mesh. Many of the static mesh packages in devastation have a suitable mesh in them, so feel free to use another one.

1. Place the static mesh inside the box, roughly in the middle. Add a SkyZone Info actor right in the middle of the static mesh sky.

1. The fake backdrop procedure remains the same using this method so refer to the previous section for information on how to get the skybox to work.

1. Rebuild your level. To view the sky, right click on a 3d Viewport and select View->Show backdrop.

Note: you can add another static mesh around the skyzone info too for added effect, although this is not vital.

## UT3 Skydome

UT3 no longer uses sky boxes. Instead of setting a fake backdrop surface property, maps with outdoor view now need to be crated with additive geometry and a sky dome static mesh. Open any retail map to see how that works.

## UT3 Fake Skybox

While UT3 no longer has SkyZoneInfos and dedicated sky boxes, it is still possible to fake the effect with a cube map material. This cube map can either be created from a set of textures or you can use the SceneCaptureCubeMapActor to capture a live view of an actual sky box like it was done in earlier generations of the Unreal Engine.

Note: A fake sky box like this will only provide visuals. Unlike in earlier engine generations, lights in the sky box will not affect anything in the main area!

Here's how a sky box with the SceneCaptureCubeMapActor should be set up:

1. Create your map and sky box area as usual
2. Add an actor >> SceneCaptureActor >> SceneCaptureCubeMapActor to your sky box as if it was a SkyZonInfo. SceneCaptureActors are not static, so you could even animate it using Kismet/Matinee.
3. Now you need to set up the properties of the SceneCaptureCubeMapComponent in the SceneCaptureCubeMapActor's SceneCaptureActor -> SceneCapture property.
   In its Capture group, set the following properties:
   bEnableFog
     Set this to True if your sky box uses fog, otherwise keep it false.
   ClearColor
     Set this to your sky box fog color.
   FarPlane
     Set this high enough so all visible parts of the skybox are closer than this value.
   NearPlane
     Set this to a value low enough that objects close to the SceneCaptureCubeMapActor are not clipped.
   ViewMode
     Make sure this is set to SceneCapView_Lit, otherwise lights and/or shadows in your sky box will be ignored.
   FrameRate
     Set this to 0 for a still-image sky box and otherwise to a reasonably high value so your skybox animation doesn't look choppy. This property has a huge impact on the performance of your map and higher values may cause the player's frame rate to drop due to the additional rendering work.
   TextureTarget
     This is where the actual magic happens. Use the Generic Browser's File -> New... menu to create a new "RenderToTextureCube" and assign that texture to this property. Tweak the texture's size to an acceptable value so it won't blur out when a player gets close to the window in your map's main area, but don't make it too larger either because that will affect performance similar to increasing your in-game screen resolution.

Now that you have a static TextureCube or a dynamic TextureRenderTargetCube. Note that the above procedure is very similar to setting up a surveillance camera, except that you use SceneCapture2DActor instead of SceneCaptureCubeMapActor and RenderToTexture instead of RenderToTextureCube.

Now you only need to create a material that you can apply to the surfaces where your sky box should be visible:

1. In the Generic Browser do File -> New... to create a new Material, which will translate the cube map into the backdrop effect.
2. Open the new material in the Material Editor.
3. Add a new Texture Sample, set its Texture property to the cube map of your sky box and connect its RGB output (black) to the material's Emissive input.
4. Add a new Multiply and connect its output to the Texture Sample's UV input.
5. Add a new Vector Transform.
6. Add a new Constant3Vector, entering the RGB values as 1, 1, -1 respectively.
7. Connect the Constant3Vector and the Vector Transform to the Multiply
8. Add a new Camera Vector and connect its output to the Vector Transform's input.

Once you're done, your material setup should be similar to the one shown below.

The material can now be applied to the window surface (or the sides of a subtracted cube) through which the sky box should be visible from within the main area of your map.

Note: For anyone interested, the Multiply is used here to flip the Z because otherwise the material would display the captured area inverted in the Z axis. Additionally, Multiply can be replaced with Divide (with the same RGB values) if Vector Transform links to the A input and the Constant3Vector links to the B input (A / B).

## Experiment

  ...with colored lighting, various textures and translucency effects. Colors
  ...with moving the skybox info actor around in your skybox and see what happens in your perspective view at the fake back drop. You'll need to have real time enabled in perspective view.
  ...with other shapes. A skybox does not have to be a box!
  ...with fog, but it might slow down your level a little. →Zxanphorian
  The Panorama brushbuilder is designed to quickly create a set of sheets to use with the skybox mountain and Skyscraper textures. You can find it in the Tarquin Brushbuilders pack.

## External Links

- Skybox/FogRing Tutorial, hosted by outpt.co.uk

## Related Topics

- Terragen is a free, photo realistic environment rendering program.

## Discussion

FreshMeat: Please go into more detail about how to create a skybox without a static mesh. All I have tried have come out with distorted textures, and looking quite obviously like a box with a sky painted on it.

Switch`: The skyzoneinfo actor must be exactly in the center of the box. Enter the location manually in skyzoneinfo properties.

SuperApe: External link added to good tutorial for more realism in skyboxes.

Hellkeeper: Switch`, The Skyzoneinfo can be anywhere inside the skybox, and does not absolutely have to be in the center of it.

WesBelden: Sorry to pester, but the link to the UT3 Fake Skybox post comes up with an invalid post message. I've searched the UT3 forum but couldn't find anything on skyboxes :-|. If you have the info and could C&P as a placeholder on this page that'd be really helpful! :).

Wormbo: Unfortunately BUF's database suffered a fatal harddisk crash a while ago, taking out a large number of posts. I'll see if I can write that tutorial again from memory.

WesBelden: I've just tried the above steps without any luck. I'll try again tomorrow when I'm actually awake; just to clarify though, should the material be applied to the 6 sides of a subtracted area, or should it only be applied to one surface, simulating a window?

Wormbo: Being awake certainly helps when learning new things: ;)

> The material can now be applied to the window surface through which the sky box should be visible from within the main area of your map.

WesBelden: Heheh, thanks :). After running through the steps again my house mate and I managed to get the fake skybox working to a degree. The texture displayed the fake skybox area and updated great whilst moving around, however the view given was always that of looking up towards the fake skybox's ceiling, no matter what surface (or its orientation) it was applied to. Rotating the SceneCaptureMapActor didn't have an effect. Is there any way of specifying which direction it should be looking at (I had assumed it would just show the direction based on the normal of the surface it was being applied to)?

WesBelden: After a helpful reply in the Epic forums (causing me to slap my face and make silly, self reproaching noises), I've finally managed to get it working; section updated.

Category: Legacy Tutorial

##### Views

- Legacy
- Discussion
- Current revision

##### Search