文明6支持创意工坊也有一段日子了,对于增加游戏的火力来说,MOD是最好的手段之一。不过很多想要制作MOD自己玩的玩家都不是特别了解MOD的制作方法,今天小编带来的便是玩家“撒旦的时间房间”分享的游戏mod制作和打包上传基础教程,想要自己制作MOD的玩家千万不要错过了。
刚果遗物流文化胜利打法详解
首先,从steam平台上下载官方开放工具,一般我们只要tools那个就好了(表示另一个6.5G的我下载了四个多小时了也没好,我在网吧)。
首先你打开开发工具,看到的是这样一个界面,第一个是编辑代码和添加各种媒体文件的(这些文件需要你自己下另一个开发工具或者使用其他软件进行编辑)。第二个选项是上传和更新mod到创意工坊的。中国区玩家可以不用挂VPN上传,上传会有一定的延迟,请耐心等待。第三个我也不知道是什么东西,知道的可以告诉我一下。
然后点击第一个,如果你是第一次使用,它会提示你安装VS2013(文明六专属版,免费)一路确认,安装完成后会自动打开,以后每次点击上图第一个选项就会直接打开这个编辑器。
如果你以前用过VS或者其他IDE一定会对这个界面很熟悉,如果你从来每接触过,可能看到满屏幕的英文直接懵比了(英语十一级的大佬当我没说)。不要紧,我们从头开始学习如何制作一个mod。
首先,我们新建一个mod。
我们可以直接点击NEW mod 或者左上角FILE >new> project来创建一个新MOD。
这里为我们提供了五个模版,分别是新建筑、新领袖和文明(也可以用这个模版创建城邦)、新的政策、新的信条或者信仰、新的单位(包括工人,辅助单位,宗教单位,士兵,海陆空所有能动的东西)。我们从最简单的政策来入手学习。
首先选中政策选项,然后在Name后的输入框内输入mod名字,请使用英文(汉语拼音也可以)名字中不要出现空格,尽量不要用字符。在Locations后输入保存路径(可以点browse选择)。这一切完成后,点击OK即可
然后VS会自动生成一套模版,并默认打开一个HTML页面,这是官方关于如何制作,构建,上传mod的提升,这里给大家翻译一下(英语渣,翻译错的轻喷。)
开始项目:
恭喜你,你已经完成了制作文明6 mod的第一步,这些初始文件是一个完整解决方案,你可以使用它来完成你自己的mod
入门:
在你开始使用mod之前,你必须先构造它。为了构造mod,你可以点击BUILD菜单的Build Solution选项,或者你也可以使用Ctrl+Shift+B快捷建来完成(如果你没有更改默认设置的话)。你可以在/My Games/Sid Meier's Civilization VI/Mods/找到这个mod(备注1:mod文件位置在:我的文档/My Games/Sid Meier's CivilizationVI/Mods/)。(备注2:这里指的是你已经完成了mod文件的编写后生成mod。)
开始使用:
首先,让我们确认mod已经正确安装,启动文明六并选择“额外内容”,到mod安装目录下,你现在应该能看到你的mod了,确认mod状态为“启用”。
创建一个新游戏来享受你的成就吧!
接下来呢?
mod启动文件包括对mod相关信息的描述,你可以双击这些文件在编辑器中打开,这会允许你修改它们。
如果你想在mod中新增文件,点击Add->AddNew Item..
好吧,这个文件就是告诉你完成mod后怎么用的,说的很详细了,然而并没有什么用。
关闭这个文件并观察一下政策mod文件的目录结构。
除了我们刚才看到的html文件之外,还有四个xml文件,其中第一个ART那个不用我们更改,(其他类型的mod中一般也不用)我们要改的是下面的三个,它们依次是gameplay文件(包含了最主要的信息)icon(制定图标,这里不需要我们自制图标,如果你做的是文明或者单位等,需要你先用PS等软件制作一个格式为DDS的图标)text(对各国语言的翻译,我们这里只要英语和汉语就够了)。
首先我以我制作的一个简单的小mod为例,来详细为大家讲解如何编写代码,希望大家能做到举一反三。
我的设计是
新增政策,科举制
解锁人文科举:历史记录
类型:经济政策
效果:图书馆加2科举和2文化
研究 歌剧与芭蕾 后淘汰。
我先简单的介绍一下xml的语法规则
一对<>称之为标记(所有的标记都是官方规定的,你不能做任何形式的更改,编写是注意标记的大小写)。像我们可以叫它为GameDate标记(游戏数据)。
这样的代表当前标记结束,每个标记总是会跟着一个结束标记,这中间的部分我们称之为一个区块,像这样:
这就是Types区块,如果A标记处于B标记的区块之内,我们称A标记为B标记的子标记,像上图的Row标记就是Types标记的子标记。
细心的同学可能会发现中间有个特殊的标记Row,它是这样的:
Row Type="POLICY_IMPERIAL_EXAMINATION" Kind="KIND_POLICY"
它有两个属性即Type和 Kind,这两个属性的值分别是POLICY_IMPERIAL_EXAMINATION和KIND_POLICY这两个值就是游戏运行是会读取的内容,也是我们要修改的内容。
其实这段完全可以写成这样:
它们的内容和效果是完全一样的,前者是后者的省略写法,其中,如果某个子标记的区块中只含有值的话,我们可以把它当作其父标记的属性,来写在父标记的<>内部(而不是区块内)
比如 POLICY_IMPERIAL_EXAMINATION可以写成注意标记和父标记和属性直间的空格和值的双引号。而如果一个标记其区块内没有任何子标记或者所有的子标记都改写成了属性,那么我们可以把结束标记省简写,变成在标记的最后加一个“/”如这样。但是如果区块内还有子标记(或者值),则必须加上这样的结束标记。结束标记可以简写,但绝对不能省略。
一个XML文档通常由头和主标记组成的
文件头像这样它表示这是一个xml文件,版本号为1.0,编码格式为UTF-8(如果你以其它的格式进行保存,会出现中文乱码,但不会影响文件运行),文件头不需要我们做任何更改。
每个xml文件都会有一个主标记,它包含几个子标记,而它的子标记又会包含其他的子标记,如此越分越细,直到能够找到我们需要的值为止。它的结构如下图
另外像这样:
在中的内容称之为注释,这些内容不会对程序产生任何影响,你可以写一些东西来防止你忘记它们。
现在我们了解了xml文件的语法规则之后,我们就可以着手修改了。
第一部分:
Types这个标记定义了政策,所有的政策必须在这里出现一次才有效(事实上你在游戏中新增的任何内容都必须首先在types标记里声明一下,只有这样游戏才会读取它)。
这里我给我的政策起名为 POLICY_IMPERIAL_EXAMINATION 你可以给你的政策按照这个格式来起名,比如POLICY_XXXXX_XXXXXX(如果你的政策名包含多个单词,每个单词之前用“_”隔开)注意所有字母都是大写(其实如果你不按照这个格式来起名也可以,但看起来不标准,我建议大家用这个格式来起名字,哪怕只是汉语拼音)。后边的kind属性表示你定义的内容是什么,这里我们用KIND_POLICY来表示这是一个政策,(KIND_UNIT表示单位等,还有好多,你可以在游戏的date文件夹下查看)
第二部分
我们新声明了一个政策,它叫POLICY_IMPERIAL_EXAMINATION,现在,我们需要在Policies标记下添加一些它的基本信息。
其中PolicyType属性的值就是我们刚刚起的名字,Name和Description则是两个新建的属性,你可以同样按照LOC_POLICY_xxxxx_xxxx_NAME和LOC_POLICY_xxxxx_xxxx_DESCRIPTION来给他们起名,这两个值代表游戏中显示的名字和描述的文本,会在后面的翻译文件中使用。
PrereqCivic属性代表的是它是由那个人文科技解锁的,这里我选择的是CIVIC_RECORDED_HISTORY(历史记录)代表科举制是由历史记录这个科技解锁的。(所有的人文科技都的名字都可以在date文件夹下的Civics文件中查看,如果你的英语不好,你可以对照文明六中文百科)。
GovernmentSlotType属性表示的是这个政策属于那种类型的政策。目前游戏一共有五种类型的政策: SLOT_ECONOMIC 经济
SLOT_MILITARY 军事
SLOT_DIPLOMATIC 外交
SLOT_GREAT_PERSON 伟人
SLOT_WILDCARD 通用
你可以根据需求选择,这里我选则的是经济。
第三部分:
这里指定的是失效政策,即什么政策会使你当前的政策淘汰(可以不选,那么你增加的政策就会永久生效)
因为我觉得进入工业时代后科举制会失效,所以我选择的是歌剧与芭蕾这个科技研发后当前政策被淘汰,那么我在属性里写的是歌剧与芭蕾下的一个政策即大歌剧(注意是科技下的一个政策使你的政策淘汰,而不是科技本身)。
同样的PolicyType后边跟的是你的名字,而ObsoletePolicy则是淘汰你的政策的政策的名字,同样的,游戏自带政策的名字可以在date文件夹下的policies文件查看
第四部分:
这里我把这两个标记区块放到一起来讲,因为它们的关系很紧密。
第一个区块PolicyModifiers定义了政策加成的名字,注意的是一次加成就应当定义一次,比如我的设计,加2文化和2科技,其实它是两个加成效果,所有我把它们分成两部分来写,即RowPolicyType="POLICY_IMPERIAL_EXAMINATION"ModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"
和
RowPolicyType="POLICY_IMPERIAL_EXAMINATION"ModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER_CULTURE"
PolicyType属性就是政策的名字,ModifierId就是加成效果的名字
这两个效果前者我起名为POLICY_IMPERIAL_EXAMINATION_MODIFIER,负责增加科技,后者起名为POLICY_IMPERIAL_EXAMINATION_MODIFIER_CULTURE负责增加文化。
这个名字是你自己起的,注意遵循官方格式。
第二个Modifiers区块定义了加成目标的类型,像这样
RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"ModifierType=
"MODIFIER_PLAYER_CITIES_ADJUST_BUILDING_YIELD_MODIFIER"
其中ModifierId是你刚刚起的加成效果的名字,而ModifierType属性的值则是官方定义好的,它在date文件夹下的Modifiers文件中,这里定义了上百种加成方式,你可以根据你的需要来选择一种。这里我选择的是建筑加成。(图书馆属于建筑)
第五部分:
这部分就是对效果的实际定义了,像这样:
一个完整的加成效果由两到三个不等的标记组成,比如图书馆加2科技这个效果,就可以这么写(我们之前已经定义过加成类型为建筑加成了,这一点请不要忘记)。
RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="BuildingType" Value="BUILDING_LIBRARY"
RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER" Name="YieldType"Value="YIELD_SCIENCE"
RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="Amount" Value="2"
这三句话的含义分别是:
第一句,定义了受到加成的类型为建筑,建筑是图书馆。
其中Name的属性是收到加成的类型,可以是建筑或者商路,或者城区,也可以是地块,地形,改良设施,当然单位也可以。具体的内容可以在date文件夹中查看。这里我选择的是建筑,即BuildingType(单位是UnitType,地形是TerrainType等等),value的属性就是具体的那一个建筑了,建筑的名字可以在date的building文件中查看,这里我选择的是BUILDING_LIBRARY(图书馆)
第二句。定义了加成点数的类型,
RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="YieldType" Value="YIELD_SCIENCE"
其中Name属性我选的是点数加成(其他的还有视野加成,移动力加成,甚至有巨作和遗物加成)
而value属性后边的值同样可以在date文件夹下查看,这里我选择的是YIELD_SCIENCE(科技值)
第三句:就是具体加成多少点了
RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="Amount" Value="2"
Name属性的值Amount代表点数,你可以写一个数字,比如2,代表加成2点,3就是三点咯。
但如果你写一百,那将意味着100%的加成,而不是增加100点(这其中的规律我也暂时没搞懂,等我慢慢研究吧)
这样一个完整的加成效果就完成了,即图书馆加2科技值
另外一个加成效果同样可以这样做,我们只需要把科技改成文化即可。
更多更复杂的加成效果(比如加视野,商路加金币,发现奇观加遗物,甚至于发现奇观加金币,你都可以仿照date文件加下的一些文件中的内容制作,几乎能满足你的任何需求)
下一个文件是ICON文件,这个文件指定了政策所用图标(即黄卡,红卡等等)。
你只需把Name属性改成你ICON_POLICY_xxxx_xxxx后边的Atlas是具体的图标
ICON_ATLAS_ECONOMIC经济
ICON_ATLAS_MILITARY军事
ICON_ATLAS_DIPLOMATIC外交
ICON_ATLAS_PERSON伟人
ICON_ATLAS_WILDCARD通用
按照你的需求改,这里我改成经济
拓展:因为政策的图标每一类都是相同的,所以可以这样指定,但如果是文明或者领袖的图标,就需要你自己制作了,你需要用PS等软件制作一个DDS图标,因为比较复杂,这里我就不详细叙述了,有需要的可以上网上搜索一下。
特别指出的是,通过观察相关文件发现。城邦图标实际上是有三个部分组成的,即底色,背景,和丝带(logo)。底色,即城邦类型底色,像是宗教城邦都是白色的。背景是由几个大小不同的图片渲染完成的,它们完成了城邦图标的颜色渲染。丝带就是白色的logo,需要单独在ICON.xml文件中指定
最后一个文件,text文件是用来翻译成各国语言的,我建议大家只需要翻译英语和汉语即可
你可以按照这种格式来翻译:
其中Tag是你要翻译的词条,还记得我们在gameplay文件中定义的NAME和DESCRIPTION吗,这里我们要写出它们的具体内容,Language属性就是目标语言(一些特殊的语言有不同的翻译格式,比如西班牙语,但我猜你们用不上吧)
en_US代表美式英语,汉语像这样:
需要指出的是,英式英语翻译格式跟其它语言也不同,但我们一般用美式英语就够了
我建议大家能认真的翻译英语,这样能让外国人也看懂你的MOD。一些大型的复杂的MOD需要翻译的内容会更多,基本上结尾带NAME的和DESCRIPTION都需要进行翻译。
文本翻译文件也完成了,下一步就是构造mod了,点击菜单栏上方BUILD>Build Solution 如图,如果出现错误,就会在下面的框格中显示出来,如图:
Error:
Error: Parameter "escapedValue" cannot be null.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
这里表示出现一个错误,错误为
Error: Parameter "escapedValue" cannot be null.属性escapedValue的值不能为空,找到并更正错误,知道BUILD后出现
========== Build: 0 succeeded or up-to-date, 0 failed, 0 skipped ==========为止
这时,我们就可以在:我的文档/My Games/Sid Meier's CivilizationVI/Mods/文件夹下找到这个mod了,看一看好像能用,
嗯,大功告成。。。。了吗?
我们注意到,如果我们加载这个mod,他的名字和描述都依然是默认的EXAMPLE 并不是我们想要的,所以我们要修改modinfo文件,首先我们要修改的内容如下图:
NAME就是你要显示的名字,你可以直接在这里写中文,但我推荐在这里起个名字后按照我之前的方式在text.xml里进行翻译,当然,只在这里用英文而不翻译也是可以的。
下边的两个同理,即调节效果和描述,你也可以在text里进行翻译或者直接使用英文。
除了这些,你还可以在Properties标记里增添一些子标记来实现一些功能。
比如:
上边的是作者。你可以写上你自己的名字
下边的那个代表是否在游戏启动的时候加载mod 如果值是1,则默认加载(第一次加载mod要很长时间,开始时加载过多mod也需要较长时间,自己取舍)如果是0,则默认不加载,需手动在额外内容里开启。
当这些都完成后,我们才是真的大功告成了。现在,你可以把你的mod上传到创意工坊了。
使用官方SDK的第二个选项(steam……),打开上传更新工具。点击begin,在接下来的界面你可以看到你已经上传的mod,你可以选择更新mod或者上传新的mod。这里我们选择Upload来上传一个新的mod。
下面的菜单选择你的MOD所在文件夹,定位到modinfo,其他文件会自动加载。
点击NEXT,出现如下界面:
左侧是标题和描述,右侧从上到下依次是,在创意工坊中显示的图片(点击select image可选择本地文件),Visibility代表可见度,依次是public 公开 friends only仅朋友可见 private仅自己可见
Tags代表你要投到那个分区。这些都是可以在创意工坊中进行二次修改的。
点击NEXT,等待上传完成,这里有点小慢,请耐心等待。
如果你后期需要对mod进行更新,选择mod后选更新选项,其过程与上传是一样的。