Talk:Modifying an existing level: Difference between revisions
Paradox-01 (talk | contribs) mNo edit summary |
Paradox-01 (talk | contribs) mNo edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Idea== | |||
To convert an extracted ONLV into a new project file you need even more in-depth knowledge about the file structure than for simply building a level project file from scratch. | To convert an extracted ONLV into a new project file you need even more in-depth knowledge about the file structure than for simply building a level project file from scratch. | ||
Line 9: | Line 10: | ||
# Preserving as much vertex shading as possible by preferring DAE over CJBO linked meshes. | # Preserving as much vertex shading as possible by preferring DAE over CJBO linked meshes. | ||
# BSL analysis to create FILM and cut scene sections? | # BSL analysis to create FILM and cut scene sections? | ||
==AE package== | |||
mods.oni2.net | |||
| | |||
+-- LevelRecycler.zip | |||
| | |||
+-- #####packageName | |||
| | |||
+-- Mod_Info.cfg | |||
+-- plain | |||
| | |||
+--win_only | |||
| | |||
+--Tools | |||
| | |||
+-- LevelRecycler | |||
| | |||
+-- icon.png (32 x 32 px) | |||
+-- LevelRecycler.exe | |||
'''Mod_Info.cfg''' | |||
AEInstallVersion -> 2.0 | |||
NameOfMod -> Level Recycler | |||
Creator -> | |||
ModVersion -> | |||
Readme -> | |||
ExeName -> Tools/LevelRecycler/LevelRecycler.exe | |||
WorkingDir -> Exe | |||
IconName -> Tools/LevelRecycler/icon.png | |||
==Startup== | |||
Oni | |||
| | |||
+-- AE | |||
| | |||
+-- Tools | |||
| | | |||
| +-- OniSplit.exe | |||
| +-- LevelRecycler | |||
| | | |||
| +-- icon.png | |||
| +-- LevelRecycler.exe | |||
| | |||
+-- GameDataFolder | |||
| | |||
+-- level0_Final.dat | |||
+-- level0_Final.raw | |||
+-- level1_Final.dat | |||
+-- level1_Final.raw | |||
+-- ... | |||
+-- IGMD | |||
| | |||
+-- ''BSL script folders'' | |||
The "on load" event of the LevelRecycler should automatically update an overview of existing levels: | |||
* Level0_Final.dat stores all ONLD with more meaningful level names. | |||
* Each non-zero level DAT-archive stores an ONLV file. | |||
* With those extracted files, a list for modders can be built to easily identify the level they want to recycle. | |||
// shortened paths | |||
OniSplit -export:ONLD* ONLD level0_Final.dat | |||
OniSplit -extract:xml ONLD ONLD/*.oni | |||
for each non-zero DAT | |||
OniSplit -export:ONLV* ONLV ....dat | |||
OniSplit -extract:xml ONLV ONLV/*.oni | |||
dat file name, BSL script folder, level name | |||
---------------------------------------------- | |||
level1_Final.dat, ONLV<Name>, ONLD<DisplayName> | |||
As soon as the modder has selected the preferred level, it should be a one-click operation to carry out the recycling. | |||
==Less write operations== | |||
With each onload event the ONLV and ONLD would get extracted. To reduce somewhat the amount of write operations an xml cache file could be used to feed the program's overview table. If the DAT files are older then no new extractions are done. |
Latest revision as of 13:50, 28 November 2023
Idea
To convert an extracted ONLV into a new project file you need even more in-depth knowledge about the file structure than for simply building a level project file from scratch.
Therefore, it would be nice if we could provide a tool to automate necessary work as much as possible.
One-click operation:
- Level extraction.
- Conversion of ONLV into an actual project file.
- Recycling of physics and locklights.
- Preserving as much vertex shading as possible by preferring DAE over CJBO linked meshes.
- BSL analysis to create FILM and cut scene sections?
AE package
mods.oni2.net | +-- LevelRecycler.zip | +-- #####packageName | +-- Mod_Info.cfg +-- plain | +--win_only | +--Tools | +-- LevelRecycler | +-- icon.png (32 x 32 px) +-- LevelRecycler.exe
Mod_Info.cfg
AEInstallVersion -> 2.0 NameOfMod -> Level Recycler Creator -> ModVersion -> Readme -> ExeName -> Tools/LevelRecycler/LevelRecycler.exe WorkingDir -> Exe IconName -> Tools/LevelRecycler/icon.png
Startup
Oni | +-- AE | +-- Tools | | | +-- OniSplit.exe | +-- LevelRecycler | | | +-- icon.png | +-- LevelRecycler.exe | +-- GameDataFolder | +-- level0_Final.dat +-- level0_Final.raw +-- level1_Final.dat +-- level1_Final.raw +-- ... +-- IGMD | +-- BSL script folders
The "on load" event of the LevelRecycler should automatically update an overview of existing levels:
- Level0_Final.dat stores all ONLD with more meaningful level names.
- Each non-zero level DAT-archive stores an ONLV file.
- With those extracted files, a list for modders can be built to easily identify the level they want to recycle.
// shortened paths OniSplit -export:ONLD* ONLD level0_Final.dat OniSplit -extract:xml ONLD ONLD/*.oni for each non-zero DAT OniSplit -export:ONLV* ONLV ....dat OniSplit -extract:xml ONLV ONLV/*.oni
dat file name, BSL script folder, level name ---------------------------------------------- level1_Final.dat, ONLV<Name>, ONLD<DisplayName>
As soon as the modder has selected the preferred level, it should be a one-click operation to carry out the recycling.
Less write operations
With each onload event the ONLV and ONLD would get extracted. To reduce somewhat the amount of write operations an xml cache file could be used to feed the program's overview table. If the DAT files are older then no new extractions are done.