XML:AKEV: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) (ok AKEV is to much for ONLV, let's continue this here) |
m (link fix) |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{XML_File_Header | type= | {{XML_File_Header | prev=AISA | type=AKEV | next=BINA/OBJC/CHAR | next_display=BINA | name=Oni Game Level}} | ||
{{finish}} {{XML}} | {{finish}} {{XML}} | ||
There is no reason for regular modders to extract AKEV as xml. | |||
: Extractions are only done for research. | |||
__TOC__ | __TOC__ | ||
===AKEV=== | ===AKEV=== | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AKEV id="..."> | | <AKEV id="..."> | ||
Line 104: | Line 107: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <PNTA id="..."> | | <PNTA id="..."> | ||
Line 148: | Line 151: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <PLEA id="..."> | | <PLEA id="..."> | ||
Line 168: | Line 171: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <TXCA id="..."> | | <TXCA id="..."> | ||
Line 188: | Line 191: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AGQG id="..."> | | <AGQG id="..."> | ||
| | | integer | ||
| | | Instance id. Should be 4. | ||
|- | |- | ||
| <Quads> | | <Quads> | ||
Line 223: | Line 226: | ||
| | | | ||
|- | |- | ||
| <Color> | |valign="top"| <Color> | ||
| | |valign="top"| color | ||
| | | Colors are stored as four-element arrays: R G B [A], which means Red, Green, Blue, and the optional Alpha channel value. Min value: 0. Max value: 255. | ||
: This is used for [[Creating a level#Vertex coloring|vertex coloring]]. | |||
|- | |- | ||
| <Flags> | |valign="top"| <Flags> | ||
| | |valign="top"| flag | ||
| | | | ||
: DoorFrame (invisible quad that uses the _DOOR_FRAME texture, however, this flag has no effect on the game) | |||
: Ghost (pathfinding volume separator, see AKVA, etc.) | |||
: StairsUp | |||
: StairsDown | |||
: Stairs | |||
: Triangle | |||
: Transparent | |||
: TwoSided (make polygons visible from both sides) | |||
: NoCollision (no character collision, no particle collision) | |||
: Invisible (makes polygons invisible; tip: use two-faced wall for no transition, use one-faced wall for one-way transition) | |||
: NoObjectCollision (no particle collision) | |||
: NoCharacterCollision (characters can go through polygons) | |||
: NoOcclusion | |||
: Danger (automatic creation via _marker_danger texture) | |||
: Horizontal (slope > 70°, automatic creation) | |||
: Vertical (slope < 70°, automatic creation) | |||
: GridIgnore (OniSplit will ignore the object when it calculates the pathfinding grids, so the grids will be white) | |||
: NoDecals (decals can't be applied to object; doors use this) | |||
: Furniture | |||
: ProjectionBit0 (automatic creation) | |||
: ProjectionBit1 (automatic creation) | |||
: SoundTransparent | |||
: Impassable | |||
|- | |- | ||
| <ObjectId> | |valign="top"| <ObjectId> | ||
| | |valign="top"| int32 | ||
| | | [[OBD:ONOA|Object type and object id]] are merged here into one number. The value is -1 if the quad doesn't belong to an object. | ||
:Example 1: If <ObjectId> is 251658333, the converted hex value is (0)f 00 00 5d. With that you get the type 0f = console and the id 5d = 93. | |||
:Example 2: If <ObjectId> is 50331739, the converted hex value is (0)3 00 00 5b. With that you get the type 03 = door and the id 5b = 91. | |||
Types: | |||
: 01 - character | |||
: 02 - patrol path | |||
: 03 - door | |||
: 04 - flag | |||
: 05 - furniture | |||
: 08 - particle | |||
: 09 - powerup | |||
: 0A - sound | |||
: 0B - trigger volume | |||
: 0C - weapon | |||
: 0D - trigger | |||
: 0E - turret | |||
: 0F - console | |||
: 10 - combat | |||
: 11 - melee | |||
: 12 - neutral | |||
Obviously not all object types have corresponding gunk quads. The only object types that are used in ONOA by the original levels are door, furniture, turret, trigger and console. In addition it appears that the engine only searches for door type. | |||
|} | |} | ||
Line 240: | Line 288: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AGQR id="..."> | | <AGQR id="..."> | ||
Line 264: | Line 312: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AGQC id="..."> | | <AGQC id="..."> | ||
Line 300: | Line 348: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |||
|valign="top"| <TXMA id="..."> | |||
|valign="top"| integer | |||
| Instance Id. Should be 8. | |||
: The TXMA instance stores all textures used by level geometry. | |||
|- | |- | ||
| <Textures> | | <Textures> | ||
| | | - | ||
| This is an int32 array for <Link> tags. | |||
|- | |- | ||
| <Link> | | <Link> | ||
| | | link | ||
| | | ''TXMP''name | ||
|} | |} | ||
Line 316: | Line 369: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AKVA id="..."> | | <AKVA id="..."> | ||
Line 416: | Line 469: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AKBA id="..."> | | <AKBA id="..."> | ||
Line 448: | Line 501: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <IDXA id="..."> | | <IDXA id="..."> | ||
Line 468: | Line 521: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <IDXA id="..."> | | <IDXA id="..."> | ||
| | | integer | ||
| | | Instance ID. Should be 12. | ||
|- | |- | ||
| <Indices> | | <Indices> | ||
| | | - | ||
| | | This is an int32 array for the <Int32> tags. | ||
|- | |- | ||
| <Int32> | |valign="top"| <Int32> | ||
| | |valign="top"| int32 | ||
| | | Stores an object ID used by BSL commands "env_broken", "env_shade", "env_show" and "env_texswap". Ergo this IDXA should belong to [[OBD:IDXA_AKEV_2|AKEV 2]]. | ||
: ''Why can IDs appear here multiple times?'' Most objects are made of multiple triangles/quads. There are as many identical IDs as an object has triangles/quads. When a level gets build, all terrain, buildings and most objects (CJBO) a.k.a. "shared classes" such as furniture and consoles are merged. Through the IDs "individual" objects are still addressable by BSL commands. | |||
:: "Shared classes" are resources used in OniSplit's level creation workflow. They exist only as links in object collections. While building level linked resources manifest into actual (AKEV) 3D data inside an ONLV*.oni file. | |||
|} | |} | ||
===AKBP=== | ===AKBP=== | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <AKBP id="..."> | | <AKBP id="..."> | ||
Line 520: | Line 574: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <ABNA id="..."> | | <ABNA id="..."> | ||
Line 552: | Line 606: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |||
| <AKOT id="..."> | |||
| | |||
| | |||
|- | |- | ||
| <Nodes> | | <Nodes> | ||
Line 580: | Line 638: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |||
| <AKAA id="..."> | |||
| | |||
| | |||
|- | |- | ||
| <Elements> | | <Elements> | ||
Line 608: | Line 670: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <OTIT id="..."> | | <OTIT id="..."> | ||
Line 636: | Line 698: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <OTLF id="..."> | | <OTLF id="..."> | ||
Line 676: | Line 738: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <QTNA id="..."> | | <QTNA id="..."> | ||
Line 704: | Line 766: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <IDXA id="..."> | | <IDXA id="..."> | ||
Line 724: | Line 786: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
!width=120px| | !width=120px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <IDXA id="..."> | | <IDXA id="..."> |
Latest revision as of 01:17, 20 November 2023
AKEV : Oni Game Level | ||
---|---|---|
XML
AISA << Other file types >> BINA |
This page is unfinished. Can you fill in any missing information? |
There is no reason for regular modders to extract AKEV as xml.
- Extractions are only done for research.
AKEV
XML tag | Content type | Description |
---|---|---|
<AKEV id="..."> | ||
<Points> | ||
<Planes> | ||
<TextureCoordinates> | ||
<Quads> | ||
<QuadTextures> | ||
<QuadCollision> | ||
<Debug> | ||
<Textures> | ||
<BnvNodes> | ||
<BnvSides> | ||
<QuadGroupList> | ||
<QuadGroupId> | ||
<BnvBspTree> | ||
<TransparencyBspTree> | ||
<Octtree> | ||
<BnvAdjacency> | ||
<DoorFrames> | ||
<BoundingBox> | ||
<Min> | ||
<Max> | ||
<Offset_007C> |
PNTA
XML tag | Content type | Description |
---|---|---|
<PNTA id="..."> | ||
<BoundingBox> | ||
<Min> | ||
<Max> | ||
<BoundingSphere> | ||
<Center> | ||
<Radius> | ||
<Positions> | ||
<Vector3> |
PLEA
XML tag | Content type | Description |
---|---|---|
<PLEA id="..."> | ||
<Planes> | ||
<Plane> |
TXCA
XML tag | Content type | Description |
---|---|---|
<TXCA id="..."> | ||
<TexCoords> | ||
<Vector2> |
AGQG
XML tag | Content type | Description |
---|---|---|
<AGQG id="..."> | integer | Instance id. Should be 4. |
<Quads> | ||
<AGQGQuad> | ||
<Points> | ||
<Int32> | ||
<TextureCoordinates> | ||
<Int32> | ||
<Colors> | ||
<Color> | color | Colors are stored as four-element arrays: R G B [A], which means Red, Green, Blue, and the optional Alpha channel value. Min value: 0. Max value: 255.
|
<Flags> | flag |
|
<ObjectId> | int32 | Object type and object id are merged here into one number. The value is -1 if the quad doesn't belong to an object.
Types:
Obviously not all object types have corresponding gunk quads. The only object types that are used in ONOA by the original levels are door, furniture, turret, trigger and console. In addition it appears that the engine only searches for door type. |
AGQR
XML tag | Content type | Description |
---|---|---|
<AGQR id="..."> | ||
<Elements> | ||
<AGQRElement> | ||
<Texture> |
AGQC
XML tag | Content type | Description |
---|---|---|
<AGQC id="..."> | ||
<Elements> | ||
<AGQCElement> | ||
<Plane> | ||
<BoundingBox> | ||
<Min> | ||
<Max> |
TXMA
XML tag | Content type | Description |
---|---|---|
<TXMA id="..."> | integer | Instance Id. Should be 8.
|
<Textures> | - | This is an int32 array for <Link> tags. |
<Link> | link | TXMPname |
AKVA
XML tag | Content type | Description |
---|---|---|
<AKVA id="..."> | ||
<Nodes> | ||
<AKVANode> | ||
<BspTree> | ||
<Id> | ||
<FirstSide> | ||
<LastSide> | ||
<ChildBnv> | ||
<SiblingBnv> | ||
<GridXTiles> | ||
<GridZTiles> | ||
<DataOffset> | ||
<DataSize> | ||
<TileSize> | ||
<BoundingBox> | ||
<Min> | ||
<Max> | ||
<GridXOffset> | ||
<GridZOffset> | ||
<NodeId> | ||
<Flags> | ||
<Floor> | ||
<Height> |
AKBA
XML tag | Content type | Description |
---|---|---|
<AKBA id="..."> | ||
<Sides> | ||
<AKBASide> | ||
<Plane> | ||
<FirstAdjacency> | ||
<LastAdjacency> |
IDXA (quad group list)
XML tag | Content type | Description |
---|---|---|
<IDXA id="..."> | ||
<Indices> | ||
<Int32> |
IDXA (quad group id)
XML tag | Content type | Description |
---|---|---|
<IDXA id="..."> | integer | Instance ID. Should be 12. |
<Indices> | - | This is an int32 array for the <Int32> tags. |
<Int32> | int32 | Stores an object ID used by BSL commands "env_broken", "env_shade", "env_show" and "env_texswap". Ergo this IDXA should belong to AKEV 2.
|
AKBP
XML tag | Content type | Description |
---|---|---|
<AKBP id="..."> | ||
<Nodes> | ||
<AKBPNode> | ||
<Plane> | ||
<Back> | ||
<Front> |
ABNA
XML tag | Content type | Description |
---|---|---|
<ABNA id="..."> | ||
<Elements> | ||
<ABNAElement> | ||
<Plane> | ||
<Front> | ||
<Back> |
AKOT
XML tag | Content type | Description |
---|---|---|
<AKOT id="..."> | ||
<Nodes> | ||
<Leafs> | ||
<QuadTree> | ||
<GunkQuad> | ||
<Bnv> |
AKAA
XML tag | Content type | Description |
---|---|---|
<AKAA id="..."> | ||
<Elements> | ||
<AKAAElement> | ||
<Bnv> | ||
<Quad> |
AKDA
<AKDA id="17" />
OTIT
XML tag | Content type | Description |
---|---|---|
<OTIT id="..."> | ||
<Nodes> | ||
<OTITNode> | ||
<Children> | ||
<Int32> |
OTLF
XML tag | Content type | Description |
---|---|---|
<OTLF id="..."> | ||
<Nodes> | ||
<OTLFNode> | ||
<PackedGunkQuadList> | ||
<Neighbours> | ||
<Int32> | ||
<PackedPositionAndSize> | ||
<PackedBnvList> |
QTNA
XML tag | Content type | Description |
---|---|---|
<QTNA id="..."> | ||
<Nodes> | ||
<QTNANode> | ||
<Children> | ||
<Int32> |
IDXA (gunk quad)
XML tag | Content type | Description |
---|---|---|
<IDXA id="..."> | ||
<Indices> | ||
<Int32> |
IDXA (BNV)
XML tag | Content type | Description |
---|---|---|
<IDXA id="..."> | ||
<Indices> | ||
<Int32> |