核心内容摘要
17c·c起草口神秘代码,解锁数字时代的语言新维度
本文深度解析《文明6》Buildings.xml文件中所有XML标签的含义和作用为Mod开发者和游戏机制研究者提供完整参考。
文件概览该XML文件定义了《文明6》中所有建筑的完整数据体系包含建筑基础属性建筑关系与依赖产出与效果系统条件与需求系统视觉与界面信息 核心标签解析
根标签与基础结构xml!-- 文档声明 -- ?xml version
0 encodingutf-8? !-- 主容器包含所有游戏信息 -- GameInfo !-- 所有具体数据都在这里 -- /GameInfo
建筑类型定义Kinds- 种类容器xmlKinds !-- 定义建筑的基本类型 -- Row KindKIND_BUILDING/ /KindsTypes- 类型映射xmlTypes !-- 将具体建筑映射到种类 -- Row TypeBUILDING_LIBRARY KindKIND_BUILDING/ /Types作用建立建筑ID与类型的关联关系。
建筑替换系统BuildingReplaces- 特色建筑替换xmlBuildingReplaces Row CivUniqueBuildingTypeBUILDING_FILM_STUDIO ReplacesBuildingTypeBUILDING_BROADCAST_CENTER/ /BuildingReplaces字段说明CivUniqueBuildingType文明特色建筑ReplacesBuildingType被替换的标准建筑
建筑主数据表Buildings- 建筑核心属性xmlBuildings Row BuildingTypeBUILDING_LIBRARY NameLOC_BUILDING_LIBRARY_NAME PrereqTechTECH_WRITING PrereqDistrictDISTRICT_CAMPUS Cost90 Maintenance1 CitizenSlots1/ /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全球最大建造数量奇观1ObsoleteEra时代ERA_MEDIEVAL过时时代产出减少
建筑关系系统BuildingPrereqs- 建筑前置条件xmlBuildingPrereqs !-- 建造B之前必须先建造A -- Row BuildingBUILDING_UNIVERSITY PrereqBuildingBUILDING_LIBRARY/ /BuildingPrereqs重要机制只需满足任意一个前置建筑即可OR逻辑。
MutuallyExclusiveBuildings- 互斥建筑xmlMutuallyExclusiveBuildings !-- 兵营和马厩不能同时建造 -- Row BuildingBUILDING_STABLE MutuallyExclusiveBuildingBUILDING_BARRACKS/ /MutuallyExclusiveBuildings
产出系统Building_YieldChanges- 基础产出xmlBuilding_YieldChanges !-- 建筑每回合自动提供的固定产出 -- Row BuildingTypeBUILDING_LIBRARY YieldTypeYIELD_SCIENCE YieldChange2/ /Building_YieldChanges产出类型YIELD_FOOD食物YIELD_PRODUCTION生产力YIELD_GOLD金币YIELD_SCIENCE科技值YIELD_CULTURE文化值YIELD_FAITH信仰值Building_YieldsPerEra- 时代增长产出xmlBuilding_YieldsPerEra !-- 每进入一个新时代额外增加的产出 -- Row BuildingTypeBUILDING_DAR_E_MEHR YieldTypeYIELD_FAITH YieldChange1/ /Building_YieldsPerEraBuilding_GreatPersonPoints- 伟人点数xmlBuilding_GreatPersonPoints !-- 建筑每回合积累的伟人点数 -- Row BuildingTypeBUILDING_LIBRARY GreatPersonClassTypeGREAT_PERSON_CLASS_SCIENTIST PointsPerTurn1/ /Building_GreatPersonPointsBuilding_YieldDistrictCopies- 区域产出转换xmlBuilding_YieldDistrictCopies !-- 将区域的一种产出转换为另一种 -- Row BuildingTypeBUILDING_SHIPYARD OldYieldTypeYIELD_GOLD NewYieldTypeYIELD_PRODUCTION/ /Building_YieldDistrictCopies
巨作系统Building_GreatWorks- 巨作槽位xmlBuilding_GreatWorks Row BuildingTypeBUILDING_AMPHITHEATER GreatWorkSlotTypeGREATWORKSLOT_WRITING NumSlots2 ThemingBonusDescriptionLOC_BUILDING_THEMINGBONUS_ART/ /Building_GreatWorks关键参数GreatWorkSlotType巨作类型著作/艺术品/音乐/遗物NumSlots槽位数量ThemingUniquePerson主题化是否需要不同作者ThemingSameObjectType主题化是否需要同类巨作
效果系统ModifiersModifiers- 效果定义xmlModifiers !-- 定义一个效果/能力 -- Row ModifierIdPALACE_ADJUST_GARRISON_STRENGTH ModifierTypeMODIFIER_PLAYER_CITIES_ADJUST_INNER_DEFENSE/ /ModifiersModifierArguments- 效果参数xmlModifierArguments !-- 为效果设置具体数值 -- Row ModifierIdPALACE_ADJUST_GARRISON_STRENGTH NameAmount Value3/ /ModifierArgumentsBuildingModifiers- 建筑效果关联xmlBuildingModifiers !-- 将效果分配给建筑 -- Row BuildingTypeBUILDING_PALACE ModifierIdPALACE_ADJUST_GARRISON_STRENGTH/ /BuildingModifiers
条件系统RequirementsRequirements- 条件定义xmlRequirements !-- 定义一个判断条件 -- Row RequirementIdREQUIRES_PLOT_HAS_COAST RequirementTypeREQUIREMENT_PLOT_TERRAIN_TYPE_MATCHES/ /RequirementsRequirementArguments- 条件参数xmlRequirementArguments !-- 设置条件的具体判断值 -- Row RequirementIdREQUIRES_PLOT_HAS_COAST NameTerrainType ValueTERRAIN_COAST/ /RequirementArgumentsRequirementSets- 条件组合xmlRequirementSets !-- 将多个条件组合成条件组 -- Row RequirementSetIdPLOT_HAS_COAST_REQUIREMENTS RequirementSetTypeREQUIREMENTSET_TEST_ALL/ /RequirementSets组合类型REQUIREMENTSET_TEST_ALL所有条件必须满足ANDREQUIREMENTSET_TEST_ANY任意条件满足即可ORRequirementSetRequirements- 条件组内容xmlRequirementSetRequirements !-- 将条件添加到条件组 -- Row RequirementSetIdPLOT_HAS_COAST_REQUIREMENTS RequirementIdREQUIRES_PLOT_HAS_COAST/ /RequirementSetRequirements
地形与地貌限制Building_ValidFeatures- 有效地貌xmlBuilding_ValidFeatures !-- 建筑可以建造在这些地貌上 -- Row BuildingTypeBUILDING_PETRA FeatureTypeFEATURE_FLOODPLAINS/ /Building_ValidFeaturesBuilding_RequiredFeatures- 必需地貌xmlBuilding_RequiredFeatures !-- 建筑必须建造在这些地貌上 -- Row BuildingTypeBUILDING_CHICHEN_ITZA FeatureTypeFEATURE_JUNGLE/ /Building_RequiredFeaturesBuilding_ValidTerrains- 有效地形xmlBuilding_ValidTerrains !-- 建筑可以建造在这些地形上 -- Row BuildingTypeBUILDING_PYRAMIDS TerrainTypeTERRAIN_DESERT/ /Building_ValidTerrains 游戏机制对应关系XML标签游戏内表现玩家体验Buildings建筑面板显示属性建造时的信息展示BuildingPrereqs建造按钮是否可用需要先建造图书馆提示Building_YieldChanges每回合资源收入科技/文化/金币增长Building_GreatPersonPoints伟人进度条伟人招募倒计时Modifiers各种加成效果单位经验加成、产出提升等Requirements建造条件检查红色感叹号提示 Mod开发实用指南
添加新建筑的基本结构xml!--
添加到Types -- Row TypeBUILDING_MY_NEW_BUILDING KindKIND_BUILDING/ !--
定义基础属性 -- Row BuildingTypeBUILDING_MY_NEW_BUILDING NameLOC_MY_BUILDING_NAME Cost100 PrereqTechTECH_MY_TECH/ !--
添加产出 -- Row BuildingTypeBUILDING_MY_NEW_BUILDING YieldTypeYIELD_SCIENCE YieldChange3/ !--
添加效果可选 -- Row BuildingTypeBUILDING_MY_NEW_BUILDING ModifierIdMY_NEW_MODIFIER/
修改现有建筑xml!-- 修改图书馆的科技产出 -- Update Set YieldChange3/ Where BuildingTypeBUILDING_LIBRARY YieldTypeYIELD_SCIENCE/ /Update
创建条件式效果xml!-- 当玩家拥有电力科技时工厂额外2生产力 -- Row ModifierIdFACTORY_ELECTRICITY_BONUS ModifierTypeMODIFIER_BUILDING_YIELD_CHANGE SubjectRequirementSetIdHAS_ELECTRICITY_TECH/ Row RequirementIdREQUIRES_PLAYER_HAS_ELECTRICITY RequirementTypeREQUIREMENT_PLAYER_HAS_TECHNOLOGY/ Row RequirementIdREQUIRES_PLAYER_HAS_ELECTRICITY NameTechnologyType ValueTECH_ELECTRICITY/ 数据关系图textBuildings.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)⚠️
常见问题与
注意事项
本地化键必须存在xml!-- 正确使用存在的本地化键 -- NameLOC_BUILDING_LIBRARY_NAME !-- 错误本地化键不存在会导致显示为KEY -- NameMY_CUSTOM_NAME !-- 错误 --
引用必须有效xml!-- 引用的科技、市政、区域必须已定义 -- PrereqTechTECH_WRITING !-- TECH_WRITING必须在Techs.xml中定义 --
条件系统优先级条件系统按顺序执行复杂条件可能影响性能避免循环引用
平衡性考虑维护费与产出比例建造时代与强度匹配与其他建筑的协同/竞争 实战应用场景场景1创建科技胜利辅助建筑xml!-- 后期科技爆发建筑 -- Row BuildingTypeBUILDING_QUANTUM_LAB NameLOC_BUILDING_QUANTUM_LAB_NAME PrereqTechTECH_QUANTUM_COMPUTING PrereqDistrictDISTRICT_CAMPUS Cost1200 Maintenance5 CitizenSlots3/ Row BuildingTypeBUILDING_QUANTUM_LAB YieldTypeYIELD_SCIENCE YieldChange10/ Row BuildingTypeBUILDING_QUANTUM_LAB GreatPersonClassTypeGREAT_PERSON_CLASS_SCIENTIST PointsPerTurn3/场景2环境适应性建筑xml!-- 沙漠城市专用建筑 -- Row BuildingTypeBUILDING_DESERT_AGRIDOME NameLOC_BUILDING_DESERT_AGRIDOME_NAME PrereqTechTECH_REFINING Cost300/ Row BuildingTypeBUILDING_DESERT_AGRIDOME YieldTypeYIELD_FOOD YieldChange4/ !-- 仅在沙漠地形有效 -- Row BuildingTypeBUILDING_DESERT_AGRIDOME ModifierIdDESERT_FOOD_BONUS SubjectRequirementSetIdPLOT_IS_DESERT/场景3文明特色建筑xml!-- 替换标准市场 -- Row CivUniqueBuildingTypeBUILDING_SILK_ROAD_BAZAAR ReplacesBuildingTypeBUILDING_MARKET/ !-- 增强版市场 -- Row BuildingTypeBUILDING_SILK_ROAD_BAZAAR NameLOC_BUILDING_SILK_ROAD_BAZAAR_NAME Cost120 !-- 比标准市场贵 -- Maintenance2 TraitTypeTRAIT_CIVILIZATION_BUILDING_BAZAAR/ !-- 额外提供文化值 -- Row BuildingTypeBUILDING_SILK_ROAD_BAZAAR YieldTypeYIELD_CULTURE YieldChange2/ 扩展学习资源
官方文档Firaxis Modding WikiCivilization VI SDK Documentation
相关XML文件Technologies.xml- 科技树定义Civics.xml- 市政树定义Districts.xml- 区域定义Units.xml- 单位定义Modifiers.xml- 效果类型定义
工具推荐FireTuner实时调试工具ModBuddy官方Mod开发环境XML NotepadXML可视化编辑器
总结《文明6》的XML建筑文件是一个高度结构化的数据系统通过层级化的标签定义实现了数据与逻辑分离属性、关系、效果分别定义模块化设计各系统独立但可相互引用扩展性强易于添加新内容或修改现有内容条件驱动复杂的游戏逻辑通过条件系统实现理解这个文件结构不仅是Mod开发的基础也是深入理解《文明6》游戏设计哲学的关键。
从简单的数值调整到复杂的新机制添加XML标签系统提供了完整的工具集。
本文基于《文明6》游戏文件分析实际游戏内容以最新版本为准。
Mod开发请参考官方最新文档。