Zh/Decompiling Maps: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
No edit summary
No edit summary
 
(17 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{otherlang2
<!-- Base -->
|title=反编译地图|
{{lang|Decompiling Maps|title=反编译地图}}
|en = Decompiling Maps
{{ACategory|Level Design}}
}}
{{ACategory|Tutorials}}
Decompiling is the process of taking a compiled level and generating a source that can be opened in a map editor. Decompiled levels mimic the original source, they are not exact reproductions. This makes them useful for learning, measurement, and inspection, but not direct recompilation. The original source is ideal for reproductions or modifications.


Releasing reproductions, modifications, or approximations of another's work without permission nor credit is frowned upon and may be considered as a copyright violation.
<!-- Content -->
==Tools==
反编译是指把一张可以在游戏中运行的地图转化为可以在地图编辑器中打开的地图源文件的过程。由于格式的差异,反编译的地图是一个模仿品,而并不是一个复制品。这使得学习测量和审视变得容易,但并不适合直接再编译。地图的源文件才是理想的再次编译和修改的对象。
* [[Entspy|EntSpy]]
* [[BSPSource]]
* [[Vmex]]
* [[BSP2MAP]]
* [[MapFool]]
* [[xwad]]
* [[WinBSPC]]
* [[BSP Viewer]]


== Getting Dirty ==
在未经允许的状况下把别人的作品反编译后进行修改并发布是一种不好的行为,并且可能会被视为侵权。对此,有一些防止地图被反编译的办法,但这样做是不值得的,因为没有一个办法100%有效,而99%的反编译者并不会侵权。
The latest decompiler is called [[BSPSource]] and is written in Java. You need an updated version of the Java Runtime Environment (JRE), which can be downloaded from [http://java.sun.com/javase/downloads/ Sun] to run BSPSource. Once installed, you are ready to decompile your first map.


== Extracting Valve maps  ==
== 工具 ==
* {{L|Entspy|EntSpy}}(用于在不重新编译的情况下查看和编辑BSP的实体)
* {{L|BSPSource}}(基于VMEX的起源引擎地图的开源地图反编译器)
* {{L|VMEX}}(起源引擎地图的反编译器)
* {{L|MapFool}}(将半条命1地图移植到起源)
* {{L|xwad}}(用于转换纹理格式的命令行工具)


'''(Note: This tutorial assumes that you have opted into the SteamPipe beta for any Orange Box titles. Games released after 2007 or games that are multiplayer titles will have already stashed their content in <code>\steamapps\common\</code>.)'''
<u>半条命1引擎的工具:</u>
* {{L|BSP2MAP}}
* {{L|WinBSPC}}
* {{L|BSP Viewer}}


# Install [[GCFScape]].
=== 注意事项 ===
# After you install GCFScape, go to <code>File &gt;&gt; Open</code>.
最新的反编译软件叫做{{L|BSPSource}},由Java语言写成。你需要一个升级版的Java Runtime Environment(JRE)来运行BSPSource。下载:[http://java.sun.com/javase/downloads/ Sun]。安装完成后,你就可以准备开始反编译地图了。
#* For {{csgo}}[[Counter-Strike: Global Offensive]] maps, open '''<code>\steamapps\common\Counter-Strike Global Offensive\csgo\pak01_dir.vpk</code>'''
#* For {{css}}[[Counter-Strike: Source]] maps, open '''<code>\steamapps\common\counter-strike source\cstrike\strike_pak_dir.vpk</code>'''
#* For {{dods}}[[Day of Defeat: Source]] maps, open '''<code>\steamapps\common\Day of Defeat Source\dod\dod_pak_dir.vpk</code>'''
#* For {{hl2}}[[Half-Life 2]] maps, open '''<code>\steamapps\common\half-life 2\hl2\hl2_misc_dir.vpk</code>'''
#* For {{hl2}}[[Half-Life 2: Deathmatch]] maps, open '''<code>\steamapps\common\half-life 2 deathmatch\hl2mp\hl2mp_pak_dir.vpk</code>'''
#* For {{ep1}}[[Half-Life 2: Episode One]] maps, open '''<code>\steamapps\common\half-life 2\episodic\ep1_pak_dir.vpk</code>'''
#* For {{ep2}}[[Half-Life 2: Episode Two]] maps, open '''<code>\steamapps\common\half-life 2\ep2\ep2_pak_dir.vpk</code>'''
#* For {{portal}}[[Portal]] maps, open '''<code>\steamapps\common\portal\portal\portal_pak_dir.vpk</code>'''
#* For {{portal2}}[[Portal 2]] maps, open '''<code>steamapps\common\portal 2\portal2\pak01_dir.vpk</code>'''
#* For {{tf2}}[[Team Fortress 2]] maps, open '''<code>\steamapps\common\Team Fortress 2\tf\tf2_misc_dir.vpk</code>'''
#* For {{l4d}}[[Left 4 Dead]] maps, open '''<code>steamapps\common\left 4 dead\l4d\pak01_dir.vpk</code>'''
#* For {{l4d2}}[[Left 4 Dead 2]] maps, open '''<code>steamapps\common\left 4 dead 2\l4d2\pak01_dir.vpk</code>'''
{{note|Left 4 Dead, Left 4 Dead 2, and Portal 2 also have other folders for DLCs, for examples:
'''<code>steamapps\common\portal2\portal2_dlc1\pak01_dir.vpk</code>''' and '''<code>steamapps\common\left 4 dead\l4d_dlc1\pak01_dir.vpk</code>''' .}}
3. Browse the directory until you find a <code>\maps\</code> folder. Each location varies per game.<br />
4. Right-click on the BSP file you want, then click <code>Extract</code> or drag the file from the GCF into a folder.


== Before You Go ==
== 提取地图  ==
Before you take this jump to run off and decompile a map take a second or two to think, "What am I trying to learn/do?".
{{note|本教程假设你已经为橙盒游戏选择了{{L|SteamPipe}}。在2007年之后发行的游戏或者是存在多人内容的游戏已经把他们的内容放在了<code>\steamapps\common\</code>。}}
Read the included TXT files, you may just find the creator's e-mail, and that could be more helpful than you imagine.
{{note|并非所有起源游戏的地图文件都位于vpk文件中,部分起源游戏的地图文件直接存放于 <code>maps</code> 文件夹,请具体问题具体分析。}}


Some mappers will offer up help and advice, they may even go so far as to provide perfect examples of what you were trying to "borrow" from the map.
# 安装 {{L|GCFScape}}.
# GCFScape安装完成后,单击<code>文件→打开</code>.
#* {{csgo}}反恐精英:全球攻势的地图,打开'''<code>\steamapps\common\Counter-Strike Global Offensive\csgo\pak01_dir.vpk</code>'''
#* {{css}}反恐精英:起源的地图,打开'''<code>\steamapps\common\counter-strike source\cstrike\strike_pak_dir.vpk</code>'''
#* {{dods}}胜利之日:起源的地图,打开'''<code>\steamapps\common\Day of Defeat Source\dod\dod_pak_dir.vpk</code>'''
#* {{hl2}}半条命2的地图,打开'''<code>\steamapps\common\half-life 2\hl2\hl2_misc_dir.vpk</code>'''
#* {{hl2}}半条命2:死亡竞赛的地图,打开'''<code>\steamapps\common\half-life 2 deathmatch\hl2mp\hl2mp_pak_dir.vpk</code>'''
#* {{ep1}}半条命2:第一章的地图,打开'''<code>\steamapps\common\half-life 2\episodic\ep1_pak_dir.vpk</code>'''
#* {{ep2}}半条命2:第二章的地图,打开'''<code>\steamapps\common\half-life 2\ep2\ep2_pak_dir.vpk</code>'''
#* {{portal}}传送门的地图,打开'''<code>\steamapps\common\portal\portal\portal_pak_dir.vpk</code>'''
#* {{portal2}}传送门2的地图,打开'''<code>steamapps\common\portal 2\portal2\pak01_dir.vpk</code>'''
#* {{tf2}}军团要塞2的地图,打开'''<code>\steamapps\common\Team Fortress 2\tf\tf2_misc_dir.vpk</code>'''
#* {{l4d}}求生之路的地图,打开'''<code>steamapps\common\left 4 dead\l4d\pak01_dir.vpk</code>'''
#* {{l4d2}}求生之路2的地图,打开'''<code>steamapps\common\left 4 dead 2\l4d2\pak01_dir.vpk</code>'''
{{note|求生之路、求生之路2、传送门2都有DLC专用文件夹,例如:
'''<code>steamapps\common\portal2\portal2_dlc1\pak01_dir.vpk</code>'''和'''<code>steamapps\common\left 4 dead\l4d_dlc1\pak01_dir.vpk</code>'''。}}
3. 找到<code>\maps\</code>文件夹,每个游戏的位置各不相同。<br />
4. 右击BSP文件,然后点击<code>提取(Extract)</code>。
 
== 开始之前 ==
在开始反编译地图之前,先问自己一个问题:「我想从中学习到什么?」。读一读地图附带的txt文件,你应该可以找到制作者的email,这比你想象得更有用。
 
有些地图制作者会向你提供帮助和建议,甚至他们会给你提供反编译所得不到的更好的素材。
 
== 拓展阅读 ==
*{{L|Porting GoldSrc content (maps, models, etc.) to Source}}
* {{L|Porting Half-Life maps}}

Latest revision as of 20:45, 21 June 2025

English (en)한국어 (ko)Русский (ru)中文 (zh)Translate (Translate)

反编译是指把一张可以在游戏中运行的地图转化为可以在地图编辑器中打开的地图源文件的过程。由于格式的差异,反编译的地图是一个模仿品,而并不是一个复制品。这使得学习测量和审视变得容易,但并不适合直接再编译。地图的源文件才是理想的再次编译和修改的对象。

在未经允许的状况下把别人的作品反编译后进行修改并发布是一种不好的行为,并且可能会被视为侵权。对此,有一些防止地图被反编译的办法,但这样做是不值得的,因为没有一个办法100%有效,而99%的反编译者并不会侵权。

工具

  • EntSpy(en)(用于在不重新编译的情况下查看和编辑BSP的实体)
  • BSPSource(en)(基于VMEX的起源引擎地图的开源地图反编译器)
  • VMEX(en)(起源引擎地图的反编译器)
  • MapFool(en)(将半条命1地图移植到起源)
  • xwad(en)(用于转换纹理格式的命令行工具)

半条命1引擎的工具:

注意事项

最新的反编译软件叫做BSPSource(en),由Java语言写成。你需要一个升级版的Java Runtime Environment(JRE)来运行BSPSource。下载:Sun。安装完成后,你就可以准备开始反编译地图了。

提取地图

Note.png注意:本教程假设你已经为橙盒游戏选择了SteamPipe(en)。在2007年之后发行的游戏或者是存在多人内容的游戏已经把他们的内容放在了\steamapps\common\
Note.png注意:并非所有起源游戏的地图文件都位于vpk文件中,部分起源游戏的地图文件直接存放于 maps 文件夹,请具体问题具体分析。
  1. 安装 GCFScape(en).
  2. GCFScape安装完成后,单击文件→打开.
    • 反恐精英:全球攻势反恐精英:全球攻势的地图,打开\steamapps\common\Counter-Strike Global Offensive\csgo\pak01_dir.vpk
    • 反恐精英:起源反恐精英:起源的地图,打开\steamapps\common\counter-strike source\cstrike\strike_pak_dir.vpk
    • 胜利之日:起源胜利之日:起源的地图,打开\steamapps\common\Day of Defeat Source\dod\dod_pak_dir.vpk
    • 半衰期2半条命2的地图,打开\steamapps\common\half-life 2\hl2\hl2_misc_dir.vpk
    • 半衰期2半条命2:死亡竞赛的地图,打开\steamapps\common\half-life 2 deathmatch\hl2mp\hl2mp_pak_dir.vpk
    • 半衰期2:第一章半条命2:第一章的地图,打开\steamapps\common\half-life 2\episodic\ep1_pak_dir.vpk
    • 半衰期2:第二章半条命2:第二章的地图,打开\steamapps\common\half-life 2\ep2\ep2_pak_dir.vpk
    • 传送门传送门的地图,打开\steamapps\common\portal\portal\portal_pak_dir.vpk
    • 传送门2传送门2的地图,打开steamapps\common\portal 2\portal2\pak01_dir.vpk
    • 军团要塞2军团要塞2的地图,打开\steamapps\common\Team Fortress 2\tf\tf2_misc_dir.vpk
    • 求生之路求生之路的地图,打开steamapps\common\left 4 dead\l4d\pak01_dir.vpk
    • 求生之路2求生之路2的地图,打开steamapps\common\left 4 dead 2\l4d2\pak01_dir.vpk
Note.png注意:求生之路、求生之路2、传送门2都有DLC专用文件夹,例如: steamapps\common\portal2\portal2_dlc1\pak01_dir.vpksteamapps\common\left 4 dead\l4d_dlc1\pak01_dir.vpk

3. 找到\maps\文件夹,每个游戏的位置各不相同。
4. 右击BSP文件,然后点击提取(Extract)

开始之前

在开始反编译地图之前,先问自己一个问题:「我想从中学习到什么?」。读一读地图附带的txt文件,你应该可以找到制作者的email,这比你想象得更有用。

有些地图制作者会向你提供帮助和建议,甚至他们会给你提供反编译所得不到的更好的素材。

拓展阅读