Фоновая Карта в Меню

From Valve Developer Community
Jump to: navigation, search
English 简体中文

Фоновые карты - это трёхмерные динамические задние планы, которые появляются за игровым меню при запуске игры. Это компилированные BSP-карты, как обычные. Обычно фоновые карты используют для однопользовательских модификаций (как Half-Life 2), но их можно использовать для любых модификаций. Фоновая карта может изменяться, как только игрок проходит главу, в зависимости от модификации


Создание фоновой карты

Фоновые карты могут быть созданы как диорамы. Примитивы на карте должны быть жёстко лимитированы для того, чтобы они были видны только в камере. Благодаря этому требуется меньше материалов, поэтому карта становится меньше по размеру, и ускоряется время загрузки.

Чтобы создать фоновую карту:

  • Создайте обычные примитивы на сцену, которую вы хотите добавить на фоновую карту. Они не должны содержать leak'ов (утечек)и должны выглядеть как обычный игровой уровень. Также необходимы все материалы и источники освещения. Вы можете начать делать из существующего уровня - просто удалите или спрячьте ненужные примитивы и ентити. Все ненужные элементы должны быть удалены.
  • Добавьте info_player_logo (для многопользовательских игр) или info_player_start (однопользовательские игры) на карту. Их расположение на карте не важно, главное, чтобы они не висели в воздухе, иначе игрок упадёт и получит повреждения.
  • Добавьте на карту point_viewcontrol в ту позицию, откуда вы бы хотели видеть карту. Имя этой ентити нужно задать любое, но чтобы можно было легко найти её (например:"viewcontrol_background1").
  • В настройках отключите флаги Start at Player / Follow Player / Interruptable by Player и включите Freeze Player / Infinite Hold Time / Snap to goal angles / Make player non-solid.
  • Добавьте ентити info_target. Это точка, на которую будет смотреть камера после загрузки карты. Задайте ей имя, похожее на имя камеры (например: "target_background1" ).
  • Выберите point_viewcontrol. Задайте параметру Entity to look at (Ентити, на которую надо смотреть) значение info_target, которую вы создали как целевую ентити.
  • Как только фоновая карта загрузилась, point_viewcontrol должна быть активирована. Самый лёгкий способ - logic_auto. Добавьте аутпут OnMapSpawn, который включает point_viewcontrol (Enable).
  • Вы можете задать другие аутпуты для logic_auto для событий, которые должны совершаться после загрузки карты, например, мерцание ламп, передвижение NPC, воспроизведение некоторых звуков и т.п.
  • Сохраните и компилируйте карту также, как вы обычно запускаете карту. Если вы хотите заменить фоновую карту Half-Life 2, прочитайте статью "Замена фоновых карт Half-Life 2" ниже, чтобы убедиться в правильности названия карты.

Тестирование фоновой карты

Чтобы проверить фоновую карту, запустите мод без запуска карт. После загрузки, включите консоль разработчиков и введите:

map_background <mapname>

Где <mapname> - имя вашей карты. Как только загрузится карта, поверх неё появится игровое меню.

После тестирования на работоспособность фоновой карты, вы можете её изменить и улучшить. Вы, возможно, захотите добавить больше деталей, изменить расположение камеры или её цели. Псоле того, когда вы настроите положение карты, хорошо бы оптимизировать уровень как это возможно, просто применив материал toolsnodraw на те грани, которые не видны камере. После оптимизации фоновая карта будет загружаться быстрее.

См. maps\sdk_background.vmf для примера фоновой карты.

Материал фоновой карты меню

Также важно создать материалы заднего плана для вашей фоновой карты. Эти изображения появляются как только вы запускаете игру, но фоновая карта ещё не загрузилась. В Half-Life 2 это размытый скриншот фоновой карты (чтобы создать его, используйте Gaussian Blur на 30 px для картинки высотой 1280px). Когда карта загрузилась, экран плавно переходит из статичной картинки на фоновую карту.


Для карты необходимы два материала:

<game directory>\materials\console\<map name>.vmt

<game directory>\materials\console\<map name>_widescreen.vmt

Например, если ваша фоновая карта называется sdk_background.bsp, вам нужно два материала:

hl2\materials\console\sdk_background.vmt

hl2\materials\console\sdk_background_widescreen.vmt


Обычно фоновыми материалами являются размытые скриншоты фоновой карты разрешением 1024x1024.

Убедитесь в том, что размер ваших изображений 1024x1024. Главная хитрость в том, как заставить изображение корректно отображаться на мониторах с разными соотношениями сторон (4:3, 16:9, или 16:10).

  • На обычных мониторах (4:3) создайте изображение размером 1024x768 (или 1280x1024) и измените их размер на 1024x1024.
  • На широкоэкранных мониторах создайте изображение размером 1280x800 и также измените его размер на 1024x1024


Вы можете задать клавишу для создания скриншотов в меню Настройки -> Клавиатура, когда вы запустили игру. По умолчанию это кнопка F5, и сохраняется изображение в формат .JPG в папку <игровая папка>/screenshots. Вы также можете привязать к кнопке консольную команду screenshot, которая сохраняет в формат .TGA

Файл фонового материала .vmt может выглядеть так:

"UnlitGeneric"
{
	"$basetexture" "console/sdk_background"
	"$vertexcolor" 1
	"$vertexalpha" 1
	"$ignorez" 1
	"$no_fullbright" "1"
	"$nolod" "1"
}

Для дополнительной информации по созданию материалов, см. статью Material Creation. Пример фоновых материалов для карты sdk_background можно найти по этому адресу: \sourcesdk_content\hl2\materialsrc\console (для исходных .TGAs)

\half-life 2\hl2\materials\console (для .VMT и .VTF files).

Скриптовые файлы для создания фоновых карт и глав в ваших модификациях

Как только вы создали фоновую карту, она должна быть вставлена в новый файл скрипта для того, чтобы она автоматически отображалась во время правильной главы.

В файле hl2\scripts\ChapterBackgrounds.txt фоновые карты ассоциируются с определёнными главами игры. Это список всех игровых глав и фоновых карт, которые должны загружаться, как только игрок дойдёт до следующей главы.

Вот пример файла ChapterBackgrounds.txt из Half-Life 2:

"chapters"
{
	1	"background01"
	2	"background01"
	3	"background02"
	4	"background02"
	5	"background03"
	6	"background03"
	7	"background04"
	8	"background04"
	9	"background05"
	9a	"background05"
	10	"background06"
	11	"background06"
	12	"background07"
	13	"background07"
}


Файл hl2\scripts\ChapterBackgrounds\titles.txt содержит номера глав. Цифровое значение создаётся для каждой главы игры. Эти ключевые значения могут быть помещены в “Chapter Title Message”(Отображаемое название главы) в Map Properties(Свойства карты) (также называемой worldspawn) через меню Map в редакторе Hammer.

hl2\resource\hl2_english.txt
hl2\resource\hl2_french.txt
hl2\resource\hl2_german.txt
...

Эти файлы содержат названия глав на разных языках. Текст, введённый здесь, будет отображаться в игре на всех картах, у которых есть название главы.

Проверка файла chapterbackgrounds.txt

Как только вы внесли изменения в файл chapterbackgrounds.txt, вы можете проверить фоновые карты, использую переменную консоли sv_unlockchapters. Эта команда отвечает за то, какие главы игры вы уже прошли, и содержит номер той главы, фоновую карту которой вы хотите посмотреть.

Чтобы выбрать фоновую карту главы, надо:

  1. Сохранить файл chapterbackgrounds.txt со сделанными изменениями в папку <mod directory>\scripts.
  2. Запустить игру
  3. Открыть консоль разработчиков
  4. Ввести "sv_unlockchapters n", где n номер фоновой карты в файле chapterbackgrounds.txt, которую вы хотите посмотреть.
  5. Ввести quit, чтобы выйти из игры.
  6. Перезапустить игру, и тогда отобразится выбранная карта.
Note:Текущее значение sv_unlockchapters сохраняется в файле настройки config.cfg, и вы можете его изменять как вам угодно. Для игры Half-Life 2, этот файл находится в \half-life 2\hl2\cfg\config.cfg и может быть открыт в любом текстовом редакторе.

Замена фоновых карт Half-Life 2

Если вы хотите заменить стандартные фоновые карты Half-Life 2 своими, просто создайте фоновую карту и материалы с таким же именем, и замените название карты для определённой главы своим. Имена фоновых карт Half-Life 2 есть в файле chapterbackgrounds.txt :

"chapters"
{
	1	"background01"
	2	"background01"
	3	"background02"
	4	"background02"
	5	"background03"
	6	"background03"
	7	"background04"
	8	"background04"
	9	"background05"
	9a	"background05"
	10	"background06"
	11	"background06"
	12	"background07"
	13	"background07"
}

Например, если вы хотите заменить первую фоновую карту, просто назовите вашу карту background01. Чтобы заменить фоновую карту главы 10, переименуйте вашу карту в background06

Отмена загрузки фоновых карт

Если вы хотите использовать для фона текстуру (без загрузки карты), просто создайте файл \cfg\valve.rc и добавьте следующие строки:

// load the base configuration
// пер: загрузка обычной конфигурации
//exec default.cfg
// Setup custom controller
// пер: настройки устройств ввода(джойстик)
exec joystick.cfg

// run a user script file if present
// пер: запуск пользовательского скрипта, если он существует
exec autoexec.cfg

//
// stuff command line statements
// пер: выдать параметры командной строки
//
stuffcmds

Если вы хотите включить загрузку фоновых карт, просто добавьте команду startupmenu в файл valve.rc