我要发帖 回复

管理员

327

主题

4416

积分

15

专家分

兴趣点(最多三项):

视景仿真
地形仿真
高层游戏引擎

私信
发表时间 : 2010-2-1 19:08:44 | 浏览 : 5961    评论 : 4
introduction介绍
看完此教程您将学会:
如何为您的游戏设立文件夹
设立和编译unreal script
使用虚幻3开发工具创建一个简单的第三人称游戏
如何对ini文件进行configure
如何建立一个超简单的关卡
如何创建简单的菜单
如何添加基本的本地化支持
如何 cook game(cook game具体含义查看给出的几个链接)
如何打包以及发布游戏
如何纠错

此教程目的在于教您如何快速为自己的游戏项目进行架构,并向您介绍与开发UDK游戏相关的元素。更多深入信息可参加UDN的大量教程。

Folders文件夹
UDK的目录架构很独特,我们有必要先来搞清楚这一点。
主目录下有4个主要文件夹
binaries:此文件夹包含游戏的exe文件,unreal FrontEnd,和其他所有的附加程序。不建议您改动此文件夹(不过有些地方小例外)
development:此文件夹包含 unrealscript 文件的源代码,是一个很重要的目录。游戏将会从此文件夹获取源代码(uc files),并编译 U文件
engine:此文件夹包含引擎所需文件,最好不要乱动里面的东西。
UTGame:此文件夹包含你的游戏所需的所有文件(场景、角色、音效等等)。你的大部分工作将在此目录进行。

在UTGame文件夹中有如下重要的子文件夹
config:包含ini文件。ini文件决定很多东西,至关重要。
content:所有关卡地图、模型、音效等等与游戏内容相关的文件都位于此文件夹下,也很重要。
localization:包含含有对话文本、菜单文本等等,基本上就是所有的文本。
movies:包括介绍片影片、片头载入影片等,都是Bink影片(bink是一种类型、格式吧)。
script:编译过的unreal script代码在此
splash:包含splash图片

UTGame目录下的其他文件夹不是很重要。假如你想架设SVN(参加百度百科)或者类似的东西,你应当添加development这个文件夹,以及所有上文提及的UTGame文件夹。

在UTGame\content目录下呢能找见大量关于UT3(虚幻引擎3)的内容。最好保持这些内容大部分不动。当你之后打包游戏的时候,程序会自动去掉大部分UT3的内容,所以没太必要一个一个文件手动删除过去。我通常的方法就是在content这个目录下再创建一个文件夹,里面放我自己的游戏的内容。
譬如:
utgame\content\ExampleGame\levels
utgame\content\ExampleGame\upk
上面两个目录,一个放关卡,一个放upk文件(所有其他相关的内容都弄成upk格式了)。你不必像UT3那样把文件目录搞得很繁琐。譬如用UDK开发的一个1.5GB的游戏the ball,只用了20个upk文件。(这里我建立一个叫MyGame的文件夹,之后编辑器里搞出的东西都放这里,我不知道此文件夹名字是否和之后编辑器里保存文件有关,还是谨慎点好)

UnrealScript
打开以下目录development\src,新建一个文件夹。比如“MyGame”。文件夹的命名将是U文件的名字。比如你的游戏叫“AA“,那么你最好把这个文件夹也命名为”AA“。所有在这个文件夹里的unrealscript文件都将被编译成单个U文件,供游戏使用。
在”MyGame“文件夹下再创建一个”Classes“,在此文件里添加3个文件夹,此处下载解压:this zip: MyGameInfo.uc, MyPawn.uc, MyPlayerController.uc
1.jpg
由于这不是专门针对unrealscript的教程,所以此过程我们速速掠过,已经提供好下载了。UnrealScript的基本思想就是每一个actor都有他的父actor。子actor继承父actor所有的功能和属性。比如:”class MyPawn extends UTpawn;“,这里我们新弄的 MyPawn就是以UTPawn作为基础的(即后者为前者父,前者继承了后者属性)
在底部是”默认属性“。这些属性和它们的缺省值在编辑器里是可见的。再说一遍,实际的属性列表要比你弄的UC文件里的长很多,但你只需要添加那些和父级里不一样的属性。如果你在UC文件中不特别注明,里面对于属性的值都将直接从父级那里继承,假如父级没有,再爷爷级。。。以此类推。这是个树形结构。

接下来,编译(compiling)。首先我们得确认一点:游戏已经知道我们刚添加的那些文件的存在。怎么做呢:到UTGame\config\目录下,打开 defaultengine.ini. 这个文件(ini是后缀),找到如下部分[UnrealEd.EditorEngine],然后在下面添加这么一行"+EditPackages=MyGame"。请注意它这个文件可能设置了只读,修改前先改掉。加在如下所示的下面:
+EditPackages=UTGame
+EditPackages=UTEditor
+EditPackages=UTGameContent
+EditPackages=MyGame
这个什么意思呢?上面的排列顺序很重要,它决定了以何种顺序载入编译文件。我们新加的那一行就是让editor在启动时也载入MyGame的U文件。另外,你可以删除UTEngine.ini.。这样做将强制引擎新创建一个基于defaultEngine.ini的UTEngine.ini文件。不过既然我们刚才已经修改了defaultEngine.ini,那么新创建的UTEngine.ini也会有相应的不同。

下一步,到binaries文件夹下,打开UnrealFrontEnd.exe。Frontend是一个很重要的工具,能让你做很多事情。在这个例子里,我们将用它编译代码。在顶上的工具栏里,点击“make”右边的小三角,点击“full recompile”。
  
如果好了的话,再打开UTGame\Script\,此时你会发现MyGame.u这个U文件已经出现了。
2.jpg

ini files
下面,我们要确认游戏已经使用了我们提供的新的游戏类型和pawn作为默认设置。

打开 UTGame\Config\DefaultGame.ini.,去掉只读属性。找到"[Engine.GameInfo]",替换"DefaultGame=UTGame.UTDeathmatch" 为"DefaultGame=MyGame.MyGameInfo"。替换"PlayerControllerClassName=UTGame.UTPlayerController" 为"PlayerControllerClassName=MyGame.MyPlayerController"
保持退出。之后删除此目录下的UTGame.ini,系统会自动创建一个基于修改过的DefaultGame.ini的新文件。


关卡Level
好了,准备工作差不多了。下面到打开binaries\win32,创建一个指向UDK.exe的快捷方式。并在其名字后添加"Editor -log"。比如:“E:\diorzhang\UDK\Binaries\Win32\UDK.exe editor -log”。启动。
(他原文这么写的。不过我试了好像不管用,直接开编辑器好了,哪里那么多鸟事)
打开后我们来建立简单的场景,包括一个方盒子做场景(未添加材质贴图),加一个点光源,一个游戏起始位置。。依次如下图
3.jpg 4.jpg 5.jpg
  
  

上面的弹出菜单是在场景中鼠标右键单击,其他actor先不用管,light和playerstarter是几乎每个关卡必然存在的。

弄好了保存一下,我保存在上文我说的MyGame那个文件夹里。命名叫MG-ExampleGameLevel,总之前缀很重要,因为在MyGameInfo.uc这个文件里,估计MG已经成了一个代号。
然后去菜单栏build-build all,稍等片刻。
去上面的菜单栏view-world properties。把WorldInfo这项展开,找到Game Type for PIE,改成MyGameInfo。PIE是play-in-editor的意思。默认一般都是第一人称,现在由于弄进了mygame下的新代码,所以可以搞成第3人称了。不过我感觉他们弄的不咋好,个死人站镜头前把枪口的准心都挡住了!要想真弄好点啊,还是得真的通晓Unreal语言。
下面可以玩一玩了,在场景里单击鼠标右键,弹出后点击play from here。

最近VR访客查看更多↓

nqzuoshou 评论于2010-2-4 15:20:30
大大,好像没贴完整吧···
nqzuoshou 评论于2010-2-4 15:23:29
最后一点没看懂···下的中文版
nqzuoshou 评论于2010-2-4 16:09:56
楼主,这个教程的原创是哪?  有完整版的吗?比较关心打包游戏这部分
极光映雪 评论于2010-12-23 14:33:49
好久没了来了,回来看看

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-5-13 10:54 AM

返回顶部