域名将于6月份到期,并且不再续费,届时网站将无法访问。
6月份之前如果服务器到期将提前关闭网站,请改访问模组网社区

PyFFI 介绍

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

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

使用实例 · Example

PyFFI优化原版BSA:
1、备份好原版BSA;
2、用OBMM的 BSA broswer(BSA浏览器) 功能将BSA解压到 PyFFI\utilities\toaster\in 目录下
3、运行 oblivion_optimize.bat 开始优化
4、打开OBMM的 BSA creator(BSA创建器) 工具。
5、添加 PyFFI\utilities\toaster\in 文件夹。
6、添加 PyFFI\utilities\toaster\out 文件夹。
7、单击 Creat,创建BSA
8、使用OBMM的 Reset BSA timestamps(重置BSA时间戳) 重置BSA的修改时间
9、如果你遇到了原版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优化是强烈建议的。

icedream

About icedream

其实我知道的东西很少,只是翻译了一些东西,悲催的是翻译过后很快就忘了。

,

7 Responses to PyFFI 介绍

  1. NO 2012 年 8 月 6 日 at 上午 12:57 #

    ==,我想说目录的上面一行模块化那里,”扩展”你打成”括展”了…
    QAQ,我好无辜的说,懒得登录用游客身份居然不给填我的邮箱…
    提示说这是博主的邮箱…该死的白眼狼系统,穿了身便衣就翻脸不认人了…

  2. Endless 2012 年 8 月 6 日 at 上午 1:11 #

    我X,居然把我好不容易打的字给归为垃圾评论…尼妹的白眼狼系统…话说老大原来是你把我密码改了,我说怎么密码老不对呢…==

    • icedream 2012 年 8 月 6 日 at 上午 10:41 #

      @Endless: @.@那你怎么知道新密码的?

      • NO 2012 年 8 月 6 日 at 上午 11:09 #

        @icedream: ==还好我聪明机智,本打算先开邮箱好接收重置邮件的,结果发现你曾经发过一封…0.O貌似是很久前的…

        • icedream 2012 年 8 月 6 日 at 上午 11:34 #

          你又不登陆了 – –

Trackbacks/Pingbacks

  1. 湮没官方DLC优化一体包 | TESfans - 2012 年 7 月 2 日

    […] 2.7.2下的PyFFI 2.1.11 (Nov 26, 2011)优化过了 如果你对PyFFI不了解的可以阅读PyFFI介绍 觉得太复杂只要记住这东西是用来减少卡顿的,可以提高流畅性; ● […]

  2. 湮没本体模型PyFFI优化 | TESfans - 2012 年 7 月 2 日

    […] 因为一些莫名其妙的原因,有些人觉得PyFFI很复杂,于是就放弃了这个工具,但是放弃此工具的同时,很多人也经常关注PyFFI资源的释出。为了方便大家使用,我就把自己正在使用的,用PyFFI优化过的原版Mesh给分享出来。 目录 · Contents1 介绍 · Description2 常见问题 · FAQ3 下载 · Download4 安装 · Installation5 卸载 · Uninstallation6 注意事项 · Notes […]