Difference between revisions of "Nif Optimization"

536 bytes added ,  14:10, 14 January 2008
updated info about optimizer script
imported>Razorwing
(New page: Category:Modeling_and_Texturing_Tutorials Category:Tutorials Created by Razorwing from [http://www.silgrad.com/ Silgrad Tower] My name is Razorwing from the [...)
 
imported>Amorilia
(updated info about optimizer script)
Line 4: Line 4:
Created by [[User:Razorwing|Razorwing]] from [http://www.silgrad.com/ Silgrad Tower]
Created by [[User:Razorwing|Razorwing]] from [http://www.silgrad.com/ Silgrad Tower]


==Background==


My name is Razorwing from the [http://www.silgrad.com/ Silgrad Tower] team. If you're a 3D Studio Max modeller like me and haven't tried [http://niftools.sourceforge.net/forum/profile.php?mode=viewprofile&u=4 amorilia]'s script before you'll most likely want to read this information.
My name is Razorwing from the [http://www.silgrad.com/ Silgrad Tower] team. If you're a 3D Studio Max modeller like me and haven't tried [http://niftools.sourceforge.net/forum/profile.php?mode=viewprofile&u=4 amorilia]'s script before you'll most likely want to read this information.
Line 29: Line 30:
The script is written in a different language than Nifskope is, so it's not likely it will be incorporated into the program in the foreseeable future. But one of the great things about using the script vs. importing/re-exporting through Blender is that it can do batch operations.
The script is written in a different language than Nifskope is, so it's not likely it will be incorporated into the program in the foreseeable future. But one of the great things about using the script vs. importing/re-exporting through Blender is that it can do batch operations.


==Installation==


To get the script to work you'll need to get [http://www.python.org/download/ Python 2.5] and [http://sourceforge.net/projects/pyffi/ PyFFI 0.4.7] (or later versions if you're reading this in the future). Python is a freeware programming language and executable, while [http://niftools.sourceforge.net/forum/profile.php?mode=viewprofile&u=4 amorilia]'s PyFFI is an interface of sorts between Python and nif files. You'll also need to work through DOS, but if you're uncomfortable using it then don't worry - I'll explain all the steps.
To get the script to work you need Python and PyFFI. Python is an open source programming language, while PyFFI is an interface between Python and nif files.


# Install [http://www.python.org/download/ Python 2.5] (in this article it will be assume that you use the default installation path, C:\Python25).
# Install [http://sourceforge.net/project/platformdownload.php?group_id=199269&sel_platform=3089 PyFFI].


# Install Python first, and then PyFFI.
==Using the Optimizer from the Windows Explorer==
# Create a folder called "python" on your root C:\ drive.
# Make a full backup of all nifs you plan to optimize before proceeding. The script is not yet fully tested and if it runs into a nif it doesn't understand it may corrupt it and thereby destroy it.
# Copy the nifs you want to optimize to "C:\python". You might be tempted to drop a large number of models there, but I wouldn't advise that since the script stops when it runs into a nif it doesn't understand, so it's best to do it one folder at a time.
# Open the start menu in Windows and select Run ([http://s11.photobucket.com/albums/a177/SilgradTower/AmoriliasScript/RunOnStartMenu.jpg img]). In the popup, write cmd and hit enter ([http://s11.photobucket.com/albums/a177/SilgradTower/AmoriliasScript/cmd.jpg img]). Now a DOS window will appear. Write the following. <enter> means hit the enter key without leaving a blankspace at the end.


For simple usage you can use it directly from the Windows explorer.


cd C:\Program Files\Python25 <enter>
#Right click on the nif you wish to optimize.
#Select "Optimize with PyFFI".
#A DOS window will open, asking for confirmation. Type the letter Y and hit enter.
#You will get to see the results of the optimization.
#Test your optimized nif file with nifskope and in the game to make sure that nothing has been lost. If the script makes a visual change to your nif file, report it on the [http://niftools.sourceforge.net/forum/ niftools forum].


python Scripts\nifoptimize.py "C:\python" <enter>
==Using the Optimizer from the Command Prompt==


To use the more advanced features of the nif optimizer, such as batch processing of many nifs with a single command, and excluding particular block types from optimization, you need to use the script through the command prompt. If you are uncomfortable using the command prompt, then do not worry, all the steps are explained.


[[Image:PythonScriptInDos.jpg|thumb| This is what the DOS window should look like if using the default commands.]]
===Running nifoptimize.py in the Windows shell===
 
# Create a folder called "nifoptimize" on your C: drive (the name is not crucial, you can choose whichever folder name you like).
# Make a full backup of all nifs you plan to optimize before proceeding. If the script runs into a bug then it may corrupt your nif and thereby destroy it.
# Copy the nifs you want to optimize to "C:\nifoptimize".
# Open the start menu in Windows and select Run ([http://s11.photobucket.com/albums/a177/SilgradTower/AmoriliasScript/RunOnStartMenu.jpg img]). In the popup, write cmd and hit enter ([http://s11.photobucket.com/albums/a177/SilgradTower/AmoriliasScript/cmd.jpg img]). Now a Windows shell with command prompt will appear. Write


cd C:\Python25
python.exe Scripts\nifoptimize.py C:\nifoptimize


NOTES.
and hit enter.


* In the first line you tell DOS to browse to your Python install folder. If you didn't install it in the same folder as I did then just replace the local url with your own local url. If you're unsure what the local url is, open the start menu then go to "Programs > Python 2.5", right-click any of the shortcuts and choose properties. Open the Shortcut tab, where the local url is displayed in the "Target:" textbox. Write that url in your DOS window in the same format as the example.
[[Image:PythonScriptInDos.jpg|thumb| This is what the DOS window should look like if using the default commands.]]
* In the second line you're telling DOS to make Python run a script and process everything in the folder C:\python. If you created a different folder, for instance because your harddrive has the device letter D:\, just write that instead.


===Notes===


If everything works like it should, you should get a warning and a confirmation prompt. Write the letter Y (in uppercase) and hit return. Now the program will work it's way through all the nifs in the folder.
* The first line tells the Windows shell to go to your Python install folder. If you did not install Python in the default location then just replace the folder with your Python install folder. If you are unsure about where Python is installed, open the start menu then go to "Programs > Python 2.5", right-click any of the shortcuts and choose properties. Open the Shortcut tab, where the Python path is displayed in the "Target:" textbox. Write that url in your DOS window in the same format as the example.
* The second line makes Python run the nifoptimize.py script, which will process all nif files in the folder C:\nifoptimize.


If everything works like it should, you should get a warning and a confirmation prompt. Write the letter Y and hit return. Now the program will work it's way through all the nifs in the folder.


If the script comes across a nif it doesn't understand it will stop working and display an error. Just to avoid any risk of using a corrupted nif you should delete everything in the C:\python folder and start the process over again - but this time without the nif that caused you problems.
If the script comes across a nif it doesn't understand it will display an error, but it should continue working. The problematic nif should be left untouched, but be sure to check with NifSkope, just to avoid any risk of using a corrupted nif.




Don't forget to doublecheck that all nifs work afterwards. If it opens in Nifskope and look alright then I'd say it's a safe bet it's not corrupted.
Don't forget to doublecheck that all nifs work afterwards. If it opens in Nifskope and look alright then I'd say it's a safe bet it's not corrupted.


===Command Line Options===
(WIP: WILL ADD INFO ABOUT THESE LATER)


Good luck, and happy optimizing!
Good luck, and happy optimizing!
Anonymous user