Talk:Introduction to modding
introduction
In sum, modding Oni looks like writing a theatre play: You have stages, actors, and scripts - wide areas, buildings, rooms, decorations, characters running from A to B whereas the protagonist triggers most events. But the official makers had ran out of time, left the game without modding support, so it took over seven years to unlock most possibilities. Read HERE the full story.
Scripts are written in Bungie Script Language, that's why we also often say "BSL mods". They build up the level logic, simply said they make the level to appear logic/intelligent, they give basic commands to game engine.
OBD refers to Oni Binay Data. Script commands are useless when their addressed resources don't exist. A BSL command might say "ai2_movetoflag characterA 7" (characterA moves to point 7) but the actual movement animation and flag comes from the binaries, in this case called TRAM and FLAG. Every resource has a four-letter-acronym. TRAM stands for Toronto Animation. In old days we tweaked that kind of data with HEX-editor and OniUnPacker which displays data as hexadecimal number. For last research fields or fast testing we sometimes still use hex-editing. (Written at 26. Juli 2009.) Now, TRAM can be converted to XML, that format can be read and rewritten more easily but still lacks some usability when it comes to TRAM's core.
Some resources don't suit XML. These are 3D objects and animations, sounds and textures, they become converted into their native formats.
By modding it is often meant that you can also create complete new resources.
- 3D objects (characters, objects, levels) can be modified/created in blender or XSI.
- Animation can be modified/created with (Autodesk) softimage.
- Texture can be modified/created in your favorite graphic program: GIMP, Photoshop, etc. – as long as these programs outputs files in formats that can be reconverted.
links to tools, documentations and tutorials
BSL
- introduction and database links HERE
- tutorials: BSL:Tutorial/Scratch
OBD
file converting in general
3D
- blender : tutorial
- XSI : -
- tutorial: Importing character models TRBS
- turorial: AE:Importing_weapon_models
Animation
- onisplit -create:tram target_dir animation.dae
- In the target folder you'll get a TRAManimation.xml file.
- You need to add some stuff to that file to make it actually work as an animation. In particular the animation type, from/to states and varient needs to be set.
- For all I know this works with animations exported from Oni and modified in Softimage. If you come up with a completly new animation it should work as long as the skeleton is similar to the one used in Oni.
- Note that the geometry that is present inside the Collada file is used to compute the "vertical extents" so it better be the same or close to the one the animation is intended for.
- The biggest problem are the attacks. While it's not difficult to add attacks to the xml file, computing the necessary "extents" is not going to be easy. I guess in the end I'll have to add some command to OniSplit to do it.
- tutorial: AE:Authoring_custom_camera_animations
HEX
- any hex-editor
- OniUnPacker
- tutorial: tweak animation
- tutorial: Adding spawnable characters to a level CHAR
- tutorial: Adding character classes ONCC
Sound
- importer notes
- -WAV files (.wav, mono/stereo, 22.05KHz/44.1KHz, uncompressed(PCM)/compressed(MS-ADPCM)) produce SNDD files that are compatible with Oni PC retail.
- -AIFC files (.aif/.aifc/.afc, mono/stereo 22.05KHz, compressed(ima4)) produce SNDD files that are compatible with Oni Mac.
- Example
OniSplit -create out_dir test.aif OniSplit -create out_dir test.wav
Textures
- tutorial: Modifying textures TXMP
what you can do
- play some existing mods to get ideas
- Modding Brainstorms
- AE:Food_for_thought
- Anniversary_Edition/To-do
- AE:Requests