Should I run this instead of PyFFI Optimization kit, or do I use this after the optimization kit?
I'm really not sure if either the binary kit or the optimisation kit are the best things to use any more.
What I've done is install PyFFI 2.1.11 itself (I haven't tried the 3k version)
When that's installed there's a directory: C:\Program Files (x86)\PyFFI\utilities\toaster\in
Which I put my NIFs in. I then just run a batch file: C:\Program Files (x86)\PyFFI\utilities\toaster\oblivion_optimize.bat
And that performs a three-step optimisation process, which caters for the Oblivion meshes which should not be modified (as the optimisation kit does). So, basically, the optimisation kit is included with PyFFI itself.
I'm not sure if this is the best place to post this, but if you're trying to use the latest release of PYFFI in 2020 (2.2.2), the 3.2.5 version of Python seems to run it okay. I had trouble with the 3.3.X versions, despite being listed in the PYFFI installer. No idea if it's the recommended or best version or anything like that.
Yes it still takes a while (i3-6100). (About 2 hours).
@Xtyfe00 Apparently fixed: "Just a quick heads up that the havok issue (collisions being removed in many if not most static objects) has been identified & fixed in 2.1.9-beta6 (just released)." http://forums.bethsoft.com/index.php?/topic/1172342-relzwipzpyffi-python-file-format-interface/page__view__findpost__p__17311694
Yes, this tool works for meshes from other modifications as well. However, creating patches is disabled by default for now.
I'm working in a simple windows interface to let you do just that and allow distribution of patches. I do this in my spare time so please bear with me.
Check my last post how to create patches by editing 'patcher.py'.
I already did. It's in the python code inside 'patcher.py'.
(Paraphrasing one of my posts at bethsoft forums My utility can create patches without having to run PyFFI (that's how I created the patch files but it's disabled by default - more on this below). Since I wrote it in python it will be easier to turn it into a window application and ditch the command line batch script. But that's for when I have some spare time ">
To create patches with PyFFI, pass the '--diff' command to niftoaster.py (though the patches created this way cannot be used directly by my utility because of the file extension).
With my 'Oblivion - PyFFI Binary Patch Kit' you'd have to do the following:
Place the original meshes inside 'in'. Place the optimized meshes inside 'out'. Open 'patcher.py' with a text editor and at the end change:
Run or double-click 'run_patcher.bat' and patch files are created inside 'patch' folder, recursively.
The reason I have not documented this is because this tool is very straightforward and unpolished. An average savvy person would have no trouble doing these steps I just mentioned. However, it would become a nightmare to help those who have a hard time moving folders, let alone edit configuration files. In my spare time I'd like to extend this functionality in a simple as possible way. Please bear with me.
I am endorsing based on the authors assurance that this works.
Although I am grateful for the endorsement, by no means should you take only my word for it. You can test this tool works exactly as intended yourself.
Using the original 'Oblivion - Meshes.bsa' and the provided patch compilation 'BinPatchKit Oblivion Meshes PyFFI219b6' I can give a test example like so:
Extract 'meshes\architecture\anvil\anvilfightersguild01.nif' from 'Oblivion - Meshes.bsa'. Save it as 'C:\test\original\anvilfightersguild01.nif' Copy it to 'C:\test\optimized\anvilfightersguild01.nif' Optimize 'C:\test\optimized\anvilfightersguild01.nif' with 'PyFFI 2.1.9 - beta 6' (either by right-clicking on it or using my 'Oblivion - PyFFI Optimization Kit').
Now, as example, suppose 'Oblivion - PyFFI Binary Patch Kit' is installed in 'C:\PatchKit\'
Copy 'C:\test\original\anvilfightersguild01.nif' to 'C:\PatchKit\in\anvilfightersguild01.nif' Extract 'meshes\architecture\anvil\anvilfightersguild01.vcdiff' from 'BinPatchKit Oblivion Meshes PyFFI219b6' archive you downloaded. Save it as 'C:\PatchKit\patch\anvilfightersguild01.vcdiff'. Apply the patch by running 'C:\PatchKit\run_patcher.bat'
You can now compare 'C:\PatchKit\out\anvilfightersguild01.nif' with 'C:\test\optimized\anvilfightersguild01.nif' and see for yourself.
As a side note, I use 'Oblivion - PyFFI Optimization Kit' in all my optimizations.
11 comments
What I've done is install PyFFI 2.1.11 itself (I haven't tried the 3k version)
When that's installed there's a directory:
C:\Program Files (x86)\PyFFI\utilities\toaster\in
Which I put my NIFs in. I then just run a batch file:
C:\Program Files (x86)\PyFFI\utilities\toaster\oblivion_optimize.bat
And that performs a three-step optimisation process, which caters for the Oblivion meshes which should not be modified (as the optimisation kit does). So, basically, the optimisation kit is included with PyFFI itself.
Yes it still takes a while (i3-6100). (About 2 hours).
Should I run this instead of PyFFI Optimization kit, or do I use this after the optimization kit?
Apparently fixed:
"Just a quick heads up that the havok issue (collisions being removed in many if not most static objects) has been identified & fixed in 2.1.9-beta6 (just released)."
http://forums.bethsoft.com/index.php?/topic/1172342-relzwipzpyffi-python-file-format-interface/page__view__findpost__p__17311694
Yes, this tool works for meshes from other modifications as well.
However, creating patches is disabled by default for now.
I'm working in a simple windows interface to let you do just that and allow distribution of patches.
I do this in my spare time so please bear with me.
Check my last post how to create patches by editing 'patcher.py'.
Regards,
Ulrim.
I already did. It's in the python code inside 'patcher.py'.
(Paraphrasing one of my posts at bethsoft forums
My utility can create patches without having to run PyFFI (that's how I created the patch files but it's disabled by default - more on this below).
Since I wrote it in python it will be easier to turn it into a window application and ditch the command line batch script. But that's for when I have some spare time
To create patches with PyFFI, pass the '--diff' command to niftoaster.py (though the patches created this way cannot be used directly by my utility because of the file extension).
With my 'Oblivion - PyFFI Binary Patch Kit' you'd have to do the following:
Place the original meshes inside 'in'.
Place the optimized meshes inside 'out'.
Open 'patcher.py' with a text editor and at the end change:
scan(s_dir, s_list)
#scan(t_dir, t_list)
scan(p_dir, p_list)
#create_patch(s_list, t_list)
apply_patch(s_list, p_list)
to:
scan(s_dir, s_list)
scan(t_dir, t_list)
scan(p_dir, p_list)
create_patch(s_list, t_list)
#apply_patch(s_list, p_list)
Run or double-click 'run_patcher.bat' and patch files are created inside 'patch' folder, recursively.
The reason I have not documented this is because this tool is very straightforward and unpolished.
An average savvy person would have no trouble doing these steps I just mentioned. However, it would become a nightmare to help those who have a hard time moving folders, let alone edit configuration files.
In my spare time I'd like to extend this functionality in a simple as possible way. Please bear with me.
Although I am grateful for the endorsement, by no means should you take only my word for it. You can test this tool works exactly as intended yourself.
Using the original 'Oblivion - Meshes.bsa' and the provided patch compilation 'BinPatchKit Oblivion Meshes PyFFI219b6' I can give a test example like so:
Extract 'meshes\architecture\anvil\anvilfightersguild01.nif' from 'Oblivion - Meshes.bsa'.
Save it as 'C:\test\original\anvilfightersguild01.nif'
Copy it to 'C:\test\optimized\anvilfightersguild01.nif'
Optimize 'C:\test\optimized\anvilfightersguild01.nif' with 'PyFFI 2.1.9 - beta 6' (either by right-clicking on it or using my 'Oblivion - PyFFI Optimization Kit').
Now, as example, suppose 'Oblivion - PyFFI Binary Patch Kit' is installed in 'C:\PatchKit\'
Copy 'C:\test\original\anvilfightersguild01.nif' to 'C:\PatchKit\in\anvilfightersguild01.nif'
Extract 'meshes\architecture\anvil\anvilfightersguild01.vcdiff' from 'BinPatchKit Oblivion Meshes PyFFI219b6' archive you downloaded.
Save it as 'C:\PatchKit\patch\anvilfightersguild01.vcdiff'.
Apply the patch by running 'C:\PatchKit\run_patcher.bat'
You can now compare 'C:\PatchKit\out\anvilfightersguild01.nif' with 'C:\test\optimized\anvilfightersguild01.nif' and see for yourself.
As a side note, I use 'Oblivion - PyFFI Optimization Kit' in all my optimizations.
Regards,
Ulrim
Time efficiency.
For example: I already run PyFFI on the 'Oblivion - Meshes.bsa' meshes and uploaded a Binary Difference package.
You can patch all 'Oblivion - Meshes.bsa' meshes in 5 minutes (depending on your computer) instead of running PyFFI for hours.
Regards,
Ulrim