摘要:使用VS建立UnrealScript工程,用此工程來(lái)修改和編譯script文件(即是生成一個(gè)game mod)。不需使用unreal frontend軟件就可以編譯.u文件。
開發(fā)環(huán)境:XP 64bit;VS 2008;UDK beta2;
其他需求:1. 安裝了nFringe。可參考 這里。
2. 如果要用自制的UDK地圖。可參考 這里。
實(shí)現(xiàn):
首先用VS新建一個(gè)UnrealScript工程,名字可隨意(這里叫MyFirstGame,如有更改,在稍后配置時(shí)自行做相應(yīng)修改),但是路徑必須是如下圖(否則有可能出現(xiàn)編譯后文件丟失的問(wèn)題,具體后述)。同時(shí)去掉"Create directory for solution"的勾。
然后開始配置MyFirstGame的屬性,具體如下:
General的配置:
Target Game: 選UE3 Mod。
UCC Path: C:\UDK\UDK-2009-11-2\Binaries\UDK.exe
Reference Source Path: C:\UDK\UDK-2009-11-2\Development\Src
Build Events不用配置,默認(rèn)就行。
Build的配置:
勾上全部的勾,路徑設(shè)置:C:\UDK\UDK-2009-11-2\UTGame\Script(如果不放這里,游戲啟動(dòng)后就無(wú)法讀取我們修改的mod,這個(gè)是默認(rèn)路徑,暫時(shí)還不知道如何改)。
Debug的配置(懶得寫了,見圖吧):
說(shuō)明幾點(diǎn):
Load map at startup選項(xiàng),輸入的是地圖名字,而地圖位置默認(rèn)是自動(dòng)讀取C:\UDK\UDK-2009-11-2\UTGame\Content\Maps下的文件。這個(gè)TestMap是之前一片bolg建立crowd system時(shí)創(chuàng)建的地圖,也可以使用任何在前述文件夾下游戲自帶的地圖。
禁用聲音和禁用開頭動(dòng)畫選項(xiàng)可以不勾(我是嫌聲音太吵)。
Start with specified game type選項(xiàng),這里就是指定游戲要載入我們修改的這個(gè)mod(這個(gè)mod稍后建立)。
完成以上的屬性配置后,保存工程,關(guān)閉再重新載入。這樣做的目的是讓工程載入我們?cè)O(shè)定的Reference。這時(shí)Reference Source前面應(yīng)該就有+號(hào),可以展開。此時(shí),在MyFirstGame的根目錄下新建一個(gè)文件夾,命名為Classes(必須是這個(gè)名),在此文件夾里面新建一個(gè)UnrealScript文件,命名為GameInfo.uc。大概就是下面這個(gè)樣子(你的Reference Source下應(yīng)該沒(méi)有CluOne,因?yàn)檫@是另一個(gè)mod):
現(xiàn)在我們添加UTEngine.ini到Classes文件夾下(如上圖所示)。右鍵選Add-> Existing Item,位置在C:\UDK\UDK-2009-11-2\UTGame\Config\UTEngine.ini。注意要以link的方式添加。打開UTEngine.ini,找到ModEditPackages(用查找),把它前面的;去掉,把=后面改成MyFirstGame。就是這個(gè)樣子:
這樣做就是表示我們要使用的game mod是MyFirstGame。當(dāng)編譯時(shí),就會(huì)把MyFirstGame下Classes文件夾下的uc文件一起編譯。
好了,最后一步就是修改GameInfo.uc文件。把原來(lái)的程序全部刪掉,改成以下:
class
GameInfo
extends
UTDeathmatch;
//這里就是一個(gè)開始Deathmatch的函數(shù),即當(dāng)我們啟動(dòng)游戲以后就會(huì)自動(dòng)開始一個(gè)Deathmatch。
function
StartMatch()
{
super(UTGame).StartMatch();
TestFunction();
}
//使用`log()函數(shù)把一句話輸入到控制臺(tái)
function
TestFunction()
{
`log("This is my first mod game!");
}
現(xiàn)在,我們已經(jīng)完成了全部的編碼和配置工作。選Build->Build MyFirstGame。
稍等片刻,便顯示編譯成功。此時(shí)會(huì)生成一個(gè)MyFirstGame.u文件:
我在這里遇到一個(gè)很奇怪的問(wèn)題,就是無(wú)論如何配置Build的輸出路徑,在運(yùn)行Build后顯示的輸出路徑都是以上(即是工程保存的路徑),而實(shí)際上你在那個(gè)文件夾下是找不到MyFirstGame.u這個(gè)文件的。真實(shí)輸出的路徑則為:
C:\UDK\UDK-2009-11-2\UTGame\Script(即便我在build選項(xiàng)里面設(shè)置別的路徑也如此)。
注:這個(gè)問(wèn)題,或者說(shuō)類似的情況,在UDK論壇上也有很多人遇到,但是具體的原因和解決方法暫時(shí)還沒(méi)有發(fā)現(xiàn)。如果你也不幸出現(xiàn)了這種情況,則去C:\UDK\UDK-2009-11-2\UTGame\Script查看是否有MyFirstGame.u生成,如果有,就表示編譯成功。目前不少人都能成功得到MyFirstGame.u的辦法是在建立工程時(shí)位置一定要是我建立工程用的路徑。如果無(wú)法解決,可能只能使用unreal frontend來(lái)編譯了。
好了, 現(xiàn)在可以測(cè)試我們的mod了。點(diǎn)擊start debugging按鈕(F5)游戲就會(huì)啟動(dòng),在控制窗口中,就會(huì)出現(xiàn)我們輸入的log:
而游戲窗口如下,可以看到我們?cè)O(shè)置的crowd在自動(dòng)生成。
