|
|
Line 27: |
Line 27: |
| : If you want to contribute AE: [[AE:Bug-fix_and_feature_requests|bug-fixes and feature requests]]. | | : If you want to contribute AE: [[AE:Bug-fix_and_feature_requests|bug-fixes and feature requests]]. |
| :: Check also the [[Anniversary_Edition/To-do|AE's current To-Do page]] and maybe there are fields that need a modder. | | :: Check also the [[Anniversary_Edition/To-do|AE's current To-Do page]] and maybe there are fields that need a modder. |
| | |
| | '''Hmm, I want to modify the files in Chapter ''X''. But what level file is that?" |
| | :Check out [[GDF|this overview]] of Oni's game files. |
|
| |
|
| '''Is there an easy exercise to get me started?''' | | '''Is there an easy exercise to get me started?''' |
| : Just see at the following table. Read left side if you use a Macintosh PC, read right side if you use a Windows PC. | | : Just see at the following table. Read left side if you use a Macintosh PC, read right side if you use a Windows PC. |
|
| |
|
| |
|
| {| class="wikitable" width="100%" | | {| class="wikitable" width="100%" |
Line 125: |
Line 127: |
| |[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/XML_tutorial_img6.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/XML_tutorial_img6_TN.png] | | |[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/XML_tutorial_img6.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/XML_tutorial_img6_TN.png] |
| |} | | |} |
|
| |
| ==supported file types==
| |
| '''Question: "I want to modify files in chapter X. But what level archive is that?"
| |
|
| |
| '''Answer: "Check out this [[GDF|overview]]."'''
| |
|
| |
|
| |
| Documentation status:
| |
| :[[Image:Aqua Dot-Green.png]] : available
| |
| :[[Image:Aqua Dot-Yellow.png]] : incomplete
| |
| :[[Image:Aqua Dot-Red.png]] : not available, but that doesn't mean you cannot mod the file type
| |
|
| |
|
| |
| ===BINA===
| |
| {|class="wikitable" width="100%"
| |
| |'''BINA/[[XML:BINA/ONIE|ONIE]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : ONIE is a list of all impacts effects which can happen in the game. That includes weapon particle, hand-to-hand combat and movements. The impact effects depends on source type and the material which is hit.
| |
| |-
| |
| |'''BINA/[[XML:BINA/PAR3#XML_section|PAR3]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : 3D particle, also known as 3RAP and PART files. Particle are used as weapon's damage doer, decals and light effects.
| |
| |-
| |
| |'''BINA/[[XML:BINA/SABD|SABD]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : Sound Animations Binary Data.
| |
| |-
| |
| |'''BINA/[[XML:BINA/TMBD|TMBD]]''' [[Image:Aqua Dot-Green.png]]
| |
| : TMBD is a list of all materials in the game which groups texture map under them. That way environment gets materials which are used by ONIE.
| |
| |}
| |
|
| |
|
| |
| ===OBJC===
| |
| {|class="wikitable" width="100%"
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/CHAR|CHAR]]''' [[Image:Aqua Dot-Yellow.png]] {{Anchor|goto_CHAR}}
| |
| : List of characters in a specific level. There you can setup their position, script name, weapon, ammunition, items, team, combat, melee id, etc..
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/CONS|CONS]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of consoles in a specific level. There you can setup their position, script name (Id), screen images, and script functions. Basically they are used to open doors.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/CMBT|CMBT]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : List of combat profiles for global use. There you can set AI's conditions for hand-to-hand, weapon combat, and retreat - in dependence of distances and enemy's counterattack.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/DOOR|DOOR]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of doors in a specific level. There you write conditions when a door opens (or not), and what events are triggered by a character who passes/comes near the door.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/FLAG|FLAG]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of flags in a specific level. There you can setup their position. They are used by script commands and patrol paths.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/FURN|FURN]]''' [[Image:Aqua Dot-Red.png]]
| |
| : List of furniture in a specific level. This file type can be useful to import level objects.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/MELE|MELE]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : List of melee profiles for global use. It means how the AI use it's combat moves.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/NEUT|NEUT]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of neutral behaviors in a specific level. Every character has melee, combat and netral behavior Id. It determines whether a non-player character (NPC) talks to you or not, this includes also rewards you could get from such characters.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/PART|PART]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of particle in a specific level. There you can setup their position, script name and scaling.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/PATR|PATR]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of patrol paths in a specific level. A patrol path has an Id which is used by CHAR and script command "ai2_dopath".
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/PWRU|PWRU]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of powerups (items, e.g. hyposprays) in a specific level which are spawned at level load. There you can setup their position.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:SNDD#BINACJBOSound.xml|SNDG]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : List of sound "groups" (spheres) in a specific level. It used to create sound spheres. Come near a machine and you might hear a sound, that's because of SNDG.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/TRGV|TRGV]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of trigger volumes in a specific level. They are invisible areas which trigger script functions, this depends on character's team Id.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/TRIG|TRIG]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of laser triggers in a specific level. There exist several forms and can trigger not only script functions.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/TURR|TURR]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of turrets in a specific level. Not that their pods are part of the level geometry. Spawn one additional and it might be located somewhere in the air. Basicly you can setup their head's position, the weapon inside the turrent head, and the team Id which is the target.
| |
| |-
| |
| |'''BINA/OBCJ/[[XML:BINA/OBJC/WEAP|WEAP]]''' [[Image:Aqua Dot-Green.png]]
| |
| : List of weapons in a specific level which are spawned at level load. Actually only the position of them is set there.
| |
| |}
| |
|
| |
|
| |
| ===Others===
| |
| {|class="wikitable" width="100%"
| |
| | '''[[XML:AISA|AISA]]'''
| |
| : AI spawn array. AISA is still used for a few cutscene characters, even though BINA/CJBO/[[#goto_CHAR|CHAR]] has made it redundant.
| |
| |-
| |
| |'''[[XML:ONLV|AKEV]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : Akira Environment. It's the 3D level model. You can take a look into it but it's not recommended to tweak this by hand. Instead edit the AKEV as dae file in a 3D editor like Mod Tool.
| |
| |-
| |
| |'''[[XML:CONS|CONS]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Console class.
| |
| |-
| |
| |'''[[XML:DPge|DPge]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Diary page. You what to write a page for a new level or alternative story then there you go.
| |
| |-
| |
| | '''[[XML:DOOR|DOOR]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Door class.
| |
| |-
| |
| |'''[[XML:FILM|FILM]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Movement record. Usually used for cutscenes. During that time of animation, AIs have no AI. ^_^
| |
| |-
| |
| |'''[[XML:HPge|HPge]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Help page.
| |
| |-
| |
| |'''[[XML:IGHH|IGHH]]''' [[Image:Aqua Dot-Green.png]]
| |
| : In-game HUD. That's your health bar, compass, etc..
| |
| |-
| |
| |'''[[XML:IPge|IPge]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Item page. If you have created a new item then there you can describe it, give warnings, whatever.
| |
| |-
| |
| |'''[[XML:Impt|Impt]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Impact. This file is used to build up the hierarchy of impacts. See [[XML:BINA/ONIE|BINA/ONIE]] for more information.
| |
| |-
| |
| |'''[[XML:M3GM|M3GM]]''' [[Image:Aqua Dot-Red.png]]
| |
| :Geometry. Some of these 3D objects are used by OBANs and PAR3 files.
| |
| |-
| |
| |'''[[XML:Mtrl|Mtrl]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Material. This file is used to build up the hierarchy of materials. See [[XML:BINA/ONIE|BINA/ONIE]] for more information.
| |
| |-
| |
| |'''[[XML:OBAN|OBAN]]''' [[Image:Aqua Dot-Green.png]]
| |
| :Object Animation. Yes, used by objects but also for moving characters and cutsceen cams.
| |
| |-
| |
| |'''[[XML:OFGA|OFGA]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| :Object Furniture Geometry Array. Used to import objects with no functions. (Door, consoles, etc. becomes imported by their [[#OBJC|object collections]]. See [[XML:ONLV|ONLV]] for more information.)
| |
| |-
| |
| |'''[[XML:ONCC|ONCC]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : Character class. It contains weapon skills, behavior Ids, view radius, jump power, sounds, 3D model (TRBS), animation collection (TRAC), textures (TRMA), and much more.
| |
| : The XML file contains also the character's body part material (CBPM), body part impacts (CBPI), and particles for animations (ONCP and ONIA).
| |
| |-
| |
| |'''[[XML:ONCV|ONCV]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Character variant. 1) It's used to build up the hierarchy of randomness pools. Some characters with different appearance can form a pool for randomness. A flag in CHAR determinze if a character use one of these pools. 2) It can be also used to upgrade characters on difficult level hard - enabled by a flag in CHAR.
| |
| |-
| |
| |'''[[XML:ONGS|ONGS]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Game settings. There you can modify the values of the health bar, hypospray strength, game difficult setting, at what distance item glow is displayed, and autoprompts (text message when picking up a new kind of item).
| |
| |-
| |
| |'''[[XML:ONLD|ONLD]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : Level descriptor. In other words it is the level name in the save game menu.
| |
| |-
| |
| |'''[[XML:ONLV|ONLV]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| :Oni Game Level. Holds among other things: BSL folder name (<Name>), AKEV (Akira Environment) link, ONSK (Oni sky) link, and a link to AISA (AI Character Setup Array which is a bit obsolent because of [[XML:BINA/OBJC/CHAR|CHAR]]).
| |
| |-
| |
| |'''[[XML:ONSK|ONSK]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Sky. It's designed as a box so you will need five images: for top, north, east, south and west. The bottom has no image.
| |
| |-
| |
| |'''[[XML:ONVL|ONVL]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Variant list of characters. It's used for randomize characters' appearance.
| |
| |-
| |
| |'''[[XML:ONWC|ONWC]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Weapon class. Contains primary and secondary fire mode, more flags, particle, 3D model, and textures.
| |
| |-
| |
| |'''[[XML:OPge|OPge]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Objective page. That's the place where you can write the objective for a new or modified level.
| |
| |-
| |
| |'''[[XML:SNDD#OSBD_information|OSBD]] [[Image:Aqua Dot-Yellow.png]]
| |
| :Oni Sound Binary Data. They determine how (SNDD) sound files get played.
| |
| |-
| |
| |'''[[XML:StNA|StNA]]''' [[Image:Aqua Dot-Green.png]]
| |
| : StNA files are obsolete. However, on its name page are collections of flags used by TRAM.
| |
| |-
| |
| |'''[[XML:PSpc|PSpc]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Part specification. Oni can decorate a page (OPge, TxtC, maybe other too) with images from one source. You write coordinates there which means these parts.
| |
| |-
| |
| |'''[[XML:PSpL|PSpL]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Part specification list.
| |
| |-
| |
| |'''[[XML:PSUI|PSUI]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Part Specifications UI (User Interface).
| |
| |-
| |
| |'''[[XML:SUBT|SUBT]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Subtitle Array. Those SUBT files can't be extracted as xml but txt. SUBT has a link so you are simply aware of it.
| |
| |-
| |
| |'''[[XML:TRAC|TRAC]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Animation collection. Every character can move and fight thanks to a collection.
| |
| |-
| |
| |'''[[XML:TRAM#list_of_tags.2C_types.2C_and_flags|TRAM]]''' [[Image:Aqua Dot-Yellow.png]]
| |
| : Animation. You can create new animations with Mod Tool. But for setting Oni-specific flags, links to particle and so on you need to edit the xml file afterwards or you create [http://oni.bungie.org/community/forum/viewtopic.php?pid=23230#p23230 precursor xml] before.
| |
| |-
| |
| | '''[[XML:TRAS|TRAS]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Totoro Aiming Screen. Used for make characters aim with weapons.
| |
| |-
| |
| |'''[[XML:TRBS|TRBS]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Totoro Body Set, in other words the 3d model of a character. ONCC (character class) files links to TRBS. The 3d data itself will be exported/imported as dae files.
| |
| |-
| |
| |'''[[XML:TRGE|TRGE]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Laser trigger emitter class. This file type holds the 3D model and it's coordinates. Used by TRIG.
| |
| |-
| |
| | '''[[XML:TRIG|TRIG]]'''
| |
| : Laser trigger class.
| |
| |-
| |
| |'''[[XML:TRMA#XML_area|TRMA]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Character's texture map array. Every [[XML:TRIA#Bones|body part]] is covered by textures. This file type holds links to those textures.
| |
| |-
| |
| |'''[[XML:TRSC|TRSC]]''' [[Image:Aqua Dot-Red.png]]
| |
| :Totoro Aiming Screen Collection. Used for make characters aim with weapons.
| |
| |-
| |
| |'''[[XML:TXMB|TXMB]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Big texture map. Only used for spalsh screens, you know .. these big Intro, WinLevel and LoseLevel images.
| |
| |-
| |
| |'''[[XML:TXMP#XML_section|TXMP]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Texture map. Well, this type covers all images in Oni. (TXMB use multiple TXMPs to create a big texture.)
| |
| |-
| |
| |'''[[XML:TxtC|TxtC]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Console text. Each time you access a console you get a text page. That's TxtC.
| |
| |-
| |
| |'''[[XML:WMCL|WMCL]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Window menu cursor list. Mouse pointer(s).
| |
| |-
| |
| |'''[[XML:WMDD|WMDD]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Window Menu Dialog Data. It shapes pages like TxtC and WPge. However, new button functions would require engine modding.
| |
| |-
| |
| |'''[[XML:WMM|WMM]]''' [[Image:Aqua Dot-Red.png]]
| |
| : Window menu menu.
| |
| |-
| |
| |'''[[Xml:WPge|WPge]]''' [[Image:Aqua Dot-Green.png]]
| |
| : Weapon page. That's the place where you can write descriptions page about a specific weapon.
| |
| |}
| |
|
| |
|
| |
|
| ==working with XML files: good to know== | | ==working with XML files: good to know== |
Line 367: |
Line 152: |
| [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/code_folding.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/code_folding_preview.png]<br>Macintosh (xcode) | | [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/code_folding.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/code_folding_preview.png]<br>Macintosh (xcode) |
| |} | | |} |
|
| |
|
| |
| ==way without Windows GUI: window address bar==
| |
| {| border=0 cellspacing=20 cellpadding=0 style="float:right"
| |
| | [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/window_address_bar.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XML_modding/window_address_bar_preview.png]
| |
| |}
| |
| Put the '''[[OniSplit|newest OniSplit.exe]]''' into the "edition\GameDataFolder" folder and use the window's address bar (that's where you can see the directory in full length).
| |
|
| |
| Delete that address, type (for example) the code below, and hit enter.
| |
|
| |
| onisplit -extract:xml xml_dir level0_Final/ONCCkonoko*.'''oni'''
| |
|
| |
| The star is good for mess extraction/creation and good for shorten long unique file names. ("ONCCkonoko_generic" will be extracted in new folder "edition\GameDataFolder\xml_dir".)
| |
|
| |
|
| |
| It's also a good idea to keep the code in a temporary opened text file. There you can easily modify the code for other files and doesn't need you to type it from beginning into the address bar. (Be aware of Windows' short cut "CTRL + C" for coping marked text and "CTRL + V" for pasting text.)
| |
|
| |
|
| ==way without Mac GUI: the terminal== | | ==way without Mac GUI: the terminal== |