User talk:Neo
Heh, EdT wants explosive barrels, right? Well, me too.
Nah, here comes my request. Is there possibility to increase total amount of spawned PAR3 ? Currently it is 1000. I think like 100 000 would be nice. Or is it short, limited to about 65 000 ??? That would be nice as well.
- REASON: 1000 particles maximum. Each decal is count as particle. We want to make AE shinier. That involves more particles spawned at one time, especially during gang fights. Even in original Oni, when playing arena scripts, sometimes you can see that victim is hit but no flash appears as all decals are used at that moment. So we should increase number of decals for those flashes. But then, when limit (1000) is hit, engine starts removing the oldest particles again.
- 100 000 is maybe overrated, but I think it this way: 200 decals for each fight PAR3, 5 000 for each various bulletholes/burns/shrapnels/casing/shielding/etc.
Thank you in advance.
- P.S.: XML TRAMs? You rock! ^_^
- --Loser 07:23, 10 September 2008 (CEST)
For decals you can try changing this value in the exe:
0x4EAD6: ff 8f 01 00 - int32, decal buffer size in bytes
For particles you can try changing these:
0x55D63: 50 C3 00 00 - int32, particle memory block size 0x55D9F: 50 C3 00 00 0x55DAD: 50 C3 00 00 0x582CF: 50 C3 00 00
The decals hack might work (try double that value) but I'm not sure about particles. It would be simpler to increase the number of 50000 bytes memory blocks (the default is 100) but that cannot be done so we need to increase the block size which can lead to unexpected problems.
And there's no way you can get 100000 particles unless you have a 100GHz processor :)
OniSplit 0.9.27
Bugfixes and xml export/import for TMBD.
Hey, testing out TRAM import right now...using it for an explosive barrel.
I have a 1 frame animation where the pelvis consists of this - <EKey>1 0 0 0</EKey> I know the first part is the number of frames, but what are the others? I need to rotate the barrel 90 degrees upward.
See this:
Gumby 19:25, 11 September 2008 (CEST)
You can take a look here: OBD:TRAM/raw0x34. Appart from the fact that I swapped the number of frames with the rotations it's the same thing. To summarize:
The 3 values after number of frames are:
- rotations around X, Y and Z axes
- stored as signed integers with values between -32768 and 32767
To convert those values to degrees you need to multiply by (180 / 32767.5).
To convert from degrees you need to multiply by (32767.5 / 180).
You probably need to rotate the barrel by 90 degrees around X or Z axis. That probably means <EKey>1 16384 0 0</EKey> or <EKey>1 0 0 16384</EKey>
Hah! It worked. Thank you very much. I was wondering why they were so large, for being rotations. ^_^
Gumby 22:06, 11 September 2008 (CEST)
A mystery: If you set a character to be invulnerable through the TRAM, the refuses to shoot you with the Black Adder. Do you know why?
Gumby 01:16, 12 September 2008 (CEST)
Nope. Are you sure it is because of the invulnerability?
Thanks you for TRAM done. You are No.1
Anyways, here is report on increasing particle memory blocks' size: Failure. Max value that was Oni able to withstand was FF|FF|00|00. Then there was maybe + 10 or so particles, but in exchange it was extremely unstable. More than 65535 resulted in crash when some particle was spawned. Dang it. This is 100% wrong way.
Decal buffer incrementation: Failure as well. Tried 2x original value, then 1.5x. Oni hangs in both cases when there is too much decals. And last decal was weridly deformed.
No use. We need new engine or source... but thank you for informations.
P.S.: How can I find if I caused memory corruption ? I am modyfing throws now, and Geyser told me that in previous version of TRAM modifications, some TRAMs caused mem corruption. I don't want to repeat same mistakes. Thank you in advance.
--Loser 16:12, 12 September 2008 (CEST)
OK, I did some more checks:
- Particles: there's basically no way to have a particle block larger than 65535. However, to my knowledge the maximum size of a particle is 256 bytes so with this increase you should be able to get 600 more particles (60 / per block * 100 blocks).
- Decals: in theory it is possible to increase the decal buffer size but the hack would be rather extensive. Basically you would need something like Daodan dll to replace some function in the exe.
TRAM and memory corruption: tipically you cannot find it until the game crashes. If you manage to make it crash consistently with new animations then give me the animations and I'll see what I can do.
On the invulnerable TRAM: Yes, I am sure. The character has the invulnerable animation as a default. I commmand him to do another animation, he gets shot at. When the animation stops, and his invunerable idle animation starts, the shooting stops again.
On something else:
I thought dangerous particle awareness was fixed, but avoiding them was broken? In this image: It seems that awareness is still broken, look at the blue (or used to be blue, until my image editing program messed up the colors) lines. They still point toward the origin. Aren't they supposed to point toward the danger? However, he does avoid it properly as long as you aren't standing between him and the origin.
Gumby 22:14, 12 September 2008 (CEST)
Invulnerable TRAM: so, if my understanding is correct an AI character won't shoot at another character that runs an invulnerable animation and that happens only with Black Adder? Kind of strange if it happens only with one particular weapon.
Projectile awareness: there's another bug in that function, here's the fix
- file offset 0x9C110, new value 0x6C
Thanks. I've only tested the TRAM against the Black adder, SBG, and Plasma Rifle. Let me go try the VDG and the Campbell.
Gumby 23:04, 12 September 2008 (CEST)
http://gumby701.googlepages.com/bomber.wmv
Gumby 23:58, 12 September 2008 (CEST)
Earlier today I realized that, at least with my copy of the modded Oni executable, AI does not avoid persistent dangers like the Screaming Cell or Scram warheads, only gunfire that I emit constantly from my weapon. Is that supposed to be fixed, or will the above hex change fix it, or was it never fixed at all? I know I saw a hack for avoiding the Cell being demoed on YouTube quite some time ago.
@ Gumby's vid: o.O The lines don't seem to have any bearing on the Thug's ability to dodge the threat; also, why didn't the MB disappear post-explosion? --Iritscen 03:32, 13 September 2008 (CEST)
Yes, use that hex value. The lines do something. :D They don't appear if there isn't a threat. They are supposed to point towards the bomber, but they don't. Don't know why, but I'm looking into it, unless Neo knows. When you use stuff like the Screaming Cannon, the lines point toward the warhead (IIRC).
Gumby 06:00, 13 September 2008 (CEST)
So I can't see mem corruption until it crashes? Good X_X. Heh, here comes my two cents for AI2 dodging:
1st, Gumby, that blue-lines-constantly-point-to-origin bug was reported by me several months ago. I reported it repeatedly, even with video proof, but got nothing ("you have to wait, we have more important things to do..."). So thank you that you finally got answer for me ^_^. You are like magician. You ask -> you get.
2nd, those blue lines are pointing towards "source of danger" (Neo has better name for it?). In case of firingspread, source is character's weapon. In case of projectiles, source is dangerous projectile. That green line is something like "vector of movement", pointing where character moves right now. Dodging can be (at least for firingspread) modified in ONCC. You can set how strong is this "vector" of dodging (so when AI2 has vector towards you AND you shoot, it can dodge more or less). You can also set how long this vector should last from the moment it was created. Don't know if those values affect projectile dodging as well.
Iritscen: Instructions how to get projectile awerness (credits go to Neo): In standard EXE, find and change:
- 0x9C07C: change 30 to 6C
- 0x9C080: change 34 to 70
- 0x9C084: change 38 to 74
- 0x9C110: change 30 to 6C
That should do it.
Hey Neo, can we delete collision stuff at the top of the page? I saved it, so it is not neccessary to leave it here. And that paragraph is huge. Or better: Can I move it to some other page?
--Loser 07:57, 13 September 2008 (CEST)
Thank geyser. I asked him on it, and then he must have asked Neo. But the bomber awareness is still messed up. No matter what, he dodges in the direction of the origin. Look at the video again. The blue lines aren't pointed towards the bomber, AND he runs toward the bomber (and the origin, i think), instead of away. And thank you Loser for making the wonderful ONCCs that come with Edition. They really help with dodging. You will have to help me soon though. I'm working on making the bombers more "suicidal". :)
Gumby 08:16, 13 September 2008 (CEST)
Hey Neo, how do I add a Character collision event + attachement in a PAR3 xml file?
Gumby 08:40, 13 September 2008 (CEST)
Some quick answer to the projectile awareness stuff:
- there was a bug which prevent it from computing correctly the distance between character and projectile; this one prevent dodging completly
- there was another bug (the new 0x9C110 fix) that cause it to see a wrong direction vector; this one caused "alwatys dodge towards origin" behvaior
- I don't know what's up with the bomber. I'm quite surprised that it does any kind of dodging because the bomber is not a projectile. I assume it tries to dodge the death particle but that particle has no velocity and that may cause the behavior you are seeing.
Hmm. A zero value for velocity might screw up things? I'll try to make a bomber particle that moves up and down or something.
Gumby 08:57, 13 September 2008 (CEST)
Particle stuff:
- for character collision event (HitCharacter) see one of the particles used with weapon, for example BINA3RAPw1_tap_p01.
- for attachment add <HasAttachmentMatrix>true</HasAttachmentMatrix> in Properties section
More things I missed\messed up in my reply:
- The thug dodges toward an axis.
- The bomber was shapeshifted Konoko, making the body not disappear
- The old screamer video was unmodded Oni
- Remember that the hex changes are PC only
Gumby 09:34, 13 September 2008 (CEST)
- Loser, I oughta slap you around with a large trout for this - I reported it repeatedly, even with video proof, but got nothing ("you have to wait, we have more important things to do..."). - you could at least have linked to your report, so that people can see what I really told you then.
- And as for this - Hey Neo, can we delete collision stuff at the top of the page? I saved it, so it is not neccessary to leave it here. - I oughta slap you with an even larger trout for being so selfish about documentation. Where have you backed up that knowledge? on your own HDD? why, thank you...
- And you know what else? maybe then I should club you to death with the mother of all trouts, for deleting important documentation like the dodge-related "video proof" from your oni2.net account. It's irresponsible to go deleting stuff like that.
- geyser 11:05, 13 September 2008 (CEST)
- Iritscen, when you say this - I know I saw a hack for avoiding the Cell being demoed on YouTube quite some time ago. - your "knowledge" is wrong. Look at the video again, then at its end titles, then at the video details and comments: http://www.youtube.com/watch?v=C8zpfiHeR_s
- Because of the nature of the bug, dodging mostly worked as long as the dodging took place close to the level's origin, so for the needs of the trailer, for example, it was already quite possible to set up an actual sequence, with anything from screamer to grenade to bomber.
- Loser up there gave you instructions for the standard PC engine: AE:EXE. There is no corresponding hack for the PC demo of for OMNI's engine yet. Keep an eye on this page, which will be updated with the info soon enough: AE:OMNI
- geyser 11:05, 13 September 2008 (CEST)
Wow, I got PWNED. Hard. And I accept it ^_^.
- I reported it repeatedly, even with video proof, but got nothing ("you have to wait, we have more important things to do...")
- *slap, right cheek hurts* - My apologies, I was mistaken. Sorry about it.
- Hey Neo, can we delete collision stuff at the top of the page? I saved it, so it is not neccessary to leave it here
- *Fish strike parried*- эй, экономи рыбу, друг ( hey, save teh fish, friend) and read next but one line instead: Or better: Can I move it to some other page?
- maybe then I should club you to death...
- *slap, left cheek hurts* Do it ^_^. It was accident, really. I was cleaning some other files in video folder (those which were really old) but this was poor casualty together with other one video (about weird character-stair collisions)
So what. Now I am going to post that collision stuff on some page (and you will most likely rearrange it then ^_-). I am glad that AI2s finally fully react on projectiles, many thanks to Neo and you. And as for my old videos... let them R.I.P (and put me next to them if you want ^_^ ).
- --Loser 12:23, 13 September 2008 (CEST)
Hey, Neo, just remembered something. Your ONWC export needs a slight change.
0x048 - 'roughjustice' delay between shots in frames
Gumby 23:25, 13 September 2008 (CEST)
Partially fixed the awareness. I need to figure out why the spheres don't move like they are supposed to be doing. I have a feeling once I get them to move around, the characters will "pay attention" to them better.
Gumby 07:41, 14 September 2008 (CEST)
Aha. It worked. I just need to make it attract (to me) properly. Why don't Particle flags show up in "-help enums"?
Gumby 07:59, 14 September 2008 (CEST)
Two bugs.
1. Characters can get stuck in the corner if you use soemthing like the screamer. (They try to run away, but get cornered, and don't want to dodge through the particle. Pretty predictable, normal behavoir. No big deal).
2. If character cannot see the character that created a dangerous particle, they don't dodge it at all.
Gumby 08:58, 14 September 2008 (CEST)
OniSplit 0.9.28
- added xml support for ONIE.
- -help enums now lists particle related values
Aha, thanks very much.
Gumby 21:39, 14 September 2008 (CEST)
Note about ONIE import: keep in mind that if you want to add new impact/materials you'll have to manually create the coresponding Mtrl*.oni and Impt*.oni files.
Neo, Can you please add to your to-do list the ability to import SNDD files, this is a request from OCF. Thanks EdT 19:27, 20 September 2008 (CEST)
Minor IGSt bug found. The import doesn't recognize new lines which comes from "<text> </text>". There're 00 instead of 20 (one per such instance) in the reconverted file.
Paradox-01 16:35, 26 September 2008 (CEST)
Hey, just posting on the issue of the animation freezing bug (the camera flying away when you enter a cheat). It seems that the flag in memory is only turned on when you exit the menu, not when you enter the cheat. Ahh, not sure if that helps. It has been happening to me a lot lately (every time I open the game), but it could be anything from using Rossy's C dll (testing if that aggravates it), to...well I don't know. If you could take a look at it that would be great though.Gumby 06:27, 28 September 2008 (CEST)
Neo,
I got this error message when importing a TRBS:
System.IndexOutOfRangeException: Array index is out of range. at Oni.Vector2.FromArray (System.Single[] values, Int32 index) [0x00000] at (wrapper delegate-invoke) System.MulticastDelegate:invoke_Vector2_single[]_int (single[],int) at Oni.Geometry.DaeConverter.CompressDuplicates[Vector2] (Oni.Geometry.Dae.GeometryInput input, System.Collections.Generic.List`1 list, System.Collections.Generic.Dictionary`2 index, Oni.Func`3 elementReader) [0x00000] at Oni.Geometry.DaeConverter.FromDaeGeometry (Oni.Geometry.Dae.Geometry daeGeometry, Boolean createNormals, Boolean createShell, Single shellOffset) [0x00000] at Oni.Geometry.BodyImporter.ReadBodyPartsRecursive (Oni.Geometry.Dae.Node node, System.Collections.Generic.List`1 list) [0x00000] at Oni.Geometry.BodyImporter.ReadBodyParts (Oni.Geometry.Dae.Scene scene) [0x00000] at Oni.Geometry.BodyImporter.Import (System.String filePath, System.String outputDirPath) [0x00000] at Oni.Program.CreateBody (System.String[] args) [0x00000] at Oni.Program.Main (System.String[] args) [0x00000] (1)
EDIT: Upon more investigation, it appears the problem is from an update to Cheetah3D4.6, when I export the file from Cheetah3d4.4, I do not get the error message. If you're interested, here are the 3 collada files of Konoko generic, no changes http://edt.oni2.net/OniSplit/TRBSkonoko.zip (OniSplit export, Cheetah3D4.4 and Cheetah3D4.6, both Cheetah versions were exported first as FBX, then converted to DAE by FBXconverter) EdT 02:19, 29 September 2008 (CEST)
2 quick answers:
- IGSt space - you need to add a xml:space="preserve" attribute for those Text elements:
<Text xml:space="preserve"> </Text>
- I'll try to make OniSplit add that automatically in the next version, I didn't know that there are such cases.
- Cheetah 3D4.6 - the coresponding Collada files looks "corrupted". Basically it contains wrong texture coordinate indices I suspect that there is a bug somewhere but not in OniSplit.
- Ed, since there's a converter involved, please provide the FBX that are output by Cheetah. Either the converter does everything correctly, and the bad UV indices come from the FBX (which should be reported to Cheetah's dev); or the FBX confuses the heck out of the converter in a more subtle way (this can be a bug of either program). Not that we are guaranteed to find out the reason, but letting us have the FBX would help the investigation. --geyser 21:47, 13 October 2008 (CEST)
- geyser, here are the files this is what the developer said about the problem "Although the FBX SDK imports the Cheetah3D FBX files correctly the Collada exporter messes them up. But the Collada support in the FBX SDK is a big problem since years and things are improving just slowly"
- Ed, since there's a converter involved, please provide the FBX that are output by Cheetah. Either the converter does everything correctly, and the bad UV indices come from the FBX (which should be reported to Cheetah's dev); or the FBX confuses the heck out of the converter in a more subtle way (this can be a bug of either program). Not that we are guaranteed to find out the reason, but letting us have the FBX would help the investigation. --geyser 21:47, 13 October 2008 (CEST)
- Also, is there a table or chart that shows the relationship between the BSL name and the function name? For example chr_set_class -> _iSetCharacterClass. I want to see if I can patch the game myself, but I have no idea what function would correspond to such things as sc_bind_f2, co_display, wp_kickable, door_ignore_locks and so on. Thanks EdT 01:26, 14 October 2008 (CEST)
- FBX: The FBX converter crashes while trying to convert that file to Collada. Softimage XSI loads the file but the exported Collada files contains no texture coordinates. So, I don't know what's going on, looks like the FBX file is bad.
- BSL: There is no such table. The best bet is picking them from the PC exe disassembly :). Neo
- FBX, its no problem, I can use the older version of Cheetah3D.
- BSL, can you recommend a PC disassembler, I can use it under VirtualPC. Also, can you show me how find the link between the BSL function like sc_bind_f2 and the function name in the engine using the disassembler. Like the saying goes "Give a man a fish, he eats for a day. Teach a man to fish and he eats for a lifetime" Please teach me how to fish :-) EdT 16:09, 14 October 2008 (CEST)
- FBX - I don't know, I saw all kinds of problems with all kinds of 3D file formats. Basically I know of no file format or application that's 100% guaranteed to work properly.
- BSL - For PC disassembling you can use the free version of IDA. See here for my IDA database file. I don't think you can bind sc_bind_f2 easily (compared to others). It's a string variable and nothing in the Mac exe uses them so nobody calls the function that's supposed to register string variables. Neo
- Thanks for the link and the database, but now I need the fishing instruction :-) Can you show me how I can find the engine function related to the BSL function. I tried a text search for chr_focus, got the results, but I could not find out how it pointed to _SetMainCharacter. Once I see it in the PC engine, then I will look for it in the Mac engine. EdT 07:30, 15 October 2008 (CEST)
- Do a text search for "chr_focus" starting from the beginning. The first one you come up with should be a long list of console variables. Now look two lines below. You see "_SetMainCharacter" now? Double click it, and you can get the offset. Gumby 08:21, 15 October 2008 (CEST)
- Smacks head! Thanks EdT 21:58, 15 October 2008 (CEST)
- Do a text search for "chr_focus" starting from the beginning. The first one you come up with should be a long list of console variables. Now look two lines below. You see "_SetMainCharacter" now? Double click it, and you can get the offset. Gumby 08:21, 15 October 2008 (CEST)
- Thanks for the link and the database, but now I need the fishing instruction :-) Can you show me how I can find the engine function related to the BSL function. I tried a text search for chr_focus, got the results, but I could not find out how it pointed to _SetMainCharacter. Once I see it in the PC engine, then I will look for it in the Mac engine. EdT 07:30, 15 October 2008 (CEST)