作者statue (statue)
看板WarCraft
标题Re: [WE] SLK优化的故事
时间Sat Jul 26 18:19:54 2008
※ 引述《gonzdevour (吞食)》之铭言:
: 虽然很多人要求PitzerMike修改为可支援Unicode,
: 并且希望能够处理超过4级技能的问题,
: 然而PitzerMike兄总是不为所动,
: 因此依Widgetizer问世而受益的地图,有名的大概就只有NOTD跟OS两张。
我想这边无法处理超过四级以上技能的问题可能是 AbilityData.slk 本身的限制.
我自己用来解开 mpq 的工具是 Ladik's MPQ Editor, 可能跟一般人不同:
http://www.zezula.net/en/mpq/download.html#MPQEdit
MPQ Editor v 2.0.1.258 (32-bit, EN) (172 KB) for Win95/98/NT/ME/2000/XP/Vista
用这个工具去解开 war3x.mpq 里面的 Units 底下的 AbilityData.slk 就可以发现,
他的栏位只有到 Lvl4, 所以之後的应该会存放在 war3map.w3a.
slk 优化(单位, 物品, 技能, 魔法, 科技, 可破坏物, 装饰)
而优化的部份, 以信长的野望 135e3 来说, 目前看到的优化都是针对 Units 目录下,
相关的 .slk 和 .txt. 也就是把不必要的资料删除, 就可以减少他去 loading
其他物件的时间, 当然缺点就是可能换地图的时候造成其他地图有破图的情况.
Units 下的 .slk 和 .txt 分成三类, 一种是系统用的 .slk, 另外就是 Func.txt 和
String.txt. 大部分的 Func.txt 和 String.txt 都已经无作用, 因为这是 Custom
Game. 所以就可以在 MPQ 中建立空白的资料, 这样子游戏读取时就不会因为读取到资料,
而预先去载入和检查他相关的 .mdx 和 .blp 是否存在而预先载入. 进而省下时间.
接下来的优化则是针对 .slk 的使用, .slk 预设的资料也是非常多, 从减少 .slk
不必要的资料也可以大量的减少读取其他物件的时间.
因此 Units 下面的资料档案从原本的 62 个, 优化了 13 个档案, 这边的优化也只是
删除不必要的项目, 然後把 37 个没有使用到的资料库档案大小设定成 0.
mdx 优化
目前看到的 mdx 优化应该只是减少模组(mdx)的点的数量, 或是采用压缩方式减少大小.
blp 优化
图像(blp)优化的部份, 应该也只是调低解析度, 或是用 DXT 压缩.
加密
以目前的地图来说, 大部分的加密都是删除 (listfile) 让一般的 MPQ Editor 无法找到
他正确的档名, 不过大多可以透过分析 UnitUI.slk 和 war3map.w3a 来得到完整的
(listfile).
以信长的野望当例子, 除了覆盖原本系统的一些 .blp 和基本的 war3map.* 档案外,
我们可以使用 Ladik's MPQ Editor 的汇出 (listfile) 功能把 war3.mpq, war3x.mpq,
war3xlocal.mpq 和里面的一些 game/*.w3m, *.w3x 取得一些常用的 (listfile),
接着用它内建的 merge listfile 全部统整理来.
接着去把 UnitUI.slk 里面的一些资料, 像是该作者把大部分的 mdx 放在
war3mapImported\ 底下, 相对的 .blp 则存放在 textures 底下, 就可以解出部分的
列表:
hyp-modelcrash.mdx
textures\Ashigaru.blp
textures\Cavalry.blp
textures\Flag.blp
textures\Hero01.blp
textures\Hero02.blp
textures\Hero03.blp
textures\Hero04.blp
textures\Hero06.blp
textures\Hero07.blp
textures\Hero09.blp
textures\Hero10.blp
textures\Hero11.blp
textures\Hero12.blp
textures\Hero14.blp
textures\Hero16.blp
textures\Hero17.blp
textures\Hero21.blp
textures\HeroAyame.blp
textures\HeroKojiroSasaki.blp
textures\HeroKunoichi.blp
textures\HeroMuneyosiYagyu.blp
textures\HeroMusashiMiyamoto.blp
textures\HeroNouhime.blp
textures\HeroOichi.blp
textures\HeroYoshimotoImagawa.blp
textures\Incantation.blp
textures\Tent.blp
war3mapImported\Arquebusier.mdx
war3mapImported\Ashigaru.mdx
war3mapImported\Cavalry.mdx
war3mapImported\CavalryMissile.mdx
war3mapImported\Flag.mdx
war3mapImported\Hero01.mdx
war3mapImported\Hero01_PORTRAIT.mdx
war3mapImported\Hero02.mdx
war3mapImported\Hero02_PORTRAIT.mdx
war3mapImported\Hero03.mdx
war3mapImported\Hero03_PORTRAIT.mdx
war3mapImported\Hero04.mdx
war3mapImported\Hero04_PORTRAIT.mdx
war3mapImported\Hero06.mdx
war3mapImported\Hero06_PORTRAIT.mdx
war3mapImported\Hero07.mdx
war3mapImported\Hero07_PORTRAIT.mdx
war3mapImported\Hero09.mdx
war3mapImported\Hero09_PORTRAIT.mdx
war3mapImported\Hero10.mdx
war3mapImported\Hero10_PORTRAIT.mdx
war3mapImported\Hero11.mdx
war3mapImported\Hero11_PORTRAIT.mdx
war3mapImported\Hero12.mdx
war3mapImported\Hero12_PORTRAIT.mdx
war3mapImported\Hero14.mdx
war3mapImported\Hero14_PORTRAIT.mdx
war3mapImported\Hero16.mdx
war3mapImported\Hero16_PORTRAIT.mdx
war3mapImported\Hero17.mdx
war3mapImported\Hero17_PORTRAIT.mdx
war3mapImported\Hero21.mdx
war3mapImported\Hero21_PORTRAIT.mdx
war3mapImported\HeroAyame.mdx
war3mapImported\HeroAyame_PORTRAIT.mdx
war3mapImported\HeroKojiroSasaki.mdx
war3mapImported\HeroKojiroSasaki_PORTRAIT.mdx
war3mapImported\HeroKunoichi.mdx
war3mapImported\HeroKunoichi_PORTRAIT.mdx
war3mapImported\HeroMuneyosiYagyu.mdx
war3mapImported\HeroMuneyosiYagyu_PORTRAIT.mdx
war3mapImported\HeroMusashiMiyamoto.mdx
war3mapImported\HeroMusashiMiyamoto_PORTRAIT.mdx
war3mapImported\HeroNouhime.mdx
war3mapImported\HeroNouhime_PORTRAIT.mdx
war3mapImported\HeroOichi.mdx
war3mapImported\HeroOichi_PORTRAIT.mdx
war3mapImported\HeroYoshimotoImagawa.mdx
war3mapImported\HeroYoshimotoImagawa_PORTRAIT.mdx
war3mapImported\Incantation.mdx
war3mapImported\Ninja.mdx
war3mapImported\Tent.mdx
war3mapImported\TowerA.mdx
war3mapImported\TowerB.mdx
war3mapImported\Wall1.mdx
war3mapImported\Wall2.mdx
war3mapImported\Wall3.mdx
war3mapImported\Wall4.mdx
war3mapImported\Wall.mdx
war3mapImported\Whirlpool.mdx
参考资料:
SYmbolic LinK (SYLK)
http://en.wikipedia.org/wiki/SYmbolic_LinK_%28SYLK%29
[周边工具] BLPConverter BLP图档转换
http://wowbox.tw/bbs/viewtopic.php?f=35&t=548
.BLP in wiki
http://en.wikipedia.org/wiki/.BLP
世界编辑器自学指南
http://www.wasabistudio.ca/wikis/we/
[周边工具] Ladik's MPQ Editor / StormLib
http://wowbox.tw/bbs/viewtopic.php?f=35&t=547
Listfiles for MPQ archives (2.53 MB)
http://www.zezula.net/en/mpq/download.html#MPQEdit
Blizzard的MPQ档格式搜索演算法
http://wowbox.tw/bbs/viewtopic.php?f=35&t=4164
= The MoPaQ Archive Format =
http://wowbox.tw/bbs/viewtopic.php?f=35&t=547
[旁门左道] MoPaQ 相关研究
http://wowbox.tw/bbs/viewtopic.php?f=35&t=4288
魔兽技术揭秘
http://bbs.uuu9.com/viewthread.php?tid=929622
地图优化精灵 1.87 2008-06-15
http://bbs.uuu9.com/viewthread.php?tid=1375231
Wc3MapMax++ V1.1Beta 2008-07-18
http://bbs.uuu9.com/viewthread.php?tid=1357749
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.68.122.4
1F:→ statue:还没写完, 肚子饿了.... 07/26 18:28
2F:→ statue:第一次到这个版, 可以讨论 HkeW3mModifier 吗? 07/26 18:29
3F:推 wix3000:抱歉 无能的我不知道那是什麽= =" 07/26 18:31
4F:→ statue:改图机, 智能分析资源文件列表, 自动注入作弊码之类的... 07/26 18:33
5F:推 wix3000:版规没有禁止,但最好低调一点 07/26 18:35
6F:推 hogiking:艾大帮推!!! 07/26 18:54
7F:→ statue:hogiking 怎麽到处都会遇到你 @@"... 07/26 18:55
8F:推 hogiking:应该除了这版跟WOW版有碰过才对阿 囧" 07/26 18:58
9F:推 blackjack0s:我认为讨论HkeW3mModifier有点超过 ( ̄ー ̄;) 07/26 19:30
10F:→ blackjack0s:尽管有心人都会 但这种太懒人包的东西我认为低调好 07/26 19:31
11F:→ blackjack0s:真的有心去U9找至顶 = =" 07/26 19:32
12F:→ statue:HkeW3mModifier 拿来解 mpq 加密和 listfile 还不错用.. 07/26 19:38
13F:推 HypocritePro:专业推一个 07/26 20:16
14F:推 morphyster:最原始那篇没有m 07/26 22:12
15F:推 gonzdevour:呃啊,是说BS已经表明他的模组可以随便用了, 07/26 23:26
16F:→ gonzdevour:所以列出listfile应该没关系吧..... 07/26 23:26
17F:推 vinxu:前面有提到,SLK那边主要是储存预设资料,而由於正规的技能 07/27 03:17
18F:→ vinxu:都没有超过3级,所以我们在SLK中能放置的技能都没办法超过 07/27 03:18
19F:→ vinxu:3级,所以游戏根本只处理1到3级的技能资料,3级以上没必要。 07/27 03:20
20F:推 Sechslee:帮推艾大 07/27 10:06