XML:TXMP

From OniGalore
Revision as of 10:06, 13 October 2016 by Script 10k (talk | contribs) (mentioning that TXMP don't need to be power of 2 for TXMB)
Jump to navigation Jump to search
TXMP : Texture Map
XML modding tips
  • See HERE to start learning about XML modding.
  • See HERE if you are searching for information on how to handle object coordinates.
  • See HERE for some typical modding errors and their causes.
XML.png
XML

TXMB << Other file types >> TxtC

switch to OBD page

general notes

  • The xml code on this page was tested with onisplit v0.9.61.0
  • Textures' x and y (pixel) dimension must be power of two: 512, 256, 128, 64, etc. (The TXMP used to compose the TXMB files seem to be an exception).
    • Hight and width don't need to be equal, e.g. you can use 128x256.
  • The camera can look at 2049 transparent textures at once, one more and Oni crashes.

TXMP subtypes

standard texture animated texture reflective texture
<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <Texture>
       <Flags>...</Flags>
       <Format>...</Format>
       <Image>...</Image>
   </Texture>
</Oni>
<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <Texture>
       <Flags>...</Flags>
       <Format>...</Format>
       <Speed>...</Speed>
       <Image>...</Image>
       <Image>...</Image>
   </Texture>
</Oni>
<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <Texture>
       <Flags>...</Flags>
       <Format>...</Format>
       <EnvMap>...</EnvMap>
       <Image>...</Image>
   </Texture>
</Oni>


XML tag content type description
<?xml version="1.0" encoding="utf-8"?> float, flag Don't change this.
<Oni> -
<Texture> -
<Flags> flag ShieldEffect, InvisibilityEffect and DaodanEffect are special flags, they can only be used for TXMPshield, TXMPinvis and TXMPDAODAN_SHIELD. The usage of these textures is hardcoded.
Caution with transparent textures.
None
HasMipMaps
DisableUWrap
DisableVWrap
Unknown0010
AnimUseLocalTime (to export an animated texture convert the oni file to xml)
AdditiveBlend (makes black texture parts transparent in-game, usually set for animated textures)
AnimBackToBack
AnimRandom
AnimIgnoreGlobalTime
ShieldEffect
InvisibilityEffect
DaodanEffect
<Format> flag ARGB formats are used for reflective textures. (A - Alpha; R - Red; G - Green; B - Blue)

ARGB8888 can be used only if you use an updated engine (which comes with AE). (Oni running on a modern Intel Mac uses the same texture format as Windows Oni, but users of older PowerPC Macs will need to swap the color channels of a texture or else it will appear inverted.)

XML flags command line flags
up to onisplit v0.9.52.0 for higher versions up to onisplit v0.9.52.0 for higher versions
RGB888 BGR bgr32 bgr
ARGB8888 RGBA bgra32 rgba
RGB555 BGR555 bgr555
ARGB5551 BGRA5551 bgra5551
ARGB4444 BGRA4444 bgra4444
DXT1 dxt1
<Speed> integer This tag is used if xml file is meant to create an animated texture. In that case you use multiple <Image> tags.

Let's say Speed is set to 7, then every 7th frame will change the image.

<EnvMap> link TXMPname (file suffix .oni/.xml not allowed)

This tag is used if xml file is meant to create an reflective texture. File suffixes like .tga or .oni is not used in the EnvMap link.

<Image> link
TXMPname.tga

JGP, PNG and DDS are only supported by creation via commandline with -create:txmp


Animated textures

Animated billboard
Animated billboard GIF

It requires some tiresome handwork to write an XML file with a large number of <Image> tags.

Skip that work by using Simple OniSplit GUI. (Normal TXMP creation is also supported.)

Notes of warning:

  1. With XML, OniSplit can only import TGA files.
  2. AdditiveBlend should only be used on things that are supposed to glow otherwise you might think that it ignores vertex shading. In case of the billboard at the right, that was an improvement. Now it's a transparent OLED billboard.
  3. Long animations in high quality (512x512, RGB) will produce very big oni files. The not-edited billboard gif is 1.7MB, the oni file is 273MB. That's because TXAN can use high quality and stores also all repetitive frames. The compressed oni (zip) was still 66MB which is still unreasonable large for people with small internet bandwidth. The billboard could possibly broken up into the 3 static and 3 transitional images. You would then need a BSL loop to keep the animation going. So the conclusion is to use animated images with lower quality settings and avoid repetitive elements.

HERE are a few information on how to create an animated texture within a graphics program.