Радар для карты
В этом уроке мы рассмотрим с вами методику создания радара для карты. Так, как в базовом уровне движка обычные игроки могут видеть радары в таки играх, как CS:Source и CS:GO, то мы рассмотрим пример создания радара для CS:Source и CS:GO. Не пугайтесь! Для всех игр Source движка все радары делаются только по этому же методу.

Создание мини-карты для CS:Source
Создание радара вещь не слишком необходимая, но, тем не менее, карта будет смотреться лучше и профессиональнее, к тому же ориентироваться на карте при первой игре будет намного проще (разумеется, если мини-карта сделана правильно и понятно).

Важно, чтобы карта была скомпилирована всеми компиляторами и на ней не должно быть дыр в карте (leak), иначе создать радар не получится. Также отсечение пространства у entity: env_fog_controller при создании радара нужно отключить.

Зайдите в игру и запустите вашу карту в CS:S через консоль или меню игры. Зайдите в игру как наблюдатель, поднимаемся на ту высоту, разрез которой вы хотите видеть на радаре, направляем камеру параллельно земле и вводим последовательно следующие команды (мышку, то есть камеру, больше не трогаем):

sv_cheats 1
hideradar
cl_drawhud 0
r_skybox 0
hidepanel all
fog_enable 0
fog_override 1

Теперь, согласно вашему разрешению экрана, введите команду: cl_leveloverviewmarker 512 или cl_leveloverviewmarker 1024, чтобы квадрат 512х512 или 1024х1024 на вашем экране поместился. Появится красный квадрат (вы можете увидеть только красную полоску, потому что нижняя сторона квадрата не видна). В этот квадрат вы должны уместить вашу карту. Чтобы понять, о чем идет речь, введите команду: cl_leveloverview 5 в консоль.



Вы видите перед собой разрез карты на высоте камеры. Теперь отрегулируйте команду cl_leveloverview, подставляя нужные значения, чем больше значение — тем меньше карта. Перемещайте карту кнопками: W, S, A, D. Мышку не трогаем! Когда карта уместилась в квадрат, делаем скрин и открываем графический редактор, где обрезаем скрин до квадрата, удаляем все лишнее, зеленый фон заменяем на прозрачный, добавляем какие-нибудь надписи и сохраняем png файл. из него нам предстоит сделать текстуру. Но игру еще не закрываем! Открываем консоль и ищем строчки типа: Overview: scale 9.00, pos_x -4920, pos_y 4912. Нам нужна самая последняя строчка. Запишите ее куда-нибудь, она нам еще пригодится.

Теперь открываем программу: VTFEdit, нажмите Import и ищем наш переделанный радар. В настройках: General → Texture Type изменяем на Volume Texture. Нажмите: ОК — Ваш радар будет преобразован в текстуру. Теперь нажмите Cохранить (Save) и сохраните файлы рдара в директорию: cstrike\materials\overviews\название_карты.vtf

И той же папке создаем текстовый файл с названием вашей карты и пишем в него следующее (название карты меняем на свое):

"UnlitGeneric"
{
"$translucent" "1"
"$basetexture" "overviews/название_карты"
"$vertexalpha" "1"
"$vertexcolor" "1"
"$no_fullbright" "1"
"$ignorez" "1"
}

Теперь сохраняем и меняем расширение файла с *.txt на *.vmt

Ппоследний штрих — зайдите в папку с игрой: cstrike/resource/overviews, снова создаем текстовый файл с названием вашей карты и пишем в него следующее:

"название_карты"
{
"material" "overviews/название_карты"
"pos_x" "-2303"
"pos_y" "2442"
"scale" "4.3"
}

Помните ту строчку из консоли игры, которую вы записали? Подставляем из нее значения в наш файл нужные цифры: pos_x, pos_y и scale. Сохраняем и любуемся на радар:

Создание мини-карты для CS:GO
В Counter-Strike: Global Offensive есть мини-карта, так же как и в прошлых играх серии. С точки зрения игрока мини-карта не изменилась, но вот с точки зрения разработчиков процесс создания мини-карты отличается от Counter-Strike: Source.

Основные различия:
  • В CS:GO мини-карта является радаром.
  • CS:GO не использует VTF и VMT файлы.
  • В CS:GO мини-карта сохраняется в ".DDS" файл.
  • Требуется только два основных файла для работы мини-карты, ".DDS" и ".txt". ".DDS" содержит изображение уровня, а ".txt" основные настройки отображения изображения.
Создание заготовки изображения уровня


1. Запустите CS:GO. Откройте НАСТРОЙКИ → НАСТРОЙКИ ВИДЕО. Установите Разрешение равным "1280 x 1024" при Формате экрана равным "Обычный, 4:3".

2. Загрузите карту у которой хотите сделать мини-карту с помощью консольной команды (далее просто команды) map <имя карты>.

Примечание: Для включения консоли, активируйте её в НАСТРОЙКИ→ПАРАМЕТРЫ ИГРЫ, Включить консоль разработчика (~)

3. Выберете команду.

4. Включите использование чит-команд с помощью команды sv_cheats 1.

5. Отключите ботов командой bot_quota 1.

6. Запрограммируйте (забиндите) команду screenshot на клавишу, используя команду bind <клавиша> screenshot. (рекомендовано <клавиша> = P)

Примечание: Важно использовать команду screenshot, так как при нажатии F5, изображение сохраняется сжатым в формате JPEG, вместо несжатого TGA.

7. Отключите элементы интерфейса командой cl_drawhud 0;r_drawviewmodel 0;hidepanel all.

8. Отключите эффекты карты, такие как дым и небо, командой r_skybox 0;fog_override 1;fog_enable 0, так же вы можете отключить prop_static объекты командой r_drawstaticprops 0, если это требуется.

9. Включите прохождение сквозь стены командой noclip и переместитесь над картой так, чтобы видеть всю карту.

10. Переключить метод отображения командой cl_leveloverview <масштаб>. (Попробуйте начать со <масштаб> = 4-5, так же можно использовать дробные числа, к примеру 3.4)

11. Используйте команду cl_leveloverviewmarker 1024, чтобы включить линию-помощника.

Примечание: Если линия не появилась, переключите cl_drawhud 1, что бы линия появилась, а потом снова отключите интерфейс cl_drawhud 0.

Примечание: Чтобы выполнить все выше перечисленное одной командой, вставьте в консоль sv_cheats 1;bot_kick;bot_quota 1;cl_drawhud 0;r_drawviewmodel 0;hidepanel all;r_skybox 0;fog_override 1;fog_enable 0; noclip;cl_leveloverviewmarker 1024;mp_ignore_round_win_conditions 1.

12. Вы можете перемещать камеру с помощью стрелок на клавиатуре. Теперь передвигая камеру и меняя <масштаб> сделайте так что бы карта была в квадрате ограниченным красной линией. Все что находится левее красной линии будет позже убрано. Для проверки можете посмотреть на изображение справа, на нём видно как выглядит этот шаг на de_dust2.

13. При перемещении в консоли будут обновляться данные о позиции (pos x, pos y) и масштабе (scale). Это выглядит как: "Overview: scale 6.00, pos_x -2651, pos_y 4027".

14. Убедитесь что все хорошо и сделайте скриншот, используя ранее запрограммированную <клавишу>, а так же сохраните последние данные "Overview:" из консоли. Они понадобятся позже.
Создание .DDS — используя Photoshop
Скачайте и установите Photoshop с официального сайта: https://creative.adobe.com/ru/products/download/photoshop

1. Запустите Photoshop и откройте скриншот сделанный ранее. Он должен располагаться в "%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\screenshots". Где "%STEAMINSTALL%" директория куда у вас установлен Steam. Обычно "C:\Program Files (x86)\Steam".

2. Выберете Изображение → Размер холста... (Alt+Ctrl+C) установите ширину равной 1024 пикселя. В окне расположение нажмите на верхний левый угол, после чего нажмите ОК. Должно получиться как на изображении ниже.



3. В окне слои слева снизу дважды нажмите на слой с названием "Фон". В открывшемся окне нажмите ОК.

4. Некоторые любят добавлять на изображение обозначения, самое время это сделать сейчас. (К примеру зоны выделение зон покупки и мест закладки бомб)

5. Сохраните .DDS файл. (Файл→Сохранить как...). Имя файла должно соответствовать имени карты с припиской "_radar". (Пример: de_dust_radar.dds) Тип файла — D3D/DDS.

Примечание: Если .DDS формат отсутствует в параметрах сохранения, тогда вам надо установить плагин для photoshop. Вы можете загрузить его здесь: NVIDA .DDS Plug-In

6. В DDS окне в выпадающем меню сверху смените "DXT1 RGB 4 bpp | no alpha" на "DXT1 ARGB 4 bpp | 1 bit alpha", как на изображении ниже.



7. После сохранения переместите файл в "%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\resource\overviews".

8. Вы успешно создали .DDS файл вашей карты.
Используя GIMP
1. Загрузите и установите DDS плагин для GIMP 2.0.2.

2. Запустите GIMP и откройте .TGA файл, который Вы создали. Он должен находиться в "%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\screenshots". "%STEAMINSTALL%" - директория, в которой Вы установили Steam. Это скорее всего "C:\Program Files (x86)\Steam".

3. Используя инструмент "Размер холста" (Изображение -> Размер холста), установите ширину изображения на 1024 пискелей, оставив высоту без изменений (1024).

4. Выберите участки изображения, где Вы хотите прозрачность на мини-карте, затем нажмите клавишу Del.

5. Некоторые люди любят добавлять разные цветовые особенности на свои мини-карты, если Вы хотите того же самого, самое время сделать это сейчас.

6. Сохраните изображение в формате ".DDS". (Файл -> Сохранить как). Имя файла ".DDS" должно состоять из имени вашей карты и "_radar" (например - de_dust_radar.dds). Формат файла должен быть D3D/DDS. Сохраните файл в "%STEAMINSTALL%\SteamApps\common\Counter-Strike Global Offensive\csgo\resource\overviews".

7. Когда откроется диалог DDS, нажмите на выпадающее меню сверху слева и измените вид компрессии с "None" на "BC1/DXT1", затем нажмите "Готово".
8. Вы успешно создали файл .DDS для вашей карты.
Создание _spectate .DDS
Повторяя процесс из предыдущего раздела статьи вы можете создать _radar_spectate.DSS файл.

Если этот файл присутствует в директории \resource\overviews\, то изображение карты на экране загрузки будет заменено на него.
Создание файла настроек
В завершении требуется создать файл с названием .txt в директории \resource\overviews\. (Пример: C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\resource\overviews) Данный файл содержит данные для выравнивания изображения уровня. Для примера рассмотрим такой файл для карты de_dust2:

Используйте данные которые вы запоминали в пункте 12 создания заготовки изображения уровня.

// HLTV overview description file for de_dust2.bsp
"de_dust2"
{
	"material"	"overviews/de_dust2"	// Путь к файлу с изображением уровня без указания формата относительно csgo директории
	"pos_x"		"-2400"                 // Данные, которые вы запомнили
	"pos_y"		"3383"                  // Данные, которые вы запомнили
	"scale"		"4.4"                   // Данные, которые вы запомнили
	"rotate"	"1"                     // карта была повернута на 90 градусов в редакторе
	"zoom"		"1.1"	                // Увелечение

	// Позиции значков на экране загрузке уровня
	"CTSpawn_x"	"0.60"
	"CTSpawn_y"	"0.22"
	"TSpawn_x"	"0.36"
	"TSpawn_y"	"0.93"

	"bombA_x"	"0.80"
	"bombA_y"	"0.20"
	"bombB_x"	"0.20"
	"bombB_y"	"0.15"
}

Для значков заложников используйте:
	"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"
	// и так далее...

А так же для одиночного места закладки бомбы:
	"bomb_x"	"0.37"
	"bomb_y"	"0.42"

Заключение
Если вы сделали все правильно, у вас должно получится что-то подобное изображению ниже:

Вернуться в каталог уроков