索尼承诺将“增加PS5主机供应”
2023-01-31
更新时间:2022-03-28 19:33:17作者:佚名
文明6游戏中玩家可以自行添加喜欢的mod以增强游戏的可玩性,但是mod该如何制作呢?今天小编就为大家带来玩家“随风飘荡的无奈”分享的文明6mod制作图文教程,感兴趣的朋友们不妨来看看吧!
mod制作图文教程
工具准备
因为涉及的工具原因。仅适合正版玩家参考。各类破解版绿化版需要自行获取工具。
制作mod前,我们先要准备一些工具。
首先是游戏本体和其附带的官方SDK。
我接下来所讲的基本都基于官方提供的modbuddy,modbuddy自身是没有语言包的,如果想要中文界面需要安装VS。
然后我们需要一个代码编辑器。用于查看一些原版游戏内的代码和debug的时候修改mod文件。虽然系统自带的记事本也可以完成,modbuddy也支持打开文件,但还是自备一个吧。这里我选的是NOTEPAD++。网上有免费版本可以下载。
角色设计工具准备好后,我们就可以开始制作了。
这里我们首要考虑制作领袖和文明mod,其余杂项mod的制作和领袖文明差不多,就放到后面了。
不过首先,我们需要做一份角色设计。这能帮助我们更好的规划整个mod的结构,搞清楚我们想要实现什么。
一份角色设计包括以下的内容。
mod主题:你想要做谁。他的特点是什么。有哪些你想玩的梗
国家名称、国家能力名称、国家能力效果;领袖名称、领袖能力名称、领袖能力效果:这部分是整个mod的灵魂,你需要参考现有的功能来设计,一个能力在制作前和制作后会有较大的差距,这取决你的创造力、发散思维和原版游戏的功能支持,理论上什么样的能力都能实现,不过这需要你掌握lua和sql的编写方法,这部分我在教程里不做涉及,只讲解和xml有关的部分。
两个UA设计完后你要考虑设计UD(特色区域) UB(特色建筑) UU(特色单位) UI(特色改良) UG(特色伟人) UP(特色城区计划),几乎所有的项目能特色化。你可以任选其中之一,也可以全部都做,这取决你想要什么样平衡性。(那是啥,不存在的)
然后,你要设计这个领袖的胜利倾向和外交倾向。
上面的部分全部设计好后,我们大体的角色设计就结束了。接下来你可以设计一些细枝末节的东西。比如城市的名字啊,领袖的介绍啊等等,当然,你也可以在制作过程中完善这些东西。
下面是一份角色设计的实例,供参考。
开始制作做好角色设计后我们就可以开始动工了。不过在这之前我们先来认识一下Sid Meier's Civilization VI SDK
这个打开以后是这样的
具体的用途我已经标注了。我们主要用到的是modbuddy
打开以后去设置检查一下相关的支持库有木有关联好,没有的话手动补下。
不要问我为什么我这是中文。你打开却是英文。上面已经讲过了。
我们新建一个项目
这里从上到下依次是新建筑、新文明和领袖、新政体和政策、新宗教和信条、新单位、空白模板
这些都是官方提供的基础模板。给出了基本的文件结构和内部格式。在我们熟练编写mod前这些都是很有用的辅助模板。
为了方便叙述,我下面以双叶杏为模板进行讲解。
我们选择新文明和领袖。为其命名。完成创建
他会自动生成一套文件结构,并向你提示如何编写一个mod(简略)
一个领袖mod是由哪些要素组成的?
artdesf文件夹是用来存放artdef文件的。这些文件的作用是告诉游戏你创建的文明、领袖、城区、建筑、单位使用的是哪些模型,它该在什么时候调用哪个模型。
textures文件夹是用来存放贴图文件的,一般是.dds和.tex。
xlps文件夹是用来存放xlp文件的,这组文件和上面的两组文件我们放到后面再讲。
下面的一票xml文件就是整个mod的代码载体。(GettingStarted.html?就是这个白色的欢迎界面 ,删掉就是了)
有些时候,你可能光靠xml的功能库实现不了某些功能,这个时候就要使用sql或lua文件,这方面我不做涉及。
关于xml的命名。理论上可以随意命名,但是为了你自己和其他有需要的人着想,请按一定的规范进行命名。
这个模板里的xml一般来说可以全部删掉。我也推荐全部删除后自己创建一遍。但是注意要保留mod.art.xml这个文件,它的作用会在后面和上面的三组文件夹一起讲。
一般来说,xml命名最好按照领袖名称+功能来命名。比如Anzu_Civilization。这样的好处在于有效区分不同对象和功能的代码。方便自己编写和debug。
一般需要的xml有:Civilization 文明 Leader 领袖 District 区域 Building 建筑 Unit 单位 Config 加载设置 Icons 图标配置 Text 基础文本 Text_XXX对应语言翻译文本这些。按照内容可在结尾+s。
按照我的角色设计。我的文件结构应该如下:
在整理好文件结构后,我们来编写xml的内容。xml相关的语法吧里已经有相关介绍,我就不再赘述了。
想学会xml的编写有个小诀窍,抄!抄原版游戏、抄各个作者的mod,从你想得到地方,直接抄个格式下来,然后再自己修改,这样的好处是能把犯错的可能降到最低,坏处是无脑抄抄抄会让你的能力设计被框住,没法实现一些独特的功能。
文明和领袖的xml为了方便讲解,我们先从文明和领袖的xml讲起。
这是作为mod的时候,一个领袖和文明xml的格式,这部分的基础格式主要参考各个已发布的mod和官方的dlc文件,每个设定的type都是环环嵌套的,遵从着一个逻辑:先row(设定)再读取。
新手起步,我建议你主要参考官方dlc的文档,先把所有的主项目(Types、Leaders、LeaderQuotes等)复制进你的xml,然后根据你的需要删减主项目。
然后我们再逐个编辑各个主项目。
首先是types,这个项目负责申明你设定的项的名称和类型,例如
<Row Type="CIVILIZATION_CINDY" Kind="KIND_CIVILIZATION"/>
他的意思就是设定一个项,名称叫“CINDY”(Type="CIVILIZATION_CINDY"),他的类别是“文明”(Kind="KIND_CIVILIZATION"),在你mod里,所有的项都要先row(设定)再读取(使用)。所有变量都有一个设定,如果不设定直接使用一个全新的变量,游戏就会报错。
节选了部分常用变量,这些变量都在Sid Meier's Civilization VI\Base\Assets\Gameplay\Data文件夹下的xml里。
设定玩type后,我们就要接着设定各类分支子项了,这个子项根据你的xml用途不同也是不同的,需要的子项数也是不同的,具体需要多少要参考官方给的文本,以一个文明的xml为例,他的分支子项就是
这些子项根据主类的不同有不同的功能,但第一个子项一半是以主类命名,设定了基本信息,以文明为例
这里就设定了文明的程序内部代码,文明名称,文明介绍,国民称呼,文明等级,城市名称池深度,所属人种。
每个子项的定义内容和具体格式都必须按照原版游戏给定的范围,不能随意增加,但可有限删除。
我们再讲如何实现你设定的能力
各种能力,比如文明能力,领袖能力,单位能力,城区能力,建筑能力,都需要通过设定“trait”来申明。申明后,文明和领袖能力需要把trait和modifier绑定,其余能力需要把这个单位和modifier进行绑定,才能生效。
任何能力都要申明trait,哪怕只是一条纸面能力,例如你的领袖可以招募特殊伟人,这一能力是靠伟人系统实现的,没有modifier,也需要申明trait然后绑定给领袖。
每一条trait就是一个能力的程序内部代码,而你领袖的所有能力都是靠trait联系在一起的。
trait的设定也遵循着一定的规范,一般为TRAIT_类型(领袖、文明,单位、城区、建筑;前半部分按你分配给领袖还是文明决定,后半部分看具体生效单位)_名称。
TRAIT_CIVILIZATION_CINDY_PROJECT就表示这是隶属于文明的特殊奖励(CA)
TRAIT_CIVILIZATION_DISTRICT_STAR_STAGE就表示这是隶属于文明的特色城区星光舞台(STAR_STAGE)(UD或称CUD)
TRAIT_LEADER_NO_WORK就表示这是隶属于领袖的特殊奖励(LA)不想工作。
各种特殊trait
TRAIT_AGENDA_ANZU_IM就表示这是隶属于外交倾向的杏的倾向。
设定完trait我们就要设定modifier,这是游戏内的一种调整机制,细化下去可以追述到effect这一条目。
这里将Trait和文明关联。这里的关联关系:
Trait ó Modifieró (ModifierArguments, RequirementSet) ó RequirementSetRequirementsó (Requirements, RequirementArguments)
modifier子项一般用于将trait和modifierID进行绑定。
从modifier开始才是你设计和实现能力的最大障碍。
这里必须告诉大家,由于2K和Firaxis并没有开放数据库内核来自由编写,我们只能使用现有的原文明的Modifier和Requirement进行改写,并将它们排列组合,创造有限的可能性。你如果说,我要做的单位会瞬移,抱歉,这个真做不到。除非你会熟练使用lua语言,并且找得到游戏的api。
(未完待续...)