Jump to content

PYFFI for the bewildered


MarkInMKUK

Recommended Posts

Edit: That subtitle should say "simplify" not "simply" - typraxia lures, K.O.!

 

Edit: Updates to come - the PYFFI versions have moved on, and as I need to perform a re-install of Oblivion anyway, now is a good time to update the walkthrough. More to follow soon...

 

I'm starting out with PYFFI, and working my way through all the beginner's pitfalls. If you read this, you may avoid my most obvious error(s).

 

Stage 1

 

Download PYFFI (link). This may seem simple, but there are a couple of tiny hiccups. First, you need Python 2.6 installed already. So if you have Wrye Bash (Python version) already installed, breathe a sigh of relief. Secondly, there are a couple of recent releases of PYFFI which appear to have a slight problem with the collision mesh optimisation - so either use PYFFI 2.1.7 or earlier, or 2.1.10 or later (the latter is currently in beta version but seems to work for me).

 

Stage 2

 

Install PYFFI. Nothing too complicated here? Wrong! There's the usual problem with a Program File-based installation on Windows Vista or Windows 7. So if you have those OS's, install to C:\PYFFI or copying meshes to the "In"/Out folders is a nightmare.

 

Stage 3 - Download Oblivion - PyFFI Optimization Kit v7.

 

The oblivion_optimize.ini file for PYFFI which is supplied as standard has one item missing from its list of "ignore this" items - the base of the Night Mother's statue. You can either add in the name of this .nif file to the ignore section (as the TESCOSI walkthrough advises), or download the kit I suggest. There are other advantages to my approach - you then run four separate optimisation passes, for four different reasons, including the secondary DistantLOD pass also recommended by TESCOSI (I looked at the instructions there, and couldn't work out what to do with them, so gave up - the usual problem with someone who is familiar with a process writing a How To - they miss out the stuff they consider "obvious").

 

Stage 4

 

Open the archive downloaded in stage 3, and copy the files inside it to your PYFFI/Utilities/Toaster directory - where you should already find a file called oblivion_optimize.ini.

 

Stage 5

 

Right-click the file called run_oblivion_optimization.bat and select "Send to... Desktop (create shortcut)". This will place a link on the desktop to help you run the process.

 

Stage 6

 

Right-click the "in" folder and select "Send to... Desktop (create shortcut)". This will place a link on the desktop to open the folder to check its contents.

 

Stage 7

 

Right-click the "out" folder and select "Send to... Desktop (create shortcut)". This will place a link on the desktop to open the folder to check its contents.

 

Stage 8

 

Now you can start trying to extract files and optimisze them. I suggest the following process (if you have Knights of the Nine installed) - Start by making a copy of Knights.bsa (called Knights.bsa.old or something equally obvious), then run OBMM - select Utilities > BSA Browser > Open > Select "Knights.bsa", then once the files have loaded select "Extract all" and navigate to your PYFFI/in folder. Once the files have extracted, double-click the "in" link on the desktop (you DID make one?) and check that the meshes folder from knights.bsa is there. If you see a heap of files, or a folder called "knights", or something odd like that, you did something wrong.

 

Stage 9

 

Run PYFFI. Double-click the shortcut on the desktop to run the batch file. If you are running Windows 7 (and probably Vista), this will pop up a message asking whether you want to allow Python.exe to modify files on your computer. I very strongly suggest that you answer "Yes" at that point, or nothing will happen to the meshes. The process will begin to run. Go watch a tV programme for a while - it's not a fast process.

 

Stage 10

 

When you come back, there should be either (a) a message saying "Running Pyffi - General optimization: Running Pyffi Optimize ..." in a black text window or (b) a message to say the process is finished, and you can close the window now - do so.

 

Stage 11

 

Use the desktop shortcut to open the "output" folder, and check that there is a "meshes" folder there. This contains the "improved" .nif and .kf files.

 

Stage 12

 

Run OBMM again - select Utilities > BSA Creator, and select "Add folder" - browse to your "in" folder and add that. Then click "Add folder" again and select your "out" folder - this will replace the original meshes with changed ones where they have been altered. Then, finally, click "Create" and browse to your original Knights.bsa file - select it - and when you have clicked OK, answer "yes" to the prompt about overwriting it. When the writing process is complete, run Oblivion and check whether everything appears to work ok.

 

Stage 13

 

HOUSEKEEPING!!!! Open the "in" folder and delete EVERYTHING in it. Do the same with the "out" folder. If you don't, your next repackaged .bsa will contain all the contents from knights.bsa as well as the meshes you intended it to contain.

 

Stage 14

 

Partake of the drink of your choice, and raise a toast to those poor, mad souls slaving away to make PYFFI a great utility, AND to those who understand that some of us are not programmers and actually need things to be made simple.

 

So, now for the Step-by-step of my own installation:

 

Using OBMM (mods), TES4Edit (cleaning), PYFFI (Simplifying meshes), BOSS (sorting), and Wrye Bash (Bashed Patch), with PYFFI v2.1.10 Beta3.7 and Oblivion - PyFFI Optimization Kit v7.

Oblivion Game of the Year edition.

 

Install Oblivion.

Install Shivering Isles (Patches game to v1.2.0.416).

Install Knights of the Nine.

 

Extract "Oblivion - Meshes.bsa", PYFFI meshes, recreate bsa archive.

Extract "DLCShiveringIsles - Meshes.bsa", PYFFI meshes, recreate bsa archive.

Extract "Knights - Meshes.bsa", PYFFI meshes, recreate bsa archive.

 

Extract, clean, repackage as OMOD, and install all DLC mods.

 

Extract "DLCBattlehornCastle.bsa", PYFFI meshes, recreate bsa archive.

Extract "DLCFrostcrag.bsa", PYFFI meshes, recreate bsa archive.

Extract "DLCHorseArmor.bsa", PYFFI meshes, recreate bsa archive.

Extract "DLCOrrery.bsa", PYFFI meshes, recreate bsa archive.

Extract "DLCThievesDen.bsa", PYFFI meshes, recreate bsa archive.

Extract "DLCVileLair.bsa", PYFFI meshes, recreate bsa archive.

 

PYFFI and apply Unofficial Oblivion Patch v3.4.1.

PYFFI and apply Unofficial Shivering Isles Patch v1.5.0.

Extract Unofficial Official Mods Patch v16, remove "DLCVileLair - Unofficial Patch - SSSB.esp", PYFFI, repackage and apply.

 

Install SM Plugins Refurbish (Merged) v1.21

 

Extract, clean, extract & PYFFI meshes & rearchive, repackage and install Harvest [Flora] v3.0.1.

 

Install OBSE V20.

Install Fast Exit 2.1.0.

Install weOCPS v1.0.

Install Smaller Elf Ears FIXED v1.0. (I *loathe* donkey-ears or lop-rabbit-ears on my elves - the Vulcanesque ones are FAR neater)

 

Comments below please - I *will* edit and expand this top post in line with any sensible suggestions.

 

Oh, and the reason for using "Knights.bsa" in the initial test? It's small, and finished up in just a few minutes on my gaming rig. I've just PYFFId Oblivion - meshes.bsa and it took a shade over 10 hours (OK, so I set it to run single thread, but it IS a 3 GHz Machine) ... amazing how boring screen after screen of technobabble looks...

 

Final note - once you have PYFFId a file, save the original AND PYFFId version in a safe place - you don't want to have to do this a second time if you reinstall stuff.

Edited by MarkInMKUK
Link to comment
Share on other sites

OK- you know I don't understand a thing about this. However, I happened to be looking for something that may simplify, or in other words, reduce my computer's amount of work with the meshes whilst running oblivion. Could this improve my frames per second in any way or... I better get out of this thread and stop asking stupid questions? :sweat:

 

I apologize if my question is completely out of place...

Link to comment
Share on other sites

That is specifically what PYFFI is for - it simplifies the meshes so the computer has less work to do, which should edge up the FPS a bit. Warning: it's not fast - I've now been running PYFFI for six hours on my Oblivion - meshes.bsa files - this IS, however, set to only run ONE thread leaving one core of my 3GHz dual core free to run other stuff. It would only take half as long in multi-thread mode on a dual core beastie. Edited by MarkInMKUK
Link to comment
Share on other sites

There is also a PYFFI Patcher - which will JUST work on the main bsa files and improve the speeds for THOSE meshes. It should be FAR faster but I've never used it myself.

 

Remember - if you have installed some of the replacement mesh mods, these meshes will NOT be affected by the patcher - but the main PYFFI version WILL attempt to optimize them if they are fed into it.

Edited by MarkInMKUK
Link to comment
Share on other sites

If I uploaded the .BSA file, I'd be uploading something which was, for legal purposes, a piece of copyright material. The PYFFI Patcher is the closest you'll get to an uploaded .BSA - it changes JUST the binary content of the BSA files to make them into a copy of the processed file. But, as I said, it only works for the few files they have released patches for.

 

There IS a program called QuickPAR which can be used to patch files, and people could generate .par files from the processed files, compare with the original files, and create enough "blocks" of data to update the original file, then upload those ... but that'd be a whole new file format for the Nexus to handle. Unless and until Dark0ne approves that approach, I'm not even going to go there...

Edited by MarkInMKUK
Link to comment
Share on other sites

Would it also be copyright infringement uploading a PyFFied file from a mod, with permission of the mod author? O is it impossible to upload the files without recompressing them? (if I understood things right....) That was precisely what I was looking for.

 

Also, please post your performance boost after everything is working back again! It would be great knowing how effective is it.

Link to comment
Share on other sites

A mod author can give you permission to upload a PYFFId version, that gets around the copyright problem. However, for most mods the performance gain will be small - it';s the sheer size of the original mesh .bsa's which should give a noticeable performance boost
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...