18,739
edits
m (link fixes) |
m (copy-edit part 1) |
||
Line 1: | Line 1: | ||
{{XML_File_Header | prev=ONLD | type=ONLV | next=ONSK | name=Oni Game Level}} | {{XML_File_Header | prev=ONLD | type=ONLV | next=ONSK | name=Oni Game Level}} | ||
{{finish}} | {{finish}} | ||
; | ;To-do list | ||
* | * Tips for cutscene characters: sync pelvis OBAN and partner TRAM | ||
* | * Notes on camera and film import? | ||
* | * Make new demo level after implementation of final scene import/export, DAE-based CRSA import/export, shared folder bug fix, ENVP recycler | ||
** | ** Try to clean up page a bit | ||
** | ** Also, OniSplit v0.9.99.0+ no longer supports node tags when importing, so instead of… | ||
<Import Path="env/lab_motorcycle.dae"> | <Import Path="env/lab_motorcycle.dae"> | ||
Line 16: | Line 16: | ||
</Import> | </Import> | ||
…we need to use: | |||
<Import Path="env/lab_motorcycle.dae"> | <Import Path="env/lab_motorcycle.dae"> | ||
Line 27: | Line 27: | ||
==Level releases | ==Level releases and resources== | ||
===Fan-made levels=== | |||
{| class="wikitable sortable autosort by-column-3" | {| class="wikitable sortable autosort by-column-3" | ||
!Date | !Date | ||
Line 123: | Line 123: | ||
|} | |} | ||
===Forum tutorials on level creation=== | |||
* '''[http://oni.bungie.org/forum/viewtopic.php?id=2087 "Creating the Lair - A level tutorial"]''' | * '''[http://oni.bungie.org/forum/viewtopic.php?id=2087 "Creating the Lair - A level tutorial"]''' | ||
* [http://oni.bungie.org/forum/viewtopic.php?pid=53026 "Creating a Custom Oni Level (s10k video tutorials)"] | * [http://oni.bungie.org/forum/viewtopic.php?pid=53026 "Creating a Custom Oni Level (s10k video tutorials)"] | ||
Line 132: | Line 132: | ||
* [http://oni.bungie.org/forum/viewtopic.php?pid=37252#p37252 "Modding Existing levels - Beta" ("Moveable furniture" post)] | * [http://oni.bungie.org/forum/viewtopic.php?pid=37252#p37252 "Modding Existing levels - Beta" ("Moveable furniture" post)] | ||
===Wiki pages on level creation=== | |||
* [[ | * [[New levels]] | ||
* [[ | * [[Lightmapping levels]] | ||
* [[ | * [[SketchUp tutorials and tips]] | ||
===Free asset sources=== | |||
* [http://vk.com/gameready | * [http://vk.com/gameready Various game meshes] | ||
* [http://tutorialsforblender3d.com/Textures/Textures_index.html | * [http://tutorialsforblender3d.com/Textures/Textures_index.html Various game textures] | ||
* [https://www.textures.com | * [https://www.textures.com Various game textures] | ||
== | ==Engine limitations== | ||
First you should be aware of the limitations that Oni will place on your level. | |||
* triangle limit of a game level | * The triangle limit of a game level is approx. 520,000 (consider it 500,000 to be on the safe side). | ||
* {{ModTool}} can save | * {{ModTool}} can save DAE files with a maximum of 64,000 triangles per object. | ||
* | * When polygons are too tightly packed, the camera will look at too many of them and glitches will appear. The limit on visible GQs (Gunk Quads) is 8,192 (2<sup>13</sup>), and higher numbers will cause render bugs and produce the console error message "Exceeded max visible GQs ''number''". There are limited solutions to this: | ||
** | ** Decrease the '''gs_farclipplane_set''' value. | ||
** | ** Hide objects via '''[[#.3CModel.3E|env_show]]'''. | ||
** | ** Hide objects by ''level design''. For example, departments in a building could be quite detailed because the view of the other departments/rooms is blocked by walls. | ||
* The camera can look at 2,049 transparent textures at once; one more, and Oni crashes. | |||
* The camera can look at | * Characters are visible ''only'' within world coordinates {-4,099, -4,099, -4,099} to {4,099, 4,099, 4,099}. | ||
* | * Geometry stops outside of (roughly) world coordinates -4,228 to 4,228 on the X and Z axes (vertical axis not tested). | ||
* | * '''chr_debug_spheres = 1''' visualizes the collision spheres of characters, so you can check if they will fit through an entrance. | ||
* chr_debug_spheres = 1 visualizes collision spheres of characters, | |||
==Notes on Mod Tool and Google SketchUp== | |||
Re-saving a DAE file in Mod Tool which was originally made in SketchUp can result in a surprising change in size within Oni. This is due to a difference in the specification of a scale unit. | |||
== | : For example, the SketchUp DAE file may have: <tt><unit meter="0.0254000" name="inch" /></tt> | ||
: And the re-saved Mod Tool DAE file may have: <tt><unit meter="0.1" name="decimetre"></unit></tt> | |||
In that case you'll need to open the new DAE in a text editor and change the length specification back. | |||
==Level import with OniSplit v0.9.82.0+== | |||
: | You can download OniSplit [http://mods.oni2.net/node/38 HERE] (it also comes with the [[AE]] and is found in the Tools directory of the installation). | ||
The level import demo files can be downloaded [http://mods.oni2.net/node/299 HERE]. | |||
First, put '''OniSplit.exe''' into the second '''lab''' folder alongside the XML files. | |||
Look at the file '''build.cmd'''. These are the two important lines: | |||
''' | |||
OniSplit.exe -create:level out lab.xml | OniSplit.exe -create:level out lab.xml | ||
OniSplit.exe -import:pc out level3_Final.dat | OniSplit.exe -import:pc out level3_Final.dat | ||
The first line | The first line creates the *.oni files from a master.xml file, in this case '''lab.xml'''. Once finalized, the resulting .oni files can be put into a new [[Making a mod package|AE package]]. | ||
The second line creates level archives which can be used | The second line creates level archives which can be used for fast tests. They don't require you to install a package through the AE Installer. | ||
Instead of "nosep" you can now also use "pc" for the import. | Instead of "-nosep" you can now also use "-pc" for the import. Macs, however, do use "-sep". | ||
If the game crashes while loading | If the game crashes while loading at ~90% progress, be sure that the texture's x and y dimensions are powers of two: 64, 128, 256, 512…. | ||
If the game crashes while loading | If the game crashes while loading at ~50-60% progress, be sure that the BINACJBOCharacters or AISA file has a player character defined. | ||
If the game crashes while loading | If the game crashes while loading ~5-10% progress, check if all your textures were inside the "out" folder. | ||
: You can extract the AKEV file to | :You can extract the AKEV file to XML, then search for the [[XML:AKEV#TXMA|TXMP Array]]. | ||
: [http://mods.oni2.net/system/files/AKEV_texture_checker.txt THIS] script checks which textures are missing by comparing the AKEV*.xml with its *.oni files folder. | :[http://mods.oni2.net/system/files/AKEV_texture_checker.txt THIS] script checks which textures are missing by comparing the AKEV*.xml with its *.oni files folder. Change the two paths so that it works for you: Alt+4, insert code, then F5. | ||
"TXMP_marker_door" and "TXMP_marker_ghost" will be missing in the demo's "out" folder. | "TXMP_marker_door" and "TXMP_marker_ghost" will be missing in the demo's "out" folder. | ||
You can add this between the other two lines in | You can add this between the other two lines in build.cmd to prevent a crash. | ||
OniSplit.exe -create:txmp out env/markers/*.tga | OniSplit.exe -create:txmp out env/markers/*.tga | ||
===The master xml file=== | ===The master xml file=== |