User talk:Neo/Archive5

From OniGalore
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

To EdT and/or Iritscen:

Please test the following patch for projectile dodging:

File Offset: Old Value -> New Value

0x00016503: 0x50 -> 0x74
0x00016507: 0x54 -> 0x78
0x0001650B: 0x58 -> 0x7C
0x000164F1: 0x9D -> 0xBD 
0x000164F2: 0x23 -> 0x2B 


Neo

EDIT: projectile dodging works on the Mac engine! http://edt.oni2.net/OniSplit/Particle.wmv
Though in the last scene, I used the command ai2_ignore_player = 1 and the AI dodged the screamer the first time, but not the second... EdT 00:54, 18 December 2008 (CET)
Hmm, I think it has the illusion of working... but my own tests showed the same behavior as in Ed's movie, so let's look at what's really happening there: the AI is getting "hung up" when the shot gets near him. He starts circling it instead of just running away from it. I have a feeling he sees the Screaming Cell the same as the AI now sees an incoming line of SMG gunfire ever since we fixed the basic dodging bug -- as a vector to be run away from at a perpendicular angle. Since the Cell is following the AI, however, this results in a circular movement, and, seeing as all this running around in circles still leaves the AI within the range of the Cell's life-sucking powers, it ends up killing him. Basic automatic gunfire still results in dodging that seems as smart as before (maybe a tad smarter? not sure without more testing), but when I tested this hack with the Screaming Cannon, the AI resembled a moth drawn to a flame. --Iritscen 14:42, 18 December 2008 (CET)
Well, the idea was to fix a bug, not make the AI smarter :) Neo
Neo, have you looked at this page: AE:Projectile_awareness#Fixing_AI_Logic Loser was asking for help in regards to fixing the AI logic. Thanks EdT
I know that but for now I'm not enough familiar with the AI code (and it's a rather big chunk of code) to do something about it. Neo

New OniSplit version: OniSplit v0.9.34

What's new:

  • SNDD importer
-WAV files (.wav, mono/stereo, 22.05KHz/44.1KHz, uncompressed(PCM)/compressed(MS-ADPCM)) produce SNDD files that are compatible with Oni PC retail.
-AIFC files (.aif/.aifc/.afc, mono/stereo 22.05KHz, compressed(ima4)) produce SNDD files that are compatible with Oni Mac.
Example


 OniSplit -create out_dir test.aif
 OniSplit -create out_dir test.wav


  • LOD support for creating TRBS files. This can be done by creating an xml file containing the following:
 <?xml version="1.0" encoding="utf-8"?>
 <Oni Version="0.9.29.0">
     <Instance id="0" type="TRBS">
         <Elements>
             <Link>barabus_body_1.dae</Link>
             <Link>barabus_body_2.dae</Link>
             <Link>barabus_body_3.dae</Link>
             <Link>barabus_body_4.dae</Link>
             <Link>barabus_body_5.dae</Link>
         </Elements>
     </Instance>
 </Oni>
and running the command (assuming the created xml file's name is barabus_body.xml):
 OniSplit -create out_dir barabus_body.xml
It's not strictly necessary to create 5 different geometries for each LOD. The following works just as well:
 <?xml version="1.0" encoding="utf-8"?>
 <Oni Version="0.9.29.0">
     <Instance id="0" type="TRBS">
         <Elements>
             <Link>barabus_body_1.dae</Link>
             <Link>barabus_body_2.dae</Link>
             <Link>barabus_body_2.dae</Link>
             <Link>barabus_body_2.dae</Link>
             <Link>barabus_body_3.dae</Link>
         </Elements>
     </Instance>
 </Oni>


  • An xml file can contain "links" to other xml/obj/dae files. For example you can have the following line in an ONWC xml file:
 <Geometry>pistol.obj</Geometry>
Assuming the file pistol.obj exists in the same directory an M3GM .oni file will be automatically created from it.
Relative paths work just as well:
 <Geometry>geometry/pistol.obj</Geometry>


  • The -create:subt, -create:txmp and -create:m3gm are sort of obsolete. They still work but now you can simply use '-create' (or just 'create'):
 OniSplit -create out_dir crate.dae
 OniSplit create out_dir -format:bgr555 -genmipmaps pic.tga
 OniSplit create out_dir subtitles.txt


  • Work in progress: the AKEV importer now reads Collada materials so the resulting AKEV is textured.
Sample levels:
TestLevel1: http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/noglass.zip (dead link) -- This level should look like this in-game: Image 1 Image 2 Image 3
TestLevel2: http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/hexagon.zip (dead link) -- This level should look like this in-game: Image 1
A zip file contains the minimum needed to get a new level running in Oni. To "compile" a level extract it to a folder and run the following commands:
 OniSplit -create out -genmipmaps -format:dxt1 *.xml
 OniSplit -import:nosep . Oni\GameDataFolder\level1_Final.dat
(Of course, you need to change the output .dat file path to match your Oni installation path)
Note1: The hexagon level needs to be scaled up to work properly. Use the envscale option for this:
 OniSplit -create out -genmipmaps -format:dxt1 -envscale:40 *.xml
Note2: I've updated the level files to contain 20 empty corpses to prevent crashes.

Neo


Iritscen - looks like you've overlooked the 0.9.30 fix when updating OniSplit. Neo - thanks a lot, I'll try to test the new features and put them to good use.
Can someone tell me what was wrong with hexagon2.dae (unless it was just user error on the part of 'Scen?)? and what's up with using DXT1 for AKEV?
geyser 01:34, 11 November 2008 (CET)
DXT1 - well, you need to specify a texture format so you don't end up with bgr32.
Hexagon "wrongness" - not sure what exactly you are talking about. Sure, it needs to be scaled up a bit (somewhere between x20 and x40), it needs to be rotated a bit and some textures have non power of 2 sizes. Appart from that "it just works". Currently I'm investigating some "falling through the floor" problems but it appears that the problem is in OniSplit and not in Hexagon.
Neo
Well, I'm OK with bgr32, actually (and I'd be even more OK if I could use bgra32 ^_^ ) - it's not like the levels we're importing so far have hundreds of detailed textures... So the only critical flaw with hexagon was non-power-of-two texture sizes? is that really a critical flaw (as in "blam"), or did 'Scen mess up somewhere else (he's the one who reported a blam after importing hexagon2.dae; I didn't try)? About the scale - it's funny, what units is the original in, then? I thought the original was in millimeters, and hexagon2.dae in decimeters, so that it should be scaled up by 1.5 or 2, not more... 30 you say? huh. --geyser 02:00, 11 November 2008 (CET)
Well, maybe you're OK with bgr32 (or bgra32) but Oni is not :). I don't know what OpenGL exact behavior is for non power of 2 sizes (XNA throws an exception) but some (or all) hardware does not support this for texture with mipmaps.
That "blam" may have been caused by other stuff in the level that was not cleaned up. The sample levels I mentioned above are completly empty (they don't even have a splashscreen :)).
I don't know what the correct scale is but 20-40 looks nice, my first impression was like: "wow, halo 2"...
Neo
Are you sure Oni doesn't like bgr32 textures in the environment? why would that be a problem? AFAIK we can use bgr32 just fine. --geyser 13:02, 11 November 2008 (CET)
Hmm, right. I think it is actually generating bgra32 textures without the -format argument. Neo


Tested non power of 2 textures in Oni: it rounds to a power of 2 so the result has ugly black bands. Do no use such textures! :)
I found and fixed the problem with falling through the floors, and now the hexagon works fine.
In fact I'm quite impressed with it. The framerate is good, the octree visibility works well and moving around feels OK. I can even walk on some "pipes" if you know them.
In addition this thing is a very good candidate for experiments with pathfinding autogeneration due to its exclusive usage of ramps instead of stairs.
Neo
Good thing you like the hexagon despite the "wow, halo 2" impression. HERE are other models by the same (Russian) guy. All of them use ramps rather than stairs (so there you have more candidates for pathfinding autogen), but some of them are more specifically designed with FPS gameplay in mind. He released a new model last month, so I sent him another message: it would be great if we managed to contact him. --geyser 13:02, 11 November 2008 (CET)

I tried to extract the .dae from AKEVhexagon2.oni and got the following error message from OniSplit:

mono onisplit.exe -extract:dae hex3d level7_Final/AKEVhexagon2.oni

 /level7_Final/AKEVhexagon2.oni
 /level7_Final/AGDBhexagon2.oni
 System.NullReferenceException: Object reference not set to an instance of an object
 at Oni.Imaging.Texture.Read (Oni.InstanceDescriptor txmp) [0x00000] 
 at Oni.Geometry.GeometryDaeExporter.WriteImageLibrary (Oni.InstanceDescriptor[] textures) [0x00000] 
 at Oni.Geometry.GeometryDaeExporter.WriteEnvironment (Oni.InstanceDescriptor descriptor, System.String filePath) [0x00000] 
 at Oni.Geometry.GeometryDaeExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] 
 at Oni.Exporter.ExportInstanceList (System.Collections.Generic.List`1 descriptors) [0x00000] 
 at Oni.Exporter.Export (Oni.FileManager fileManager, System.String sourceFilePath, System.String filter) [0x00000] 
 at Oni.Program.ExtractGeometry (System.String[] args) [0x00000] 
 at Oni.Program.Main (System.String[] args) [0x00000]

EdT 03:42, 12 November 2008 (CET)

This happens when you don't have all the textures that are used by AKEV in the same folder. In this case the missing texture is TXMP<none> aka TXMP%3Cnone%3E.oni. You can copy it to that folder but there is another problem caused by it's funky name.

If you really want to do that you need to "create" hexagon using a different default texture:

 onisplit create out *.xml -format:dxt1 -envscale:40 -texdefault:notfoundtex

Now you can copy TXMPnotfoundtex.oni to the folder that contains the AKEV file and export should work.

PS: maybe I should make notfoundtex the default texture. That way I avoid using that troublesome <none> and it's more obvious which quads have missing textures.

Neo


DELETED, don't bother with that interpolation stuff (I apologize if you did). I found this bug useful in the end. It can be used for making more final resting poses than standard two, bringing more varienty into a game. But request about blue shield remains.

2)

Subject - Blue shield
Blue shield absorbs both damage and knockback. Is there a way how to make it absorb only damage, so character would be affected by knockback even tough he has blue shield?
I ask because then I could simulate throwing over obstacles with throws via PAR3. Now I cannot due to blue shield's knockback absorbtion.
Or is there any "cleaner" solution of throwing over obstacles (such as dynamic root height)?

Thank you for patience, --Loser 07:45, 30 November 2008 (CET)

I'll say what I can on the matter, if you don't mind. :)
@Blue Shield: Regardless of the ability to remove damage by knockback, you run into several problems:
  • Explosions would still knock you back
  • Explosions _might_ still do damage to you (I'd have to look at the asm, but from what I recall about PAR3, knockback is a type of damage. I never quite got how it worked specifically though, does it do actual damage?)
A better solution would be to somehow apply velocity to TRAMs. With velocity and the right flag (can't recall which...), the sphere tree would unstick.
Another thing: When a character goes over an edge, unsticking depends on either a time spent in the air or size of sphere (distance from ground), I can't tell which. I would hazard a guess that it has to do with time, but I'm not sure. :) If we can decrease whatever value it is, we could get what you are looking for. There is a chance it is a value in the ONCC or a constant in the engine. I'm not sure which. Gumby 10:04, 30 November 2008 (CET)
@TRAMs when characters die, they lose all ability to be animated at all. I know there exists a fix for characters losing MELE information on death (I lost it, gotta ask geyser next time he is on...), but there might also be a way to disable the disabling of animation on death. I know if you set a characters health to 0, attempt to animate it (fail), then set its health to something positive, the first thing he\she does is that animation you asked it to. So all hope is not lost. :) Then again, it might be a good thing you can't be animated after death. That could lead to some crazy bugs. :D Gumby 09:38, 30 November 2008 (CET)

Using the latest version of OniSplit 0.9.33 I get these error messages using the command "-create out -genmipmaps -format:dxt1 hexagon/*.xml"

Importing /hexagon/hexagon.dae
Cannot find texture file 'd:\Oni\hexagon\.\images\texture9.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture4.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture3.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture11.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture12.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture7.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture0.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture8.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture5.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture10.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture6.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture2.jpg'
Cannot find texture file 'd:\Oni\hexagon\.\images\texture1.jpg'

Did not have this problem in previous versions.

EDIT: Forgot to ask, how to fix the rotation of the hexagon.dae? Iritscen told me once, but I didn't make note of it. EdT 17:28, 7 December 2008 (CET)

Open hexagon.dae in a text editor, search for 'rotation_z', and you should be taken to nearly the end of the file. Set the fourth rotation_z number to 180 (probably best to leave the trailing zeroes after the decimal), and set rotation_x's fourth number to 90. --iritscen 17:59, 7 December 2008 (CET)

Image paths: OniSplit is OK in this case, the dae file is wrong, it contains full paths. You can open it in a text editor and fix the paths (you need to simply remove the D:\Oni\hexagon\ portion of the path). I'll update the zip file too.

Rotation: the dae file contained in the above zip is already rotated.

To explain a bit what's up with the rotation: it's likely that hexgon was created in a tool where the Z axis points up. The Collada file should contain the <up_axis>Z_UP</up_axis> setting but this particular file doesn't have it. Even if you have Z_UP in your file OniSplit doesn't always work correctly with Z_UP for now.

Neo

Neo, if you have time...

I tried to import some music into Oni and got different results. Here are the files: http://edt.oni2.net/OniSplit/SNDDBurn.zip (dead link)

Burn1a.aif imports fine
Burn2a.aif produces this error:
 System.ArgumentOutOfRangeException: Argument is out of range.
 Parameter name: count is less than 0
 at System.IO.BinaryReader.ReadBytes (Int32 count) [0x00000] 
 at Oni.Sound.AifFile.ReadDataChunk (Oni.FileReader reader, Int32 chunkSize) [0x00000] 
 at Oni.Sound.AifFile.FromFile (System.String filePath) [0x00000] 
 at Oni.Sound.AifImporter.Import (System.String filePath, System.String outputDirPath) [0x00000] 
 at Oni.Program.CreateGeneric (System.String[] args) [0x00000] 
 at Oni.Program.Main (System.String[] args) [0x00000] 
Burntest.aif produces this error
 Unsupported AIF compression (0x0)
 System.NullReferenceException: Object reference not set to an instance of an object
 at Oni.Importer.get_Dependencies () [0x00000] 
 at Oni.Program.CreateGeneric (System.String[] args) [0x00000] 
 at Oni.Program.Main (System.String[] args) [0x00000] 

All the files were saved as compressed AIF (IMA4:1), 22.05KHz

Also, is it possible to convert OSBD to .xml files?

Thank you EdT 17:27, 10 December 2008 (CET)

I've posted a new version (0.9.34) that fixes the aif import bug. Please confirm it's working. OSBD files cannot be converted to xml yet.

Neo

OK, the new music files imports and exports without error. Now how to get it in the game? I duplicated OSBDmus_amasian.grp renamed it OSBDmus_burn.grp used a hex editor and changed the links to the new music file names (I kept the file name the same size) Placed all the files in level0_Final and rebuilt the level and used the command: sound_music_start mus_burn but no music... here are the files http://edt.oni2.net/OniSplit/mus_burn.zip What am I doing wrong? EdT 20:57, 10 December 2008 (CET)

The OSBD files appear to be correct but to be on the safe side you should simply replace exiting sounds (SNDD) to see if the sound really imported correctly.

Neo

Replacing an existing SNDD with a new one works. I next tried duplicating an existing OSBD file such as OSBDmus_xtr1.grp.oni and renamed it OSBDmus_xtr3.grp.oni, rebuilt level0_Final, but when I use the command sound_music_start mus_xtr3 there is no music. Very odd... EdT 01:15, 11 December 2008 (CET)

I think that the sound_music_start command plays an ambient sound, not a group. In general nothing plays groups, only ambients and impulses so you need to create one of those too.

Neo

Looks like group files are used by ambient files. Example on "fight" track.

SNDDmus_fitec1.aif.oni
SNDDmus_fitec2.aif.oni
SNDDmus_fitec3.aif.oni
SNDDmus_fitec4.aif.oni
SNDDmus_fitec5.aif.oni
SNDDmus_fitec_out.aif.oni
- (no links)

OSBDmus_fitec.amb.oni (for level 4 ?)
- mus_fitec
- mus_fitec_in
- mus_fitec_out

OSBDmus_fitec_hd.amb.oni (for level 12 ? looks redundant)
- mus_fitec
- mus_fitec_in
- mus_fitec_out

OSBDmus_fitec_in.grp.oni
- mus_fitec1.aif

OSBDmus_fitec.grp.oni (should be the loop)
- mus_fitec1.aif
- mus_fitec2.aif
- mus_fitec3.aif
- mus_fitec4.aif
- mus_fitec5.aif

OSBDmus_fitec_out.grp.oni
- mus_fitec_out.aif

Here is the updated mus_burn pack (http://www.paradox.oni2.net/mods/Ed's_music_test.zip, dead link). I guess that track wasn't supposed to become looped so it sounds choppy when starting over. Btw, where did the track come from? Paradox-01 19:04, 8 March 2009 (UTC)



How hard is it to add a new screen to Oni? "Screen" as in Main Menu, Load Game, Options, etc. I know that the game wouldn't know what to do with the screen because it wouldn't have any code written for it, but let's say that part's not important. --iritscen 21:49, 12 December 2008 (CET)

Creating WMDDs using xml is easy enough, export an existing one and modify it as you like. But you're right about the fact that they need new code added to the game.

Neo

I should have mentioned, I wanted an existing screen to lead to a new screen when clicking a newly-added button on the first screen. But, looking at the WMDDs, I don't see where the link is from a button to a screen... is that because they're hard-coded into Oni? :-\ --Iritscen 21:33, 13 December 2008 (CET)

Yes, a button triggers an action that must be written in code.

Neo


Neo, is it possible to make OniSplit say something to the user if they double-click the app, that is, run it without sending it any commands? In other words, right now, the console window just flashes onscreen for a moment if they do that. Could you insert a pause, and display a message about how they need to run it by sending it a command? Maybe it doesn't close the window until they press a key. Just a suggestion. I know that we should probably also be clearer about it in places like OniSplit, but it seems like, if this is doable, it probably would only take a minute to code, and it will save users from having to ask this question every couple weeks on the forum :-) --Iritscen 16:10, 21 December 2008 (CET)

For some reason, that idea inspired me so I wrote some test code. http://rossy.oni2.net/files/ConsoleTest.zip :D When it recieves no arguments, the test program checks if it has been run from a console window, if not it creates its own cmd.exe and runs itself. I don't know what would happen on MacOSX, but i think the Process.Start call will fail and cause the program to display a message box instead.
No thanks, I'd rather not use PInvoke in a .NET program that needs to run on another OS :). For now I changed OniSplit so if it's started without arguments (like it happens if it's double clicked) it displays the help and wait for a key to be pressed. Neo

Neo, I used xml to extract and create TXMP files. However, for a file that has an alpha channel, I get a bug: Alphabug.jpg

For this example, I extracted the TXMP for Konoko's head using xml and without any changes imported it back using xml.

Any suggestions? EdT

Somehow the reflection got changed into transparency...I have been wondering how this particular trick is done. :) I guess we will find out soon enough. Gumby 05:06, 26 June 2009 (UTC)
EdT, maybe you could post the generated xml file? :) Gumby 07:11, 26 June 2009 (UTC)
Someone had a very similar problem a while ago. He had Oni Demo which meant that Mukade's reflection texture was missing. It was needed by the Spartan plugin so some pieces became transparent.
EdT, did you import Konoko's texture into a plugin? Some files are loaded before files in the original level, other are loaded after them, it depends on the plugin name. Maybe you can test that out: 1) put the reflective map also into the plugin 2) or change the plugin name. Paradox-01 09:43, 26 June 2009 (UTC)
Paradox, it was an xml issue:

<Oni Version="0.9.37.0">

   <Texture>
       <Flags>HasMipMaps</Flags>
       <Format>ARGB4444</Format>
       <Image>TXMPIteration001%2Fk4_head.tga</Image>
   </Texture>

</Oni>

It was missing the <EnvMap>TXMPenvksface</EnvMap> tag, very strange. EdT
Ok. But the question is still there: was this just once or does this kind of bug occur now always when exporting a transparent image? Paradox-01 16:07, 26 June 2009 (UTC)
Paradox, It seems to be just that file: TXMPIteration001%2Fk4_head.oni others with transparency includes the <EnvMap> tag. EdT

Neo,

Is there a way to manually add comments in the xml that OniSplit creates? Sometimes I would like to add notes to help me remember what I was doing. EdT

<!-- Comments go here -->
Of course, they will be deleted when you convert to .oni. :) Gumby 20:31, 1 July 2009 (UTC)

RGBA8888 texture support - Awesome! When will you release a version of Onisplit with that feature? EdT

One of these days... I've already added support for this but some parts of OniSplit are a bit messed up right now and I need to cleanup before release. Until then see if you can swap red with blue in an image editing tool and use -format:bgra32 to import.

Neo

I'll give it a try. Another issue, to create a large TXMP such as 512x512 I would use the option -large using the command create:TXMP, however, in xml, I cannot use large as a flag. It is not listed in the enums. EdT

You don't need -large when importing from xml, it works without it. But -format:bgra32 is ignored and you cannot put it in xml either. So you need to stick to importing tga files directly until I upload a new OniSplit version. Probably tomorrow. Neo

Update: I'm having color issues with the patch and bgra32 as you can see here:

Bgra32.jpg

EdT

That looks nice :). I'm having trouble figuring out the hair remained red through all those color swaps. Maybe you should send me the tga or oni files to take a look.

Neo

Here are the 4 TXMP file and one .oni file, the red&blue swap: http://edt.oni2.net/OniSplit/bgra32.zip EdT

Hrmr... I'm don't know what's going on. Your .oni files works fine for me. See http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/Images/head.png (dead link).

Neo

Here is the texture test. bgra32, no alpha channel, envmap:TXMPenvksface EdT

Rgb bra32.jpg

Baffling. It seems to me that the red one has some envmap reflection which means that the alpha got mixed with red. In the other 2 it's obvious that red got mixed with blue and red got mixed with green. I've no idea how come red gets mixed with everything. Please try bgra32 without envmaps and alpha.

Neo

bgra32, no envmap, no alpha channel EdT

Noenvmap bgra32.jpg


Color Depth test, alpha channel, envmap:TXMPstrikerarmor EdT Color depth bgra32.jpg


Here is a more comprehensive test of bgra32

These were done using xml and <Format>ARGB8888</Format>

Bgra32test.jpg


However, these were done using command line and -format:bgra32

Bgra32test2.jpg

Bgra32test3.jpg


Command line using -format:bgra32 and envmap TXMPstrikerarmor

Redalpha.jpg


Conclusion: As onesadcookie stated, the red/alpha channels and blue/green channels are switched. Also, with the <Format>ARGB8888</Format> the red/blue channels are switched.

So can this be fixed on the Mac? EdT


A comparison of bgra32 and bgra4444

Konokobgra32.jpg

I swapped the red and alpha, blue and green channels to make it look right on the Mac. EdT



Rexxar from OCF reports that OniSplit cannot import files with % in the name.

For example: OniSplit -create:txmp out -format:bgr32 -genmipmaps TXMPIteration001%2Fk4_bcp.tga

Produces the error message:

System.IO.DirectoryNotFoundException: Destination directory not found: Oni/Edition/install/out/TXMPIteration001
 at System.IO.File.Create (System.String path, Int32 bufferSize, FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity) [0x00000] 
 at System.IO.File.Create (System.String path) [0x00000] 
 at Oni.Importer.Write (System.String outputDirPath) [0x00000] 
 at Oni.Imaging.TextureImporter.Import (System.String filePath, System.String outputDirPath) [0x00000] 
 at Oni.Program.CreateGeneric (System.String[] args) [0x00000] 
 at Oni.Program.Main (System.String[] args) [0x00000]

But remove the "%" from the name TXMPIteration0012Fk4_bcp.tga then it creates the .oni file. EdT


A user on OCF reported problems with SNDD files as .wav. I confirmed that when extracting a SNDD as wav, instead of the correct sound, I get static and noise. Extracting the same SDNN file as .aif, produces the correct sound. EdT

Works fine here. Is he perhaps trying to extract a Mac SNDD file as wav? Neo

Well, he is apparently a Windows user, so normally I would say "definitely not", however, he mentions working with an extracted sound called "SNDDc01_04_01receptionist.aif.wav". Does that make sense? Should that ".aif" be there? --Iritscen 14:02, 18 August 2009 (UTC)

Yes, the .aif is there because that's how all the SNDD instances are named, PC or Mac. I tried that file but it extracts fine for me. Neo


Do we definitely understand how Oni chooses between LODs for a given model? I used to think it was distance from the camera, but someone told me it is actually based on how many polys (or models?) are onscreen. --Iritscen 13:37, 23 August 2009 (UTC)

I'm not sure but I think it uses both. Neo
Hmm, okay. One day I guess I'll have to test this out. --Iritscen 17:24, 24 August 2009 (UTC)

So, is LOD a universal setting? Individual characters can't be at different LODs, can they? --Iritscen 01:24, 30 August 2009 (UTC)


If I export the .dat files in this .zip (http://iritscen.oni2.net/temp/mus_tranc.zip, dead link), then try to -import:sep them, I get:

Reading files from /Games/Oni/•Mods/Other/mus_tranc/ONI
Removing duplicates
System.NotSupportedException: File /Games/Oni/•Mods/Other/mus_tranc/ONI/SNDDmus_tranc1.aif.oni cannot be imported due to conflicting template checksums
 at Oni.InstanceFileWriter.AddDescriptor (Oni.InstanceDescriptor descriptor) [0x00000] 
 at Oni.InstanceFileWriter.AddDescriptors (System.Collections.Generic.List`1 descriptors, Boolean removeDuplicates) [0x00000] 
 at Oni.OniImporter.Import (Oni.InstanceFileManager fileManager, System.String[] inputDirPaths, System.String filePath, Int64 targetTemplateChecksum) [0x00000] 
 at Oni.Program.Import (System.String[] args) [0x00000] 
 at Oni.Program.Main (System.String[] args) [0x00000]

--Iritscen 17:24, 24 August 2009 (UTC)

It appears that those SNDDs are for PC. OniSplit doesn't convert between AIF/WAV, sorry. Neo

D'oh, where is my brain? That's a big "duh to my world". I guess I only saw the ".aif" in the exported files. --Iritscen 19:11, 24 August 2009 (UTC)