作者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
→ statue:還沒寫完, 肚子餓了.... 07/26 18:28
→ statue:第一次到這個版, 可以討論 HkeW3mModifier 嗎? 07/26 18:29
推 wix3000:抱歉 無能的我不知道那是什麼= =" 07/26 18:31
→ statue:改圖機, 智能分析資源文件列表, 自動注入作弊碼之類的... 07/26 18:33
推 wix3000:版規沒有禁止,但最好低調一點 07/26 18:35
推 hogiking:艾大幫推!!! 07/26 18:54
→ statue:hogiking 怎麼到處都會遇到你 @@"... 07/26 18:55
推 hogiking:應該除了這版跟WOW版有碰過才對阿 囧" 07/26 18:58
推 blackjack0s:我認為討論HkeW3mModifier有點超過 ( ̄ー ̄;) 07/26 19:30
→ blackjack0s:儘管有心人都會 但這種太懶人包的東西我認為低調好 07/26 19:31
→ blackjack0s:真的有心去U9找至頂 = =" 07/26 19:32
→ statue:HkeW3mModifier 拿來解 mpq 加密和 listfile 還不錯用.. 07/26 19:38
推 HypocritePro:專業推一個 07/26 20:16
推 morphyster:最原始那篇沒有m 07/26 22:12
推 gonzdevour:呃啊,是說BS已經表明他的模組可以隨便用了, 07/26 23:26
→ gonzdevour:所以列出listfile應該沒關係吧..... 07/26 23:26
推 vinxu:前面有提到,SLK那邊主要是儲存預設資料,而由於正規的技能 07/27 03:17
→ vinxu:都沒有超過3級,所以我們在SLK中能放置的技能都沒辦法超過 07/27 03:18
→ vinxu:3級,所以遊戲根本只處理1到3級的技能資料,3級以上沒必要。 07/27 03:20
推 Sechslee:幫推艾大 07/27 10:06