Navmesh processing in .esp files still has a problem

Post » Wed Aug 11, 2010 1:52 pm

Just make it a bona fide ESM and change its file extension too? ..... It's unfortunate more mods don't use scripts to make tiny edits to unique NPC's and leave their records alone for a mod that really needs them. I can see how it would be really frustrating to have your work needlessly undermined.


In terms of other people making stealthy changes to the followers through scripts and so on. This may seem backwards, but it's easier for me to let Phalanx create a conflict in the event that another mod also tries to do an operation to a game resource that I am using.

If both Phalanx and some other mod were playing with the followers and the follower looked almost "right" to the player, it would actually be a gigantic cluster [censored]. People don't even know what's in their load order sometimes. There would be major malfunctions and people wouldn't even understand who to complain to. I'd sooner my mod cancel out someone else's follower change completely, or, their mod cancel mine, then have to hear complaints about someone else's follower mod mingling with mine and making followers behave chaotically.

I talked to Elminster about doing dual esm/esp and he's discouraging it, and instead suggests having the user run FO3MasterUpdate.exe if they want to get into Phalanx' new cells.
User avatar
Rachie Stout
 
Posts: 3480
Joined: Sun Jun 25, 2006 2:19 pm

Post » Wed Aug 11, 2010 10:34 am

Any time that the user must be able to adjust the mod's position in the load order, it must not live as an .esm in the midst of a bunch of .esps. The game will never allow an .esm to load after an .esp.


Yes but this doesn't apply to MasterUpdate, and thats the point here. Our mods start out as plug-ins at Any place in the load order we need/specify below the normal masters. MasterUpdate then turns ALL of the mods into Masters and handles all the ONAM record generation and synchronization - which is why it works so well. It also leaves us with a plug-in that we can edit in the GECK as much as we want. Two icons on the desktop or quick-launch bar for MasterUpdate and MasterRestore - couldn't be easier.

Unless there is a really good reason, MasterUpdate is the most ideal solution to this.

Miax
User avatar
Liv Staff
 
Posts: 3473
Joined: Wed Oct 25, 2006 10:51 pm

Post » Wed Aug 11, 2010 3:40 am

Yes but this doesn't apply to MasterUpdate, and thats the point here. Our mods start out as plug-ins at Any place in the load order we need/specify below the normal masters. MasterUpdate then turns ALL of the mods into Masters and handles all the ONAM record generation and synchronization - which is why it works so well. It also leaves us with a plug-in that we can edit in the GECK as much as we want. Two icons on the desktop or quick-launch bar for MasterUpdate and MasterRestore - couldn't be easier.


yeah.. I think we sayin the same thing. Distinction being, there's a difference between releasing as a straight ESM, and, telling your users that they need to FO3MasterUpdate their stuff to use your mod properly.

(But ideally, it would be nice to learn more about what's wrong internally... I'm just tired of fighting it).
User avatar
Rachael Williams
 
Posts: 3373
Joined: Tue Aug 01, 2006 6:43 pm

Post » Wed Aug 11, 2010 9:15 am

I don't know if this helps, but I have been testing for the last eight hours trying to figure out what actually makes this problem manifest, and I believe I have found out. The answer I found is quite odd. Since it has been offered that small cells with only a few NAVM don't exhibit the problem, I started by building a brand new cell. Slowly I added different things to it until the problem occurred. I started with 50 NAVM triangles, then 100, then 130, then 200, then 260, then 310. A cell alone with only a lower bar, a teleport door, a COC marker, and some lights produced no problem. Previously I tested in a cell that did have the problem. At that time I started with about 1190 triangles and removed them down to 290. The problem occurred every time in those tests. So I started thinking that the number of triangles wasn't the issue.

Next I added a NPC that had a simple patrol package with three idle markers as the way points. That test worked, so I added a sandbox package and two more idle markers near the NPCs editor location. I added conditions to the two packages based on the variable that controls whether my follower is following close or long so I could control which package the NPC used by talking to her and adjusting her follow distance. That worked too. So, I then added a persistent bed and a table and a persistent chair, and gave the NPC two more packages; one for eating at the table and chair, one for sleeping at the bed. I added two more AI packages with offset schedules thinking that the change of package might have something to do with it other that me forcing the change myself. That produced the error. To verify, I started removing pieces one by one and testing to see if the problem went away. It did not. Eventually, I had removed everything I had added down to the point of where I started. I even removed some of the NAVM just to lower the number of triangles just to make sure. The problem still occurred.

Then I went into the GECK and duplicated the cell, re-assigned the teleport doors and re-created the NAVM in both the duplicated cell and the exterior cell that the teleport door connected to. The error persisted. Then I deleted my original cell, to make it completely blank, saved in the GECK, exited the GECK and restarted the GECK again. This time I copied the cell contents of the duplicate and pasted them into the blank one. This time when I tested, the error did not manifest. So I began to add pieces one by one trying to figure out exactly what causes it. By this point I figured it was adding furniture, so I started by placing everything I had before up to the point where the problem occurred. This all worked. So I added a bed next to the edge of my NAVM (as I did not NAVM the entire cell) and tested, thinking that I would get the problem on the next run-through. Well, the problem did not manifest. Next I added NAVM around the bed and tested. Bingo, the problem showed up. So I went back into the GECK and created a NAVM under the bed to make the NAVM continuous. No good, the error occurred. I removed the bed and still got the error. I then took a backup of the mod from before the problem occurred and just made a NAVM around the bed with out actually putting the bed in the cell. I have included two picture showing what I mean.

http://s779.photobucket.com/albums/yy80/HupOranje/?action=view¤t=NAVM1.jpg
http://s779.photobucket.com/albums/yy80/HupOranje/?action=view¤t=NAVM2.jpg

The first picture is of the cell NAVM when the error did not manifest.
The second picture is the same cell with an additional NAVM around an area where a bed would be. This produced the error. Removing those few added triangles does not make the error go away. Once it shows up, it stays.

Why the problem does not manifest when I NAVM around the lower bar is a mystery to me. But I am certain that this is replicateable by anyone who wishes to try it out.

I conclude that the number of NAVM triangles in a cell is irrelevant. And that once the error occurs, no removal of any objects will make it go away. Somehow whatever causes this error is stored in the cell extraneous to the objects contained within it. Very odd indeed.
User avatar
Roy Harris
 
Posts: 3463
Joined: Tue Sep 11, 2007 8:58 pm

Post » Wed Aug 11, 2010 6:25 pm

I believe this is when the camera shakes and the music goes "Duh duh DUUHHH!!!!" and the plot thickens.... :bigsmile:
User avatar
Samantha hulme
 
Posts: 3373
Joined: Wed Jun 21, 2006 4:22 pm

Post » Wed Aug 11, 2010 1:58 pm

Then I went into the GECK and duplicated the cell, re-assigned the teleport doors and re-created the NAVM in both the duplicated cell and the exterior cell that the teleport door connected to. The error persisted. Then I deleted my original cell, to make it completely blank, saved in the GECK, exited the GECK and restarted the GECK again. This time I copied the cell contents of the duplicate and pasted them into the blank one. This time when I tested, the error did not manifest.


Good god almighty.

Deleting all the copies of my cell would be nuts, even as a test. They have refs that are referenced by packages, scripts, 2 quests... and packages hate having conditions deleted out from under them, it makes the GECK crash-happy when you do that..

If noone else has tried this soon, I will, but I will sit back and see if someone jumps on it before me :>
User avatar
LuBiE LoU
 
Posts: 3391
Joined: Sun Jun 18, 2006 4:43 pm

Post » Wed Aug 11, 2010 3:43 am

Outstanding research plkeiss! Thank you for taking that kind of time to noodle this out more.

If I may, I need to tie a few of your observations to the other stuff we talked about to get a clearer picture...

1. You were able to create the Navmesh bug, such that an NPC will not path to you from several triangles away? (following close by being irrelevant). I want to confirm that by creating the error during Navmesh/Furniture placement, is the same error regarding NPC pathing to you?

2. Assuming #1 is yes, and understanding that MasterUpdate corrects the issue completely, this leads us back to something a properly-synchronized master file has no problem with, but that a standard plug-in completely looses it's knowledge of the Navmesh for NPCs.

I read your post several times very carefully, and I would ask for a little more clarification on the last paragraph where you were able to reproduce the error simply by placing furniture in the cell. The sentence, "I removed the bed and still got the error. I then took a backup of the mod from before the problem occurred and just made a NAVM around the bed with out actually putting the bed in the cell. I have included two picture showing what I mean."... Do you mean that you were able to produce the NPC follower bug simply by navmeshing around where the bed Would be, but that you didn't place the bed in the cell and still got the bug? I'm trying to determine what relation the actual placement of static objects has to the navmesh bug - and if Navmeshing only after we're 100% done with all objects in a cell would help prevent the issue, or if we're doomed to suffering it short of MasterUpdating.

I do want to reproduce the results, do you have a link to the esp you created?

Thanks again!

Miax
User avatar
BEl J
 
Posts: 3397
Joined: Tue Feb 13, 2007 8:12 am

Post » Wed Aug 11, 2010 3:52 am

I understand what he wrote to mean this - -

During the normal sorts of things ones does while navmeshing, something can go wrong internally. Once it happens, the cell is irreversably damaged and it will have THE symptoms if it lives as an .esp (IE: we get the pathing failure 2ed time in). One thing that may fix the mod (so that it can live as an .esp again) is to copy your entire cell into a brand new cell, delete the old one, and then never, ever touch the navmesh in there again (and maybe not touch the items around the navmesh).

I have not tested all this myself at this point, this is what I got out of pkleiss' post.

Also, he was using NPCs on a patrol package for his tests, that's a very reliable test means.
User avatar
Patrick Gordon
 
Posts: 3366
Joined: Thu May 31, 2007 5:38 am

Post » Wed Aug 11, 2010 5:33 am

Outstanding research plkeiss! Thank you for taking that kind of time to noodle this out more.

If I may, I need to tie a few of your observations to the other stuff we talked about to get a clearer picture...

1. You were able to create the Navmesh bug, such that an NPC will not path to you from several triangles away? (following close by being irrelevant). I want to confirm that by creating the error during Navmesh/Furniture placement, is the same error regarding NPC pathing to you?

2. Assuming #1 is yes, and understanding that MasterUpdate corrects the issue completely, this leads us back to something a properly-synchronized master file has no problem with, but that a standard plug-in completely looses it's knowledge of the Navmesh for NPCs.

I read your post several times very carefully, and I would ask for a little more clarification on the last paragraph where you were able to reproduce the error simply by placing furniture in the cell. The sentence, "I removed the bed and still got the error. I then took a backup of the mod from before the problem occurred and just made a NAVM around the bed with out actually putting the bed in the cell. I have included two picture showing what I mean."... Do you mean that you were able to produce the NPC follower bug simply by navmeshing around where the bed Would be, but that you didn't place the bed in the cell and still got the bug? I'm trying to determine what relation the actual placement of static objects has to the navmesh bug - and if Navmeshing only after we're 100% done with all objects in a cell would help prevent the issue, or if we're doomed to suffering it short of MasterUpdating.

I do want to reproduce the results, do you have a link to the esp you created?

Thanks again!

Miax

1) yes, that is what the lower bar was for, I would jump over it and dart around the corner to loose my follower. Sho only followed again when she had a clear non-obstucted view of me.
2) not a question

Do you mean that you were able to produce the NPC follower bug simply by navmeshing around where the bed Would be, but that you didn't place the bed in the cell and still got the bug?

2) Yes, I though it was furnitue, but it wasn't. It was just the NAVM that had a Space in it. The before and after pictures a are nothing more than added NAVM triangles, emulating a space for a bed that I never placed in the cell. Since I though it was furniture, I place a bed on the edge of the existing NAVM but when that didn't cause the error, I finished surrounding the bed with a few more triagles. That IS what caused the error. The bed is irrelavent. It could be any space left in the navmesh that isn't next to a static object. At least that is what I think because I had to NAVM around the lower bar (leaving a space where the lower bar is), but that didn't cause the error.

I didn't create a new esp. I should have though, come to think of it. But when I started I just used a test cell that I made for another issue I had a while ago. I didn't realize then how much effort I was about to put into it. So the cell is in with a whole lot of other stuff (Like the mod I am working on). If you give me some time, I can try to copy it to a new esp, although I have never done that before.
User avatar
helen buchan
 
Posts: 3464
Joined: Wed Sep 13, 2006 7:17 am

Post » Wed Aug 11, 2010 8:16 am

I understand what he wrote to mean this - -

During the normal sorts of things ones does while navmeshing, something can go wrong internally. Once it happens, the cell is irreversably damaged and it will have THE symptoms if it lives as an .esp (IE: we get the pathing failure 2ed time in). One thing that may fix the mod (so that it can live as an .esp again) is to copy your entire cell into a brand new cell, delete the old one, and then never, ever touch the navmesh in there again (and maybe not touch the items around the navmesh).

I have not tested all this myself at this point, this is what I got out of pkleiss' post.

Also, he was using NPCs on a patrol package for his tests, that's a very reliable test means.


I am not saying exactly that. If what ever caused the problem to occur in the first place is still in the cell, I think copying it will reproduce it as well, although I didn't test this. What I did do was remove the objects I placed since before the bug manifested, I was trying to get back to the state where I knew no bug was. But that did't work in the same cell. Once I removed all the likely candidates and then copied to a new cell, the problem went away. I think I'll try that out next, and see if it doesn't do the trick. Ultimately what caused the bug in my testing was simply leaving a spce in the NAVM. In those two pictures you can see the difference. Look at the bottom hallway. In the first there is a basic straight line ending the NAVM. In the second I left a space where a queen bed might fit. The bed was never placed though. If its still confusing, I think the following math expresion will state it more clearly.

A+B = worked
A+B+C = Failed
A+B+C-C = Failed
copy of (A+B+C-C) = worked

I'm taking a break from testing, but later tonoght I will try to take a bugged cell and copy it, to see if it will work. That would be cool, but quite cumbersome for large mods.
User avatar
Catherine N
 
Posts: 3407
Joined: Sat Jan 27, 2007 9:58 pm

Post » Wed Aug 11, 2010 3:13 am

It was just the NAVM that had a Space in it.


This isn't something that we should have to be afraid of doing. In fact it's not something I can personally manage to never do. A navmesh in an L shape should be as good as one in a box shape. And, to an .esm, it IS just as good.

Glitch city, if this is "it".
User avatar
{Richies Mommy}
 
Posts: 3398
Joined: Wed Jun 21, 2006 2:40 pm

Post » Wed Aug 11, 2010 6:26 am

A+B+C-C = Failed
copy of (A+B+C-C) = worked


Ah, I understand.

You have not tested "copy of (A+B+C)", which was what I was talking about.

I do indeed hope that "copy of (A+B+C)" does work out because I am sure I have too many "-C" in my level to be able to be able to find them all.
User avatar
Sxc-Mary
 
Posts: 3536
Joined: Wed Aug 23, 2006 12:53 pm

Post » Wed Aug 11, 2010 9:05 am

For alacrity sake I am giving my mod pluggin with the test cell in it for you to play with.

The cell is called "TestVault"

There are two sewer pipe entrances in the springvale gas station. The one up on the curb goes to my mod, the one down off the curb goes to the test cell.
The copy I am giving is the picture 1 cell. So it should work with out the bug. You'll have to console in a follower though. Try not to go into my mod cells, they are no where near completed, and I might get a little embarresed cause you guys have been doing this for a while. :nod:
User avatar
OJY
 
Posts: 3462
Joined: Wed May 30, 2007 3:11 pm

Post » Wed Aug 11, 2010 10:40 am

This isn't something that we should have to be afraid of doing. In fact it's not something I can personally manage to never do. A navmesh in an L shape should be as good as one in a box shape. And, to an .esm, it IS just as good.

Glitch city, if this is "it".


Yet I NAVM around the lower bar with out a problem. Very odd indeed.
User avatar
Albert Wesker
 
Posts: 3499
Joined: Fri May 11, 2007 11:17 pm

Post » Wed Aug 11, 2010 6:59 pm

Oops, the name of the cell is PKTestVault, I forgot that I always preface my cells.

EDIT: I cannot seem to render copy the NAVM cells, so the copy (A+B+C) test has failed. Perhaps I just don't know how.
User avatar
JD bernal
 
Posts: 3450
Joined: Sun Sep 02, 2007 8:10 am

Post » Wed Aug 11, 2010 4:46 pm

A+B = worked
A+B+C = Failed
A+B+C-C = Failed
copy of (A+B+C-C) = worked

I'm taking a break from testing, but later tonoght I will try to take a bugged cell and copy it, to see if it will work. That would be cool, but quite cumbersome for large mods.


Thank you for the clarification, this does help ALOT. You have narrowed it down to an in-GECK issue that cannot be avoided as Tarrant mentioned. I can't tell you how many "holes" I have in my Navmeshes, but then so does Bethesda and they Teach that method of Navmeshing in their tutorials. So I'm certain that Bethesda didn't know where this bug is/was either before now. We have been looking for this bug for a long, long time now - great work on actually finding a culprit. :)

I don't need you to package up your test mod anymore, especially given it's a part of your other work! I actually replicated your results with my own cells - which is better anyway as it gives us a larger sampling. In my case I duplicated one of my two metro cells, 998 Navmeshes and a "normal" sized Fallout3 Metro system with lots of clutter and more holes in the Navmesh than swiss cheese. To test I:

1. Duplicated the metro cell in the GECK, gave it a new name and deleted the old cell out. I reconnected the exit doors for the new cell, and loaded the mod with the game. As before I ran around and jumped some obstacles to ensure that Jericho would path to me correctly which he always does the first time in the cell. I told him to wait, and exited the metro into the wasteland again, went to a few places, came back. I re-entered the cell and told Jericho to follow. I then again jumped over several big items and forced him to path - and it Works! :D

2. I copied my backup version of the mod into place, deleting the newly modified one. This put my original Plug-in back into place (with the bugs in-tact), and re-conducted the exact same test as in #1 above. As expected, when I returned to the metro and told him to follow me, he no longer paths to me.

So not only have you found the bug Pkleiss, but you also found a working solution to the issue! Cheers mate, thats HUGE!!! :celebration:

Now all we need to do to fix our Plug-ins prior to release is to duplicate each cell in-turn, re-connect all the doors and anything else that gets de-linked during cell duplication, and we're good to go! That MasterUpdate also fixes the issue is really nice as I mentioned before, but it will be a better alternative to release the mod without the bugs. :)

If this indeed solves the issue, my question becomes - do we still need to "Masterfy" our plug-ins anymore? I know there was an NPC texture bug that MasterUpdate also corrects, but I'm not sure what else will require us to make our plug-ins into masters when we release?

Again my thanks and congradulations Pkleiss, you really helped the community with your 8 hour research session! I'm going to forward the link to this thread to Gstaff so that they are aware what you found.

Cheers,

Miax
User avatar
Bambi
 
Posts: 3380
Joined: Tue Jan 30, 2007 1:20 pm

Post » Wed Aug 11, 2010 11:57 am

:banghead: Ouch! That hurts. That would mean for me to duplicate the original cell from "The Pitt" worldspace, delete the original and connect my duplicate. I think i stay with the esm solution. But this are my personal headaches. Great thanks for the hard work on this issue.
User avatar
Kim Kay
 
Posts: 3427
Joined: Fri Oct 13, 2006 10:45 am

Post » Wed Aug 11, 2010 8:36 pm

Why the problem does not manifest when I NAVM around the lower bar is a mystery to me. But I am certain that this is replicateable by anyone who wishes to try it out.

I conclude that the number of NAVM triangles in a cell is irrelevant. And that once the error occurs, no removal of any objects will make it go away. Somehow whatever causes this error is stored in the cell extraneous to the objects contained within it. Very odd indeed.


In my own test cell, that I linked to before, I have several objects that I navmesh'd around. Isn't that what you're saying causes it to occur? Because I never saw it in that cell...
User avatar
Tanya
 
Posts: 3358
Joined: Fri Feb 16, 2007 6:01 am

Post » Wed Aug 11, 2010 5:16 pm

In my own test cell, that I linked to before, I have several objects that I navmesh'd around. Isn't that what you're saying causes it to occur? Because I never saw it in that cell...



I didn't test on many different objects. For me at least, NAVM around the static lower bar didn't cause the bug, but an empty NAVM hole did. Perhaps there is still a minimum number of triangles needed before the NAVM bug occurs. I am off to the beach for the day. When I return I'll try to get the bug in a vary little cell. The one that I finally worked on still had over a hundred triangles. I'll try to get it with 10 or so. I really don't understand exactly what's causing it, I was just trying to get to a point where I could predict whether it would manifest or not.

EDIT: While I did not test this... Perhaps if you NAVM everything at once and make no subsequent changes, the problem won't manifest.
User avatar
John N
 
Posts: 3458
Joined: Sun Aug 26, 2007 5:11 pm

Post » Wed Aug 11, 2010 6:05 pm

Hmmm... my navmesh had 112 triangles. I'll try and add quite a few more, see if that changes anything.
User avatar
Batricia Alele
 
Posts: 3360
Joined: Mon Jan 22, 2007 8:12 am

Post » Wed Aug 11, 2010 2:08 pm

I didn't test on many different objects. For me at least, NAVM around the static lower bar didn't cause the bug, but an empty NAVM hole did. Perhaps there is still a minimum number of triangles needed before the NAVM bug occurs. I am off to the beach for the day. When I return I'll try to get the bug in a vary little cell. The one that I finally worked on still had over a hundred triangles. I'll try to get it with 10 or so. I really don't understand exactly what's causing it, I was just trying to get to a point where I could predict whether it would manifest or not.


It sounds like we now have a repeatable way to produce the problem. Once we're sure we have it right, we're going to want to put in a decent bug report to Bethesda so they can clean this up once and for all. Being able to reproduce something like this and see the exact action that causes the malfunction = being halfway to fixed.
User avatar
Kellymarie Heppell
 
Posts: 3456
Joined: Mon Jul 24, 2006 4:37 am

Post » Wed Aug 11, 2010 4:59 am

I wonder what happens if, when you have a "contaminated" cell, if you:

-navigate to Navmesh>Remove Cell Navmeshes from the main toolbar-

and then rebuild the navmesh without changing any objects in the cell such as furniture, if the problem persists, or if it's clean as though you'd made a new cell?
User avatar
aisha jamil
 
Posts: 3436
Joined: Sun Jul 02, 2006 11:54 am

Post » Wed Aug 11, 2010 3:03 pm

Hmmm... my navmesh had 112 triangles. I'll try and add quite a few more, see if that changes anything.


It'll be interesting to see what you get. I have 998 triangles in the Navmesh that produced the error.
User avatar
Agnieszka Bak
 
Posts: 3540
Joined: Fri Jun 16, 2006 4:15 pm

Post » Wed Aug 11, 2010 10:31 am

It'll be interesting to see what you get. I have 998 triangles in the Navmesh that produced the error.


and 112 triangles is a small navmesh anyway. The GECK asks you to take a chill pill when you hit 2000, so.. yeah. 112 just ain't all big, and stuff.
User avatar
Enny Labinjo
 
Posts: 3480
Joined: Tue Aug 01, 2006 3:04 pm

Post » Wed Aug 11, 2010 3:50 pm

So, here's what I've found:

112 triangles: no bug
207 triangles: no bug
404 triangles: no bug (also, I added a cut-out hole like pkliess did at this point)
810 triangles: ack! bug!

Ha! there it is! I can finally see it in one of my own cells now. But... 810? That seems a pretty low number to have to shoot for, for larger interiors... probably less than that, dunno.

Now... I deleted the very last room that I added. [tests some more]

667 triangles: no bug

Then, I re-added the bottom floor.

747 triangles: no bug

Next, I re-added the stairs and upper level on one side.

777 triangles: no bug

Finally, I re-added the stairs and upper level on the other side.

811 triangles: ack! bug! kill it!

I'm not sure. Maybe its got something to do with how much memory is being taken up by objects in the cell? Wait... I'm pretty sure that my cell has more objects in it than pkleiss's... and surely more memory is taken up, even without the navmesh. [scratches forehead] :shrug: I've got nothing.
User avatar
Jessica Lloyd
 
Posts: 3481
Joined: Fri Aug 25, 2006 2:11 pm

PreviousNext

Return to Fallout 3