Kitserver 2010 for Pro Evolution Soccer 2010 说明

版本历史:history.txt
1.4.2010 - Kitserver 9.2.0

与以往一样,关于这个说明文档的最新更新和各种语言版本,请参见这里:https://kitserver.mapote.com。当然 Kitservers 5-8 的说明文档也能在那儿找到。

1、介绍

Kitserver 2010 是一个针对 Pro Evolution Soccer 2010 的外挂程序(也可用于 Pro Evolution Soccer 2010 DEMO)。它用于装载和管理各种模块。
下面是可用的功能的快速摘要。按照在左侧列中的链接来获取有关特定模块详情。

如果你是第一次使用 Kitserver,请确保你已经阅读了 安装说明

AFS2FS 9.2.0 afs2fs.dll 使 AFS (.img) 游戏内容可以使用文件和文件夹:更简单更快速地安装或者卸载补丁,而不需要更改 *.img 文件。
Kserv 9.2.0 kserv.dll 将球衣整理到 GDB,指定每个球队有自己的球衣。
LOD Mixer 9.2.0 lodmixer.dll 自定义分辨率选择,手动或自动宽高比校正,LOD 配置,绕过配置检查。
Camera module 9.2.0 camera.dll 增加普通和宽视角的范围,享受新的游戏体验。
Time module 9.2.0 time.dll 设置比赛时间为1到255之间的任意值。
Speeder module 9.0.6 speeder.dll 加快或降低游戏的速度。

Top

2、安装或卸载

2.1、安装

因为系统的原因,我意识到需要更换一种新的安装方式。所以,首先你将看到一个安装程序,运行它,你会得到安装路径的提示:

你可以使用默认的安装路径,也可以自己选择。重要的是你将文件安装到一个你有管理权限的地方,这样,在Vista系统下 你将不需要管理者权限 来用 Kitserver 启动游戏。

现在到你安装了 kitserver 的路径。你将看到一个叫做 Kitserver2010 的文件夹。打开文件夹,你会看到如下情景:

然后,从你的游戏目录复制两个执行文件到 Kitserver2010 文件夹 - pes2010.exesettings.exe。(依据你的系统设置,你也许看到它们是 pes2010settings - 后缀被隐藏了)。 所以,现在应该看起来是这样的:

差不多就是这样,再有一些步骤,我们就将使用 Kitserver 来启动游戏了。
打开 kitserver 文件夹并运行 manager.exe 程序。

曾经它叫 setup.exe,但是系统认为所有叫做 setup.exe 的程序都需要管理员权限,尽管 kitserver 的 setup 实际上并不需要。而且,"setup" 这个名字有点小歧义,所以我决定重命名它 - manager - 因为它加载 kitserver 到游戏 EXE 文件。

选择游戏的执行文件(它应该已经被预选了)。你还可以选择你的 settings.exe(如果你想要绕过系统的配置检查,否则并不是必须要选择)。 一旦你选好了文件,点击 "Attach" 键。 现在只要你启动游戏(用你复制过来的 EXE),Kitserver 的模块将被读取到内存。如果所有的一切都正确,你将看到类似下面图片:

如果你觉得你不需要使用 Kitserver 了,运行 manager.exe 并点击 "Detach",它将使 kitserver 从游戏 EXE 上脱离。 你也可以安装/移除 Kitserver 仅仅只对一个 exe 而对另一个设置为 "no action"。

在我们运行游戏前的最后一个步骤:
我们需要确定有个 config.txt 在 kitserver 文件夹里。如果你是升级 Kitserver,也许已经有了。如果不是,创建这个文件也非常简单:只要运行 Kitserver 的 设置工具,点击 "Save",然后就会帮你自建一个 config.txt。

这就是全部了。你已经可以开始游戏了。
记住:你需要使用 Kitserver2010 文件夹里的 EXE (pes2010.exe) 来启动游戏,因为这个 exe 是加载了 kitserver 的。

对于老用户来说,你完全可以照原来的方法来使用 kitserver。当你使用管理员身份运行系统时,一切都没问题。但是我希望你们采用新的方式。这将会很安全,而且你不必担心管理员权限,也可以避免你已经有了正确的设置,但是游戏里却无法显示。

2.2、卸载

卸载非常简单:只要删除 Kitserver2010 文件夹就好了。
Kitserver 没有写入系统文件,所以卸载很简单。

2.3、安装 KONAMI 官方补丁

Konami 一次又一次的发布游戏补丁。现在已经有 1.01 和 1.02 补丁了,而将来可能还会发布更多的补丁。当你安装了新补丁,你会有一个新的游戏执行文件 (pes2010.exe) 和一些别的文件。你需要意识到更新后的 Konami 补丁并没有安装 Kitserver,而在你 Kitserver2010 文件夹里的exe还是旧的。

所以你需要将新的exe复制到 Kitserver2010 文件夹,然后运行 manager.exe 程序将 kitserver 加载到新的 EXE 上。当然,前提是 Kitserver 支持新的 EXE。然后,你就可以从 Kitserver2010 文件夹启动游戏了。

2.4、manager.exe 的高级用法

kitserver 的 manager.exe 程序可以无需界面操作运行 - 即所谓的批处理或命令行模式。这会很有用,如果 kitserver 是一个更大的补丁安装程序中包含的一部分,通常这是安装程序的最后一步,即加载 kitserver 到游戏的 EXE 文件。 你可以通过运行这样设置来完成:

manager --install --gfile={game-exe} --sfile={settings-exe}
manager --remove --gfile={game-exe} --sfile={settings-exe}

例子:

manager --install --gfile=..\pes2010.exe --sfile=..\settings.exe

2.5、config.txt

Kitserver 使用一个叫做 config.txt 的文件作为主要配置文件。很多事情在那里指定,包括哪些模块加载,什么设置应该使用这些模块,等设置好之后进入你的 kitserver 文件夹,你将看到一个叫做 config-sample.txt 的文件。(我给它一个不同的名称目的:使那些升级 kitserver 安装的人不会无意中覆盖掉他们现有的 config.txt )。如果你不是升级那么你就不会有一个现成的 config.txt,在这种情况下只要重命名这个文件或复制这个文件里的内容到 config.txt。或者你可能想用这个样本设置和自己的设置进行比较然后看看你是否需要对你的设置进行修改:比如在 [kload] 里添加新的模块。

记住:如果没有 config.txt 在你的 kitserver 文件夹里,kitserver 将不会起作用。但是它会记录下它不能找到 config.txt 。所以如果你认为你的 kitserver 没有运行,检查一下 pes2010.log 这个文件里关于出错的信息。

Top

3、使用和设置

3.1、主设置文件:config.txt

这个 kitserver 的主设置文件 - config.txt - 位于 kitserver 文件夹。如果里面没有这个文件 - 重新看一下上面的 2.2 。 下面是一个 config.txt 有些什么东西的例子:

[afs2fs]
debug = 1
img.dir = "c:\mypesfiles\root1"

[camera]
angle = 30

[kload]
dll = zlib1.dll
dll = libpng13.dll
dll = afsio.dll
dll = kserv.dll
dll = afs2fs.dll
dll = lodmixer.dll
dll = camera.dll
dll = time.dll
dll = speeder.dll

[kserv]
gdb.dir = "."

每个模块都可以有自己的设置,开头是 [module-name],在它后面通常有一个或多个选项。通常情况下,你不需要修改 config.txt 文件,除非你想要修改某个特定的模块(DLL),或者想要运行或禁止某个 DLL。

要禁用某个模块 - 只要在 [kload] 里相应行前加一个 '#' 就可以。(或者你可以直接将这行删除。)

这些 DLLs 的顺序很重要。特别是:zlib1.dll, libpng13.dll, afsio.dll 必须位于 kserv.dll 前; afs2fs.dll 位于 kserv.dll 后。只有在极少数情况下,你需要尝试重新安排 DLLs。


3.2、设置工具 - config.exe

跟前身 lodcfg.exe 类似(他曾经只是 LOD mixer 的界面工具,但是现在它已经涵盖其他设置选项),这个简单的界面程序允许修改一些 config.txt 里的设置。这只是一个辅助工具,所有它能做的,你都可以使用你喜欢的文本编辑器通过编辑 config.txt 手动实现。事实上,一些事情你 能手动操作 - 比如增加或减少模块(DLLs)。但是对一些简单的操作 - 如更改分辨率,或者视角的角度 - 启动 config.exe 会更快更简单,快速调整事项,然后点击 [Save] 按键,就完成了。


Top

4. AFS2FS 模块 (afs2fs.dll)

这个模块允许你将 BIN 文件放在硬盘的文件夹里,而不需要将它们导入 AFS(*.img) 文件,导入有时候是件让人头疼的事,而且有时候还要求扩容。

在过去的几年里有好些人提出类似的解决办法,但是最后是 Str@teG 一直说把 BIN 文件放在文件夹的想法,最终我决定那就这样做吧。所以现在,这些通过模块 - afs2fs.dll 实现。从个人经验来说,我知道人们有时不愿意安装大补丁需要重建 AFS,不是因为它难或者别的什么,而是因为这个太浪费时间和占用硬盘空间。有了 afs2fs, 这将变得非常简单:你只要将 BIN 文件放到正确的文件夹就可以了。当然,再也没有空间限制的问题了 - bin文件可以要多大有多大了!

该模块当你想要尝试一个补丁但又不想冒着破坏原文件的风险时显得非常方便。把新补丁放入分开的 AFS 根目录然后修改 config.txt 就是你需要做的全部事情了。 删除补丁也变得很简单:把对应的 "img.dir" 这行从 config.txt 删除,然后删除 AFS 根目录文件夹。多个补丁不再是一个管理噩梦了 :)。(关于 AFS 根目录更多信息参见下面的章节)

4.1、如何建立文件夹

首先选择一个你要放文件的位置。 打个比方,我们使用 c:\mypesfiles\root1。这个就是所谓的 AFS 根目录。在这个文件夹里,新建一个文件夹 img。(这个 "img" 文件夹非常重要,因为游戏只认这个名字)。然后,在 img 里面新建需要的文件夹,命名为 - dt00.imgdt01.imgdt0b.img 等等。 这些就是你将要放 BIN 文件的地方。

正确命名文件夹非常重要:每个文件夹必须有一个对应 AFS 文件的名字。例如,如果你将文件夹命名为 dt00 ,而不是 dt00.img,将不会起什么效果。

这是我的 img 文件夹:

4.2、如何命名文件

一般情况下,你可以用任何你想要的方式命名文件,但必须遵循一个规则:那就是有一个 BIN 编号在名字里,而且在它之前必须有一个下划线 ('_')。另外,文件名不能超过63个字母。

正确命名文件实例:

unknown_317.bin
goalnet_41.bin
ball_9.bin
unknow_9 (.bin 扩展名是可选的)
music_11.adx (文件可以有一个不同的扩展名: .adx 通常被用作音乐和声音文件)

错误命名文件实例:

unnamed10.bin - 在 BIN 编号前没有下划线。
face.bin - 没有 BIN 编号。

4.3、AFS 根目录

默认状况下,AFS2FS 模块不会搜索任何 "特殊的" 默认路径。相反你必须明确指定你的 AFS 根目录:在 config.txt 里的 [afs2fs] 字段,你可以指定你的根目录的路径,可以是你硬盘上的任意位置。你还可以有不同的根目录,这在你有多个补丁并且不想弄乱来自不同补丁的 BIN 文件将非常有用(那样你可以方便地通过删除根目录文件夹来卸载补丁)。

下面是一个有3个不同根目录设置的例子:

[afs2fs]
img.dir = "c:\mypesfiles\root1"
img.dir = "patch-RPL"
img.dir = "afs-root3"

根目录的顺序非常重要,它涉及到解决 "冲突"。也就是说,如果你有一个 dt0b.img/ball_9.bin 在第二个根目录(patch-RPL),还有一个 dt0b.img/superball_9.bin 在第三个根目录(afs-root3)。虽然这两个文件有不同的名字,但是它们都指向 dt0b.img 里编号为9的 BIN 文件,这里就产生了 "冲突"。规则很简单:在列表里位置低的根目录将被调用。 这意味着在刚才的例子里,dt0b.img/superball_9.bin 文件将被使用,因为它的根目录在 [afs2fs] 字段里位于最后。

重要提醒: 根目录是指 包含 "img" 的文件夹,而不是 "img" 文件夹本身。换句话说,如果完整路径是 c:\mypesfiles\root1\img",在 config.txt 里你应该输入:img.dir = "c:\mypesfiles\root1"

4.4、球和音乐的命名

当使用 AFS2FS 替换音乐时,可以使用一个 songs.txt 文件来更改音乐的标题和作家的名字,放入 afs 根目录文件夹

下面是一个关于 songs.txt 文件的例子:

# Song names map
# Format: <binId>, "<title>", "<artist>" 
# Note that double quotes are required.

11, "Вне зоны доступа", "Город 312"
12, "I'm mad about you", "Sting"

注意:与任何别的 map 文件和设置文件一样,Kitserver 使用的文件编码必须是 Utf-8 或者 Unicode,特别是使用非拉丁字符 - 像上面例子中那样。(ANSI 编码也可以,如果你只使用 Latin-1 字符的话。)

足球文件类似,如果你要替换球 BIN 文件,你也只需要修改它们的名字。一个简单的方法是使用一个 balls.txt map 文件,然后放入 afs 根目录文件夹:

# Ball names map
# Format: <ball-number>, "<name>"
# Note that double quotes are required.
# (Ball numbers go from 1 to 16)

8, "Nike-ball Blue"
9, "Мячик плохонький"

这并不意味着每个 afs 文件夹可以有自己的 songs.txt 和 balls.txt。因为每个 afs 根目录也许都包含音乐文件和球文件,使用特别的名字来配合。如果你有不同的 afs 根目录(比如当你有不同的补丁,而每个补丁都使用自己的 afs 根目录),那么 "冲突" 会像 BIN文件冲突一样的规则来解决(参见上面的内容)。简单的说,如果一个 afs 根目录有一个文件名表示 song 11,而另一个 afs 根目录里也有一个文件名表示 song 11,那么哪个 afs 根目录在列表(指 config.txt)里的位置比较低就会被使用。

下面这张图片将表明 songs.txtballs.txt 文件应该被放在什么位置。在这个例子中 "root1" 是我的 afs 根目录:


Top

5、Kserv 模块 (kserv.dll)

Kserv 模块用于支持在游戏中调用 GDB("Game content DataBase")中的球衣文件。最主要的功能就是你不需要再为 dt0c.img 里的球衣文件数量限制烦恼,而且你可以为任何队指定一套球衣。

Kserv 是 Kitserver 历史上最早开发的模块,开始于 PES3。这也是 Kitserver 名字的由来。后来,更多的功能通过新的模块实现,我们将提供球衣支持的模块重命名为 kserv,但是 Kitserver 的名字现在被用于整个程序。

5.1 GDB 构架

GDB 包含一个叫做 uni 的文件夹,这里用来放置球队球衣。在 uni 有一个很重要的文件叫做 map.txt。 这个文件告诉 kitserver 哪里可以找到指定的球衣。就像你们知道的,每个球队有一个特有的 id - 一个从 0 到 340 的整数。. 在 GDB 里的每个球队,你必须在 map.txt 指定球衣的位置。下面是一个例子:

# This config maps team number into folder name
# Format: <team-num>,"<folder name>"
# Example: 23,"Russia"

23,"National\Russia"
10, "National\Germany"
7, "National\England"

重要提醒:双引号并不是必须的,但是建议使用 - 这样就不会有关于文件夹名含糊不清的可能。球队的 IDs 将取决于你是否安装过任何补丁,但是对于原始存档,你可以在这儿看到 IDs - uni.txt 文件。

请注意提供的 GDB 样板只是组织文件的一种方式。它使用 "EPL" 文件夹来阻止所有的英超球队,"National" - 组织所有的国家队,其他类似。你也许觉得你喜欢统一的文件夹列表模式 - 不需要这样的具体组织。在这种情况下,只要修改 map.txt 文件,然后新建你喜欢的文件夹结构。这是使用 map.txt 的主要优势 - 球衣组织构架的随意性。

你可以看到上面的 map.txt,为了找到 #23 球队的球衣,kitserver 需要进入 GDB\uni\National\Russia 文件夹。这个文件夹需要包含 #23 球队的所有可用球衣。在这个文件夹里,你必须新建一个单独的文件夹给每件球衣,就像这样: 对于球员,第一套球衣必须有个 pa 文件夹,第二套 - pb。其他球衣可以使用任意 "p" 开头的文件夹名。我发现所有其他球衣使用 px- 这样的前缀会非常有好处。比如,px-redwhite。对于门将,第一套球衣必须使用 ga 文件夹,第二套 - gb。其他球衣可以使用任意 "g" 开头的文件夹名。

重要提示:文件夹名就像 ID 之于 kitserver 一样,对于这些名字有严格的限制:它们不能包含空格,最好短一点,使用英语、法语或者其他使用拉丁字母的语言(iso8859-1)。通常,如果你想确保 kitserver 可以准确地找到/读取该文件夹,只要使用拉丁字符,数字,下划线和短划线(减号)。

现在让我们进入其中的一个球衣文件夹。以 pa 为例。 请参阅下表为每个文件的说明:

图片必须是 PNG 格式:8-bit 调色板或者 4-bit 调色板。所以文件名必须有个 ".png" 后缀。

文件名含义格式
kit.png球衣图片 1024x512 8-bit 调色板的 PNG 格式图片。
font.png字体图片:用于球衣背面的球员名。 256x64 8-bit 或者 4-bit 调色板的 PNG 格式图片。
numbers.png数字图片:用于球衣正面和背面以及球裤上的号码。 512x256 8-bit 或者 4-bit 调色板的 PNG 格式图片。
config.txt球衣属性配置文件(更多详情参见下节) 文本文件 ( UTF-8 编码)

给球衣制作者的重要提醒:
BMP 格式的球衣将不再被支持,请使用 PNG 格式代替。

5.2. 更多球衣

每个球队可以使用超过2套球衣 (pa) 和 (pb)。 你可以增加球衣到它所属的文件夹,这样就可以在游戏中选择了。要使用增加的球衣,你需要按 "热键" 在球衣选择界面(看下面的截图):

热键作用
[1]改变主队球服
[2]改变客队球服

请注意现在还不能选择门将球衣,但是这个功能在将来会实现。新增的球衣将同样支持门将服。

5.3. config.txt

这是属性设置文件。和以前一样,它只是一个纯文本文件 - 你可以使用记事本或者其他任何文本编辑器来打开或者修改它。每个文件夹里都需要一个 config.txt 文件。这是一个 pa 文件夹里的 config.txt:

# Attribute configuration file auto-generated by GDB Manager

collar = 0
front.number.show = 1
front.number.size = 8
front.number.x = 26
front.number.y = 18
main.color = A70623
model = 45
name.shape = type3
name.show = 1
name.size = 28
name.y = 24
number.size = 22
number.y = 11
shorts.color = A70623
shorts.number.location = left
shorts.number.size = 14
shorts.number.x = 14
shorts.number.y = 6
sleeve.patch = 1
sleeve.patch.pos.long = 1
sleeve.patch.pos.short = 1


所有支持的属性汇总表:

属性名称含义格式例子
collar 领型(注意,不同的模板将有不同的值) 1/2/3/4 collar = 1
description 关于球衣的任何说明。此文字将显示在球衣选择画面。当有几个看起来几乎相同的球衣,但你想知道哪一个是当前选定的,这将非常有用。 双引号加任意文本 description = "Home red"
front.number.show 当号码需要在球衣的前面显示:1-显示,0-不显示。(这仅适用于国家队。) 0|1 front.number.show = 1
front.number.size 前面的球衣号码需要多大 十进制数,范围:1-30 front.number.size = 8
front.number.x 前面的球衣号码的水平位置 十进制数,范围:0(左)-30(右) front.number.x = 26
front.number.y 前面的球衣号码的垂直位置 十进制数,范围:0(低)-30(高) front.number.y = 18
main.color
(雷达颜色)
此属性指定球衣的主色。它也可以用来作为在雷达屏幕上显示的颜色。它还影响默认选中的球衣。(旧名“radar.color”也支持) 颜色,以十六进制格式写入 RRGGBB (红,绿,蓝) main.color = A70623
radar.color = A70623
model 球衣 3D-模型的识别 十进制数 model = 45
name.show 指定球员名是否需要在球衣上显示:1-显示,0-不显示。 0|1 name.show = 1
name.shape 指定名字是否应弯曲或直。该值含义和编辑模式相同:type1 - 直,type2 - 轻微弯曲, type3 - 较大弯曲,type4 - 更大弯曲。 type1|type2|type3|type4 name.shape = type1
name.size 球员名在球衣上的大小。 十进制数,范围:1-35 name.size = 28
name.y 指定球员名的位置。 十进制数,范围:0(低)-30(高) name.y = 24
number.size 球衣后背上号码的大小。 十进制数,范围:1-35 number.size = 22
number.y 指定球衣后背号码的位置 十进制数,范围:0(低)-30(高) number.y = 11
shorts.color 此属性指定球员/门将球裤的颜色。球裤的颜色在游戏中用来确定这些球员底裤的颜色是否正确,并将它们设置为与球裤一样的颜色。 颜色,以十六进制数写入 RRGGBB (红,绿,蓝) shorts.color = A70623
shorts.number.location 球裤上号码的位置。("off" 表示号码将不显示。) left|right|off shorts.number.location = left
shorts.number.size 球裤号码的大小 十进制数,范围:1-35 shorts.number.size = 14
shorts.number.x 球裤号码的水平位置 十进制数,范围:0(左)-30(右) shorts.number.x = 14
shorts.number.y 球裤号码的垂直位置 十进制数,范围:0(低)-30(高) shorts.number.y = 6
sleeve.patch 袖标补丁的使用袖标补丁位置在 dt0c.img/unknown_5879.bin。第一个(0)通常是空白。 十进制数,范围:0-19 sleeve.patch = 0
sleeve.patch.pos.long 袖标在长袖上的位置 十进制数,范围:0-7 sleeve.patch.pos.long = 1
sleeve.patch.pos.short 袖标在短袖上的位置 十进制数,范围:0-7 sleeve.patch.pos.short = 1

默认情况下,“description”属性的使用已启用,但如果你愿意,你可以禁用它。为了做到这一点,编辑主配置文件,并添加下面的选项到 [kserv]:

[kserv]
use.description = 0

Top

6、LOD 混合器 (lodmixer.dll)

LOD 混合器是一个允许微调 PES2010 里某些图形引擎的模块。
目前下面的功能已经完成:屏幕分辨率和宽高比更正。所有这些都可以通过 kitserver 里的主设置文件(kitserver/config.txt)手动设置实现,但是你也可以使用 Kitserver 的 设置工具 (config.exe)。

6.1、宽高比

很多 LCD 显示器既不是 4:3 也不是 16:9。16:10 经常被使用,甚至是 16:9.6。这导致图像被损坏:球员不是太胖就是太瘦,而球不是圆的。在今年的版本里,Konami 再次使用了黑边(像 PES2009 一样)来应对宽高比不同的问题(LB 检验栏)。但是,如果你不喜欢这黑边,你可以运行 settings.exe,关掉 LB 检验栏,然后使用 Kitserver 里的宽高比调整功能来代替:

使用 LOD 混合器,你可以设置任意你想要的宽高比。让 LOD 混合器设置为自动 - 在运行时,使用当前屏幕宽度和高度以及分辨率 - 或者设置为手动值都可以。假设分辨率为方形时,自动方式将会运行的非常正确。但是有时候,你需要手动设置。比如,我在宽屏上玩,但是使用一个 800x600 分辨率,因为我的显卡不够强悍。自动模式将会给出一个 4:3,但是由于图像被拉伸到全屏,我们需要考虑手动设置宽高比为 1.6(我笔记本的屏幕宽高比)来蒙混过关。

6.2、屏幕分辨率

当你使用窗口模式时,你可以设置任意分辨率。甚至变态的分辨率像 1234x487 也可以,当然你可能会因此遇到性能上的问题。 隐藏全屏分辨率现在已经被完全破解。但是只有你的显卡真正支持全屏模式才会生效。如果你执意选择一个不支持的全屏分辨率,那么游戏可能依然只能在窗口模式下启动。

6.3、控制器检查

这个功能可能对那些希望在一场比赛 - 联赛或者杯赛中同时控制两支球队有用。PES 2010 不允许玩家同时控制两支对战球队,除非这两支球队都被选了在进行对战。通过这个功能,你可以去掉这个限制。 现在,打个比方,不管是 P1 vs 电脑还是 P2 vs 电脑,你都可以自由地用任意手柄控制任意球队。这样,你们可以同时控制一个球队,或者你可以让你朋友控制对方球队。这将使游戏变得非常有意思。你也可以选择 "旁观者" 模式来玩比赛了。

通过该功能另一种可能出现的情况:在训练模式下,你可以练习防守或者守门员。这是非常好的点球扑救训练哦!

6.4、LOD 设置

LOD (Level-Of-Detail) 算法被用于图形引擎,当渲染物体相对于玩家处于不同距离时,可以提升图像质量和渲染速度。 其基本原理是,当一个物体接近摄像机时,使用一个模式(非常详细)。当它远离的时候,使用一个较少细节的模式来替代。这将大大加快对低面数模型物体的渲染,而当使用小尺寸显示时,它通常更好看,因为这时锯齿会更少。至少在理论上,它就是这么被支持运行的。

不幸的是,PES 系列一直受到过于保守的 LOD 设置, 对低面数模型的转换非常快,而这对各种有形物体都有影响。在 PES4-PES6 里,例子是秃顶的球员和缺失细节的球衣。在 PES2008-PES2010 里,一旦球员和裁判从镜头前很快地闪过,他们的面孔就变得差不多一个样了。

所以,如果你有一台好的电脑和一块强劲的显卡,你也许希望可以微调 LOD 使得游戏引擎即便在球员稍微有点远离摄像机镜头时依然可以显示更多的细节。(动画质量似乎也受其影响)。如果你希望这样,把调节滑块向右移

当然,如果相反,你的机器对于平稳帧数的游戏运行都有点吃力,你可以试着把 LOD 滑块移向相反的方向 - 从而使引擎转换低面数模型比正常情况更快。虽然这是以牺牲画面质量为代价的,但是却可能提高帧数。要实现这个效果,把调节滑块向左移

6.4.1、新增的 LOD 设置

lodmixer 模块支持超过6种 LOD 设置,这些并不在设置工具中显示。这些 LOD 设置叫做 "active player"。这是在玩家操作任意球和角球时生效的一种设置。"Active player" 设置同样使用在球衣选择界面和编辑模式下。

事实上,因为我懒,所以不想增加更多的滑块设置在设置工具里 :) 而且不能很快决定将他们放在哪里。但是你依旧可以使用它们,通过手动添加 [lodmixer] 字段到config.txt。你也许不会用到全部,但是你可能会发现这个有用: lod.active.player.fk.s1。我将这个设置放到了 config-sample.txt, 并且将值设置为 0.010 - 这是任意球时最大的细节表现。

这里是关于 "active player" 设置默认值的全部列表。如果你需要,自己慢慢测试吧:

lod.active.player.ck.s1 = 0.010
lod.active.player.ck.s2 = 0.010
lod.active.player.ck.s3 = 0.010
lod.active.player.fk.s1 = 100.0
lod.active.player.fk.s2 = 0.010
lod.active.player.fk.s3 = 0.010
6.4.2、选择 LOD 设置选项

要设置好 LOD 需要花时间而且最好通过试错法来完成。(如果很简单,这玩意老早就应该做好了!)我想提几个误解来帮助你完成 LOD 设置。

事例 #1:如果我将所有滑块都移到最右边,我将拥有最好的画质。
这其实并不正确。你将获得最细节也是最繁重的渲染,是的,但是这并不一定是看起来最好的。更多细节的物体在远距离时看起来效果比那些相对更少细节的要差,原因就是失真效应。

事例 #2: 我的显卡足够的好,它可以处理扔给它的任何事。
这也不正确。当前一代的游戏已经变得相当复杂和消耗资源。 显卡和芯片都在很吃力地完成渲染,物理计算和人工智能逻辑。 60 帧是典型的最低运行游戏需要的帧速率,不然没法漂亮顺畅的进行游戏。这意味着整个场景渲染必须在留有执行其他任务的时间的前提下在 1/60 秒中完成。(从物理学角度来说,只有运行在相同速率下的渲染,才不至于使画质受到影响。)为了确保渲染时间不因为需要渲染更多的对象而急剧升高,LOD 是一种被经常采用的技术。通过将所有滑块移到右边,你实际上关闭了 LOD 算法然后告诉你的显卡:"渲染屏幕上所有对象最大可能的细节。如果你因此烧掉了,我也不在乎!" Ok,虽然这也许不是一个有趣的例子,但是你应该知道了其中的要点。

现在,回到我们的游戏,正如我所说,在许多情况下,你只需要调整1到2个滑块就能得到想要的效果,并且仍然保持流畅的帧速率。让我们来看一些例子:

  1. 问题: 在正常游戏时,游戏引擎转换低画质球员模型太快,导致我们看到像被水洗到掉色的脸,本来没皱的衣服突然就卷起来,球员变得像机器人一样。解决方法: 滑动 "PLAYERS (Gameplay) S3" 滑块到右边 - 0.060 左右或者 0.050。这样基本上就可以了。你也许还想试着滑动 S2 滑块到 0.70 左右,但是在我的显卡上并没有什么明显的差别。
  2. 问题: 在任意球时,人墙球员的脸都跟被水洗了一样,即便在他们离镜头很近的时候还是这样。类似的,角球时也是。解决方法: 移动 "PLAYERS (Cut-scenes, Highlights, etc.) S3" 滑块到右边。0.050 应该就足够了。
  3. 问题: 裁判也是遇到和上面一样的问题 - 不管是在游戏还是重放时。解决方法: 移动 "REFEREES" 滑块到右边。一样,你不需要移到最右边 - 0.060 - 0.050 左右最好。

这些只是一些例子。你可能会注意到一些其他的状况,你要修复。 最主要的是:试验你的 LOD 设置,不要盲目把所有的都设置为最高质量 - 在大多数系统中,将导致卡屏和跳帧,因为你的显卡(还有处理器)接到太多指令去做。在许多情况下,调整一个或两个滑块就可以不破坏帧率就得到你想要的效果。


Top

7、镜头模块 (camera.dll)

从 Konami 产品经理处了解到的原因,在第三年运行后,他们取消了允许调整镜头角度的内部功能(这个功能在 PES3-PES6 中有,但是从 PES2008 开始消失了)。但是这隐藏的逻辑仍然存在游戏中的可执行文件,这个模块可以让你利用它。你可以调整的镜头角度:标准值是 0 - 9,但实际上你可以设置一个更大的值,这将让你的镜头角度更大。比如,我喜欢将这个角度值设置为 30。

选择任意从 0 到 2^32-1 的值。像 20, 40, 100 角度会带来完全不同的游戏感觉。相当好玩 :)

用 Kitserver 设置工具(config.exe)设置。或者,你也可以手动编辑你的 config.txt 文件像这样:

[camera]
angle = 30


Top

8、时间膨胀 (time.dll)

这个微小的模块可以将比赛的时间拉长到正常的 90 分钟,只要你想,事实上你可以选择 1 到 255 之间的任意一个数作为比赛时间。超过 90 将会使得时间比正常的比赛时间慢。此外,另一个极端,就是比赛时间定为1分钟。这是一个全新的体验:你必须十分珍惜控球机会,否则你可能还没来得及把球抢回来,比赛结束的哨声就响了!此外,如果你会获得一个得分机会,更好地把握它,因为这也许是你得到的唯一一个机会。

使用 match.time 设置比赛时间:

[time]
match.time = 90


Top

9、速度模块 (speeder.dll)

不是每个人都满意游戏的速度。应该说,正确模拟一场足球比赛不是一件容易的事情。许多因素在起作用,而且在很大程度上依赖于硬件。我个人认为,科乐美做的还可以,但许多人觉得游戏太快。

几种减缓游戏的技术已经存在,可是没有一个是完美的,但在一定程度上都有效。该调速模块基于减慢时钟,以欺骗游戏来降低运行速度。这不是一个理想的解决方案,但如果一个小的调整,它仍然可以看起来真实一点,玩起来更舒服一点,提供一个流畅的游戏感。不要认为这是一个万能的方法。它可能很好地帮助你,但它也可能无法提供所有你所希望的:)(一个副作用,例如,如果您将比赛时间设置为10分钟,但是你将游戏速度设置为0.9 ,实际比赛时间,将约有11.1分钟。)

它可以降低游戏速度,也可以提高。 设置工具 里有 'Game Speed' 滑块方便调整。 数值 1.0 是默认的速度。小于 1.0 - 降低速度,大于 1.0 - 加快速度。小于 0.7 值不允许使用,因为音乐/解说将被破坏。同样,大于 2.5 的值也不支持。超过 2.5 将会显得很搞笑!.

此外,你可以在 config.txt 里手动设置游戏速度,使用 count.factor 设置行:

[speeder]
count.factor = 0.95

荣誉名单

程序:juceRobbie
非常感谢:EnglandEnergia - 1.1 和 1.2 EXE 支持的帮助,PATe.Arminia - 球衣属性的帮助,Steliosninuzzu - KitsRelink 工具,在我做 kserv 模块时对我帮助很大,Ariel - 非常好看的 kitserver 图标。
测试:Evo-Web 和 PesWe.com 论坛的会员和访客。
afs2fs 模块的原始灵感:Str@teG
其他灵感来自 Evo-Web 论坛PesWe.com 论坛的用户
说明文档编译:EPT_安全第一

特别感谢:PesWe.com 网页的管理者和 PesWe.com 论坛的会员。

Kitserver 的许可属于 BSD-方式许可,可以在这里找到: 许可文件