Mod Tool/Oni level rebuilder

From OniGalore
Jump to navigation Jump to search
Mod Tool Oni level rebuilder logo.jpg
Wouldn't it be nice to have a tool that can rebuild an Oni level?
Of course after some modification has been made to the level.

Mod Tool and OniSplit could accomplish this task.


Transfer from Oni to Mod Tool

Following scenario: A modder drags and drops level1_Final.dat into Mod Tool's viewport.

Mod Tool tells OniSplit to extract needed data.

For example:

OniSplit.exe -export level0_Final level0.dat
OniSplit.exe -export level1_Final level1.dat
OniSplit.exe -extract:dae level1_Final level1_Final/AKEV*.oni -search level0_Final
OniSplit.exe -extract:xml level1_Final level1_Final/ONLV*.oni
OniSplit.exe -extract:xml level1_Final level1_Final/BINACJBO*.oni

After that Mod Tool can examine the files and import 3D content on different layers.

Core geometry: EnvLayer
Pathfinding: BnvLayer
Consoles: ConsLayer
TriggerVolumes: TrgvLayer
etc.

Also, an already half-filled xml master file can be created.

The names of BSL folder and skybox can be received from the original ONLV file.


Transfer from Mod Tool to Oni

When user is ready he can click import and rebuild the level.

In ideal case he doesn't have to touch the xml master file.

Currently, the xml master file don't seem to cover the CRSA instance.

But, now that Neo has provided a code to create transform matrices, the ONLV file can be post-edited.

Getting the CRSA back into Mod Tool is a bit more complicated, or the code for it, .. like always.

Matrix to euler and back again: see scripting page.


Limitations

Besides the work needed to get this all done ..., cutscenes (animation compositions and FILM creation) and BSL in general won't be produced automatically.


Realization

Export relevant files

As said before the user will drag and drop a dat file into Mod Tool.

Let's say he drops the airport, the folder will be located at Softimage_Mod_Tool_7.5\OniLevels\level4_Final.

To ensure the AKEV gets all its resources, level0_Final becomes also exported.

Since level0_Final is such a big file, Mod Tool will check if the folder is already located at OniLevels.

For update purposes, the user can force to export level0_Final again by dragging and dropping it into the program.


Loading work data

Some content will be imported as it is such as core geometry and BNV.

Other content like consoles should be imported indirectly from CJBO files.

That's necessary because the extracted dae file doesn't cover any flags, script functions, etc.


Libraries

There's already the shared folder for the xml master file. But we should be able to extend it whenever necessary.

For instance BINACJBOCharacter/AISA/CRSA will require ONCC files in DAE format.

This will be done whenever level0_Final becomes exported.

onisplit -extract:dae level0_Final level0_Final\ONCC*.oni

Inside Mod Tool, envmaps will be disabled so that strange effects with transparency doesn't appear.


Project management

Progress must be saved in form of *.exp scene files.

Valid project locations will be provided automatically.


Alternate management

There should be a way to let users save their progress when *.exp files don't work.

Also the MergeScene function seems buggy.

As alternative we can use *.xsi files. These can store custom properties, something that *.dae files can't do.
It's probably be possible to store all actual content to one *.xsi and store the layer information to one *.xml file.
Or each layer is stored to one *.xsi file.
Slower systems might profit from the latter method because the user isn't forced to load everything, he can decide what scene layers he wants.