Talk:OniSplit: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (Thank you.)
mNo edit summary
 
(40 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Here's is my latest on creating a modified TRBS.
Talk page archives: [[/Archive1|#1]]


I call this The Fly! lol
==Page improvement==
Shouldn't there be an animation section which includes the options -anim-body, -anim-merge and -blender? --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 00:24, 16 May 2022 (CEST)
:Yes, it's odd that -anim-body and -anim-merge are not documented here, someone should do something about that. <s>-blender arguably does not exist yet (it's in geyser's upcoming 1.0 release and is mentioned on the [[OniSplit/WIP]] page).</s> My bad, -blender was added in 0.9.99.2. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 01:05, 16 May 2022 (CEST)


http://edt.oni2.net/OniSplit/flyhead.jpg
==If OniSplit refuses to be used==
delete file at AE/Tools/OniSplit.exe.config --[[User:Paradox-01|Paradox-01]] 18:00, 28 June 2020


I used the head from owldreamer's MasterchiefIt looked correct in Blender, but it is rotated wrong here. There is no texture map for it. Also, the texture mapping is off for the rest of the body, even though I did not make any changes.
==Smaller version steps possible==
AssemblyInfo.cs
  //overwrite product version with 5 possible numbers
[assembly: AssemblyInformationalVersion("0.9.99.0.1")]


Neo: Also can you take a look at this blender file and tell me what I did wrong:
Utils.cs
#if NETCORE
                    version = typeof(Utils).GetTypeInfo().Assembly.GetName().Version.ToString();
#else
                    //version = typeof(Utils).Assembly.GetName().Version.ToString();
                    Assembly assembly = Assembly.GetExecutingAssembly();
                    FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
                    version = fileVersionInfo.ProductVersion;
#endif


http://edt.oni2.net/OniSplit/MasterChief.blend.zip
OniSplit -version
0.9.99.0.1


I imported owldreamer's Masterchief, renamed the geometries, set the parents, all the rotations were set to 0. But when importing to Oni, it was broken.
==OniSplit version control - getting there...==
The SVN version of OniSplit is currently labeled 0.9.99 (same as the source received from Neo), and at this point it is different from the non-synced 0.9.99.2 that I distributed through EdT.
*"0.9.99" has only two commits (44.1 kHz SNDD export - affecting only electric spark sounds - and other minor SNDD fixes and features);
*0.9.99.2 has a few fixes to 0.9.99 (adjustment to XML parsing rules) and new functionality for Blender import/export of animations; also some new bugs, apparently.
To restore some order, I am going to merge my 0.9.99.2 fixes to SVN, then address the known bugs, and push the version number to 0.9.99.3 - and use SVN-synced development from then onwards.


http://edt.oni2.net/OniSplit/MCbroken.jpg
I am ''not'' going to create a branch for my fixes/improvements, except maybe when it comes to adding something big, like C# FBX support. If you object to this, speak now. --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 00:09, 29 May 2020 (CEST)


I also had a question about the naming of the geometries. In Blender the names go right_thigh, left_calf and so on. But when I looked at an exported ONCC as an OBJ, they are named thigh_right, calf_left.  Which is correct?  Especially when naming in Blender?  Also, why does Blender have the the name left_left? I looked at the naming structure from the extracted ONCCkonoko_generic.dae which was imported into Blender.
List of bugfixes and improvements planned for 0.9.99.3 (feel free to add to the list if I forgot something)
*some running/walking anims end up upside-down after reimported into Oni
*-extract:dae -noanim -blender used on a TRBS, make sure the output .dae file has a TRBS prefix
*stairs_markers.dae not imported properly? (and more generally secondary/auxiliary .dae files not imported for levels?)
*TRAM export: support writing of sparse keyframe data (as in Oni), as opposed to writing rotations for ''every'' frame (interpolated)
*maybe allow the export of named TRCM (without material)
*TGA transparency bug? (not-yet-confirmed as a bug; supposedly happens only for SketchUp-made levels; see below)
*various SNDD glitches (inconsistent handling of ADPCM headers)


I hope you don't mind all these newbie questions.
----
 
When will you update the repo? --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 16:40, 13 April 2023 (CEST)
Thanks,
 
EdT
 
First the simple problems: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit_v0.9.4.zip OniSplit 0.9.4] contains:
:*fix for flipped textures
:*corrected left_left to left_thigh
 
Then the case of thigh_right, calf_left: these are old names, they should not show up in newly exported files anymore. I changed them to match the ones found here [[TRIA]]. In addition the old names were swpped left was right, right was left and this was fixed too when I changed them.
 
The rotated head: It happened to me too, not sure what I did to get it working. What I think you should try is to unparent the head, move it to origin and rotate it so that it has the same orientation as Konoko's original head (along the X axis, not the Y axis). After that you can use that "Apply Scaling/Rotation to ObData" option, reparent it to neck and translate it back in its place. I'll experiment more with this later and I'll try to make a definitive list of steps to take to do this type of thing.
 
The MC body: this one has a slightly different problem than the head but not totally unrelated. Note than when you select a body part the "center" point for rotations (the origin of bone's coordinate system) shows up somewhere at the bottom. Compare this with what happens when doing the same thing with an exported TRBS: that point is where the "joint" is. Currently I don't know how to move this in Blender. For head I used that ObData To Center option but this is does not always work, the joint is rarely the center of the bone.
 
[[User:Neo|Neo]]
 
I see from this discussion that from now on I should be working with newly-exported TRBS files. Unfortunately, I've already put a lot of work into Griffin in Blender, so I'll have to manually fix things like wrong part names (I do see calf_left and thigh_right in my file, for instance). From now on, I'll only work on newly-exported models. But on that note, is it better to export as OBJ or DAE?  Should I be going with DAE from now on?
 
Also, what does it mean when OniSplit doesn't return an error (or any message at all) when I use create:trbs, but it generates a file that's only 984 bytes? Because that's what happened when I selected Disable Physics and Current Scene Only and then used OniSplit 0.9.3 on the resulting DAE file. It's like there's header info for different file types but no actual data there.
 
For the most part, it seems like I should wait for you two to sort the problems out before I continue trying to import. EdT is already further along than I am, even with his horror-movie-like results. :-) --[[User:Iritscen|Iritscen]] 15:45, 11 April 2008 (CEST)
 
Neo: Thanks for the update and the instructions.
 
Iritscen: Have you tried selecting all before exporting from blender? Also, couldn't you extract the TRBS for Griffin and them import the your modified head into it? Is it possible to select an object in one file (such as your modified head) and then copy and paste it into another (the new TRBS file) in Blender?
 
Yesterday, Macupdate had a promo on Cheetah3D for $79.00, I quickly got it.  I like using Cheetah3D, its much more intuitive for me.  Right now, I'm trying to fix owldreamer's Masterchief. It looked odd, many of the surface triangles were black compared to the regular ones.  You can see how they looked in the Oni Spartan thread at OCF. But when I applied "flip normal" to them, they looked correct.  What does flip normal do?
 
Anyways, once I fix all those triangles, then I'll try getting the Masterchief into Oni.
 
EdT
 
I have not tried selecting all, but I also don't have "Selection Only" checked (I don't think that's the exact name). Still, I can try selecting all first. But at least the head should have been exported, because it was definitely selected.  Re copying from one file to another, I think Blender is a one-document application. Perhaps I can copy the head, then close the document and open another one, then paste the head in. It's certainly worth a try.
 
"What does flip normal do?"
As Wikipedia puts it, "Surface normals are commonly used in 3D computer graphics for lighting calculations". A normal is simply a calculation of a line passing through the polygon at a right angle that is best performed at the time of saving the file rather than at runtime in a game, to save CPU cycles.  But which *way* is the line going through the 'gon? If it's set to go the wrong way, the polygon will be lit on the inside, not the outside (at least, the outside won't be lit), hence black polygons. As to why normals get flipped in the first place, *shrug*. --[[User:Iritscen|Iritscen]] 16:42, 11 April 2008 (CEST)
 
Hmm... a bunch of comments :). Let's see a couple of them:
:*Selection: you should have no trouble with selection if "Only Export Selection" options is not used. Of course, since Blender "checkboxes" differ only in colour between checked/unchecked states you may want to be carefull about what options are checked. In addtion make sure you selected the scene you want to export before exporting if you have more than one scene.
:*Copy/Paste: I have no idea how to copy/paste stuff in Blender. I wonder if it actually supports that, I have a feeling that it does not...
:*Blender - one document application: Yes, it is. But you should be able to import a file (obj, dae) in a "document".
:*Cheetah3D: no idea how it is but it's probably better than Blender, anything's better than Blender (at least in terms of user interface) :). Not sure if it has a Collada exporter/importer?
 
[[User:Neo|Neo]]
 
Just a brief update, the latest version of Onisplit works fine.  I am making some progress, though working with Blender can be frustrating.  I lost a few hours of work, don't know what happened.  I had hoped to have the Masterchief done over the weekend, but maybe in a couple more days, when I have more time.
 
EdT


Didn't you say you bought Cheetah3D? Even if it cannot export Collada you may still be able to fix normals and geometry positions using it and then export the bones to OBJ and assembly and export them using Blender.
I couldn't import FILM via '''xml master file for level import''' with current Onisplit compiled from svn. A possible fix is to change <code>ReadElementContentAsString</code> to <code>ReadContentAsString</code>.
Blender only makes sense if you are willing to spend a lot of time to learn its user interface. My opinion is that it's a terrible waste of time.
        ...
        <Films>
              <Import>films/BomberKonRun02.xml</Import>
        </Films>
        ...


[[User:Neo|Neo]]
FilmImporter.cs
...
private void ReadFilms(XmlReader xml, string basePath)
...
//string filePath = Path.Combine(basePath, xml.ReadElementContentAsString());
string filePath = Path.Combine(basePath, xml.ReadContentAsString());


Neo, that's about the workflow that I developed in working with the 3D models.  I probably should have tried something basic, like swapping geometries from different characters, instead of trying to import the Masterchief model.  But that's me. :-)
:[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 12:59, 14 November 2023 (CET)


I tried a couple of approaches, first, I imported the entire Masterchief model into Cheetah3D, then positioned the parts similar to the way Blender imports the TRBS Collada files (That weird looking way that the arms and legs are rotated, though, I don't think I got the arms rotation correct)  Since Cheetah3D cannot import or export Collada yet (The author says after the next FBX SDK comes out, he'll work on Collada) I have been exporting the file as .3DS.  Next import into Blender, scale the model to sizeUse the clear/apply scaling to obdata.  Move the center point (object/transform center to cursor) to hopefully the correct position for each part, rename each part (Blender does not import the names correctly)Parent all the parts. Export the current scene with triangles, disable physics, use relative paths (is that needed?).  Import into Oni... start game, select level where I imported the character. CRASH!
==TGA Transparency bug==
I extracted HQ_DOUBLED_GLASS as TGA format from vanilla Level8_Final with the OniSplit command -extract:tga. The file was opened in Photoshop and the alpha channel was visible.
I then added that texture to Sketchup and applied it in a test level, it appeared transparent in Sketchup. I used the command -create:level to create a level in OniIn the game Oni, the texture appeared opaque not transparentWhen, the file TXMPHQ_DOUBLED_GLASS.oni was extracted from the test level as TGA, the alpha channel was gone or opaque.  


To isolate the cause, I then tried another approach.  Import into Blender the Elite Hard TRBS Collada file created by Onisplit, then replaced a part, with the Masterchief part. Import into Oni and I would see the Elite with some Masterchief part. Next add another part and so on. This is time consuming, saving as I'm going along.  Then, made another change, imported to Oni, CRASH.  No problem, just delete the part and try again. But from that point on, any changes, even trying to undo the changes and go back to a point that worked, resulted in Oni crashing.  That's where I lost the few hours work. Next time, as I make a change, I'll save the file in a different name.  
Even if the following code was added to the textures.xml file, the texture still appeared opaque in game.


But while, doing this process revealed some errors in the Masterchief's parts which owldreamer was able to fix.
    <Texture Name="HQ_DOUBLED_GLASS">
        <GunkFlags>Transparent TwoSided</GunkFlags>
        <Format>RGBA</Format>
        <Image>images/HQ_DOUBLED_GLASS.tga</Image>
    </Texture>


If you see anything I'm doing wrong, or can suggest a better workflow, please let me know.
However, if HQ_DOUBLED_GLASS.tga is converted to PNG format with alpha channel, and then the PNG file is used in Sketchup, then the texture will be transparent in game.


Thanks,
This occurs using OniSplit version 0.9.96.0 and previous versions, tested to version 0.9.90.0. (EDIT: Transparency loss is observed for all glass textures, not just HQ_DOUBLED_GLASS.)


EdT
[[User:EdT|EdT]] 15:03, 14 May 2020 (PDST)


How many polys is the Master Chief model? --[[User:Iritscen|Iritscen]] 16:01, 14 April 2008 (CEST)
When you described the issue to me in PM, I didn't notice/understand the key part about applying the texture in SketchUp and then using -create:level on SketchUp's output. I thought we were talking about a simple TXMP roundtrip through TGA. Can you confirm that the texture's alpha goes opaque (or disappears) if you use -extract:tga on TXMPHQ_DOUBLED_GLASS.oni, and then immediately reimport it either with '''-create''' (either from XML with extra flags or from TGA)? --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 11:44, 15 May 2020 (CEST)
 
It would help if you can give me one of those TRBS.oni files that crash Oni so I can try to figure out the reason.
 
[[User:Neo|Neo]]
 
Here is the version with the Masterchief directly imported from the start. Both Blender and TRBS.oni files:
http://edt.oni2.net/3D/MCfiles.zip
 
According to Cheetah3D for the Masterchief model: 19 polygon objects, 2580 polygons, 2580 triangles.
 
This is one screenshot I got before the lost data:
 
http://edt.oni2.net/3D/EliteMC.jpg
 
EdT
 
A quick update until I sort things out:
:*the .oni file from MCfiles.zip is strange, it only contains the chest.
:*exporting your .blend model to Collada and then creating a TRBS out of it seems to work fine, the body is complete
:*it crashes for me after a while. More exactly it crashes when I get close to the MC (I replaced Barabus's body with the MC and I'm testing in level3). If I stay far enough it seems to be stable... really odd.
 
[[User:Neo|Neo]]
 
Have any of us exported a character and then imported them back in, without making any changes (aside from the format conversions)? In any case, it sounds like something in the rendering info (normals, bone center points, etc.) is messed-up, if Oni crashes when it's near to the model, because that's when the engine starts to calculate line-of-sight using model info, to know whether to render it or not. But I really don't know that much about how Oni's engine works. (You're sure it's not a scripted command that kicks in for Barabas that has a problem with the new model, right?) Also, at what point does the highest LOD kick in? It's been said to be pretty far away. Perhaps the crash happens when you cross that threshold?
 
Ed, it may not be relevant, but I'm curious as to which part you added before that crash after which the model became unuseable. Was it the pelvis?
 
--[[User:Iritscen|Iritscen]] 21:07, 14 April 2008 (CEST)
 
Yes, I have some exported/imported models, konoko_generic and tctf_swat, no problems with them.
 
LOD stuff: it looks like something LOD related since it crashes when you get closer but OniSplit does not currently support different LODs so it just uses the same geometry for all. Nothing really changes when it switches from one LOD to another.
 
The crash is caused by something that looks like memory corruption and last time I saw this it was related to high triangle count but it does not seem to be the case here, the triangle count is low enough.
 
Even more interesting: OniBrowser loads that "crashy" TRBS just fine. Now it's true that OniBrowser allows stuff that Oni does not allow (like more triangles) but it is also more likely to crash on bad geometric data (like bad vertex indices).
 
[[User:Neo|Neo]]
 
And one thing that I forgot about fbx/collada:
 
Autodesk has a converter that it is able to convert back and forth between the two. I tried the Windows version and it seem to work, hopefully the Mac version works too so you can use it to convert fbx exported from Cheetah3D.
 
Here it is: [http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=6839916 Autodesk FBX]. It's a bit of hassle with "registration" but it's free.
 
 
[[User:Neo|Neo]]
 
Neo, Can you post the working Masterchief TRBS file so I can try it on my Mac. 
Here is the TRBS file again that I exported from Blender (It seems the previous one had the chest selected when exporting the TRBS file) and the crash log (May give you an idea what went wrong) : http://edt.oni2.net/3D/MC_crash.zip
 
I will take a look at the Autodesk converter.
 
EdT
 
I did not say mine was working completly. It crashes after a while too.
 
Anyway your new .oni file looks like mine and your crash log indicates that your Oni crashes in the exact same place as mine so it's not an OS X version problem or something.
 
[[User:Neo|Neo]]
 
It may be an OSX issue too, because, I'm not able to load the level at all with that TRBS file.  In some versions, it crashes as the progress bar reaches around 60%, other times, the progress bar completes, but before the Intro screen appears, it crashes.  So I wonder why you can use the character for a while, before crashing, but the Mac crashes right away.  On another note, when I'm able to view the character, like in the screenshot above, I would also get a crash when the character got near the camera.
 
Iritscen: Please join us in the fun/frustration of importing 3D models into Oni. The more people are testing it out, the quicker we can provide Neo with information and feedback, that may help him with Onisplit.
 
EdT
 
Neah, I don't think it has anything to do with OSX because the stack trace in your crash report looks to damn similar to the one I get on PC. It's just that memory corruption (if that is what's happening) has different effects depending on operating system and the compiler that was used to compile the executable.
 
[[User:Neo|Neo]]
 
And we have the first dead MC in Oni! :)
 
geyser told me something about texture coordinates messing his OBJ viewer so I removed all texture coordinates from MasterChief and reimported and now it seems to work. At least long enough to kill BarabusMC.
 
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/Images/mcb.jpg Screenshot]
 
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/TRBSMasterChief.oni TRBSMasterChief]
 
I'm still getting a crash but only when moving the camera very very close to MC and it's a different place in code where it happens.
 
[[User:Neo|Neo]]
 
This is awesome! I have a fighting EliteMC.  Now we need to fix his body a bit more, I noticed his left biceps is higher than the right one and his standing posture looks a little off.
Can you post the collada version of MC so I can take a look.  Also, how did you remove the texture coordinates?  Will that affect our ability to add more complex texture maps instead on the simple single color ones?
 
EdT
 
Here's my collada file: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/MasterChief.dae MasterChief].
 
To remove texture coordinates: select a bone and below there is a Mesh panel. Somewhere in that panel there is an UVTex field with a X button to its right. Use that button to delete the texture coordinates for the current bone. You need to do that for every bone
 
As for adding texture maps: the problem is that the current texture coordinates are sort of broken and Oni does not like them. Once someone fixes the coordinates it will work.
 
What's broken about them? Some coordinate are outside of 0..1 range and Oni does not seem to like that.
 
Why deleting them makes it work (and result in a somewhat coloured MC)? When no texture coordinates are present in the Collada file OniSplit uses (0,0) texture coordinate for all vertices and so the colour you see it's he colour of the texture in that point.
 
[[User:Neo|Neo]]
 
So, to recap, there's two observed issues with MC: the texture coord.s being out-of-range for Oni, which you more or less know how to prevent, and an unknown issue that causes a crash at very close range. Is that right? And how close are we talking about? Are you moving the camera with the Dev Mode camera controls? Is the camera entering the model?
 
--[[User:Iritscen|Iritscen]] 18:56, 15 April 2008 (CEST)
 
Yes, the current texture coordinates are out of range and make Oni crash. Anyway even if they weren't out of range they're still bad/useless.
 
Yes, it happens with devmode camera and it appears to happen only when camera enters the body though I'm not sure.
 
[[User:Neo|Neo]]
 
Ok. Where does this .oni file go? How do I import it?
Second question: How do I spawn him?
 
[[User:Gumby|Gumby]] 07:28, 16 April 2008 (CEST)
 
Gumby, perhaps the easiest way is pick a character like Barabas, look for the file ONCCbarabus.oni in the level0_Folder.  Open the ONCCbarabus.oni with a hex editor. Scroll to the end of the file, you should see the text TRBSbarabus_body_high, find that file in level0_Final folder and move it to a safe place. Rename TRBSMasterChief.oni to TRBSbarabus_body_high.oni and put it in the level0_Folder and then recompile level0.  Now Barabus will look like the Masterchief.  You can do the same with any other character.
 
Of course, if you want the Masterchief to be a new character and not a replacement, then its a bit more work. 
 
EdT
 
----
 
Neo, Is it possible for you to program OniSplit to automatically change the rotation so that when extracting and creating, the 3D model will appear in the standard 3D pose? (Standing up right, with the arms stretched out parallel to the ground).
 
It will make it easier for myself and others to add new character models without having to deal with rotating the pelvis, thigh, shoulder and fist from a standard 3D pose to  the current TRBS extraction/creation pose.
 
Also, in testing the Masterchief model, it seems only the texture coordinates for the neck is out of range.
 
----
:Just curious,  I know with OniSplit, we can export ONWC as an .obj.  But now lets say, we modify that .obj, can we now import it back to Oni?
::;EdT
:Er... DeLorean, anyone? An ONWC can link to any M3GM.
::[[User:Geyser|geyser]] 11:30, 29 April 2008 (CEST)
 
Got it, I thought it was more complicated when I looked for a M3GM for a specific weapon by name and could not find it in the level0_Final files. There was only about 40 M3GM files listed.  But using OUP, I found the mesh for the weapon.  But it seems that adding weapons is something that can be done only in OUP, since you need to link to the fileid.  In the files generated by Onisplit, I could not find the fileid.
 
EdT
 
----
I forgot to mention that I was able to change the appearance of the chaingun weapon, using 17 secs rifle model.  Obviously, the model still needs work to get it to look right, but this is more of a proof of concept than anything.  Here is the new weapon: http://edt.oni2.net/AE/w16crb.zip
 
EdT
 
----


http://ssg.oni2.net/test/os037.png
Regarding the TXMP roundtrip, after extracting TXMPHQ_DOUBLED_GLASS.oni as TGA, I used the command -create:txmp -format:bgra32 -large -genmipmaps, the resulting file had the alpha channel. To confirm, I replaced the file TXMPHQ_DOUBLED_GLASS.oni from the -create:level with the one from -create:txmp in the test level and it was transparent.
[[User:EdT|EdT]] 12:35, 15 May 2020 (PDST)


OS v0.37 extracts no files. If I use level 14 it extracts only the first ONCC file (obj, material, plus the textures). (Same problems with OS v0.30. Other versions not tested.) Where did I go wrong?
This looks like an issue with the SketchUp pipeline, rather than with OniSplit, since it is only '''-create:level''' that generates a non-transparent texture, and '''-create:txmp''' actually works fine. Can you: a) provide (in PM) the level data that you are using '''-create:level''' on (supposedly a .dae file, some texture files, and some XMLs)? b) provide an example of a level that imports with transparent glass as expected (supposedly a level that didn't come from SketchUp). Thanks. --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 16:46, 16 May 2020 (CEST)


[[User:Ssg|Ssg]] 09:11, 4 May 2009 (UTC)
==Sound export bug==
As discussed on Discord there's a sound export bug for SNDDzap*.oni


It's because it doesn't search the level0_Final.dat for character animations. I patched the existing 0.9.37 version, redownload it. See my talk page if you don't know the link.
One might record the sounds in OBS and compare it with the exported ones to generate further hints on what went wrong. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 13:29, 21 July 2019 (CEST)


[[User:Neo|Neo]]
#The zap sounds are randomized in an OSBD group, so recording them from the game in some identifiable way would require some extra work (custom OSBD). It's much easier to ask Mac folks for AIFF versions of those sounds. ''And actually, there are [[seven]] zap sounds in the PC demo as well.'' 
#OniSplit slaps a 22.05 kHz header on those files, although they're 44.1kHz and have a perfectly good 44.1kHz header in Oni. Not sure why they're getting a 22.05kHz header. Perhaps Neo got confused by the sloppy documentation of the [[OBD:SNDD/wav|WAV header]], which until my edit gave the same hex listing for the three WAV header types. Either that, or he just assumes the sample rate to be 22.05kHz by default and doesn't update it from the actual file. Will check in the code. ''Actually yeah, he just does as if all the sounds were 22.05kHz.''
#Besides SNDDzap*.oni, there is one other 44.1kHz sound in PC Oni, SNDDap_hit_shld.aif; which suffers from the same export problem, although it's less noticeable.
#Apparently 22.05 kHz stereo sounds are correctly exported as stereo, it's just 44.1 kHz mono files that get a wrong WAV header.
#Will be fixing this in the latest "nightly" OniSplit (haven't yet decided on a version numbering and source control scheme).
#:[[User:Geyser|geyser]] ([[User talk:Geyser|talk]])


Thank you. [[User:Ssg|Ssg]] 12:02, 5 May 2009 (UTC)
[[Category:Completed modding tools]][[Category:Bi-platform modding tools]]

Latest revision as of 14:58, 14 November 2023

Talk page archives: #1

Page improvement

Shouldn't there be an animation section which includes the options -anim-body, -anim-merge and -blender? --paradox-01 (talk) 00:24, 16 May 2022 (CEST)

Yes, it's odd that -anim-body and -anim-merge are not documented here, someone should do something about that. -blender arguably does not exist yet (it's in geyser's upcoming 1.0 release and is mentioned on the OniSplit/WIP page). My bad, -blender was added in 0.9.99.2. --Iritscen (talk) 01:05, 16 May 2022 (CEST)

If OniSplit refuses to be used

delete file at AE/Tools/OniSplit.exe.config --Paradox-01 18:00, 28 June 2020

Smaller version steps possible

AssemblyInfo.cs

//overwrite product version with 5 possible numbers
[assembly: AssemblyInformationalVersion("0.9.99.0.1")]

Utils.cs

#if NETCORE
                   version = typeof(Utils).GetTypeInfo().Assembly.GetName().Version.ToString();
#else
                   //version = typeof(Utils).Assembly.GetName().Version.ToString();
                   Assembly assembly = Assembly.GetExecutingAssembly();
                   FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
                   version = fileVersionInfo.ProductVersion;
#endif

OniSplit -version

0.9.99.0.1

OniSplit version control - getting there...

The SVN version of OniSplit is currently labeled 0.9.99 (same as the source received from Neo), and at this point it is different from the non-synced 0.9.99.2 that I distributed through EdT.

  • "0.9.99" has only two commits (44.1 kHz SNDD export - affecting only electric spark sounds - and other minor SNDD fixes and features);
  • 0.9.99.2 has a few fixes to 0.9.99 (adjustment to XML parsing rules) and new functionality for Blender import/export of animations; also some new bugs, apparently.

To restore some order, I am going to merge my 0.9.99.2 fixes to SVN, then address the known bugs, and push the version number to 0.9.99.3 - and use SVN-synced development from then onwards.

I am not going to create a branch for my fixes/improvements, except maybe when it comes to adding something big, like C# FBX support. If you object to this, speak now. --geyser (talk) 00:09, 29 May 2020 (CEST)

List of bugfixes and improvements planned for 0.9.99.3 (feel free to add to the list if I forgot something)

  • some running/walking anims end up upside-down after reimported into Oni
  • -extract:dae -noanim -blender used on a TRBS, make sure the output .dae file has a TRBS prefix
  • stairs_markers.dae not imported properly? (and more generally secondary/auxiliary .dae files not imported for levels?)
  • TRAM export: support writing of sparse keyframe data (as in Oni), as opposed to writing rotations for every frame (interpolated)
  • maybe allow the export of named TRCM (without material)
  • TGA transparency bug? (not-yet-confirmed as a bug; supposedly happens only for SketchUp-made levels; see below)
  • various SNDD glitches (inconsistent handling of ADPCM headers)

When will you update the repo? --paradox-01 (talk) 16:40, 13 April 2023 (CEST)

I couldn't import FILM via xml master file for level import with current Onisplit compiled from svn. A possible fix is to change ReadElementContentAsString to ReadContentAsString.

       ...
       <Films>
             <Import>films/BomberKonRun02.xml</Import>
       </Films>
       ...
FilmImporter.cs
...
private void ReadFilms(XmlReader xml, string basePath)
...
//string filePath = Path.Combine(basePath, xml.ReadElementContentAsString());
string filePath = Path.Combine(basePath, xml.ReadContentAsString());
paradox-01 (talk) 12:59, 14 November 2023 (CET)

TGA Transparency bug

I extracted HQ_DOUBLED_GLASS as TGA format from vanilla Level8_Final with the OniSplit command -extract:tga. The file was opened in Photoshop and the alpha channel was visible. I then added that texture to Sketchup and applied it in a test level, it appeared transparent in Sketchup. I used the command -create:level to create a level in Oni. In the game Oni, the texture appeared opaque not transparent. When, the file TXMPHQ_DOUBLED_GLASS.oni was extracted from the test level as TGA, the alpha channel was gone or opaque.

Even if the following code was added to the textures.xml file, the texture still appeared opaque in game.

   <Texture Name="HQ_DOUBLED_GLASS">
       <GunkFlags>Transparent TwoSided</GunkFlags>
       <Format>RGBA</Format>
       <Image>images/HQ_DOUBLED_GLASS.tga</Image>
   </Texture>

However, if HQ_DOUBLED_GLASS.tga is converted to PNG format with alpha channel, and then the PNG file is used in Sketchup, then the texture will be transparent in game.

This occurs using OniSplit version 0.9.96.0 and previous versions, tested to version 0.9.90.0. (EDIT: Transparency loss is observed for all glass textures, not just HQ_DOUBLED_GLASS.)

EdT 15:03, 14 May 2020 (PDST)

When you described the issue to me in PM, I didn't notice/understand the key part about applying the texture in SketchUp and then using -create:level on SketchUp's output. I thought we were talking about a simple TXMP roundtrip through TGA. Can you confirm that the texture's alpha goes opaque (or disappears) if you use -extract:tga on TXMPHQ_DOUBLED_GLASS.oni, and then immediately reimport it either with -create (either from XML with extra flags or from TGA)? --geyser (talk) 11:44, 15 May 2020 (CEST)

Regarding the TXMP roundtrip, after extracting TXMPHQ_DOUBLED_GLASS.oni as TGA, I used the command -create:txmp -format:bgra32 -large -genmipmaps, the resulting file had the alpha channel. To confirm, I replaced the file TXMPHQ_DOUBLED_GLASS.oni from the -create:level with the one from -create:txmp in the test level and it was transparent. EdT 12:35, 15 May 2020 (PDST)

This looks like an issue with the SketchUp pipeline, rather than with OniSplit, since it is only -create:level that generates a non-transparent texture, and -create:txmp actually works fine. Can you: a) provide (in PM) the level data that you are using -create:level on (supposedly a .dae file, some texture files, and some XMLs)? b) provide an example of a level that imports with transparent glass as expected (supposedly a level that didn't come from SketchUp). Thanks. --geyser (talk) 16:46, 16 May 2020 (CEST)

Sound export bug

As discussed on Discord there's a sound export bug for SNDDzap*.oni

One might record the sounds in OBS and compare it with the exported ones to generate further hints on what went wrong. --paradox-01 (talk) 13:29, 21 July 2019 (CEST)

  1. The zap sounds are randomized in an OSBD group, so recording them from the game in some identifiable way would require some extra work (custom OSBD). It's much easier to ask Mac folks for AIFF versions of those sounds. And actually, there are seven zap sounds in the PC demo as well.
  2. OniSplit slaps a 22.05 kHz header on those files, although they're 44.1kHz and have a perfectly good 44.1kHz header in Oni. Not sure why they're getting a 22.05kHz header. Perhaps Neo got confused by the sloppy documentation of the WAV header, which until my edit gave the same hex listing for the three WAV header types. Either that, or he just assumes the sample rate to be 22.05kHz by default and doesn't update it from the actual file. Will check in the code. Actually yeah, he just does as if all the sounds were 22.05kHz.
  3. Besides SNDDzap*.oni, there is one other 44.1kHz sound in PC Oni, SNDDap_hit_shld.aif; which suffers from the same export problem, although it's less noticeable.
  4. Apparently 22.05 kHz stereo sounds are correctly exported as stereo, it's just 44.1 kHz mono files that get a wrong WAV header.
  5. Will be fixing this in the latest "nightly" OniSplit (haven't yet decided on a version numbering and source control scheme).
    geyser (talk)