文明6mod制作(3):创建一个文明
准备工作
注意使用Photoshop生成DDS文件作为游戏图标,去英伟达官网下载一个DDS插件,图标也可以在游戏目录中找到,具体操作流程:
先导入准备好的素材,然后选择尺寸,从大到小:256-128-80-50-38-32
另存为DDS文件,
压缩方式选择8.8.8.8 ARGB 32bpp 无符号,选无MIP贴图,保存
可以使用Hemmelfort大佬制作的mod辅助工具简化这些步骤,制作不同尺寸的照片:
设置名称,图标代码也可以写好:
领袖界面(建议):
要做的准备概览:
开始制作
1.导入图标和图片
打开ModBuddy新建一个空白模板,打开工具栏上的Asset Editor
在Asset Editor左上角点击File——New,选择XLP
在XLP CLASS这里选择UI Texture,上面Packagename随便取个名字
点击添加按钮,再点击+Add Source File… 把所有图像导入进来(除了外交界面的前景图),再点import即可
点击菜单栏另存为,保存这些XLP文件到XLPs目录下,文件名建议与刚才的Package Name一致
2.准备基础文件
原理如下:
目前要用的XML文件是这几个,前面文件名可以随便取
在ModBuddy的空模板下一个一个创建这些文件
在教程(2)中制作的单位可以原代码复制到xxx_Units.xml中,但由于是特色单位,在Units标签后面还要加上Trait_Type:
3.制做特色建筑
参照游戏中建筑来写,在\Base\Assets\Gameplay\Data\Buildings.xml中找到实例,和上一个教程中制作人物差不多
先定义一个建筑,变量名以Building_开头
再设置参数
4.制作领袖
以\Base\Assets\Gameplay\Data\Leaders.xml中的为例,也是一样的方法,官方怎么写怎么抄:
5.创建文明
创建巫师文明,这是新建一个文明需要的基本信息:
点开xxx_Civilization.xml,其中Types标签下的三行,第一行定义了巫师文明的变量名,一般以CIVILIZATION_开头 加上文明的名称
第二行和第三行是特色单位和建筑 即之前的TraitType定义的
(注意:最新报错,这里最好再加上一行文明的TRAIT)
Civilizations标签下是基本参数
Name是名称,Description是描述文本
StartingCivilizationLevelType指的是是一个国家而不是城邦,具体数值:CIVILIZATION_LEVEL_TRIBE(部落,野蛮人)CIVILIZATION_LEVEL_CITY_STATE(城邦)CIVILIZATION_LEVEL_FULL_CIV(完整国家)
RandomCityNameDepth默认为10
Ethnicity指的是种族,具体数值:ETHNICITY_ASIAN(亚洲)ETHNICITY_AFRICAN(非洲)ETHNICITY_MEDIT(地中海)ETHNICITY_SOUTHAM(南美)ETHNICITY_EURO(欧洲)
CivilizationLeaders标签指定文明的领袖,其中LeaderType填领袖,CapitalName是首都名称:
接下来是TraitType的定义,文本没有格式要求,CivilizationTraits使TraitType成为这个文明的专属对象
接下来是城市名和市民的名字,城市名最好多一点
接下来是颜色,分为主要颜色和次要颜色,四个数字分别是红/绿/蓝/透明度,大小从0-255,也可以使用游戏自带的颜色(如COLOR_PLAYER_WHITE_TEXT)
后面是定义加载界面和外交界面的图(这里不是外交界面的前景图)
6.修改配置文件
打开xxx_Config.xml,这个文件定义了这个文明在文明选择界面显示的内容,可以参考DLC中阿兹特克文明的写法:\DLC\Aztec_Montezuma\Data\Aztec_Montezuma_ConfigData.xml
第一行<?xml …….>是xml文件的标准形式
第二行GameInfo和GameData一样,次级标签是Players和PlayerItems
先看Players标签,里面有两个Row标签,唯一不同的是第二个标签多了一个Domain说明这个Mod支持用于DLC《迭起兴衰》中,如果没有Domain或者Domain为StandardPlayers说明这个Mod支持原版游戏,其中内容解释如下:
接下来是PlayerItems,是特殊单位的预览,想写几项都可以
7.定义文本
打开xxx_Text.xml,把刚才所有的文本,也就是LOC_开头的变量全部添加到定义文本的文件中 ,大致如下写:
8.定义图标/图片/背景音乐
同样是xxx_Text.xml,使用自定义图标必须先建立一个画册(图画集),可以用Hemmelfort大佬制作的工具快速生成
先新建一个Arfdefs文件夹:
接下来导入做好的模型
模型名字必须与游戏原名字一致,比如单位是Units.artdef 特色建筑是Buildings.artdeft
人物模型参考(2),接下来做建筑模型
打开AssetEditor 点击左上角File——New 新建一个ArtDef
在模板中选Buildings模板
鼠标右键选择添加Add Element,相当于添加一个新建筑
名字随便写一个等会改,点击保存 目录为Artdefs文件夹,文件名必须是Buildings
接着在ModBuddy中导入
接下来和(2)的方法一样,以竞技场的模型为例,打开游戏源文件,找到竞技场的部分(BUILDING_ARENA)往上折叠m_ChildCollections和m_Fileds,复制竞技场所在的Element标签
粘贴到自己的文件对应的地方,再把名字改为你的建筑的变量名即可
外交界面前景图无法通关XLM文件修改,但是可以通过artdef和xlp文件来定义
现在AssetEditor中新建xlp
XLP Class为:LeaderFallback
Package Name为:LeaderFallbacks
然后选外交前景图点import
保存为LeaderFallbacks.xlp
然后再创建一个artdef文件
选择的模板是LeaderFallback,添加一个Element,名字改为我们的领袖的变量名
在下面子项Animations新建元素(如果不弹出BLP Entry,就再添加一项并删除),将其名字设为DEFAULT,在BLP Entry中选择我们的图片,如果这里没有我们的图片那就暂时选别的领袖
最后保存文件为FallbackLeaders.artdef
在ModBuddy中的Artdefs那里导入,将里面这个EntryName设置成我们图片的名字
游戏背景音乐可以通过artdef来实现,新建artdef文件,然后选择模板Civilizations,新建元素,把名称改为文明变量名,下面的Audio也新建一个元素,名字设为Entry,XrefName设为Egypt(以埃及的音乐为例,如果要用其他文明的音乐,可以参考\Base\ArtDefs\Civilizations.artdef),然后将这个文件保存为Civilizations.artdef,最后导入到工程里即可
9.编写ModArt文件
这个文件记录了所有artdef文件和xlp文件的信息
使用工具点击第三项,点击打开MOD目录(就是项目名称的那个目录),软件就会自动获取项目相关资料包括名称ID,点击生成,自动生成一个ModArt文件(同时备份先前的)
10.设置分阶段加载
回到ModBuddy,右键工程,点击属性(Properties),选择FrontEnd Actions,现在设置进游戏就加载配置文件config,点击Add Action
后面的ID是用来记录在游戏日志中的(如果MOD出错就可以查看日志看看哪一步出问题了)
Type类型选择UpdateDatabase
然后Add,选择xxx_Config.xml
然后是文本文件,Type选择UpdateText,点Add,选择xxx_Text.xml
然后是图标文件,Type选UpdateIcons,操作同上,后面art也一样(但是点Add后要选择Mod Art Dependency File)
接下来的In-Game Actions也差不多,唯一不同的是更新数据库的部分,按照下图依次加载文明、领袖、单位、建筑即可
其他三个和上面一样(注意是选择xxx_Text等,而不是Artdefs下面的),按照下图
最后Rebuild即可