PyFFI and broken meshes

Post » Sat Feb 19, 2011 8:55 am

I recently used PyFFI to optimize every single mesh I had - everything that had been modded in or that was in a BSA. I've been warned, however, that any hair, helm, and hood meshes (excluding false positives like "monkshood" or "chair", or any _gnd file) should be skipped, because they tend to be "broken" by PyFFI.

What does "broken" in this context mean, exactly? So far everything seems to look fine, with the exception that on my female Khajiit character, stray tufts of hair on one side of her head have transparency issues when viewed from such an angle that they overlay her head. Is this the sort of "brokenness" I should be looking out for?
User avatar
KU Fint
 
Posts: 3402
Joined: Mon Dec 04, 2006 4:00 pm

Post » Sat Feb 19, 2011 7:05 am

On the same topic, about the latest version:

If you right click the folder where you want to run the niftoaster, does it skip saving files if they are not smaller?

Or do we have to use some sort of configuration for that?
User avatar
Samantha Pattison
 
Posts: 3407
Joined: Sat Oct 28, 2006 8:19 pm

Post » Sat Feb 19, 2011 11:51 am

On the same topic, about the latest version:

If you right click the folder where you want to run the niftoaster, does it skip saving files if they are not smaller?

Or do we have to use some sort of configuration for that?


Ulrim, that's a good question. My understanding is that you shouldn't necessarily skip saving larger files. This is because native Oblivion only uses tri-strips whereas PyFFI can use tri-shapes, which are larger in size than tri-strips but nevertheless more efficient.
User avatar
Jack Moves
 
Posts: 3367
Joined: Wed Jun 27, 2007 7:51 am

Post » Sat Feb 19, 2011 3:58 am

hm. I see.

If the issues appearing are like that, and since it is programmed to skip files it can't handle, it should be rather safe to do a run on the entire mesh folder. What else?
User avatar
Rik Douglas
 
Posts: 3385
Joined: Sat Jul 07, 2007 1:40 pm

Post » Sat Feb 19, 2011 5:49 am

If the file is larger, it's because PyFFI fixed something. Keep it.

As far as I know, PyFFI now automatically skips any problematic files. It should be entirely safe to right-click on a folder and optimize it that way.
User avatar
Valerie Marie
 
Posts: 3451
Joined: Wed Aug 15, 2007 10:29 am

Post » Fri Feb 18, 2011 10:07 pm

Well, I'm going to try it out.

What's the deal with the nightmotherstatuebase.nif?
User avatar
Sara Johanna Scenariste
 
Posts: 3381
Joined: Tue Mar 13, 2007 8:24 pm

Post » Sat Feb 19, 2011 3:17 am

Well, I'm going to try it out.

What's the deal with the nightmotherstatuebase.nif?


Skip the file, two of the three the children are a little deformated after optimizing.
User avatar
Haley Cooper
 
Posts: 3490
Joined: Wed Jun 14, 2006 11:30 am

Post » Sat Feb 19, 2011 2:02 am

What does "broken" in this context mean, exactly?

http://i33.photobucket.com/albums/d93/Snargelfargen/helmet.jpg
User avatar
Andrea P
 
Posts: 3400
Joined: Mon Feb 12, 2007 7:45 am

Post » Sat Feb 19, 2011 12:06 am

But the helmet.nif has a helmet.egm and helmet_gnd.nif associated, no?
Isn't the niftoaster supposed to skip these?

I'm curious about the folders effects, magiceffects, weapons and the creatures that were deformed (?).

I have the meshes pyffied and packed into bsa (already had a few folders Pyffied). If I find anything else, I'll report.
User avatar
Stephanie Nieves
 
Posts: 3407
Joined: Mon Apr 02, 2007 10:52 pm

Post » Sat Feb 19, 2011 11:33 am

Skip the file, two of the three the children are a little deformated after optimizing.


When I did it, the entire statue was deformed. I also couldn't do any signs. While they looked OK, they attached to their respective poles half way to the ground, far below where they were supposed to.
User avatar
Samantha Mitchell
 
Posts: 3459
Joined: Mon Nov 13, 2006 8:33 pm

Post » Sat Feb 19, 2011 8:47 am

http://i33.photobucket.com/albums/d93/Snargelfargen/helmet.jpg


Thanks showler. Regarding the hair--I mentioned in the opening post a transparency issue on my Khajiit character's hair. Only on the left side of her head, the mesh transparencies on the stray tufts of hair don't work correctly - hair and other features underneath those tufts will disappear at certain angles. It's tough to describe so pic attached - take a look at the left (with transparency issues) versus the right (no issues).
Is this likely also due to PyFFI optimization or some other factor?
http://i801.photobucket.com/albums/yy295/jtrevor99/HairTransparency.jpg


BTW - I used Oblivion PyFFI Automator, a program available on TESNexus, to do this work. As far as I can tell, the automator does not honor the PyFFI "file skip list" because it seemed to work on all the hair, helm, hood, etc. files.
User avatar
NIloufar Emporio
 
Posts: 3366
Joined: Tue Dec 19, 2006 6:18 pm

Post » Sat Feb 19, 2011 5:50 am

Is this likely also due to PyFFI optimization or some other factor?
http://i801.photobucket.com/albums/yy295/jtrevor99/HairTransparency.jpg


That's not a transparency issue, but inaccurate egm file for this certain hair mesh.
Open helmets and hair have corresponding egm files - these files contain info how to properly wrap helmet or hair around different head shapes (heads can be bulky or slim, high or short, etc.). Without egm files either hair or helmets wouldn't "know" how to fit properly the shape of a head mesh without clipping.

The point with PYFFI is that each egm file is generated for particular mesh, and PYFFI when tries to "fix" such a mesh quite often changes its geometry data in the same time as well (by removing duplicate verts for instance. etc) - in such a case egm data become inaccurate due to a changed original mesh - that's why you can notice some clipping issues there.
So in fact, if you PYFFI a particular open helmet or hair mesh and if you want it to behave "civilized" ;] you need to generate a new egm file for this PYFFI'ed mesh. But as far as I remember, there's Scanti's conformulator which can generate egm files but it allows to chose only one head mesh, so still such egm files won't be as accurate as originals.
In other words, due to reasons above, it's better not to touch any hair or open helmets meshes with PYFFI at all.
User avatar
Brandon Bernardi
 
Posts: 3481
Joined: Tue Sep 25, 2007 9:06 am

Post » Sat Feb 19, 2011 8:28 am

In other words, due to reasons above, it's better not to touch any hair or open helmets meshes with PYFFI at all.


Isn't it supposed to be automatic?
From pyffi changelog:
Release 2.1.0 (Jan 10, 2010)
(...)
The niftoaster opt_geometry spell now always skips nif files when a similarly named tri or egm file is found.

User avatar
Michelle davies
 
Posts: 3509
Joined: Wed Sep 27, 2006 3:59 am

Post » Sat Feb 19, 2011 2:03 pm

That's not a transparency issue, but inaccurate egm file for this certain hair mesh.
Open helmets and hair have corresponding egm files - these files contain info how to properly wrap helmet or hair around different head shapes (heads can be bulky or slim, high or short, etc.). Without egm files either hair or helmets wouldn't "know" how to fit properly the shape of a head mesh without clipping.


Thanks for the explanation! I'm not very familiar with the differences between NIF, EGM, GND, etc. files so appreciate the help.
On your recommendation, I went back and restored all the original NIF (mesh) files if they had a corresponding EGM file, so that the EGM data would be accurate again. Unfortunately, this did not fix the particular "hair" issue we're talking about here. Do you have any other suggestions on ways to fix this issue? Should I restore ALL hair, hood, helm NIFs regardless of whether they have an EGM file? How about the various _gnd files?

Could it be something as simple as a filedate that's preventing the fix from working?
User avatar
des lynam
 
Posts: 3444
Joined: Thu Jul 19, 2007 4:07 pm

Post » Sat Feb 19, 2011 11:40 am

I wish I could see what your exact complaint is about the image. I'm missing something obviously.

I know that Oblivion has long had a problem with layered transparencies. Stand under a waterfall and watch your hair disappear.
User avatar
Ernesto Salinas
 
Posts: 3399
Joined: Sat Nov 03, 2007 2:19 pm

Post » Fri Feb 18, 2011 10:42 pm

I wish I could see what your exact complaint is about the image. I'm missing something obviously.

I know that Oblivion has long had a problem with layered transparencies. Stand under a waterfall and watch your hair disappear.



Yeah, it's really only obvious what I'm talking about with the hair layering issue if you're able to turn the character from side to side in-game. But the screenshot I link to above should give you some idea of what's going on. Basically there's a transparent box around each tuft of hair that will make the underlying hair, as well as some other features (like the headband), disappear at certain angles.

I think I have an idea of what I did wrong. I restored any NIF in the BSAs or /Data directory that had a corresponding EGM file. But I didn't stop to consider that a lot of the files in the /Data folder (which, for example, were created by the Unofficial Patches) are still using the original EGM file in the BSA. For example, there may be a khajiithair.nif and khajiithair.egm file in the BSA, but only a khajiithair.nif in the /Data folder. In that case the BSA version of khajiithair.nif would not have been PyFFI'd, but the /Data version would have been. If I restore ALL of the hair, hood, helm, teeth, tongue, etc. files in the /Data directory, that should fix the issue...

EDIT: Yep, that's exactly what the problem is--problem fixed. NIFtoaster is smart enough to skip NIF files with an associated EGM file, which should be fine whenever it's processing one of Bethesda's BSA files. However, that doesn't work in the Data folder because oftentimes a new mesh in Data will be using a Bethesda EGM file buried in the BSA. It's necessary therefore to manually undo optimization of any helm/hair/hood/etc. NIF files in the Data folder, if Data doesn't contain a paired EGM file.
User avatar
Camden Unglesbee
 
Posts: 3467
Joined: Wed Aug 15, 2007 8:30 am

Post » Sat Feb 19, 2011 2:13 pm

OK, so now that that bug's been figured out...

A related question, this time on Python. I was told that I should use Python version 2.6.x (current 2.6.5) with PyFFI, though there is a version 3.1.2 available. Is 3.1.2 compatible with PyFFI, and, if so, is there any advantage to using it over 2.6.5?
User avatar
Marina Leigh
 
Posts: 3339
Joined: Wed Jun 21, 2006 7:59 pm

Post » Sat Feb 19, 2011 5:37 am

Thx Trolf for explanation and BFG99 for answering my question.

From Python.org:
"more existing third party software is compatible with Python 2 than Python 3 right now."

Basically, some similar functions in Python version 2.x series were reworked and improved in Python version 3.x series.
This can cause certain scripts to not work with both versions at the same time.

Wrye Bash, for instance, would have to be updated to support the new Python 3.x series.
User avatar
Jonny
 
Posts: 3508
Joined: Wed Jul 18, 2007 9:04 am


Return to IV - Oblivion