Loading Screen Images

From the Oblivion ConstructionSet Wiki
Revision as of 14:32, 22 August 2007 by imported>ShadowDancer (→‎Automated Process)
Jump to navigation Jump to search


Notes/Tips

Best effort to create an Oblivion-style loading screen at this time.

Loading screen images have a resolution of 1024x512. The odd aspect ratio should be okay when the image is displayed in-game. It's probably for supporting widescreen displays as the left and right sides will be clipped in-game on normal (4:3) aspect ratio displays.

The outer area of the loading screen has no colors; it is only composed of an outline of the starting image. The outlines are created with a find edges filter.

High luminance (white) portions of the starting image should be made transparent so that the underlying paper can be seen instead.

The outlines on the inner area are thicker than those of the outer area.

There are two regions where the opacity is reduced so that only the paper background is visible. One is for the "Loading..." bar, and the other is for the tip.

The inner border and paper textures can be gotten from a PhotoShop image included with Oblivion at \textures\menus\loading\load_troll.psd. Use an unpacker (see BSA_Unpacker_Tutorial) to extract this file from Oblivion - Textures - Compressed.bsa.

Alpha channels are not used for the final image.

Loading screens are compressed using the DDS DXT5 format with no MIP-maps.

An image editor with good support for layers (PhotoShop or Paint Shop Pro) is a must for creating loading screens.

Loading screens will only work if placed in Oblivion\Data\Textures\Menus\Loading. This is case-sensitive!

Normal values

These are the normal values that are found in the files that came with Oblivion.

Specifications Values
Image Resolution 1024 x 512 pixels
Resolution 72 pixels/inch


Near-Perfect Loading Screens using Photoshop CS3

I've done this using Photoshop CS3, but it will work with lower versions as well.


1. import screenshot into photoshop

2. position screenshot on a seperate layer, above the layer containing the Bethesda-provided loading screen background.

2. hit Shift+Ctrl+U to desaturate image

3. Filter >> Stylize >> Find Edges

4. hit Shift+Ctrl+F to access the fade filter menu

5. in the fade filter menu, change mode to Color Dodge

6. Image >> Adjustments >> Gradient Map , and hit OK

7. Change the screenshot layer's blending mode to Linear Burn

8. Change the screenshot layer's opacity to 50%

9. Now for the last trick: Filter >> Sharpen >> Sharpen (and repeat that a second time)


Voila! You've got the Bethesda loading screen background.

Now, to generate the colored part of the loading screen (the part that's in the frame), position a second copy of the original screenshot over the layer we've just been working on, and delete all parts of it that are outside the frame. Now set this layer's blending mode to Hard Light, and set the opacity to 69%. And you're done.

Try playing around with the numbers if you don't like what you're getting. The source screenshot will affect outcome, as will the resolution at which you capture the source screenshot. Bethesda seemed to use a higher resolution which resulted in higher detail.

Alternative Photoshop Method

Note: Following these directions exactly is required since some of the functions operate differently depending on whether the Background Layer is visible.


Reset Colors to Black and White (Black being current color)
Open Screenshot taken at 1024x768
Image >> Canvas Size – Change Height to 7.111, Use arrows on Anchor to center picture (area retained is the part covered by arrows and the white box), Click OK then Click Proceed in the popup
Select >> All
Edit >> Copy (or Ctrl+C)
Minimize Screenshot (we need it again later)
Open load_troll.psd
Hide Layer 24
Hide Layer 22
Hide Background
Select Layer 23
Use Eye Dropper to select dark brown from Layer 23 (96 R, 57 G, 19 B)
Hide Layer 23
Show Background
Select Layer 16
Edit >> Paste
Hide Layer 16
Select >> All
Ctrl+Shift+U
Filter >> Sketch >> Photocopy (Set: Detail 3, Darkness 50) Click on OK
Edit >> Copy
Right Click Layer 25, and click on Blending Options
Change Blend Mode to Color Burn
Select Quick Mask
Edit Paste
Exit Quick Mask
Press Delete
Select >> All
Hide Layer 25
Select Layer 23
Use Eye Dropper to select Light Brown color from Layer 23 (219 R, 173 G, 101 B)
Hide Layer 23
Select Layer 25
Image >> Adjustments >> Gradient Map – Click OK
Ctrl+Click Layer 16
Press Delete
Restore Screenshot
Edit >> Copy
Minimize Screenshot again
Select Layer 16
Edit >> Paste
Ctrl+Click Layer 16
Press Delete
Hide Layer 16
Right Click Layer 26 – Change Opacity to 70, Click OK
Restore ScreenShot
Edit >> Copy
Minimize Screenshot (Or close it, we don’t need it any more)
Select Layer 21
Edit >> Paste
Hide Layer 21
Ctrl+Shift+U
Filter >> Stylize >> Find Edges
Ctrl+Shift+F – Change Mode to Color Dodge
Filter >> Sharpen >> Sharpen
Filter >> Sharpen >> Sharpen again
Hide Layers 25, 26, 27, and Background
Select Layer 23
Use Eye Dropper to select dark brown from Layer 23 (96 R, 57 G, 19 B)
Hide Layer 23
Show Background
Select Layer 27
Image >> Adjustments >> Gradient Map – Click OK
Select >> All
Edit >> Copy
Right Click Layer 27, and click on Blending Options
Change Blend Mode to Linear Burn
Select Quick Mask
Edit >> Paste
Exit Quick Mask
Press Delete
Select >> All
Select Layer 11
Click on the Magic Wand then click in the center black box
Select >> Inverse
Hide Layer 11
Press Delete
Select Layer 27
Ctrl+Click Layer 21
Select >> Inverse
Press Delete
Make sure that Layers 4, 14, 10, 25, 26, 27, and Background are the only Layers showing (delete other layers if you want)
Save file as PSD in case you want to alter it later
Save file as DDS DXT 5 ARGB with No MIP Maps

Automated Process

You can download an action file that will automate most of this process from here. Download the file to the \Photoshop CS\Presets\Photoshop Actions\ folder and it should be in Actions tab under Oblivion Load Screen. If it isn't, click the arrow in the circle on the top right corner of that section, click on Load Actions and select the OblivionLoadScreen.atn file.

Open screenshot taken at 1024x768
Image >> Canvas Size – Change Height to 7.111, Use arrows on Anchor to center picture (area retained is the part covered by arrows and the white box), Click OK then Click Proceed in the popup
Select the Burn Load Screen and click the Play button (triangle down on the bottom of that section)
It will pop up to ask for the directory for the load_troll.psd file. Locate it, select it, and click Open

Once it finishes, just save the file as DDS DXT5 with No MIP maps under the \Data\Textures\Menus\Loading folder.

Image Creation Guide using Paint Shop Pro 10

You should start at this section unless you don't want to use Oblivion-style loading screens. In which case, you can skip to Loading_Screens#Modding_and_DDS_Conversion.

You'll most likely want to use screenshots from the game, but the HUD gets in the way. To toggle it off, enter the console with the Tilde key and enter tm. To get even better views, enter tfc to toggle the free cam. For some unknown reason, Oblivion comes default with screenshots disabled. To enable taking screenshots, open the Oblivion.ini file located in My Documents\My Games\Oblivion. Go to the Display section and change bAllowScreenShot to 1. Now you can take screenshots with the PrintScreen key.

Whatever image you use, make sure it's a bitmap or another loseless format before you begin. Using lossy formats like JPEG will give you blocky areas with the Find Edges filter.

More later...

Scripts

Scripts (or macros) can be used to automate the process of creating a load screen. Preferrably, they allow one to start with a screenshot from the game and turn that directly into an image in the same style as Oblivion's load screens.


Paint Shop Pro 10

File:Loading screen script.jpg
Output from the script.

Before you can run the script, you must open the load_troll.psd mentioned in the notes. Then load the image you want to convert to a load screen. You cannot have any other images open, or this probably won't work. Finally, run the script provided (File>Script>Run), and after a few seconds, you should have a pretty loading screen ready for conversion to DDS.

If you run the script in interactive mode (that's the default), you'll be prompted to set the luminance ramps for a couple parts of the image during the script execution. The first is for tweaking the outline "sensitivity"; more contrast here is usually best. The second is for the opacity of the colors in the center area. You may also want to tweak the saturation layer opacity for said colored center area. However, the defaults should work well for 90% of screenshots.


PhotoShop

Greybird made a Loading Screen Design Kit for Photoshop.

Modding and DDS Conversion

File:Loading screen editor.jpg
A custom loading screen in the CS.

This part isn't too hard, but you must follow the directions closely as it's easy to mess up. Once you have your image the way you want it to look in the game, you'll need to save it as a DDS file using one of the DDS_Tools. When you go to save as a DDS format file, you're presented with a plethora of options, but there are only a couple you'll need to change. One is to set the format to DXT5 as that is what the original loading screens use. The other is to set MIP-maps to No; they won't be needed for a non-3D texture and just add to the file size. Save the file to your Oblivion directory in Data\Textures\Menus\Loading, and make sure the filename begins with "load_". If you have to create the directories, make sure to match the case. If you aren't creating the directories, still make sure the case matches.

Now you only need to make the game recognize the new loading screen image. You'll need the Construction Set, of course. So, open that up. In the Object Window, go to Miscellaneous>LoadScreen. If you see a list of all the loading screens already in the game, you're in the right place. To add a new one, right-click and then select New. Give your new loading screen a unique ID first. It's usually your name, initials, or alias; the name of the mod; and the name of the object. This ensures that your ID is unique. Then add the image; this is rather straight-forward. The loading screen text is not required, but you can fill it in if you like. It's perfect for adding tips about a mod if you're not just modding the loading screens. If you want the loading screen to only show for a particular cell, add the cell to the form list by dragging it from the Cell edit dialog which is found under World>Cell. You're done, so hit OK and save.

File:Loading screen ingame.jpg
A custom loading screen in-game.

To test your loading screens, it's best to add a particular cell to the form list when you're editing. That way, you can just go to that cell and not have to wait for the loading screen to come up randomly. If the tip you entered shows but the image is the default Elven Armor one, you missed a step earlier and you'll need to go back over them.


If you would rather replace the loading screens, you have two options. One preserves other replacement textures, thus allowing a user to easily disable/enable your replacement mod. The other preserves the original textures while not working well with other mods and making disabling/enabling difficult.

The first way uses the CS to make a plugin in much the same way as adding new loading screens. However, instead of adding, you'll be editing the existing loading screens. Just change the textures to your own ones with unique filenames. Now your mod can be managed like other mods in the Data Files section of the launcher. The only downside is that many of the textures are repeated in several different types of loading screens. This method would be more time-consuming for the modder.

A quicker way is to just overwrite (essentially) the original textures by placing your new ones in the Data\Textures\Menus\Loading directory. You'll still need to convert to DDS, of course. But that's just about all there is to it. No ArchiveInvalidation editing is necessary. You don't even need to worry about case-sensitive paths. The problem is that any other mod that also replaces loading screens is going to conflict.