如何制作一张简单的UT3地图(下 )

如何制作一张简单的UT3地图(下 )
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及 本声明
http://lichong.blogbus.com/logs/14292030.html
本教程上半节 见此
文:Li Chong
 
加入模型细节
房间有了,可以往里面加入细节了,在虚幻引擎中,场景中大部分静态的模型,都使用Static Mesh来制作,这些模型是在三维软件中制作完成后导入UED中的,结合材质,可以应付场景画面的大部分需要。
打开上半节制作的地图。 
打开Generic浏览器,从中打开目录Unreal Tournament 3/UTGame/CookedPC/Environments下的ASC_Deco_Statue.upk
这个包里面有一些华丽的雕像,随便选一个,然后在3d视图窗口中右键点地板(你也可以点别的位置,或者在别的视图中操作,在3d视图比较直观一些),在出现的关联菜单中选择Add Actor/Add Static Mesh:...
然后在右键点击的位置上,就出现一个你所选模型的instance(实例),把它随意放到一个位置上,移动的操作见上半节。
 
调整一下灯光的位置,然后点Build All,你会看见灯光在雕像后面投下的影子,但默认设置下,影子不够明显。
在地板BSP表面点右键,从关联菜单中选择Surface Properties,打开BSP表面属性窗口 
 
在属性窗口的Lightmap Resolution栏中,把分辨率设置为4(默认32),这里数值越小精度越高
然后Build All,这时候你可以看到雕像背后出现很清晰的影子:
 
利用.upk文件里面的模型资源,你可以把场景装饰得非常漂亮。
 
放置物品
UT这系列游戏,是围绕各种物品展开Gameplay的,所以制作地图的时候,很重要的一块就是物品的摆放,常用的物品分为武器、弹药、血包、盔甲、以及各类加强物品。本教程简述一下如何加入这些物品。
打开Generic浏览器,在它窗口的菜单栏下面,可以看到一系列页面,第一页是Generic,第二页是Actor Classes,点中该页切换到Actor浏览器。
 
你也可以选择菜单 View/Browser Windows/Actor Classes来打开
 
该浏览器中,以目录结构显示出了游戏中各种Actor的类,名字粗体的是可以放入地图的类,如下图展开,选中NavigationPoint/PickupFactory下的子类UTWeaponPickupFactory
 
在3d视图中右键点地板,做如下选择,
然后在地板上,就出现该类的一个Instance,是个武器座,
 
在武器座上双击,即可打开其属性窗口,或者选中后按F4也可打开,这两种方法同样适用于场景中大部分Actor。
从属性窗口的UTWeaponPickupFactory右边的下拉列表中选择UTWeap_ShockRifle
 
这样,该武器座就可以产生Shock Rifle这把武器,你可以按照上一节讲述的办法在编辑器里面运行地图来观察武器座是否正常,看上去应该这样:
 
同样是在那个武器列表里面,你可以随意选择各种武器。
然后来讲如何放置弹药,
打开Actor浏览器,进入NavigationPoint/PickupFactory/UTItemPickupFactory/UTAmmoPickupFactory
该类下面的都是各种武器的弹药,从名字上就能看出来,选择UTAmmo_ShockRifle,在3d视图中,按住A+左键点击地板,就可以在点击的位置上加入所选类的一个Instance(这个是通用的快捷方式):
然后是盔甲,四种盔甲,都位于.../PickupFactory/UTPickupFactory/UTItemPickupFactory/UTArmorPickupFactory:
同样也是选中某个子类,比如说UTArmorPickup_ShieldBelt,按A+左键点击加入,
而血包则位于UTHealthPickupFactory这个类下面:
加入一个普通血包,
各种加强物品位于UTPowerupPickupFactory下面:
比如说选择UDamage,加入后,
加强物品在编辑器里面只能看到底座,运行地图后,等一会儿,物品就会生出来:
上一节我们讲了如何制作一个简单的房间,这里我们进一步增加一些房间,
在Top 视图中,按下W将所有使用Static Mesh的Actor隐藏(此键可以切换这些Actor的显示),注意到各种物品也被隐藏了,因为它们从画面角度说用的也是Static Mesh,然后,在Top视图中,按下Ctrl+Alt+左键按下拖动,用出现的红线框去框选蓝色的Brush,全部选中,框选的方式让你一次可以选中多个Actor。隐藏的Actor将不被选中,灯光因为没有隐藏所以被选中了:
 
点Ctrl+W,将选中的Actor复制了一份,将这份移动到原来房间的一侧
 
 将两个房间相对的两面墙壁的任意一个删除(选中+Del):
 
选中相对的另一面没有删除的墙壁Brush: 
 
点选UED左侧工具条的Geometry Mode按钮: 
 
该按钮打开Geometry Tools,可以对BSP Brush进行编辑操作,在打开的小面板中选择Vertex模式:
 
在该模式下,你可以编辑Brush顶点,你会看到所选Brush的顶点变得很大: 
用Ctrl+Alt+左键拖动,来框选该Brush一侧的顶点 
 
然后Ctrl+左键拖动,平移所选顶点到和另一侧房间平齐 
 
 这时候Build All,你会发现两间房间之间充满实体,我们需要在中间开一个门洞出来,这时候,用挖空的方式会比较方便。
在刚才那个Brush上面点右键,从关联菜单中选择Polygons/To Brush,
 
该菜单利用所选的Brush生成一个一样造型的Brush Builder红框,
在Top视图中,用Geometry Tools编辑该Brush Builder的顶点,让它看上去像个门洞的样子,
 
在UED左侧工具条中点击CSG:Subtract按钮,
 
该按钮利用Brush Builder来创建一个一样造型的挖空的Brush,
这时候你可能看不到,选择左侧工具条的Camera Mode工具,这个是默认选项,
这时候可以看见房间之间出现一个黄色框,选中之后是这样子: 
 
这个Brush就表示该位置上的实体被挖空,但这时候从侧视图上看,该Brush顶部和底部分别超出了天花板和地板,重新使用Geometry Tools来编辑顶点,让顶部和底部分别对齐到天花板和地板,如下:
 
在Brush操作过程中,你可以经常Build一下来观察效果如何,最后完成后,差不多这样: 
 
但这时候贴图有点混乱,在Generic浏览器中选择ASC_Floor包中的地板贴图,指定给门洞地板,同样也给天花板进行指定,
 
这样有了两间房间,便于后面进一步制作,然后,将物品根据你自己的设想放置到两个房间的合适位置,下图中,武器被放到门洞那里,盔甲和UDamage分别放到两个房间靠墙,血包复制一个,分别放到靠近门洞的墙角,雕像被复制成四个,分别放到墙角,
 
接下来,可以开始设置NPC寻路了 
 
设置NPC寻路
首先放入出生点,出生点是玩家和NPC共用的,它的类位于NavigationPoint/PlayerStart,
选中该类,在房间地板上按A+左键点击,出现手柄状图标:
 出生点是带有箭头的,其朝向表明了出生时玩家或NPC面朝的方向,下图是Top视图中看到的默认的朝向:
 
选中后,按住Ctrl+右键拖动,可以旋转一个Actor,用这个方法改变出生点的朝向,比如:
 
分别在两间房间加入出生点,并确保不会面朝墙壁之类尴尬的地方。
然后需要加入一些PathNode(路点),路点是UE里面设置NPC寻路最为基本的工具,路点之间构成的连接,就是NPC在寻路中需要遵循的线路,路点的类是NavigationPoint/PathNode:
在房间中央地板上加入路点, 
 
然后Build All,这时候可能会出现报错窗口,如下:
红叉通常是比较严重的问题,黄色感叹号是需要注意的问题,未必一定是问题,这里面因为红叉的问题不影响我们所需的地图效果,所以直接关闭这个窗口即可。
Build All基本上包括Build Geometry, Build Lighting, Build AI Pathing,以及地图错误检查,这几部分你都能在Build All按钮边上找到对应的按钮(除了错误检查)。
然后,在3d视图中按下P,显示NPC寻路,你会看到各种物品,出生点,路点,这些NavigationPoint下面的子类Actor,互相之间产生连接,构成网格状寻路:
在编辑器中运行地图,或者点击按钮:
 
该按钮让你也在编辑器中运行地图,但会利用地图里面的出生点来作为玩家出生点。
然后按Tab,输入Addbots x,即可加入x个NPC,
你会发现NPC已经可以灵活自如地在地图中移动了,你可以和NPC较量一下,或者输入命令God观察NPC寻路如何。
 
制作预览图
在UT3的地图列表中,正式发布的地图需要有预览图,才能让人区分和识别。要制作预览图,首先需要截图,你可以在编辑器中运行地图,然后用截图软件截取,也可以运行游戏,如果地图还没Cook(见下一小节),那么按F10调出Console,打入命令Open DM-OOXX(地图名,后缀不用)运行,如果Cook过了,直接从列表中选择即可,运行后,按F9截图,截图保存在:My Documents/My Games/Unreal Tournament 3/UTGame/ScreenShots
然后,用Photoshop之类软件将截图编辑成诸如512x256或1024x512之类的分辨率(即长边像素是短边的一倍,并且都是2的N次方倍数,N大于等于3),保存成.tga或者.bmp之类的即可。
在UED的Generic浏览器中,选择菜单File/Import,然后从中点选预览图,将它导入,在出现的对话窗口中,Package一项你可以从下拉菜单中找到你所建的地图,或者手动输入地图名,这样该贴图就可以保存在地图文件中,Group一项随意,Name也是:
 
 
导入完成后,你可以在Generic浏览器中看到该贴图,虽然实际的预览图用的是这个贴图,但贴图在地图场景中并不能直接被引用,从而也就无法保存,所以需要另外建一个引用此贴图的材质,并在地图中引用这个材质,这样保存地图的时候就一并保存了该贴图和材质,从而提供了可供游戏地图列表引用的预览图。
在Generic浏览器中右边预览窗口的空白处点右键,从关联菜单中选择New Material:
 
弹出新建材质窗口,Package名仍然使用地图名,而Group和Name可以随意,但Name注意不要和贴图重名:
 
点OK后,出现材质编辑窗口,在Generic浏览器中选中之前导入的贴图,在该窗口空白处点右键,选择菜单New TextureSample,然后出现一个节点,由于那张贴图之前被选中了,所以该节点会自动应用此贴图,然后,点击节点左边最上面的小方块并拖拽到左侧Diffuse项上,然后一个连接就会自动建立,表示此材质的Diffuse图将使用此贴图: 
 
完成后,在材质编辑窗口上方工具条找到三个绿勾,点击最左边那个,将材质的编辑操作应用一下:
 
这时候,回到Generic 浏览器,可以看到该材质(绿框是材质,右边红框是贴图):
 
选中该材质,然后在地图房间的外面另外制作一个小立方体,并把该材质应用到其BSP表面上,这样做的目的是为了让地图本身需要调用该材质,这样保存地图文件的时候,自动就把材质和贴图都保存了:
 
Build All并保存地图。
到这里,基本上一个简单的DM地图已经完成了,之后就是如何发布的问题。
 
如何发布
UT3的地图,在UED里制作完成后,需要经过Cook,才能产生可供发布的地图文件(实际上UED里面直接做好的地图,也可以在游戏里面运行,只是无法在地图列表里面显示,需要打命令)。而Cook基本上就是为Loading对地图进行优化。 
点UED菜单栏下方工具栏的按钮:
 
然后,有可能会出现如下窗口,因为本地图制作中并没有创建额外的文件包,所以直接选择“否”即可(如果你建立过诸如Static Mesh包,材质或者贴图包之类的,并且不是和地图储存在一起,那么这时候需要保存一下) 。
然后,就出现如下窗口,并开始Cook,一切正常的话,出现Success字样: 

 
关闭窗口和UED,在电脑目录My Games/Unreal Tournament 3/UTGame/Published/CookedPC/CustomMaps下面,你可以找到Cook好的地图文件和一个对应的.upk文件(如果之前没有CustomMaps目录,那么在Cook过程中会自行创建): 
然后,你需要一个同名的.ini文件来定义地图的一些信息 ,新建DM-OOXX.ini,用记事本之类软件即可,输入(酌情修改红色部分即可,注意PreviewImage项目填入的是预览 贴图的Package.Group.Name):
[ DM-OOXX UTUIDataProvider_MapInfo]
MapName= DM-OOXX
FriendlyName= OOXX
PreviewImageMarkup= DM-OOXX.Screenshot.PreviewShot>
Description= Enjoy this shit...
NumPlayers= 2 to 4 players     Author: Ass
保存ini,然后运行游戏,你应该可以在地图列表里面看到你的地图了。
然后,通常UT MOD界传统上要给地图加同名readme文件,所以建一个DM-OOXX.txt之类的,在里面描述一下地图相关信息和Credits等即可。另外,也可以准备一张截图,这样别人不用进游戏就能搞清楚这个是哪张地图了,比如说弄个DM-OOXX.jpg之类的。
最后,把DM-OOXX.ut3, DM-OOXX_LOC_int.upk, DM-OOXX.ini, DM-OOXX.txt, DM-OOXX.jpg打包到一起,最好是zip文件,因为各个第三方资源Host站点通常会建议你用zip格式
这样,就可以发布了!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值