http://www.tesnexus.com/downloads/file.php?id=37463
- Pre-configured set of ini files, directed primarily at mod users, with instructions for safely and easily optimize any Oblivion meshes with PyFFI.
- place the meshes (or folders with meshes) to be optimized inside the "in" folder.
- run or double-click "run_oblivion_optimize.bat".
- after the optimization finishes, meshes that were optimized are placed inside folder "out", respecting the directory structure inside the "in" folder as usual.
1 launch script, 4 ini configuration files, 2 folders "in" and "out".
Generic PyFFI optimization process in 3 steps:
Full Readme and Details:
Version: 7
Date: 2011/03/11
Category: Utilities
Requirements: Python 2.6.6, PyFFI 2.1.6 or greater
Author(s): ulrim
Source: http://www.tesnexus.com/downloads/file.php?id=37463
Forum: http://www.gamesas.com/index.php?/topic/1172029-relz-oblivion-pyffi-optimization-kit/
Description
======================================================================
Pre-configured set of ini files, directed primarily at mod users, with instructions for safely and easily optimize any Oblivion meshes with PyFFI.
Details
======================================================================
This package contains four ini configuration files, one batch file and the folders 'in' and 'out'.
To use PyFFI optimization safely, this package uses a method comprising four passes, described in each ini file, accordingly:
1st pass - optimizes meshes with a general skip list as safeguard.
2nd pass - applies texture path fixes to skipped meshes, where appropriate.
3rd pass - checks for meshes that should be optimized and were skipped in the earlier general skip list.
4th pass - checks for _far.nif meshes and applies optimisation as needed.
Usage
======================================================================
To start the optimization process, follow these steps:
Step 1 - place the meshes (or folders with meshes) to be optimized inside the 'in' folder.
Step 2 - run or double-click 'run_oblivion_optimize.bat'.
Step 3 - after the optimization finishes, meshes that were optimized are placed inside folder 'out', respecting the directory structure inside the 'in' folder as usual.
Install
======================================================================
Create a folder somewhere at your discretion, i.e. 'C:\Oblivion - PyFFI Optimization Kit\'.
Unpack the contents of this archive to the respective folder.
Uninstall
======================================================================
Delete the folder where you unpacked the contents of this archive.
Upgrade
======================================================================
N/A
Incompatibility
======================================================================
N/A
Release Notes
======================================================================
Tests made using PyFFI 2.1.6 to 2.1.9b5 (using mesh collision bug fix):
- fully optimized Oblivion - Meshes.bsa, DLCShiveringIsles - Meshes.bsa, Knights.bsa: no problems found.
- meshes from mods such as Oscuro's Oblivion Overhaul, FCOM, Warcry, QTP3: no problems found.
The chosen method to use PyFFI allows fine control of each step of the optimization process and easy configuration of each optimization pass. The final result is also kept separate from the original meshes, should you wish to inspect what was optimized and what was not. The log files appear next to the ini files, numbered accordingly and are (re)created after each optimization run.
For further details, follow the current PyFFI thread at the official elderscrolls forums:
http://www.gamesas.com/index.php?/topic/1158842-inforelz-pyffi-python-file-format-interface/
Refer to http://tesivpositive.animolious.com/?page=pyffi for a more comprehensive guide.
Known Issues and Bugs
======================================================================
PyFFI versions 2.1.8 and 2.1.9 beta 5 have a bug affecting the collision mesh optimization.
There's a fix (see source web site) while official PyFFI is not updated.
Variables used in 'run_oblivion_optimize.bat':
If Python 2.6 is not installed in 'C:\Python26\', set 'PYTHON_PATH' to the directory where python is installed.
PyFFI manages threads of execution (jobs) by default. To make the computer more responsive while performing PyFFI, set the variable 'JOBS=n' where 'n' is a number less than the total cores in your cpu (hyper-threading included).
By default, the batch script executes the optimization process immediately. It shows a menu only in case python was not found or if you set 'SHOW_MENU=1'.
Other considerations:
Logging may produce out of order lines due to the number of jobs (threads) writing output simultaneously to the log files. Occasionally, there may be missing log lines. Set JOBS=1 in the batch script for more accurate logging during testing.
Each optimization pass indicates status both in the screen and the window title. Real time progress indicator is not implemented - PyFFI should be running quietly in the background as normal. You can check the logs meanwhile.
Optimization process cannot be resumed.
Version History
======================================================================
Releases follow a version increment approach starting at 1.
7, 2011/03/11
* fixed redundant far.nif optimization.
* updated documentation regarding PyFFI mesh collision bug in versions 2.1.8 and 2.1.9b5.
* added ini installation check.
* updated status information when PyFFI is running.
6, 2011/03/09
* 'run_oblivion_optimize.bat' runs optimization immediately by default.
* extended configurability (still very simple) allows menu to shown up only if set or python is not found.
5, 2011/03/09
* fixed bug affecting path spaces in the batch script.
4, 2011/03/09
* added safeguard for python path in the batch script.
* added pause after optimization completes.
* cleaned 'run_oblivion_optimize.bat' script
3, 2011/03/09
* fixed 'oblivion_optimize_04.ini' for correct optimization of '_far.nif' meshes after the general optimization pass.
* improved 'run_oblivion_optimize.bat' interface.
* removed resuming support.
* cleaned ini configuration.
2, 2011/03/07
* fixed 'oblivion_optimize_02.ini' skip list to allow 'resume = true' work as intended for the next pass.
* fixed 'oblivion_optimize_04.ini' so 'opt_cleanfarnif' spell is applied after the general optimization pass.
1, 2011/03/06
* Initial release.
Contact
======================================================================
You can find me on the Official Elder Scrolls forums and TESNexus as 'ulrim'.
You can send me an e-mail here: ulrimnohraar at gmail dot com.
Credits
======================================================================
Thanks to:
* Bethesda, for making The Elder Scrolls IV: Oblivion.
* TESNexus.com, for the one-stop-shop resource for authors and players.
* Amorilia, for PyFFI and the NIF tools project.
* Arthmoor and H2ODDK, for the regular expressions used in the ini files.
* Tomlong75210, for http://tesivpositive.animolious.com
* All who spend time and effort modding, documenting and building open source software for TES.
Tools Used
======================================================================
7-Zip - http://www.7-zip.org/
Python - http://www.python.org/
PyFFI - http://pyffi.sourceforge.net/
Licensing/Legal
======================================================================
You are free to use any part of this software. It would be nice to let me know of any suggestions, changes or updates you find appropriate.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY WHATSOEVER.
Latest news:
2011/03/14
- http://www.gamesas.com/index.php?/topic/1173353-oblivion-pyffi-binary-patch-kit/ available now! Applying a binary patch is faster than processing the file(s) with PyFFI.
Use together with the http://www.tesnexus.com/downloads/file.php?id=37548 to update your 'Oblivion - Meshes.bsa' with optimized meshes in less time.
2011/03/13
- PyFFI 2.1.9 beta 6 https://github.com/amorilia/pyffi/downloads!
Latest updates:
7, 2011/03/11
- fixed redundant far.nif optimization.
- updated documentation regarding PyFFI mesh collision bug in versions 2.1.8 and 2.1.9b5.
- added ini installation check.
- updated status information when PyFFI is running.
Example step-by-step tutorial how to make a fully optimized 'Oblivion - Meshes.bsa' using this kit:
- Pre-optimization:
- Open OBMM, go to utilities and use BSA Browser to open 'Oblivion - Meshes.bsa'.
Click 'Extract all' and select the 'in' folder as the destination directory.
Double click 'run_oblivion_optimize.bat' and start optimization.
Post-optimization:
- Rename the original file 'Oblivion - Meshes.bsa' to 'ORIGINAL - Oblivion - Meshes.bsa'
(Notice the file name must not start with 'Oblivion').
Open OBMM, use BSA Creator, click 'Add Folders' and select the 'in' folder.
After adding the 'in' folder, click 'Add Folders' again and select the 'out' folder.
(This step overwrites the default meshes with the optimized meshes. These two last steps are necessary for people who have i.e. Windows 7 and want to avoid the truncation of leading spaces in some known files.)
Hit 'Create' button and save it as 'Oblivion - Meshes.bsa'.
After it finishes creating 'Oblivion - Meshes.bsa'', adjust the modified date with an http://tesivpositive.animolious.com/?page=programs_and_utilities to the same modified date as the original file you renamed.
That's it! You did it!
Check the http://tesivpositive.animolious.com for more insight or drop a message if you're in trouble.