3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 77471|回复: 59
打印 上一主题 下一主题

[分享] 了解bsa文件

  [复制链接]

52

主题

4278

帖子

5395

积分

游戏精英

这个没有

Rank: 8Rank: 8

贡献度
540
金元
32352
积分
5395
精华
0
注册时间
2008-1-27

疯狂页游玩家1级

跳转到指定楼层
主题
发表于 2013-1-10 14:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ruinelec 于 2014-8-20 22:26 编辑
bsa文件是什么

bsa是一个文件名后缀,本身是BethSoftArchive的缩写,也就是B社专用档案文件,

完全可以当成是B社的7z文件.
bsa文件的用途

既然是档案,当然是存文件用的了.
老滚5本身的游戏资源都是以bsa形式存在的.
bsa文件的利弊

  • bsa文件在管理方面的方便是毋庸置疑的,用户眼里单纯的1个bsa文件在实际游戏中可以识别成很多内容,相对的是要编辑BSA文件中的特定文件只能解压出来才行.
  • bsa的可压缩性让bsa比起源文件体积更小,读取速度更快,但另一方面bsa作为单一的个文件来说只能被全部读取,有时候不可避免的会读取一些无用的数据,比如ry130套的mod,使用其中1套却要先把全部130套过一遍再从中抽出实际使用的部分.当然那个巨无霸bsa比较极端,一般只要电脑不古董就不会感觉到其中的差距.

hansuper88:
LZ对BSA文件利弊的其中一部分有误解:

BSA文件并不是全部读取,一个BSA文件最大占用空间不能超过2G(含),确实容易给人照成全部读取的假象。
在游戏开始之前,也就是main title选项出现之前,游戏会对所有存在的BSA文件进行一次检索索引和校验验证BSA文件编码合法性,如果不通过则 main title 不会出现。。

而在游戏中也不是全部读取所有BSA,而是建立数据表,这是游戏的内部机制,通过检索的索引快速从BSA中抽取对应数据,而BSA文件不能超过2G的设定就是为了保护游戏主体单进程不超过2G,如果你的BSA资料需要一次性全部载入使用的话,无疑是超过了windows默认对单个进程内存使用的限制,同样一个巨型DLC可能有数个BSA分卷,但每次的活动数据量也不超过2G, 也请LZ正确地理性地理解“使用”一词。

另外当BSA文件被载入后,如果其中数据被玩家使用和存档,这部分数据表和索引将被写入存档文件中,避免硬盘数据(BSA)被反复索引的有效方法。。这也是为什么你0MOD的情况下,随着游戏不断开展,存档会越来越大的原因。

B社允许并支持游戏 mod 发展,所以不仅仅是限于BSA文件,整个data目录也使用同样的机制,如果玩家的mod数量增加全部被载入使用的话(mod被使用后读档),那样索引和抽取的时间和数据容积足以让游戏罢工,甚至PC罢工,所以很巧妙地将这部分数据写入存档,而载入存档同时便沿用了玩家存档前建立的数据表和索引。。
而其他一些游戏,无论游戏进程怎样,产生多少数据,它们的存档大小一直是不变的,比如生化5,不管你游戏进展到哪里,手头上有多少道具,你的存档永远只有22K,这是就是因为该游戏设计初衷就没将MOD这东西考虑进去,而只完善游戏内部静态数据管理机制,所有的索引抽取销毁等动作全部在 loading 过程中完成。。

  • bsa内部的文件不会被覆盖,指向相同路径的资源文件可以并存在不同bsa里
bsa文件的优先级

bsa内的资源优先级低于外部文件,bsa文件之间的优先级取决于对应esp/esm的排序.
bsa的解包和打包

首先当然是工具啦,常见的有BSAopt,bsa browser,CK带的Archive.
BSAopt和CK的Archive都有汉化,BSABrowser就不管它了.

  • BSAopt


如图4个部分
值得注意的是第4部分的按钮
第一个按钮浏览后导入文件夹针对资源文件,保存针对bsa
第二个按钮有3种变化
没有源bsa---打包
有源bsa,目标对象是文件夹---解压
有源bsa,目标对象是是bsa----转换
就是说打包和解压完全看前面路径栏里是什么,是文件夹路径就是解压,是bsa文件名就是打包.
bsaopt的一个小问题,解包的时候不会覆盖目标路径中的同名文件,那些文件以划线的形式表示出来.在源结构窗口中bsa内的文件显示为灰色,外部文件夹内的文件显示为黑色.

PS:bsaopt可以对bsa文件右键设置为默认打开方式.


  • Archive

………解压缩功能是个渣渣,打包功能却完全傻瓜化,所以只介绍打包.
先准备好要打包的文件 ,放在任意盘根目录的data文件夹内.
打开Archive,根目录里设定为data.
菜单栏 编辑-添加目录-选择包含要打包文件的data文件夹
压缩档案和保留xxxxx的几项打上勾,
菜单栏 文件-保存 起个文件名,完成.
会多生成一个bsl文件,里面是文件列表,有此文件存在时解包时才能显示正确的文件名和路径,因为bsaopt的存在,那东西总是被我直接扔回收站.


  • 在ck中直接打包
这是modder用的吧,Archive 的常规用法.
ck载入esp后,菜单栏 file-Create Archive

要求列表中的文件实际存在而不是在bsa里什么的,那样会报错.
然后点pack files,要求保存目录在data文件下,之后自动调用Archive ,实际生成目录在游戏根目录.
问题:只有esp中新增资源进入列表,替换类资源不会进入;没有压缩之类的选项.


个人推荐BSAopt用于解压,CK的Archive用于打包.
Ps:音频文件(wav,xwm等)不可压缩,压了会失效.





bsa文件的应用

  •   老滚5游戏里:bsa文件不会被直接读取,需要以一个同名esp或者esm引导.也可以在Skyrim.INI里的sResourceArchiveList(2)项添加bsa文件名.
  •   CK里: Skyrimeditor.ini里SResourceArchiveList项添加bsa文件名
  •   Nifskope里:菜单栏 文件-资源文件(最后第二项)- 选择需要的bsa文件(显示贴图用)
http://www.lianzhiwei.com/News/389/20122121.html
http://www.lianzhiwei.com/News/389/20122119.html
http://www.lianzhiwei.com/News/389/20122120.html
http://www.lianzhiwei.com/News/389/20122118.html
http://www.lianzhiwei.com/News/389/20122117.html
http://www.5678520.com/kaiwangdian/135.html
http://www.5678520.com/kaiwangdian/134.html
http://www.5678520.com/kaiwangdian/132.html
http://www.5678520.com/kaiwangdian/133.html
http://www.5678520.com/kaiwangdian/131.html













评分

5

查看全部评分

回复

使用道具 举报

2

主题

251

帖子

326

积分

高级玩家

Rank: 4

贡献度
0
金元
3260
积分
326
精华
0
注册时间
2016-8-14
舒服的沙发
发表于 2022-1-27 10:39 | 只看该作者
感谢科普!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-30 20:29 , Processed in 0.031911 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表