Jump to content
模组网
Sign in to follow this  
icedream

PyFFI 介绍

Recommended Posts

The Python File Format Interface (简称 PyFFI ),是用 Python 编写的开源数据库,用来处理分结构的二进制文件:

  • 简单:在 Python 环境下读取、写入、修改复杂的二进制变得非常简单方便!当前,PyFFI支持 NetImmerse/Gamebryo NIF 格式与 KFM 格式,CryTek 的 CGF 格式,FaceGen 的 EGM 格式,DDS 格式,和 TGA 格式。
  • 全套:许多3D游戏所需要的工具,如optimizers(优化), stripifier, tangent space calculator, 2d/3d hull algorithms, inertia calculator、以及通用文件编辑器QSkype(使用PyQt4),都包括在内。
  • 模块化:高度模块化,这意味着不论是扩展已有的功能,或者添加对新格式的支持,都变得更方便

下载 · Download
源地址:SourceForge载点 | Github载点
几个湮没PyFFI资源:湮没本体模型PyFFI优化湮没官方DLC优化一体包,更多资源请搜索PyFFI

需求 · Requirements
需要 Python,如果想使用QSkope的,你还需要 PyQt4

安装 · Installing
你会发现下载那边有两个版本

  • pyffi-py3k:给 Python 3.x 使用的
  • pyffi:给 Python 2.x 使用的

如果你还是不明白究竟是该下载哪个版本,那我们推荐的是下载 pyffi ,同时的,你还需要下载并安装 Python 2.7.3
如果你下载的是 pyffi-py3k,则你需要下载安装的是:Python 3.2.3
下载 PyFFI 的安装程序时,建议下载 .exe 格式的。
注意事项:vista/win7/win8 用户因为 UAC 问题不要把程序安装到 C:\Program Files 下

卸载 · Uninstalling
如果你是使用 .exe 安装的程序,可以到系统控制面板卸载;
如果你是使用压缩包手动安装的程序,可以删掉安装目录以及 C:\Python27\Lib\site-packages\pyffi 或者 /usr/lib/python2.7/site-packages/pyffi。

功能介绍 · Features
上面已提到 PyFFI 含有许多的功能,其功能主要是通过脚本来实现的,这些脚本通常叫做 Spell。
PyFFI提供许多可用的spells,其中最重要的就是优化(Optimize),除此之外,还有一些常见的的,比如

Modify_makefarnif
Modify_texturepath
Modify_collisiontype
Modify_Scaleanimationtime
Modify_reverseanimation

我们只要懂得 Optimize 就够了

工作原理 · How It Works
Optimize的工作原理:移除mesh文档中重复/空白/不需要的数据,从而减轻GPU的负荷

使用说明 · Usage

  • 把你要优化的文件放到 PyFFI\utilities\toaster\in 内
  • 运行 oblivion_optimize.bat
  • 等待运行完毕,优化好的文件会放到 PyFFI\utilities\toaster\out 内
  • 如果你要打包文件成 BSA 的话,请参考下面使用实例的介绍

使用实例 · Example
PyFFI优化原版BSA:

  • 备份好原版BSA;
  • 用OBMM的 BSA broswer(BSA浏览器) 功能将BSA解压到 PyFFI\utilities\toaster\in 目录下
  • 运行 oblivion_optimize.bat 开始优化
  • 打开OBMM的 BSA creator(BSA创建器) 工具。
  • 添加 PyFFI\utilities\toaster\in 文件夹。
  • 添加 PyFFI\utilities\toaster\out 文件夹。
  • 单击 Creat,创建BSA
  • 使用OBMM的 Reset BSA timestamps(重置BSA时间戳) 重置BSA的修改时间
  • 如果你遇到了原版mesh文件名空格丢失的问题,可以使用此插件:PyFFI-Optimized Vanilla Meshes Patch.esp

>>几个要点:1)第一要点是BSA解压的位置要正确,不要手动移动文件或者复制,否则空格会丢失;2)另外一点需要注意的是添加 in 和 out 文件夹而不是仅添加 out 文件夹

常见问题与解答 · FAQ
问:对pyFFI过的mesh再pyFFI安全吗?
答:安全,虽然这样做效果并不大的

问:旧版pyFFI运行导致了某个mesh损坏,用新版pyFFI能修复这个损坏的mesh吗?
答:不能,pyFFI不能修复任何损坏了的mesh

问:为什么pyFFI增大了mesh的体积,优化不是表示缩小体积吗?
答:对于2.1.6版本,很多优化工作都是通过triangulation(提高性能,但增大体积)而不是stripification(提高性能的同时缩小体积)。
 
问:pyFFI支持多核处理器吗?
答:支持,pyFFI会利用多核处理器来运行。
 
问:pyFFI支持64位Python吗?
答:支持64位系统,但不支持64位的Python
 
问:会有视觉上的质量损失吗?
答:不会,PyFFI只移除重复和空白内容。
 
问:有什么mesh我不能用PyFFI的吗?
答:有一些mesh会出问题,但认真按 使用说明 操作一般不会出问题。
 
问:为什么要使用PyFFI?
答:事实上,不强求你使用。不过,如果你是材质制作者,材质处理者等,或者你想要获得更好的Oblivion性能,你就应该尝试一下了。
新版的PyFFI会在性能上有实质性的提高,所以对你的mesh(包括原版BSA里面的meshes)进行pyffi优化是强烈建议的。

Edited by icedream
  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...