制作一张可用的小地图

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)Deutsch (de)Русский (ru)中文 (zh)Translate (Translate)

基本介绍

部分模组(en)(反恐精英:起源,胜利之日:起源)拥有一个能显示地图概要,玩家和物体位置的俯视小地图。构建这样一张由游戏内屏幕截图(en)所修改的小地图对于制作新关卡来说十分重要。

反恐精英:全球攻势(en)也提供小地图功能,它看上去和前几代反恐精英里的小地图没什么太大区别,但对于开发者来说,小地图的制作过程早已大相径庭。

主要的变动有:

  1. 在CS:GO里小地图被称为"雷达。"
  2. CS:GO里的雷达并不使用VTFs和VMTs。
  3. CS:GO里的雷达图片被保存为".DDS"格式。
  4. 现在只需要两个文件就能让小地图正常显示,一个'.DDS"文件以及一个".txt"文件。".DDS"文件就是小地图显示的地图图片本身,".txt"文件则是用来设定如何让游戏显示小地图。

如果你真的想仔细看看有什么具体的改变,又或者你想制作的是反恐精英:起源的小地图,请查阅:关卡俯视图(en)

获取一张无损俯视图

关卡俯视图的一个例子(de_dust2)
  1. 首先开始游戏,接着打开选项界面,并切换到视频设置,然后将分辨率调整为"1280x1024"并把纵横比切换到"标准"。如果你无法调整分辨率(因为屏幕过小或其他原因),亦可以在启动选项中加上" -width 1280 -height 1024"。
  2. 控制台指令(en) map <地图名> 打开地图并输入 "sv_cheats 1"
  3. 随便选择一个队伍加入。
  4. 控制台(en)输入指令"bot_quota 1"来停用机器人。
  5. 控制台(en)输入指令"bind p screenshot"来将"屏幕截图(en)"指令绑定到一个按键上。这一点真的很重要,因为默认截图方式(F5截图)会产生一张压缩过的JPEG(en)格式图片而不是无损的TGA(en)格式图片。
  6. 控制台指令(en)"cl_drawhud 0""r_drawviewmodel 0"以及"hidepanel all"来去除HUD。
  7. 控制台指令(en)来去除一些无用的效果,例如天空盒("r_skybox 0"),烟雾("fog_override 1""fog_enable 0"),物体(optional: "r_drawstaticprops 0")及其他。
  8. 控制台(en)输入指令"noclip"来停用玩家碰撞,接着移动到一个能俯视全图的完美的位置。
  9. 控制台指令(en)"cl_leveloverview x"来切换到俯视模式(指令中的 x 指的是比例大小)。
  10. 控制台(en)输入指令"cl_leveloverviewmarker 1024"可以显示一条红色的辅助线,不过你需要在控制台(en)输入cl_drawhud 1来暂时重启HUD。将视角对好,然后记得关闭HUD
  11. 你可以在cl_leveloverview模式启用时自由移动,不过记住移动方向键将会把你带向与平时不同的方向。适应操作后,仔细调整镜头,注意地图的最右边不应该超出辅助红线,不然你会发现超出的部分在接下来的制作过程中会被整个砍掉。调整时你可以参考右边de_dust2的俯视图。
  12. 当前的镜头信息(位置和比例)都会在控制台中显示并实时更新,例如:"Overview: scale 6.00, pos_x -2651, pos_y 4027"。
  13. 当一切都接近完美之时,按下截图键(之前用控制台绑定的)并记下控制台显示的镜头信息,之后会用到。

你需要绑定的按键:

//俯视模式
//由The RaZZeR App提供代码
bind "o" "change_resolution; clear_view; clear_map; clear_game; record_config; radar_image";
bind "p" "screenshot";
alias "change_resolution" " mat_setvideomode 1280 1024 1;";
alias "clear_view" "sv_cheats 1; cl_drawhud 0; r_drawviewmodel 0; hidepanel all; net_graph 0;";
alias "clear_map" "bot_quota 1; bot_kick all; r_skybox 0; fog_override 1; fog_enable 0";
alias "clear_game" "mp_freezetime 0; mp_roundtime 9999; mp_roundtime_defuse 9999; mp_roundtime_hostage 9999; mp_roundtime_deployment 9999; mp_warmup_end;";
alias "record_config" "con_logfile overview_info.log;";
alias "radar_image" "noclip; cl_leveloverviewmarker 1024; cl_leveloverview 5";
Tip.png提示: 新建一个名叫overviewexec.cfg的文件(名称不重要)并把以上所有代码都复制黏贴进这个cfg文件,接着把这个文件放入csgo/cfg/ 并在控制台(en)输入指令"exec overviewexec"。

这些代码会把需要的控制台(en)信息输出至"csgo/overview_info.log"。 游戏分辨率也同时会被切换到窗口化的1280x1024 (4:3)。

建立.DDS文件

使用Photoshop

  1. 开启Photoshop并打开你在"%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\screenshots"建立的.TGA格式文件("%STEAMINSTALL%"是你安装Steam的路径),默认是"C:\Program Files (x86)\Steam"
  2. 重新设置画布尺寸(图像 -> 画布尺寸),将长宽都设置为1024像素,并将锚点放置在左上角。
    PhotoshopScaleImage.PNG
  3. 在图层界面双击背景图层,一个"新建图层"的窗口会出现,点确定。
  4. 选中你想要在小地图中透明显示的部分并按下退格键。
  5. 有些人喜欢精心装饰一番他们的小地图,如果你也想,现在就搞定。
  6. 将图片另存为文件格式是D3D/DDS的.DDS文件(文件 -> 储存为),文件名应是你的地图名加上"_radar",例如(de_dust_radar.dds),最后将文件保存到"%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\resource\overviews"
  7. 如图所示,当Intel Texture Works选项框出现后,把“Texture Type”和“Compression”中的选项从"Color"换成"Color + Alpha""BC1 4bpp(Linear)"# 换成"BC3 8bpp(Linear)"
    ITW dialog.jpeg
  8. 恭喜,属于你自己地图的.DDS文件已经被创建成功了!
Note.png注意:如果"储存为..." .DDS文件的选项并不可用或者没有出现,就说明你还没有下载对应的Photoshop插件。你可以在Intel的网站下载:Intel® Texture Works Plugin for Photoshop(NVIDIA的Photoshop插件已经很久没有更新了。)

使用GIMP

(本教程使用GIMP 2.6,但对GIMP 2.x应该也适用)

  1. GIMP DDS Plugin 2.0.2下载并安装GIMP。
  2. 启动GIMP并打开你在"%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\screenshots"建立的.TGA格式文件("%STEAMINSTALL%"是你安装Steam的路径),默认是"C:\Program Files (x86)\Steam"
  3. 重新设置画布尺寸(图像 -> 画布尺寸),将长宽都设置为1024像素。
  4. 选中你想要在小地图中透明显示的部分并按下删除键。
  5. 有些人喜欢精心装饰一番他们的小地图,如果你也想,现在就搞定。
  6. 将图片另存为文件格式是D3D/DDS的.DDS文件(文件 -> 储存为),文件名应是你的地图名加上"_radar",例如(de_dust_radar.dds),最后将文件保存到"%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\resource\overviews"
  7. 当DDS设置窗口出现时打开左上角的下拉菜单,把压缩设置从"无"设置成"BC1/DXT1"并点选"OK"
  8. 恭喜,属于你自己地图的.DDS文件已经被创建成功了!

建立俯视图代码文件

最后一步,在<game dir>\resource\overviews\创建一个名叫<你的地图名>.txt的.txt文件。此文件将用来定义俯视图所需要的种种数据,以下用地图de_vertigo作为例子:

需要输入的内容来自你在获取一张无损俯视图中第12步所获得的数据。

// HLTV overview description file for de_vertigo.bsp
"de_vertigo"
{
	"material"	"overviews/de_vertigo_radar"	// texture file
	"pos_x"		"-3168"				// X coordinate
	"pos_y"		"1762"				// Y coordinate
	"scale"		"4.0" 				// scale used when taking the screenshot
	"rotate"	"0"				// map was rotated by 90 degrees in image editor(en)
	"zoom"		"1.3"				// optimal zoom factor if map is shown in full size

	//loading screen icons and positions
	"CTSpawn_x"	"0.22"
 	"CTSpawn_y"	"0.73"
	"TSpawn_x"	"0.63"
	"TSpawn_y"	"0.10"

	"bombA_x"	"0.17"
	"bombA_y"	"0.78"
	"bombB_x"	"0.73"
	"bombB_y"	"0.68"

	"Hostage1_x"	"0.56"
	"Hostage1_y"	"0.83"
	"Hostage2_x"	"0.48"
	"Hostage2_y"	"0.64"
	"Hostage3_x"	"0.47"
	"Hostage3_y"	"0.78"
	"Hostage4_x"	"0.30"
	"Hostage4_y"	"0.88"
	"Hostage5_x"	"0.42"
	"Hostage5_y"	"0.86"
}

"pos_x"(红线)以及"pos_y"(绿线)符合Hammer中的X(左右)和Y(上下),降低比例会让雷达图看上去更大。

要搞清楚你需要在哪里放置载入界面中的标识图标(出生点和爆破区),你需要打开Photoshop并按下Ctrl+R以使用标尺工具(记住要使用百分比模式)得到准确坐标。

在文件中不要使用百分比符号,举个例子,31.12%应被写成0.31。

不同高度

自从野火行动更新后,雷达已可以显示多个高度。你需要截取多个不同高度的雷达图,并根据玩家所在高度来设置它们,参考新的de_nuke地图文件。

  • 你的地图名_lower_radar
  • 你的地图名_radar(这是普通高度)
  • 你的地图名_higher_radar

接着建立新的俯视图.txt文件。

"verticalsections"
{
	"default" // use the primary radar image
	{
		"AltitudeMax" "600"
		"AltitudeMin" "-500"
	}
	"lower" // lower radar file
	{
		"AltitudeMax" "-500"
		"AltitudeMin" "-10000"
	}
	"higher" // higher radar file
	{
		"AltitudeMax" "10000"
		"AltitudeMin" "600"
	}
}
  • 在控制台输入"cl_showpos 1"来检查当前高度。
  • 高/低.dds文件将不会被在上传到创意工坊时被自动上传,你需要手动打包它们。

总结

下面是一张游戏内的雷达截图,如果没出什么差错,你的成品就应该和下图差不多。

CSGO Example Radar.png

资源

无标识爆破区Bombsite clear.png 爆破区 A Bombsite a.png 爆破区 B Bombsite b.png

CT重生区标志 Ct.png T重生区标志 T.png 人质标志 Hostage.png

新T重生区标志 T spawn icon NEW.png

其他教程