Zh/MAP (file format): Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
(Created page with "{{LanguageBar|MAP|title=地图文件格式}} {{tabsBar|main=MAP}} {{non-valve engine|engine|本文涵盖所有主流MAP文件格式变体(不限于{{gldsrc|2}}所用版本),全面解析该格式并说明兼容性问题的复杂性}} {{stub}} '''MAP文件格式'''是{{gldsrc|4.1}}、{{idtech2|4.1}}、{{idtech3|4.1}}和{{idtech4|4.1}}通用的纯文本格式,用于存储实体与场景几何数据({{idtech4|3.1}}引擎甚至可直接读取)。{{src|4.1}}的{{L|...")
 
No edit summary
 
Line 7: Line 7:
该格式核心由多个{{L|entities|实体}}构成,每个实体可包含:
该格式核心由多个{{L|entities|实体}}构成,每个实体可包含:
- {{L|brush|笔刷}}(所有引擎)
- {{L|brush|笔刷}}(所有引擎)
- {{only|{{idtech3}}{{idtech4}}}} {{L|#Patch meshes|曲面网格}}
- {{only|{{idtech3}}{{idtech4}}}} [[Zh/#Patch meshes|曲面网格]]
- {{src|only}} {{L|#Displacements|置换面}}
- {{src|only}} [[Zh/#Displacements|置换面]]


{{warning|兼容性问题错综复杂:GoldSrc编译器仅支持Quake1 Valve220格式,但MAP文件存在数十种变体(详见[[#Variants|变体章节]])}}
{{warning|兼容性问题错综复杂:GoldSrc编译器仅支持Quake1 Valve220格式,但MAP文件存在数十种变体(详见{{L|#Variants|变体章节}})}}


== 格式变体 ==
== 格式变体 ==

Latest revision as of 02:18, 27 June 2025

English (en)中文 (zh)Translate (Translate)
edit
Info icon
This page documents information about an engine not developed by Valve. This information is documented here because it has technical and/or historical relevance to Valve's engines.
本文涵盖所有主流MAP文件格式变体(不限于金源 金源所用版本),全面解析该格式并说明兼容性问题的复杂性

小作品

This article or section is a stub. You can help by expanding it.

MAP文件格式金源 金源id Tech 2 id Tech 2id Tech 3 id Tech 3id Tech 4 id Tech 4通用的纯文本格式,用于存储实体与场景几何数据(id Tech 4引擎甚至可直接读取)。起源 起源VBSP(en)仍保留对MAP文件的编译支持。

该格式核心由多个实体(en)构成,每个实体可包含: - 笔刷(en)(所有引擎) - (存在于 id Tech 3id Tech 4 之中) 曲面网格 - (存在于 起源 之中) 置换面

Warning.png警告:兼容性问题错综复杂:GoldSrc编译器仅支持Quake1 Valve220格式,但MAP文件存在数十种变体(详见[[Zh/
  1. Variants|变体章节]](en)

格式变体

格式名称 支持工具 特性说明
雷神之锤 Quake I (经典版) Hammer Hammer 4.x外多数工具 原始格式
雷神之锤 Quake I (Valve220) 所有金源 金源工具及多数现代雷神之锤引擎 雷神之锤引擎工具 增强纹理UV精度
Hammer 3.x Worldcraft 2.0首创,现为标准
Quake II Quake II (经典版) 所有Quake II Engine Quake II Engine及多数id Tech 3 id Tech 3工具 新增三个WAL(en)元数据标志位
Quake II Quake II (Valve220) J.A.C.K. J.A.C.K.NetRadiant-Custom NetRadiant-CustomTrenchBroom TrenchBroom 采用Valve220式UV坐标
现为Quake2社区标准
Quake III Quake III (轴向投影) 所有id Tech 3 id Tech 3工具 支持[[Zh/
  1. Patch meshes|曲面网格]](en)(类似置换面(en)但采用贝塞尔曲线)
    注意:编辑器需明确选择使用标准笔刷或[[Zh/
  2. Brush primitives|笔刷基元]](en)格式
Quake III Quake III (笔刷基元) Q3Radiant Q3RadiantTrenchBroom TrenchBroom外多数工具
Doom 3 Doom 3 (轴向投影) 所有id Tech 4 id Tech 4工具 标准笔刷已逐渐被笔刷基元取代
Doom 3 Doom 3 (笔刷基元) 除TrenchBroomBFG外多数工具
起源 起源 (Valve400) 早期Source引擎试验性格式(2001-2002年间被VMF(en)取代)

几何结构

笔刷定义

多数版本中,笔刷以平面(en)集合形式存储(而非顶点)。每个平面由三个点定义,平面相交形成边与顶点。因此: - 笔刷不能为凹面体 - 缺失面会导致无限延伸,引发编译错误

Quake1格式示例

{
    ( -16 -64 -16 ) ( -16 -63 -16 ) ( -16 -64 -15 ) 材质名 U偏移 V偏移 旋转 U缩放 V缩放
}
Note.png注意:虽然现代编译器支持浮点坐标,但建议非必要不使用,以避免精度问题

Valve220革新

改进纹理投影方式,消除斜面拉伸:

( x1 y1 z1 ) ( x2 y2 z2 ) ( x3 y3 z3 ) 材质名 [U法线向量] [V法线向量] 旋转 U缩放 V缩放
Icon-Important.png重要:旋转值必须与UV法向量方向匹配,否则会导致编辑器异常!

格式转换工具

使用maputil.exe可进行格式互转: ```bash

  1. 转为笔刷基元

maputil.exe --convert bp input.map

  1. 转为Valve220标准

maputil.exe --convert valve input.map

相关链接

MAP格式详解(en)

VMF(en)(Source引擎原生格式)

RMF(en)(Worldcraft遗留格式)