Oblivion XML Reference/Tiles

From the Oblivion ConstructionSet Wiki
Revision as of 23:18, 17 June 2018 by imported>DavidJCobb (→‎NIF: units)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

In Oblivion's UI system, objects displayed as part of the UI are called tiles.

3d

This tag name is an alias for NIF. Tiles using either tag name are treated exactly the same; however, the start and ending tags should be consistent.

Image

Image tiles are used to display static textures stored in the DDS format.

Menu

Menu tiles act as the root elements for a menu. Each menu's root tile must be a Menu element, and the tile must have a class trait corresponding to a valid menu ID; if these requirements are not met, then the menu will not open or clean up properly, and abnormal behavior (including crashes) may occur.

NIF

NIF tiles are used to render a NetImmerse Format 3D mesh to the screen; these are often used for 2D components that require animations or complex shapes. 3D meshes use similar coordinates to tiles in a menu, but with different axes. The contents of the specified NIF file are inserted almost directly into a tile's rendered content.

Note that Oblivion deliberately limits the features that a NIF in a menu can use. NiMaterialProperty and NiAlphaProperty objects will be stripped out of your 3D content when it is spliced into the user interface.

The exact relationship between 2D and 3D content is as follows:

Direction 3D axis and increment 2D trait and increment
Right X +1 x + 1
Down Z -1 y + 1
Front (depth) Y -0.008 depth + 1

Rect

Rect tiles are general-purpose containers used to hold, organize, and position other tiles.

Rect tiles are supposed to be invisible, but if the alpha trait is set, then they may render with a solid-color background. This behavior does appear to be intentional, but doesn't occur consistently and may be broken.

Text

Text tiles are used to render text values to the screen. Their sizes are dynamically computed by the executable. Under the hood, each Text tile has an executable-constructed 3D mesh: each rendered text glyph is a quad that is UV-mapped to an uncompressed font texture.

Window

An unknown tile class not used in any vanilla menus. Further examination of the executable is required.