news 2026/5/4 17:15:57

《文明6》XML建筑文件全标签解析:从代码到游戏的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《文明6》XML建筑文件全标签解析:从代码到游戏的完整指南

本文深度解析《文明6》Buildings.xml文件中所有XML标签的含义和作用,为Mod开发者和游戏机制研究者提供完整参考。

📁 文件概览

该XML文件定义了《文明6》中所有建筑的完整数据体系,包含:

  • 建筑基础属性

  • 建筑关系与依赖

  • 产出与效果系统

  • 条件与需求系统

  • 视觉与界面信息

📋 核心标签解析

1. 根标签与基础结构

xml

<!-- 文档声明 --> <?xml version="1.0" encoding="utf-8"?> <!-- 主容器:包含所有游戏信息 --> <GameInfo> <!-- 所有具体数据都在这里 --> </GameInfo>

2. 建筑类型定义

<Kinds>- 种类容器

xml

<Kinds> <!-- 定义建筑的基本类型 --> <Row Kind="KIND_BUILDING"/> </Kinds>
<Types>- 类型映射

xml

<Types> <!-- 将具体建筑映射到种类 --> <Row Type="BUILDING_LIBRARY" Kind="KIND_BUILDING"/> </Types>

作用:建立建筑ID与类型的关联关系。

3. 建筑替换系统

<BuildingReplaces>- 特色建筑替换

xml

<BuildingReplaces> <Row CivUniqueBuildingType="BUILDING_FILM_STUDIO" ReplacesBuildingType="BUILDING_BROADCAST_CENTER"/> </BuildingReplaces>

字段说明

  • CivUniqueBuildingType:文明特色建筑

  • ReplacesBuildingType:被替换的标准建筑

4. 建筑主数据表

<Buildings>- 建筑核心属性

xml

<Buildings> <Row BuildingType="BUILDING_LIBRARY" Name="LOC_BUILDING_LIBRARY_NAME" PrereqTech="TECH_WRITING" PrereqDistrict="DISTRICT_CAMPUS" Cost="90" Maintenance="1" CitizenSlots="1"/> </Buildings>

核心字段解析

字段名类型示例值说明
BuildingType字符串BUILDING_LIBRARY建筑唯一标识符
Name本地化键LOC_BUILDING_XXX_NAME显示名称的本地化键
PrereqTech科技IDTECH_WRITING解锁所需科技
PrereqDistrict区域IDDISTRICT_CAMPUS必须建造在指定区域
PrereqCivic市政IDCIVIC_GAMES_RECREATION解锁所需市政
PurchaseYield产出类型YIELD_GOLD可用何种资源购买
Cost整数90生产力建造成本
Maintenance整数1每回合维护费(金币)
CitizenSlots整数1提供的专家工作槽位数
Housing整数2提供的住房数量
Entertainment整数2提供的娱乐度
IsWonder布尔true是否为世界奇观
MaxWorldInstances整数1全球最大建造数量(奇观=1)
ObsoleteEra时代ERA_MEDIEVAL过时时代(产出减少)

5. 建筑关系系统

<BuildingPrereqs>- 建筑前置条件

xml

<BuildingPrereqs> <!-- 建造B之前必须先建造A --> <Row Building="BUILDING_UNIVERSITY" PrereqBuilding="BUILDING_LIBRARY"/> </BuildingPrereqs>

重要机制:只需满足任意一个前置建筑即可(OR逻辑)。

<MutuallyExclusiveBuildings>- 互斥建筑

xml

<MutuallyExclusiveBuildings> <!-- 兵营和马厩不能同时建造 --> <Row Building="BUILDING_STABLE" MutuallyExclusiveBuilding="BUILDING_BARRACKS"/> </MutuallyExclusiveBuildings>

6. 产出系统

<Building_YieldChanges>- 基础产出

xml

<Building_YieldChanges> <!-- 建筑每回合自动提供的固定产出 --> <Row BuildingType="BUILDING_LIBRARY" YieldType="YIELD_SCIENCE" YieldChange="2"/> </Building_YieldChanges>

产出类型

  • YIELD_FOOD(食物)

  • YIELD_PRODUCTION(生产力)

  • YIELD_GOLD(金币)

  • YIELD_SCIENCE(科技值)

  • YIELD_CULTURE(文化值)

  • YIELD_FAITH(信仰值)

<Building_YieldsPerEra>- 时代增长产出

xml

<Building_YieldsPerEra> <!-- 每进入一个新时代额外增加的产出 --> <Row BuildingType="BUILDING_DAR_E_MEHR" YieldType="YIELD_FAITH" YieldChange="1"/> </Building_YieldsPerEra>
<Building_GreatPersonPoints>- 伟人点数

xml

<Building_GreatPersonPoints> <!-- 建筑每回合积累的伟人点数 --> <Row BuildingType="BUILDING_LIBRARY" GreatPersonClassType="GREAT_PERSON_CLASS_SCIENTIST" PointsPerTurn="1"/> </Building_GreatPersonPoints>
<Building_YieldDistrictCopies>- 区域产出转换

xml

<Building_YieldDistrictCopies> <!-- 将区域的一种产出转换为另一种 --> <Row BuildingType="BUILDING_SHIPYARD" OldYieldType="YIELD_GOLD" NewYieldType="YIELD_PRODUCTION"/> </Building_YieldDistrictCopies>

7. 巨作系统

<Building_GreatWorks>- 巨作槽位

xml

<Building_GreatWorks> <Row BuildingType="BUILDING_AMPHITHEATER" GreatWorkSlotType="GREATWORKSLOT_WRITING" NumSlots="2" ThemingBonusDescription="LOC_BUILDING_THEMINGBONUS_ART"/> </Building_GreatWorks>

关键参数

  • GreatWorkSlotType:巨作类型(著作/艺术品/音乐/遗物)

  • NumSlots:槽位数量

  • ThemingUniquePerson:主题化是否需要不同作者

  • ThemingSameObjectType:主题化是否需要同类巨作

8. 效果系统(Modifiers)

<Modifiers>- 效果定义

xml

<Modifiers> <!-- 定义一个效果/能力 --> <Row ModifierId="PALACE_ADJUST_GARRISON_STRENGTH" ModifierType="MODIFIER_PLAYER_CITIES_ADJUST_INNER_DEFENSE"/> </Modifiers>
<ModifierArguments>- 效果参数

xml

<ModifierArguments> <!-- 为效果设置具体数值 --> <Row ModifierId="PALACE_ADJUST_GARRISON_STRENGTH" Name="Amount" Value="3"/> </ModifierArguments>
<BuildingModifiers>- 建筑效果关联

xml

<BuildingModifiers> <!-- 将效果分配给建筑 --> <Row BuildingType="BUILDING_PALACE" ModifierId="PALACE_ADJUST_GARRISON_STRENGTH"/> </BuildingModifiers>

9. 条件系统(Requirements)

<Requirements>- 条件定义

xml

<Requirements> <!-- 定义一个判断条件 --> <Row RequirementId="REQUIRES_PLOT_HAS_COAST" RequirementType="REQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES"/> </Requirements>
<RequirementArguments>- 条件参数

xml

<RequirementArguments> <!-- 设置条件的具体判断值 --> <Row RequirementId="REQUIRES_PLOT_HAS_COAST" Name="TerrainType" Value="TERRAIN_COAST"/> </RequirementArguments>
<RequirementSets>- 条件组合

xml

<RequirementSets> <!-- 将多个条件组合成条件组 --> <Row RequirementSetId="PLOT_HAS_COAST_REQUIREMENTS" RequirementSetType="REQUIREMENTSET_TEST_ALL"/> </RequirementSets>

组合类型

  • REQUIREMENTSET_TEST_ALL:所有条件必须满足(AND)

  • REQUIREMENTSET_TEST_ANY:任意条件满足即可(OR)

<RequirementSetRequirements>- 条件组内容

xml

<RequirementSetRequirements> <!-- 将条件添加到条件组 --> <Row RequirementSetId="PLOT_HAS_COAST_REQUIREMENTS" RequirementId="REQUIRES_PLOT_HAS_COAST"/> </RequirementSetRequirements>

10. 地形与地貌限制

<Building_ValidFeatures>- 有效地貌

xml

<Building_ValidFeatures> <!-- 建筑可以建造在这些地貌上 --> <Row BuildingType="BUILDING_PETRA" FeatureType="FEATURE_FLOODPLAINS"/> </Building_ValidFeatures>
<Building_RequiredFeatures>- 必需地貌

xml

<Building_RequiredFeatures> <!-- 建筑必须建造在这些地貌上 --> <Row BuildingType="BUILDING_CHICHEN_ITZA" FeatureType="FEATURE_JUNGLE"/> </Building_RequiredFeatures>
<Building_ValidTerrains>- 有效地形

xml

<Building_ValidTerrains> <!-- 建筑可以建造在这些地形上 --> <Row BuildingType="BUILDING_PYRAMIDS" TerrainType="TERRAIN_DESERT"/> </Building_ValidTerrains>

🎮 游戏机制对应关系

XML标签游戏内表现玩家体验
<Buildings>建筑面板显示属性建造时的信息展示
<BuildingPrereqs>建造按钮是否可用"需要先建造图书馆"提示
<Building_YieldChanges>每回合资源收入科技/文化/金币增长
<Building_GreatPersonPoints>伟人进度条伟人招募倒计时
<Modifiers>各种加成效果单位经验加成、产出提升等
<Requirements>建造条件检查红色感叹号提示

🔧 Mod开发实用指南

1. 添加新建筑的基本结构

xml

<!-- 1. 添加到Types --> <Row Type="BUILDING_MY_NEW_BUILDING" Kind="KIND_BUILDING"/> <!-- 2. 定义基础属性 --> <Row BuildingType="BUILDING_MY_NEW_BUILDING" Name="LOC_MY_BUILDING_NAME" Cost="100" PrereqTech="TECH_MY_TECH"/> <!-- 3. 添加产出 --> <Row BuildingType="BUILDING_MY_NEW_BUILDING" YieldType="YIELD_SCIENCE" YieldChange="3"/> <!-- 4. 添加效果(可选) --> <Row BuildingType="BUILDING_MY_NEW_BUILDING" ModifierId="MY_NEW_MODIFIER"/>

2. 修改现有建筑

xml

<!-- 修改图书馆的科技产出 --> <Update> <Set YieldChange="3"/> <Where BuildingType="BUILDING_LIBRARY" YieldType="YIELD_SCIENCE"/> </Update>

3. 创建条件式效果

xml

<!-- 当玩家拥有电力科技时,工厂额外+2生产力 --> <Row ModifierId="FACTORY_ELECTRICITY_BONUS" ModifierType="MODIFIER_BUILDING_YIELD_CHANGE" SubjectRequirementSetId="HAS_ELECTRICITY_TECH"/> <Row RequirementId="REQUIRES_PLAYER_HAS_ELECTRICITY" RequirementType="REQUIREMENT_PLAYER_HAS_TECHNOLOGY"/> <Row RequirementId="REQUIRES_PLAYER_HAS_ELECTRICITY" Name="TechnologyType" Value="TECH_ELECTRICITY"/>

📊 数据关系图

text

Buildings.xml ├── 基础定义 (Types, Kinds) ├── 核心属性 (Buildings) │ ├── 成本系统 (Cost, Maintenance) │ ├── 解锁条件 (PrereqTech, PrereqCivic) │ └── 特殊属性 (Housing, Entertainment, etc.) ├── 关系系统 │ ├── 前置条件 (BuildingPrereqs) │ └── 互斥关系 (MutuallyExclusiveBuildings) ├── 产出系统 │ ├── 基础产出 (Building_YieldChanges) │ ├── 伟人点数 (Building_GreatPersonPoints) │ └── 巨作系统 (Building_GreatWorks) ├── 效果系统 │ ├── 效果定义 (Modifiers) │ ├── 效果参数 (ModifierArguments) │ └── 效果关联 (BuildingModifiers) ├── 条件系统 │ ├── 单条件 (Requirements) │ ├── 条件组 (RequirementSets) │ └── 条件参数 (RequirementArguments) └── 地形限制 ├── 有效地形 (Building_ValidTerrains) ├── 必需地形 (Building_RequiredFeatures) └── 允许地貌 (Building_ValidFeatures)

⚠️ 常见问题与注意事项

1. 本地化键必须存在

xml

<!-- 正确:使用存在的本地化键 --> Name="LOC_BUILDING_LIBRARY_NAME" <!-- 错误:本地化键不存在会导致显示为KEY --> Name="MY_CUSTOM_NAME" <!-- 错误! -->

2. 引用必须有效

xml

<!-- 引用的科技、市政、区域必须已定义 --> PrereqTech="TECH_WRITING" <!-- TECH_WRITING必须在Techs.xml中定义 -->

3. 条件系统优先级

  • 条件系统按顺序执行

  • 复杂条件可能影响性能

  • 避免循环引用

4. 平衡性考虑

  • 维护费与产出比例

  • 建造时代与强度匹配

  • 与其他建筑的协同/竞争

🎯 实战应用场景

场景1:创建科技胜利辅助建筑

xml

<!-- 后期科技爆发建筑 --> <Row BuildingType="BUILDING_QUANTUM_LAB" Name="LOC_BUILDING_QUANTUM_LAB_NAME" PrereqTech="TECH_QUANTUM_COMPUTING" PrereqDistrict="DISTRICT_CAMPUS" Cost="1200" Maintenance="5" CitizenSlots="3"/> <Row BuildingType="BUILDING_QUANTUM_LAB" YieldType="YIELD_SCIENCE" YieldChange="10"/> <Row BuildingType="BUILDING_QUANTUM_LAB" GreatPersonClassType="GREAT_PERSON_CLASS_SCIENTIST" PointsPerTurn="3"/>

场景2:环境适应性建筑

xml

<!-- 沙漠城市专用建筑 --> <Row BuildingType="BUILDING_DESERT_AGRIDOME" Name="LOC_BUILDING_DESERT_AGRIDOME_NAME" PrereqTech="TECH_REFINING" Cost="300"/> <Row BuildingType="BUILDING_DESERT_AGRIDOME" YieldType="YIELD_FOOD" YieldChange="4"/> <!-- 仅在沙漠地形有效 --> <Row BuildingType="BUILDING_DESERT_AGRIDOME" ModifierId="DESERT_FOOD_BONUS" SubjectRequirementSetId="PLOT_IS_DESERT"/>

场景3:文明特色建筑

xml

<!-- 替换标准市场 --> <Row CivUniqueBuildingType="BUILDING_SILK_ROAD_BAZAAR" ReplacesBuildingType="BUILDING_MARKET"/> <!-- 增强版市场 --> <Row BuildingType="BUILDING_SILK_ROAD_BAZAAR" Name="LOC_BUILDING_SILK_ROAD_BAZAAR_NAME" Cost="120" <!-- 比标准市场贵 --> Maintenance="2" TraitType="TRAIT_CIVILIZATION_BUILDING_BAZAAR"/> <!-- 额外提供文化值 --> <Row BuildingType="BUILDING_SILK_ROAD_BAZAAR" YieldType="YIELD_CULTURE" YieldChange="2"/>

📚 扩展学习资源

1. 官方文档

  • Firaxis Modding Wiki

  • Civilization VI SDK Documentation

2. 相关XML文件

  • Technologies.xml- 科技树定义

  • Civics.xml- 市政树定义

  • Districts.xml- 区域定义

  • Units.xml- 单位定义

  • Modifiers.xml- 效果类型定义

3. 工具推荐

  • FireTuner:实时调试工具

  • ModBuddy:官方Mod开发环境

  • XML Notepad:XML可视化编辑器

💎 总结

《文明6》的XML建筑文件是一个高度结构化的数据系统,通过层级化的标签定义实现了:

  1. 数据与逻辑分离:属性、关系、效果分别定义

  2. 模块化设计:各系统独立但可相互引用

  3. 扩展性强:易于添加新内容或修改现有内容

  4. 条件驱动:复杂的游戏逻辑通过条件系统实现

理解这个文件结构不仅是Mod开发的基础,也是深入理解《文明6》游戏设计哲学的关键。从简单的数值调整到复杂的新机制添加,XML标签系统提供了完整的工具集。


本文基于《文明6》游戏文件分析,实际游戏内容以最新版本为准。Mod开发请参考官方最新文档。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 6:06:33

文明6 MOD制作入门:解密官方阿兹特克配置文件

&#x1f4d6; 前言 如果你是刚开始接触文明6 MOD制作的新手&#xff0c;看到官方复杂的XML文件可能会感到一头雾水。今天&#xff0c;我们就来深入解析阿兹特克文明的官方配置文件&#xff0c;用通俗易懂的方式带你入门MOD制作&#xff01; &#x1f3af; 文件概览 这个文件…

作者头像 李华
网站建设 2026/4/30 13:52:58

药店药品管理系统的设计与实现开题报告

目录药店药品管理系统开题报告介绍系统开发背景与意义系统核心功能模块技术实现方案预期成果与创新性研究计划与进度安排项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作药店药品管理系统开题报告介绍 药店…

作者头像 李华
网站建设 2026/5/3 8:18:05

信号处理仿真:语音信号处理_(10).回声消除技术

回声消除技术 1. 回声的产生和分类 在语音通信系统中&#xff0c;回声是一个常见的问题&#xff0c;它会影响通话质量&#xff0c;甚至导致通话中断。回声的产生可以分为两种主要类型&#xff1a;声学回声和电学回声。 1.1 声学回声 声学回声是由于扬声器发出的声音被周围的…

作者头像 李华
网站建设 2026/4/27 10:48:30

[LCD Monitor]如何超频至540Hz

文章目录 [LCD Monitor]如何超频至540Hz 如何调整屏幕的分辨率与刷新频率 [LCD Monitor]如何超频至540Hz 最新版的Windows 11 build现在已经可以在微软官网看到更新信息, 请 至这里来下载最新更新并解锁PG248QP 屏幕的540 Hz 更新率支持. (如果你是Windows 10 系统的用户, 也必…

作者头像 李华
网站建设 2026/5/3 2:28:30

Linux命令-login(登录系统)

&#x1f9ed;说明 login 命令是Linux系统中用于登录系统的核心工具&#xff0c;它负责验证用户身份并为用户开启一个新的会话。下面这个表格汇总了它的基本用法。项目说明基本作用登录系统&#xff0c;启动新的用户会话。命令格式login [选项] [用户名]常用选项-p: 保持当前环…

作者头像 李华