Skip to content
Japa edited this page Jul 3, 2016 · 18 revisions

All of the content in Armok Vision is set by a set of XML and TXT files found under Armok Vision_Data\StreamingAssets

Each XML file contains one type of configuration, set by the root XML element, while each TXT file acts as an index for which XML files to load.

Armok Vision starts with Armok Vision_Data\StreamingAssets\index.txt, and loads the file referenced on each line. This is an example of what it can look like:

#This is a comment line, and is skipped.
#Testfolder/index.txt
Colors/index.txt
MaterialTextures/index.txt
TileTextures/index.txt
TileMeshes/index.txt
BuildingMeshes/index.txt

This will start with Colors/index.txt and read through it in the same fashion.

Eventually, it will reach an XML file, which can look something like this:

<?xml version="1.0"?>
<colors>
    <color red="128" green="128" blue="128">
        <material token="NONE" />
        <subObject red="80" green="220" blue="80">
            <tiletype token="BRANCH:*:*:*:*" />
            <tiletype token="TWIG:*:*:*:*" />
            <tiletype token="SHRUB:*:*:*:*" />
            <tiletype token="SAPLING:*:*:*:*" />
        </subObject>
    </color>
    <color red="79" green="205" blue="88">
        <material token="GLASS_GREEN" />
    </color>
</colors>

The first tag, <colors>, indicates that this file is defining colors, mostly for materials, though they can be defined for anything, really.

These are all the currently valid root tags:

Tag Description Wiki Page
buildingMeshes This defines the model files to use for any constructed building. You can also define any textures used per-building in the same file. MeshContent
buildingShapeTextures Mostly deprecated, this is for setting normal, AO, and alpha maps for constructed buildings. It's easier to just define them in the same file as the meshes. NormalContent
colors Used to define the RGB colors for all materials, and a few other things. These are merged with the textures defined in materialTextures using overlay blending (black and white stay black and white, while mid-tones are colored) to get the final texture for all materials. ColorContent
designationMeshes Used to define meshes to use for digging, etc, designations, as well as hidden areas. MeshContent
growthMeshes Meshes for tree leaves, fruits, and flowers. These tend to be seasonal. MeshContent
materialTextures Albedo and Specular roughness textures for different materials are set here. TextureContent
shapeTextures Normal, AO, and Alpha maps are set here. NormalContent
tileMeshes This is where the meshes for all landscape elements is defined. This includes natural terrain, tree trunks and branches, constructions, etc. MeshContent

All of these simply use the singular form for individual items in the list.

The next sub-tags of note are <material/> and <subObject/>. The first one determines which material the color is applied to, while the subObject tag lists any further customizations that can be done within this material. In this case, the NONE material (a special case for models to define no material used) gets a flat grey color, but if the tile is also any type of branch, twig, tree, or sapling, then anything with the NONE material gets green instead.

The material tag can be replaced with any other valid tag that defines where something can be used, but all siblings need to use the same type. So you cannot have one color for any marble, and the next color in the list being for any floors, because there's no way to chose between them. Armok Vision will just discard the floor tag in the second one, and complain about a lack of material tag.

For map tiles, these are the available tags that can be used to chose which option go pick:

Tag Description Wiki Page
buildingPosition For multi-tile buildings, you will want to have a different model for each tile of the building. This is used for subObject of buildingType to set that. Note that this gets automatically rotated for any buildings that can rotate, such as bridges, pumps, etc.
buildingType Which building is constructed on the tile.
designation If the tile is marked for digging, hidden, etc. This hides any other mesh that would be used in the tile.
growth For setting the model to be used with tree growths, like flowers, fruits, leaves, etc.
item For constructions, allows you to chose based on what item type the construction if made from, such as boulders, or blocks.
material This can either be the material of the tile, or of the building, etc. Most useful for colors and textures, but can be used for models in special cases.
ramp Used to specify which of the 26 ramp configurations to use it for.
random Any of the available options are chosen randomly, based on position.
tiletype The options are chosen based on the tile type of the landscape. Floor, wall, etc.