首页 > 代码库 > UDK——VS开发环境配置:nFringe 与 UnrealScriptIDE

UDK——VS开发环境配置:nFringe 与 UnrealScriptIDE

由于工作需要最近接触了UDK,跟Unity相比真心觉得比较麻烦,网上的资料也比较少,在此记录一下,方便大家,也方便自己查阅。

============================正文分割线=================================

UDK是Epic公司在2009年宣布对外发布虚幻第三代(Unreal Engine 3 虚幻引擎3)引擎的免费版本,他的开发团队是开发《孤岛危机》这款游戏时建立起这个引擎的。由于UDK本身的框架就是一个比较完善系统,特别适合做第一人称射击类游戏,各种组件十分方便,角色、控制、摄像机、武器等等,再加上他Kismet系统,给美工人员和游戏设计人员带来了巨大的方便(导致我们公司的制作人员一度要全部投向UDK的怀抱)恰恰也正是因为它完善的,也给我们程序员的开发带来了一些麻烦,我们需要在了解其原有结构的基础上,编写UnrealScript,同时需要不断地修改ini配置文件

对于程序员来说,在制作人员大体构建好一个漂漂亮亮的场景之后,我们就要开始为场景上的Actor编写脚本来让它们动起来,虽然在UDK引擎编辑器中的kismet也可以实现一些,但使用脚本却是更加自由,那么使用unrealScript脚本来做将是一件非常好的事,但是我们学习不仅仅需要编写UnrealScript,还需要修改ini配置文件,还需要了解UDKGame的脚本调用结构,因此我们需要定位源代码,而且最好可以Debug,为此更需要称手的开发工具。

本篇文章主要介绍VS开发环境的配置。

主要介绍两个插件工具:nFringe与UnrealScriptIDE


1. VS与nFringe配置

使用nFringe的人比较多,首先介绍它。

最好使用VS2008,虽然VS2010的nFringe有免费版可以用,可以调试运行,但没法定位源代码和函数,以VS2008为例介绍,我是使用VS2010配置的,但是配置过程跟以下过程基本一致。

1.首先安装nFringe,安装完成后,启动VS会出现以下画面


2.找到你的UDK安装目录,比如E:\UDK\,在Maps目录下建立一个你自己的地形



3.打开VS,选择”文件”-<”新建项目”,创建UnrealEngine3 LincenseeProject,不要创建解决方案目录,名称栏里你可以随意写,我写的是MyGame但是位置必须在UDK的Development/Src下面,比如我的是E:\UDK\Development\Src



4.点击确定,创建成功后,点击项目属性,在General中作如下设置:

Target Game:UnrealEngine 3 Mod

UCC Path:E:\UDK\Binaries\Win32\UDK.exe,注意一下,64位电脑可以尝试Win64,不过就算选择Win32也是可以,我虽然是64位,但依然保守的使用了32位的路径,因为要配置DLL文件,Win64位路径不起作用。

Reference Source Path:没什么好说的,就是你放代码的地方

注意如果是VS2010这里会略有不同,没关系,把能选的按上面说的选好就行。



5.切换到Build选项卡,Build Events一般不用设什么

Additional Options:-full ,其实不输入-full也可以

ScriptOutputs:一定勾上,就是UDK将你的脚本编译成.u文件的地方,默认是在UDKGame\Script目录中,我的是在E:\UDK\UDKGame\Script



6.切换到Debug页面:这里的设置比较多,请看仔细

Start GameExecutable:就是UDK所放置的目录,我的目录是E:\UDK\Binaries\Win32\UDK.exe注意:如为64位系统请选择Win64文件

Load map at startup:就是你的地图的名字,看到我上面所使用的地图名”Untitled”,后面带不带后缀无所谓, 注意,如果你这项不勾选的话,那么就会默认使用UTDeathMatch,并且使用UDK自带的地形来进行游戏。

Start with specifiedgame:你将要编写脚本的包所在的文件名,格式为xx.xx,前面的xx是包的名字,后面是在包中文件的名字,我这里所使用的名字是MyGame.GameStart,不理解的话,待会我将会讲到。

Disable startupmovies:这项最好勾上,反正我没勾上,就没法进入游戏,中间在进行的过程会由于找不到这个资源而中断。

Enable unpublished mods:关闭unpublished模式。

Open log window atposition:这项无所谓,只是打开的话,将会在控制台上显示log信息,帮助你查找错误。

这些选项其实就是配置UDKGame 的启动命令行,仔细看command line里面的内容你就能明白。



7、好了,所有设置都好了,现在可以关闭这个属性窗口了,然后关掉VS,记的保存。

8、现在在你刚才创建的VS目录下再创建一个名叫”Classes”的文件夹


然后在Classes文件夹里创建一个xxx.uc的文件(记事本修改后缀名),名字随你,我的文件叫GameStart.uc。


9、上面步骤都做好后,你可以再次打你的VS工程了,还记的Start with specifiedgame:这个选项吗,你在这个目录树中也可以看到,正好是MyGame.GameStart。(注意VS2010配置到此,你在SolutionExplosion里是看不到以下图中的结构的,只能看到这一个工程的目录,可能是由于nFringe是免费版的原因)


10、看到了吧,我相信你也能找到你刚才创建的那个文件。下面就是在双击打开,并在里面写了脚本,由于现在只是一个简单的构建环境,我就用了一个最简单的代码了:如下,注意几点:类名必须和你的文件名相同,我这里都是用的GameStart,GameInfo作为父类,这样进入游戏后就没有拿枪的那个人了,PostBeginPlay你可以将其理解为构造函数,它会在这个类创建后首先执行,这里我们重载了它。

这个类你可以看成是游戏的Main入口函数,UDK引擎会从这个函数开始加载。


11、现在我想你一定想迫不及待的在VS点击”运行’按钮来运行这段脚本了吧,不过现在还不行,现在你的脚本还不会被UDK引擎编译到,你可以打开控制台,就是在”开始”à”运行”à输入cmd,然后将你的UDK.exe拖入这个cmd窗口,UDK.exe在哪不用我说了吧,然后如下输入命令


按回车,它将会将所有脚本来进行编译,如果你没找到你刚写的脚本,说明UDK没有找到你的脚本,下面我们只需要改一下config.ini就可以让你的脚本开始运作了。


12、进入你的UDK的目录中,找到UDKGame\Config文件夹


13、找到文件DefaultEngineUDK.ini,Default开头的文件表明UDK会使用这些文件中的设置来编译整个工程,而UDK开头的ini是使用default文件编译后你的ini文件,在DefaultEngineUDK.ini文件中找到关键字[UnrealEd.EditorEngine],将;ModEditPackages=MyMod这句话去掉前面的分号,这个分号表示是个注释,然后将MyMod改成你的VS所创建的那个目录,我这里是MyGame。

14、现在你再用UDK.exe来编译的话,引擎应该将你的脚本编译了。

15、现在回到你的VS工程,激动的时刻总算来了,开始运行你的工程吧,如果出现下面这幅图的话,说明你的脚本已经被修改过,点击”是”重建你的脚本工程吧。


16、在Log窗口中看到了这句话吗,说明你的脚本被执行了,后面那个场景就是我在引擎编辑器中的创建的。能够看到这个画面,那我就要恭喜你了,现在你可以发挥自已的想像利用unrealScript脚本来编写你自已的游戏了。(在VS中你还可以设置断点调试你的代码,心动吧,那就行动吧!!!)




2.VS与UnrealScriptIDE配置

UnrealScriptIDE:是基于VS2010独立运行程序,它并不是插件。

在安装UnrealScriptIDE完成后,你的桌面上会出现以下图标:


UnrealScriptIDE是基于VS2010,可以Build、Debug、Go to Declaration、IntelliSense、Find All References,总之五星推荐(唯一的遗憾就是2012以后没有更新了,只能祈祷它能在2013年的UDK中Work了。)


强烈注意一点:安装顺序应该是VS2010---VSIsoShell---UnrealScriptIDEInstall---VS2010SP1(神马?如果您已经是SP1了,那恭喜您请重装一下SP1就Work了)
(PS:UnrealScriptIDE有个小bug,F5之后总是会触发一个断点,但是不影响工作)

安装完成后:

建立工程
首先,在 D:\UDK\UDK-2013-09\Development\Src\下建立你自己的文件夹命名为工程名;
然后,在文件夹内建立Classes文件夹,在Classes文件夹内编写脚本。(跟nFringe一样)


注意,右键点击工程,配置运行命令行。




3. UnrealScriptIDE 与 nFringe的比较

nFringe安装过程比较麻烦,但是操控性更好一些,但是免费版实在是不好用,没法定位源码,没法再编辑器里修改ini文件,确实很不方便,我就是先用了一周的免费版nFinger然后就毅然决然的投向了UnrealScriptIDE。

UnrealScriptIDE安装的东西比较多,至少需要重装VS2010 SP1,但是安装过程比较简单,对我等没钱消费商用版nFringe的程序员来说却是比较方便,虽然有点儿小瑕疵但不影响使用。缺点就是要自己写命令行,不能像nFringe一样选择,操控性差一些。

结论:nFringe当然如果能用商用版,破解版,当然好。不然的话,还是建议选择UnrealScriptIDE。