[KF2][Mut&Gm Tutorial]Modding第一步:设置好KF2的UnrealScript编译环境
可选:挑选一个合适的IDE(集成式编译环境)
--------------------------------------------------------------
_>成功完成此步骤至少所需的技能:具有初步编程能力以及IDE使用经验
_>相关联的动作:查看游戏源码,追踪从元数据
关于Us的IDE的介绍我就不详细讲解了,网上有很大一堆(搜索关键词:unrealscript ide),在此我推荐一个我自己正在使用的IDE
UsIDE是一个运行在VS2010上面的Shell,提供自动补全、从元数据跟踪等非常实用的功能,在进行大工程的时候不可或缺
(如果你想写一个好的插件的话光靠记事本或者NPP是不可能实现的)
项目工程目录会在安装的时候请求用户设置,请自行讲源码目录设置到common\killingfloor2\Development\Src
设置好后的IDE看起来应该是这样
第一步:下载KF2 SDK
-------------------------------
_>成功完成此步骤至少所需的技能:STEAM操作经验
_>相关联的动作:源码编译
进入Library->Tools选项,下载Killing Floor 2 - SDK
下载之后会有如下文件夹结构
其中 \Development\Src当中包含着整个KF2游戏的源码
(多余出来的文件夹以及.uc请忽略,.udkproj文件是UsIDE生成的项目文件,表面项目文件夹成功被设置)
第二步:设置好源码放置位置的文件夹结构以及KFEditor.ini
--------------------------------------------------------------------------------
_>成功完成此步骤至少所需的技能:基本计算机常识
_>相关联的动作:源码编译及插件发布
_>关键性步骤警示:此步缺失以及误操作会导致KFEditor无法找到源码
请进入\Documents\My Games\KillingFloor2\KFGame,我会对文件夹结构进行详细的讲解
首先请看图
请确认\Documents\My Games\KillingFloor2\KFGame中有这几个文件夹,不存在请自行创建
首先介绍Unpublished与Published文件夹及其结构
Unpublished文件夹存放:
1.编译成功但没有Brew的插件(现阶段请将Brew理解为 压缩)
2.自定义.upk包以及未发布地图
Published文件夹存放:
1.Brew后的源码以及upk包
2.Brew后的地图
目前教程涉及的知识将不对Published文件夹以及Brew作讲解
根目录
目录 BrewedPC(目前仅介绍Script文件夹)
目录 Script : 存放编译成功而生成的插件
其次介绍Src文件夹
Src文件夹包含:
-所需要编译的插件的源码
规则如下:请参考本文最后一节 KF2插件制作所有你需要注意的知识
1.每个文件夹名称必须为插件的包名 PackageName
2.每个文件夹中应该包含Classes文件夹
3.每个包含的Classes文件夹中必须存放所有这个包需要编译的源码 .uc文件,源码文件名称必须是你这个插件的类名 ClassName
实例:
然后介绍KFEditor.ini的设置
请进入\Documents\My Games\KillingFloor2\KFGame\Config 找到并打开KFEditor.ini
然后ctrl+F查找ModPackages,找到之后请在最后一行加上ModPackages=(ClassName)
这里的(ClassName)是你这个插件的包名,请看第二张图
请参考本文最后一节 KF2插件制作所有你需要注意的知识
至此,你应该成功设置好了KF2的插件编译环境,恭喜你!
第三步:编译源码
------------------------
_>成功完成此步骤至少所需的技能:基本计算机常识
_>相关联的动作:源码编译
有两种方法可以编译你的插件
1.win+R打开 运行, 输入cmd,然后利用cd命令(自行百度)进入\Steam\steamapps\common\killingfloor2\Binaries\Win64,输入KFEditor.exe UnrealEd.Make
2.每次源码有可检测到的修改过后,直接打开SDK会提示源码已经过时,是否需要重新编译,点击 是 即可
对于插件中所有编译错误,在此我不提供解决方案,请自行Debug
KF2插件制作所有你需要注意的知识(持续更新)
UnrealScript对大小写不敏感
请随意使用大小写,例如
class HeadshotRecover extends KFMutator 与 Class HeadshotRecover Extends KFMutator 与 CLASS HEADSHOTRECOVER EXTENDS KFMUTATOR都可以正常编译
但是请注意不要将变量与属性的名称命名重名
包名以及类名 PackageName/ClassName
包名:你这个“插件包”的名称,可以随意命名,请不要包含特殊字符等
类名:毫无疑问,你可以理解成“分类”中的“类”,类名就是说的你给这个插件取的一个统一的名称,之后好通过游戏启动或者整理归类
类名以及包名在插件启动中的作用
KF2里面插件启动的命令为
Mut: KF-Outpost?Mutator=xxx.xxx
GameMode: KF-Outpost?Gamemode=KFGameContent.KFGameInfo_Survival
其中第一个xxx为包名,第二个xxx为类名
比如说Controlled Difficulty(CD多倍游戏模式插件)的启动命令为Gamemode=ControlledDifficulty.CD_Survival,表明包名为ControlledDifficulty,类名为CD_Survival
我们实地查看后,发现非常符合这个原则
编译指令
(其实可以直接进入Workshop Update Tool编译以省略繁琐步骤)(指令亦大小写不敏感)
编译Unpublished
KFEditor.exe UnrealEd.Make
编译Brew
目前不做讲解,请使用Workshop Update Tool