制作我的第一张地图
此页面尚未撰写完成,需要进一步编辑。要返回主页,请单击这里。
“我对灯发誓我写完了,只是你们总是要挑我的毛病,然后我就得不停地改。改啊改。”——Eternal_Lynx
目录
1 前言
2 准备工作
2.1 所需软件
2.1.1 制图软件
2.1.2 ZHLT编译程序
2.2 软件设置
2.2.1 纹理设置
2.2.2 游戏参数设置
2.2.3 编译程序设置
3 开始制作地图
3.1 新建文件
3.2 左侧工具栏
3.3 顶部工具栏
3.4 纹理选择
3.5 预制模型库
3.6 开始制作!
3.7 定义玩家出生点
3.8 天空盒
3.9 光线
3.10 最后一步
前言
制作CS地图并不是一项非常简单的工作,需要一些耐心和Windows使用基础。
此外在做图过程中遇到问题,自己多做尝试比直接去询问结果有用的多。
虽然天书可能有些陈旧,但在此Wiki达到一定完善程度之前,还是非常有用的。有很多制图者只是匆匆浏览一遍,结果在做图时遇到很多简单的问题却无法处理,与其发帖询问等待回答,不如直接参阅天书。
准备工作
所需软件
制图软件
制作CS地图的基础软件是Valve Hammer Editor 3.5,简称VHE。
3.3及之前版本的软件名为World Craft,简称WC,相比VHE过于陈旧,如果不慎下载到这个软件,建议换掉。
软件下载地址请参阅地图资源。
建议安装CS客户端。虽然VHE在仅有WAD纹理文件的情况下也可制作地图,但没有CS客户端会给制作过程带来诸多不便。
ZHLT编译程序
注:您现在可能无法了解此步的作用,因此先按照下面的步骤进行操作,关于编译的说明可以点击此处。
由于VHE自带的编译程序比较旧,因此推荐将其更新。软件下载地址请参阅地图资源。将下载的ZHLT编译程序解压缩,并将解压缩后的tools文件夹覆盖到VHE的同名文件夹,然后在目的地的tools文件夹里找到settings.txt,将CS的路径设置正确,详细内容可以阅读ZHLT压缩包内的“安装必读”。
注:即使没有更新编译程序,自带的Q系列编译程序也可以使用,但成品效果可能会大打折扣。
软件设置
纹理设置
安装并启动VHE之后,需要对其进行设置才可正常使用。
如图选择“参数设置”,打开参数设置对话框,选择“纹理”选项卡:
推荐添加的纹理是上面两个,cstrike.wad和halflife.wad。这两个纹理文件包括大多数常用的纹理。
关于zhlt.wad:新版本ZHLT编译程序要求将此文件加入纹理列表。这个文件位于ZHLT编译程序的文件夹中,如果您是按照上面的操作更新了ZHLT编译程序,那这个wad文件就在VHE的tools文件夹中。
什么是纹理?单击此处了解。
游戏参数设置
现在切换到“游戏参数”选项卡,对于新安装的VHE这个选项卡可能是完全空白的,因此需要按以下步骤设置:
单击“配置方案”下拉列表右边的“编辑”按钮,在弹出的对话框中单击“添加”,随意输入一个游戏名,确定即可。(输入的游戏名并不会影响到做图,因为VHE可以支持HL1所有MOD的地图,所以这个功能是为了方便随时切换MOD种类。)
单击“游戏数据文件”列表右侧的“添加”,然后添加一个FGD文件,默认在VHE的fgd文件夹中就有一个。(为什么要添加这个?)
下面四个下拉列表在选择FGD之后就会自动出现,可以无视。
接下来的路径设置非常重要,请尽量设置正确:
游戏安装目录:游戏的根目录,就是有cstrike.exe或是hl.exe的那层目录。
Mod安装目录:对于CS选择cstrike文件夹即可,就在游戏根目录中。依然找不到?试试Windows的搜索功能吧。
游戏自身模块目录:选择valve文件夹,位置同上。依然找不到?同上。
保存RMF文件的目录:这个么…看你的地图在哪就改到哪吧,不强求。
编译程序设置
这里存放编译程序的位置,如果设置错误,编译就不会正常进行,就不会生成可以用的BSP文件。
游戏执行程序:游戏根目录中的cstrike.exe。没有的话可以选hl.exe。
CSG、BSP、VIS、RAD程序:在tools文件夹,选择对应的exe即可。比如CSG程序可以选择"hlcsg.exe"或"qcsg.exe",依次类推。
存放编译好的地图的目录:编译出的BSP将会拷贝到这个文件夹。对于CS1.5就在cstrike/maps,CS1.6可以选择cstrike_schinese/maps。(设置错误的话编译后在CS中将会找不到新生成的地图,只能手动拷贝。)
开始制作地图
在一系列复杂的设定之后,终于可以开始制作地图了。
新建文件
新建一个地图文件后,VHE的界面会变成如图所示的样子,这时就可以开始制作地图了。
为什么X-man在天书中说多视图不方便做图呢?——因为X-man的屏幕太小了……
左侧工具栏
做图所需的基本工具都在左侧的工具栏内,和Windows画图类似,下面由上至下依次介绍这些工具的用途:
选择工具:用于选择固体和实体。VHE和很多文档处理工具类似,遵循“先选中,后操作”的原则。
缩放工具:可以缩放制图区,方便小尺寸操作。由于鼠标滚轮可以代替这个工具进行操作,因此并不常用。注:有些鼠标的自带应用程序可能会干扰滚轮缩放功能,建议在做图时关闭那些程序。
照相机工具:用于在3D视图中改变视角,按住左键拖动即可改变视角,滚轮控制远近,但此工具无法用来选中物体。注:按Z键可进入观察模式,再按一次退出。观察模式中由鼠标控制视野,滚轮控制远近,可以进行选中操作,因此有时比这个工具要方便的多,尤其是在修改纹理的时候。
实体工具:实体是在地图中发挥各种功能的组件,例如太阳和灯。这个工具只能创建点实体。有关“实体”的内容请单击此处。
固体工具:用于在地图中放置各种地形结构。有关“固体”的内容请单击此处
纹理调整工具:用于细微调整固体上覆盖的纹理。这里有具体的教程。
应用当前纹理:将所选纹理用于所选固体的所有面。之后用纹理调整工具进行微调即可达到满意效果。
印花纹理工具:在固体上“喷涂”印花纹理。
裁剪工具:用于对固体进行切割,效果为用一平面去切割固体。
顶点工具:用于微调固体结构。
路径工具:用于生成路径。
顶部工具栏
顶部工具栏中有一些非常实用的辅助功能:
网格操作:
显示网格:我个人真是十分极其推荐打开这个,如果你觉得没有网格很cool的话,那就关掉吧。
显示3D网格:在3D视图中显示3D网格,这个就看个人喜好了。
缩小、放大网格:快捷键是[和],也就是P键右边那两个,说实话这俩快捷键比这两个按钮好用太多了。VHE右下角的“Gird:XX”就是当前的网格大小。
窗口状态操作:
读取、保存窗口状态:用于保存当前的窗口排列,如果弄乱了还可以读取。不要使用!如果发现工作区被搞得一团糟,重启VHE。
雕刻:就是用选中固体雕刻与它有重合部分的固体,相当于在另一块固体上刨个坑。尽量少用,尤其是不要用除了block以外的固体进行雕刻,万一悲剧了,各种非法固体有你受的。
群组操作:
建立群组:将选中的固体和实体组合到一起,选一个就能全部选中。
解散群组:顾名思义。
忽略组:如果你需要修改一个群组中的一块,又不想解散整个群组,那就将这个按钮按下,此时就可以无视群组单独选中群组中的部分固体或实体了,用完之后记得点掉,否则……你会发现很多功能莫名其妙的抽风。快捷键是Ctrl+W,警告:不要在本页面上使用这个组合键,后果自负。
可见组操作:
隐藏选中对象:有时候地图做得很复杂,想修改的时候发现有一大堆乱七八糟的线无从下手,这时候可以隐藏一部分固体和实体,方便修改,想让它们显形的话,点右边的第二个按钮或者在屏幕右侧的“可见组”里进行操作。
隐藏未选中对象:跟上面相反,这个是只留下你选中的部分。
显示所有被隐藏对象:顾名思义。
剪切、复制、粘贴:这个都不知道的话还做什么地图啊………………补习Windows基础去吧。
编译框操作:
锁定、编辑编译框:如果有编译框的话,编译时将不编译框外的东西,功能自己摸索吧……
点击中心点选择实体:如果按下,那么只能通过点击固体或实体重心的"X"来选中了。
鼠标框选对象:如果按下,那么拖动鼠标划出的框在鼠标按键放开时就会生效选中框内的所有固体和实体,如果没有按下,那么只会划出一个框,按回车才会生效。看个人习惯咯。
纹理锁:移动或旋转一个实体时它的纹理将不会被改动,否则……你挪一下就明白了。强烈建议按下!
纹理排列:就是固体和面的方式,后面纹理选择工具会继续解释。
编译!:快捷键F9,你懂的!
纹理选择
放眼VHE的右侧,有一张小图片,这就是将会被应用到新建固体上的纹理。
纹理组:选择当前浏览的是哪个WAD文件,All Textures就是浏览全部纹理。(这里的“全部”指在VHE参数设置中添加的那些纹理文件)
当前纹理:“将会被应用到新建固体上的纹理。”如果下拉列表选择纹理比较困难:
浏览...:打开纹理选择对话框,便于查找需要的纹理。
替换...:把地图里的某种纹理替换成另一种纹理。
预制模型库
注:此模型非mdl模型。
地图里不应该只有长方体除非是仿Minecraft风格,在这里可以选择新建的固体是什么形状。
模型库:不同种类的固体分类归纳在不同模型库中。常用的自然是第一个“Primitives”,里面有:
Block:长方体
Wedge:楔形固体(就是把长方体斜着切两半)
Cylinder:圆柱体,不过其实是棱柱(由于一个面最多允许28个顶点,所以当有28个侧面时底面就会达到顶点极限--也就是最多28个侧面啦)
Spike:棱锥(同上)
Arch:拱形
插入预制模型:将选中的预制模型插入地图中。
建立预制模型:将当前选中的固体存为预制模型。
开始制作!
在阅读过上面这么多看似恐怖的内容之后,终于可以开始制作第一张地图了!
我们先做一个最简单的大盒子地图。
选择一个看起来还不错的纹理,不可以使用AAATRIGGER!
至于你说为什么图片里都是aaatrigger,那是我懒得改了……
用拖出一个长方体block,注意在三视图中的对应关系,否则做出来的只是“一片纸”一样的东西。
此时应该可以在3D视图中通过调整视角看到这个长方体了。如果看不到纹理,单击左上角的Camera,选中“3D纹理视图”即可。
现在我们选中这“一大块”,右键单击,选择“挖空”。
然后在弹出的窗口中输入一个合适的值,这个值就是“墙壁的厚度”,比如32,单击确定,此时,一个封闭的空间出现了。
定义玩家出生点
地图已经有了一个基本框架,下面就需要定义玩家出生点了。顾名思义,就是设置玩家出生的位置。出生点是点实体,对于CS而言,T的出生点叫做info_player_deathmatch,CT的出生点叫做info_player_start。
小知识:大家都应该知道CS的前身是HL——半条命,在HL里,单人模式的出生点是info_player_start,也就是“玩家起始点”,而多人模式的出生点是info_player_deathmatch,即“玩家死亡竞赛重生点”,由于CS是一款对抗的mod,所以就把start给了CT,deathmatch给了T,这样就不会浪费实体啦。
首先点击左边的点实体工具:
然后在右下角选择对应的实体:
最后在需要出生点的位置单击左键,回车,就这么简单!注意:请确定出生点在三视图中的位置,不要让玩家卡在墙壁或者地面中!也不要让实体之间靠的太近!
由于CS最多支持16VS16,所以每种实体各放16个就绝对够用了。
这样就做好了出生点,理论上这样的地图已经可以放到游戏中玩了,不过嘛……实在是太简陋啦。
天空盒
当我们仰望天空的时候,蓝是那么的天,白是那么的云,我们都知道这是大气层对光线的折射与反射……哎呦喂别拿鼠标砸我啊,天空盒子(skybox)就是这么个东西嘛……
天空其实就是一块每个面都贴着sky纹理的固体,在游戏中会被处理成天空背景。还记得之前做的大盒子吗?把大盒子的上盖换成Sky纹理,游戏中抬头就是天空啦。
天空就是我,我就是天空~
当然,咱们之前做的大盒子被自动组合起来了,不能直接选中其中一块,这时候有两种方法来进行修改:
忽略群组,在顶部工具栏,"ig"按钮。
解散群组,右键菜单就有。
你肯定要问,那该怎么改掉天空背景图呢?这只是一个蓝色的sky纹理啊?当然就在“地图菜单--地图属性--天空背景图”啦。
但是这个键值该怎么修改呢?以下来自天书的内容可以帮助你:
什么是天空贴图呢?呵呵,跟我来看看吧。用你的资源管理器(呵呵,没错。是资源管理器)到你的cs游戏的cstrike/gfx/env目录里面吧。看看,里面是不是躺着很多tga格式的图片文件啊?这些就是天空贴图了。我们看看规律,发现没有啊?呵呵,这些图片都是6张一套的我打一个比方吧。里面有6个tga图片文件名是这样的:duskbk.tga、duskdn.tga、dusklf.tga、duskrt.tga、duskft.tga、duskup.tga他们的规律是,名字除最后2个字母是一样的,这里的例子就是dusk是一样的。后面的字母其实是表示这套天空贴图的方位,前后左右上下的英文缩写嘛!!呵呵。我们把这样的6张图片叫做一套天空贴图。例子里这套天空贴图的名字就是dusk了。呵呵。
小知识:前后左右上下——ft,bk,lf,rt,up,dn,其实就是Front、Back、Left、Right、Up、Down。
小知识:编译程序只认名字不认纹理内容,只要是名字叫做sky的纹理就行。所以找不到这个纹理的时候,自己做一个也可以。当然,如果你每一步都是按照这篇文章来的,那绝对不会发生找不到sky纹理的问题。
光线
相信做到这一步的时候,你已经信心满满的打算一心死在CS地图这光荣事业中了……哎哟喂别拿键盘拍我啊,我教程还没写完呢……
我知道你想说什么,那就是你的地图是全亮的!没有光照效果的!坑爹但是看起来又有那么点给力的!
抬头看看窗外的天空吧,你一定看到了来自某颗恒星的光芒,啥?晚上了?呃……
咳咳,在CS地图里,我们也有一颗太阳,一个点实体,叫做light_environment,环境光。这个实体只要出现在地图中,天空就会按照它的角度设定放射出平行光,就如同真正的太阳一样。
小知识:为什么太阳光是平行光?因为太阳距离地球有1个天文单位那么远,相对地球的大小而言,这些光线的夹角完全可以忽略不计。
所以只要把它扔在地图中,按照天书设定好,编译勾上RAD,搞定。
至于其它的光源,比如灯泡,更简单了,扔个light点实体,设置好光线(前面三个数字,代表颜色,红绿蓝,后面一个数字,代表亮度),light的位置就是光源的位置。
好嘛,说起来容易,但是你偶尔会发现,地图还是全亮的,这尼玛是为什么呢?
因为你的编译出错了……猛击此处查看错误类型与解决方法。
最后一步
按F9编译吧少年。只要你的设置是正确的,你的地图将会正常编译然后可以玩了。
至于编译到底是什么东西,如果你之前没看过那个链接,现在再给你一次机会。
关于地图的发布,比如纹理打包、RES文件的制作等等,敬请期待地图的发布页面更新。