19,588
edits
Paradox-01 (talk | contribs) mNo edit summary |
m (fixed links by pointing to archive that now contains them) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 28: | Line 28: | ||
</Oni> | </Oni> | ||
GUI generated master files come with a "level specific item" ([[XML:IPge# | GUI generated master files come with a "level specific item" ([[XML:IPge#Related_files|LSI]]) attribute in the <Objects> tag. | ||
The tag is used by the GUI to copy the correct LSI files into the output folder where OniSplit generates all other level files for the "Final" archive or plugin. | The tag is used by the GUI to copy the correct LSI files into the output folder where OniSplit generates all other level files for the "Final" archive or plugin. | ||
Note that you can use only one type of LSI per level. | Note that you can use only one type of LSI per level. | ||
==Dev notes for the remake== | ==Dev notes for the remake== | ||
Line 44: | Line 43: | ||
Currently working on: [[#Detailed_checklist|update #3]] | Currently working on: [[#Detailed_checklist|update #3]] | ||
===Update management=== | ===Update management=== | ||
====GUI==== | ====GUI==== | ||
Starting with 14.01.2017 the GUI is distributed via AEI. | Starting with 14.01.2017 the GUI is distributed via AEI. | ||
Line 93: | Line 90: | ||
* <s>unstable updating of shared classes</s> Fixed in #2 by renaming old folder. That way custom made changes don't get lost however still need to be moved by hand. | * <s>unstable updating of shared classes</s> Fixed in #2 by renaming old folder. That way custom made changes don't get lost however still need to be moved by hand. | ||
* <s>quick test function in xsi produces level archives of name "levelN_Final"</s> Fixed in #2. N is now an actual number. | * <s>quick test function in xsi produces level archives of name "levelN_Final"</s> Fixed in #2. N is now an actual number. | ||
===Detailed checklist=== | ===Detailed checklist=== | ||
Line 182: | Line 178: | ||
{{divhide|Consoles (CONS) - feature update #1}} | {{divhide|Consoles (CONS) - feature update #1}} | ||
* dae and xml gets extracted from shared vanilla classes [*] | * dae and xml gets extracted from shared vanilla classes [*] | ||
* | * CONS html page (<nowiki>https://www.dropbox.com/s/1rur57ea9i34652/consoles_wip.jpg?dl=0</nowiki>, dead link) [*] | ||
* detect xml DnD from html page [*] | * detect xml DnD from html page [*] | ||
* make / switch to CONS layer [*] | * make / switch to CONS layer [*] | ||
Line 204: | Line 200: | ||
sharedVanillaClassesVersionInApp = 2 | sharedVanillaClassesVersionInApp = 2 | ||
{{divhide|end}} | {{divhide|end}} | ||
===General checklist of addon and GUI=== | ===General checklist of addon and GUI=== | ||
Line 345: | Line 340: | ||
---- | ---- | ||
---- | ---- | ||
===New code snippets=== | ===New code snippets=== | ||
Line 407: | Line 401: | ||
| - | | - | ||
| html | | html | ||
| | | x <nowiki>https://www.dropbox.com/s/srcvil992v3jkxs/HelpFunctions.vbs?dl=0</nowiki> (dead link) | ||
| | | x <nowiki>https://www.dropbox.com/s/srcvil992v3jkxs/HelpFunctions.vbs?dl=0</nowiki> (dead link) | ||
| html | | html | ||
<!-- | <!-- | ||
Line 427: | Line 421: | ||
|- | |- | ||
| preview imgs | | preview imgs | ||
| | | x <nowiki>https://dl.dropboxusercontent.com/u/139715/OniGalore/ModToolScript/LevelBuilder/characters.zip</nowiki> (dead link) | ||
| | | | ||
| | | | ||
Line 436: | Line 430: | ||
| | | | ||
<!-- | --> | <!-- | --> | ||
| | | x <nowiki>https://dl.dropboxusercontent.com/u/139715/OniGalore/VanillaTURRs.jpg</nowiki> (dead link) | ||
| x | | x | ||
|- | |- | ||
Line 510: | Line 504: | ||
Patrol paths are the trickiest. There's no easy way to show the connection from flag to another. It might be possible with multiple chains used for rigging but that's not very comfortable to deal with. | Patrol paths are the trickiest. There's no easy way to show the connection from flag to another. It might be possible with multiple chains used for rigging but that's not very comfortable to deal with. | ||
Idea: add ID property to each used flag. When a flag is clicked, a PPG opens with a button to show flag connections (one lose chain with many bones, old one is deleted). MT also opens/updates an application (have to look into [ | Idea: add ID property to each used flag. When a flag is clicked, a PPG opens with a button to show flag connections (one lose chain with many bones, old one is deleted). MT also opens/updates an application (have to look into [http://web.archive.org/web/20150926205808/http://bytes.com/topic/visual-basic-net/answers/630751-how-do-i-pass-command-line-another-instance-my-application-already-running writing command line apps] first). I guess that's necessary to preview (and edit) the complete xml code as this would be to awkward to code directly in MT. The xml file is saved on change events. MT reads that xml when a patrol path flag is selected. | ||
21.06.2016 Yay. Ugly PATR xml editor underway. "Full manual edits (<nowiki>https://1drv.ms/u/s!AjLkf0bK7POzgpI-McvVNAPeU5Cz2w</nowiki>, dead link)" tab ''already'' ready... took long enough. Figured out command line part. Next stop MT interaction. | |||
===Editing simultaneously multiple ghost quads heights=== | ===Editing simultaneously multiple ghost quads heights=== | ||
Line 520: | Line 512: | ||
===Display keywords=== | ===Display keywords=== | ||
[[Image:XSI_ModTool_display_keywords.png|thumb|200px|right]] | |||
SetUserKeyword selection(0), "type=akev, id=1" | SetUserKeyword selection(0), "type=akev, id=1" | ||
Line 529: | Line 523: | ||
SetValue "Camera.camvis.attrseluserkeywords", True | SetValue "Camera.camvis.attrseluserkeywords", True | ||
Line 536: | Line 529: | ||
Using a "Simulate Rigid Bodies" ICETree node for this is ''overkill''. But it works and I fail to come up with alternatives, so... | Using a "Simulate Rigid Bodies" ICETree node for this is ''overkill''. But it works and I fail to come up with alternatives, so... | ||
https://dl.dropboxusercontent.com/u/139715/OniGalore/abusing_ICE_for_displaying_a_flag.png | <nowiki>https://dl.dropboxusercontent.com/u/139715/OniGalore/abusing_ICE_for_displaying_a_flag.png</nowiki> (dead link) | ||
'### setup flag display by abusing ICE | '### setup flag display by abusing ICE | ||
CreatePrim "Cube", "MeshSurface" | CreatePrim "Cube", "MeshSurface" | ||
Line 559: | Line 552: | ||
logmessage "couldn't find ICETree" | logmessage "couldn't find ICETree" | ||
end if | end if | ||
==Dev notes for remake v2== | ==Dev notes for remake v2== | ||
Line 582: | Line 574: | ||
'''XSI''' | '''XSI''' | ||
* remove the deprecated exchange file tag <activeLevelNumber> | * remove the deprecated exchange file tag <activeLevelNumber> | ||
==More wild ideas== | ==More wild ideas== | ||
===FILM creation within MT=== | ===FILM creation within MT=== | ||
[[XML:FILM|FILM]]s could be created with certain approximation. | [[XML:FILM|FILM]]s could be created with certain approximation. | ||
Line 594: | Line 584: | ||
Exact values might require information about ONCC and starting TRAM. | Exact values might require information about ONCC and starting TRAM. | ||
===Animated reference=== | ===Animated reference=== | ||
Line 638: | Line 627: | ||
===New camera animations=== | ===New camera animations=== | ||
There's already an excel macro available but now I want to build cam anims without excel. | There's already an excel macro available but now I want to build cam anims without excel. | ||
Line 655: | Line 640: | ||
Positions and rotations keyframes can be applied to the camera root object. | Positions and rotations keyframes can be applied to the camera root object. | ||
===Adding multiple textures to level geometry [out-dated]=== | ===Adding multiple textures to level geometry [out-dated]=== | ||
Line 673: | Line 657: | ||
[...] | [...] | ||
===TRBS-fitting TRMA creation=== | ===TRBS-fitting TRMA creation=== | ||
Line 811: | Line 794: | ||
' INFO : counted body parts: 19 | ' INFO : counted body parts: 19 | ||
{{divhide|end}} | {{divhide|end}} | ||
==Old dev notes== | ==Old dev notes== | ||
===New door animations=== | ===New door animations=== | ||
Final door animation depends on: | Final door animation depends on: | ||
Line 848: | Line 829: | ||
There could be a loop scanning all objects for those numbers. | There could be a loop scanning all objects for those numbers. | ||
===Hierarchy builder for characters=== | ===Hierarchy builder for characters=== | ||
Based on old knowledge. See [[Mod_Tool# | Based on old knowledge. See [[Mod_Tool#Exchange_meshes_in_hierarchies|HERE]] for an easy manual way to change the meshes in hierarchies. | ||
Line 940: | Line 920: | ||
'''Data table''' | '''Data table''' | ||
[[Mod_Tool/Scripting# | [[Mod_Tool/Scripting#Read_binary_file|Reading the AKEV's name table]] was more or less easy. This time we need to look up the data table. | ||
Three things to take care about: '''reading hex numbers backwards''' (as usual in Oni), '''adding relative offsets''' to data table's offset (took a pretty while to find that one out*), '''subtracting 8 bytes''' for no other reason to get the correct offset. | Three things to take care about: '''reading hex numbers backwards''' (as usual in Oni), '''adding relative offsets''' to data table's offset (took a pretty while to find that one out*), '''subtracting 8 bytes''' for no other reason to get the correct offset. | ||
Line 1,020: | Line 1,000: | ||
AKEV data and extracted console mesh have different polygon IDs and point IDs. Identifying each point by position (taking tolerances into account) and then identifing the quads and triangles would take too long. So, it's still possible but at the moment it's a black hole consuming too much dev time... Darn. | AKEV data and extracted console mesh have different polygon IDs and point IDs. Identifying each point by position (taking tolerances into account) and then identifing the quads and triangles would take too long. So, it's still possible but at the moment it's a black hole consuming too much dev time... Darn. | ||
== Improving deletion algorithm == | |||
'''[Expand [http://konoko.oni2.net/%5bOni%20Developing%5d/%5bProgramming%5d/SRC%20texts.7Z this archive] to see the files being referenced. -Iritscen]''' I've tested an improved version ("kill_NONEs_improved.TXT") of this section ("kill_NONEs_orig.TXT"). My improvements are very simple: | |||
# Deleting cluster itself after polygon deletion | |||
# Freezing object and modelling | |||
That improvements are really useful for me... Maybe, it could be useful for you (or for others)... You can test it... | |||
<br> | |||
--[[User:Mai X|Mai X]] ([[User talk:Mai X|talk]]) 00:17, 10 April 2023 (CEST) | |||
[[Category:Completed modding tools]][[Category:Windows-only modding tools]] |