Ru/Menu Background Map: Difference between revisions
m (Updated title) |
(дополнение, улучшение перевода. Очищение и стандартизация текста) |
||
Line 4: | Line 4: | ||
|zh-cn=Menu_Background_Map:zh-cn}} | |zh-cn=Menu_Background_Map:zh-cn}} | ||
<!-- | |||
<!--Background maps are the 3D moving backgrounds that appear behind the menus when the game is first launched. They are compiled BSPs, just like standard game maps. Background maps are designed to be used for single player games like [[Half-Life 2]], although any mod can use them. The background map can change as the player unlocks chapters of the game, depending on the author's preferences.--> | |||
Background maps are the 3D moving backgrounds that appear behind the menus when the game is first launched. They are compiled BSPs, just like standard game maps. Background maps are designed to be used for single player games like [[Half-Life 2]], although any mod can use them. The background map can change as the player unlocks chapters of the game, depending on the author's preferences. | |||
--> | |||
Фоновые карты — это трёхмерные динамические задние планы, которые появляются за игровым меню при запуске игры. Это компилированные BSP-карты, как обычные. Обычно фоновые карты используют для однопользовательских модификаций (как [[Half-Life 2]]), но их можно использовать для любых других. Фоновая карта может меняться, как только игрок проходит главу, в зависимости от настроек мода | |||
==Создание фоновой карты== | |||
<!-- | |||
Background maps should be created like dioramas. The geometry in the map should be strictly limited to only what will be seen in the camera view. The goal is to make the least amount of geometry and materials necessary, so the map is smaller and loads faster. | |||
To create a background map: | |||
--> | |||
Фоновые карты могут быть созданы как диорамы. Примитивы на карте должны быть жёстко лимитированы для того, чтобы они были видны только в камере. Цель — использовать как можно меньше геометрии, чтобы карта была меньше по размеру и загружалась быстрее. | |||
Фоновые карты могут быть созданы как диорамы. Примитивы на карте должны быть жёстко лимитированы для того, чтобы они были видны только в камере. | |||
Чтобы создать фоновую карту: | Чтобы создать фоновую карту: | ||
<!--* Create the basic geometry for the scene you want included in the background map. It should not have any leaks, and be sealed like any standard game level. Add lights and materials as needed. You may want to start from an existing level and simply remove or hide geometry and entities that are not needed for the background map. All unnecessary elements should be removed. | <!-- | ||
* Create the basic geometry for the scene you want included in the background map. It should not have any leaks, and be sealed like any standard game level. Add lights and materials as needed. You may want to start from an existing level and simply remove or hide geometry and entities that are not needed for the background map. All unnecessary elements should be removed. | |||
* Add an [[info_player_logo]] (multiplayer games) or [[info_player_start]] (singleplayer games) to the map. It doesn't much matter where the entity is placed, as long as it is inside the level geometry and not floating so high that the player falls and takes damage. | * Add an [[info_player_logo]] (multiplayer games) or [[info_player_start]] (singleplayer games) to the map. It doesn't much matter where the entity is placed, as long as it is inside the level geometry and not floating so high that the player falls and takes damage. | ||
* Add a [[point_viewcontrol]] entity to the map where you want the camera position to be when the map is displayed. Name the point_viewcontrol something descriptive, (i.e.<code>"viewcontrol_background1"</code> ).--> | * Add a [[point_viewcontrol]] entity to the map where you want the camera position to be when the map is displayed. Name the point_viewcontrol something descriptive, (i.e.<code>"viewcontrol_background1"</code> ). | ||
* Создайте обычные примитивы на сцену, которую вы хотите добавить на фоновую карту. Они не должны содержать | |||
* Добавьте [[info_player_logo]] (для многопользовательских игр) или [[info_player_start]] ( | --> | ||
* Добавьте на карту [[point_viewcontrol]] в ту позицию, откуда вы бы хотели видеть карту. | * Создайте обычные примитивы на сцену, которую вы хотите добавить на фоновую карту. Они не должны содержать утечек и должны быть герметичны как обычный игровой уровень. Добавьте освещение и материалы, если нужно. Вы можете начать с уже существующего уровня — просто удалите или спрячьте ненужную геометрию и энтити. Все ненужные элементы желательно удалить. | ||
<!-- | * Добавьте '''[[info_player_logo]]''' (для многопользовательских игр) или '''[[info_player_start]]''' (для однопользовательских игр) на карту. Их расположение на карте не важно, главное, чтобы они не висели в воздухе, иначе игрок упадёт и получит повреждения. | ||
* Добавьте на карту энтити '''[[point_viewcontrol]]''' в ту позицию, откуда вы бы хотели видеть карту. Задайте ей подходящее имя (например:<code>"viewcontrol_background1"</code>). | |||
<!-- | |||
* For your point_viewcontrol entity, deactivate the flags: Start at Player / Follow Player / Interruptable by Player. Activate the flags: Freeze Player / Infinite Hold Time / Snap to goal angles / Make player non-solid | |||
* Add an [[info_target]] entity. This is the position the point_viewcontrol camera will be pointing at when the map is displayed. Name it similar to the point_viewcontrol ( i.e. <code>"target_background1"</code> ). | * Add an [[info_target]] entity. This is the position the point_viewcontrol camera will be pointing at when the map is displayed. Name it similar to the point_viewcontrol ( i.e. <code>"target_background1"</code> ). | ||
* Select the point_viewcontrol. For the '''Entity to look at''' keyvalue, set the value to the info_target you just created as the target entity. | * Select the point_viewcontrol. For the '''Entity to look at''' keyvalue, set the value to the info_target you just created as the target entity. | ||
* В настройках отключите флаги Start at Player / Follow Player / Interruptable by Player и включите Freeze Player / Infinite Hold Time / Snap to goal angles / Make player non-solid. | --> | ||
* Добавьте | * В настройках отключите флаги '''Start at Player''' / '''Follow Player''' / '''Interruptable by Player''' и включите '''Freeze Player''' / '''Infinite Hold Time''' / '''Snap to goal angles''' / '''Make player non-solid'''. | ||
* Выберите point_viewcontrol. Задайте параметру '''Entity to look at''' ( | * Добавьте энтити '''[[info_target]]'''. Это точка, на которую будет смотреть камера после загрузки карты. Задайте ей имя, похожее на имя камеры (например: <code>"target_background1"</code> ). | ||
* Выберите '''point_viewcontrol'''. Задайте параметру '''Entity to look at''' ('''Энтити, на которую надо смотреть''') значение '''info_target''', которую вы создали как целевую энтити. | |||
<!-- | <!-- | ||
* The point_viewcontrol must be activated when the background map is loaded. The easiest way to this is with a [[logic_auto]] entity. Add an '''OnMapSpawn''' output on the logic_auto that fires the '''Enable''' input of the point_viewcontrol. | |||
* The point_viewcontrol must be activated when the background map is loaded. The easiest way to this is with a '''[[logic_auto]]''' entity. Add an '''OnMapSpawn''' output on the logic_auto that fires the '''Enable''' input of the point_viewcontrol. | |||
* You can add other outputs to the logic_auto for events that you want to happen when the background is displayed, such as lights flickering, [[NPC]]s walking by, sounds to play, etc. Be careful about adding too much, however. Background maps should have good performance, load quickly, and not distract too much from the game menus. | * You can add other outputs to the logic_auto for events that you want to happen when the background is displayed, such as lights flickering, [[NPC]]s walking by, sounds to play, etc. Be careful about adding too much, however. Background maps should have good performance, load quickly, and not distract too much from the game menus. | ||
* Save and compile the map just as you would any standard game map. If you're replacing an existing [[Half-Life 2]] map, read [[#Replacing Half-Life 2 background maps|Replacing Half-Life 2 background maps]] below to make sure your map is named properly. | * Save and compile the map just as you would any standard game map. If you're replacing an existing [[Half-Life 2]] map, read [[#Replacing Half-Life 2 background maps|Replacing Half-Life 2 background maps]] below to make sure your map is named properly. | ||
--> | |||
* Как только фоновая карта загрузилась, '''point_viewcontrol''' должна быть активирована. Самый лёгкий способ — '''[[logic_auto]]'''. Добавьте вывод '''OnMapSpawn''', который вводит в '''point_viewcontrol''' параметр '''Enable''' ('''Включено'''). | |||
* Вы можете задать другие выводы для '''logic_auto''' для событий, которые должны совершаться после загрузки карты, такие как мерцание ламп, передвижение [[NPC]], воспроизведение звуков и т.п. Будьте аккуратны с наполнением карты. Карты на заднем плане меню должны быть хорошо оптимизированы, должны быстро загружаться и не сильно отвлекать от игрового меню | |||
* Сохраните и скомпилируйте карту также, как и с обычной игровой картой. Если вы хотите заменить готовую фоновую карту [[Half-Life 2]], прочитайте [[#Замена фоновых карт Half-Life 2| пункт "Замена фоновых карт Half-Life 2"]] внизу, чтобы убедиться в правильности названия карты. | |||
==Тестирование фоновой карты== | |||
<!-- | |||
To test a background map, launch the game without loading the map directly. After the engine, bring up the developer console and type: | |||
--> | --> | ||
Чтобы проверить фоновую карту, запустите игру без прямого запуска карт. После загрузки, включите консоль разработчиков и введите: | |||
<pre>map_background <mapname></pre> | |||
<!-- | |||
Where <code><mapname></code> is the name of your background map. The map will be loaded and the menu displayed over it. | |||
< | |||
--> | |||
<code><mapname></code> — имя вашей фоновой карты. Как только она загрузится, поверх неё появится игровое меню. | |||
< | <!-- | ||
After testing that the background map works, you can go back and refine it. You may want to add more details, reposition the camera or the camera target. Simply recompile it again and use the <code>map_background</code> command to see your changes. Once the camera position has been finalized, it is also a good idea to optimize the level as much as possible, such as applying the <code>toolsnodraw</code> material to faces that cannot be seen from the camera position. Again, the goal is to make the background map as small as possible, to load and render quickly. | |||
<!--See <code>maps\sdk_background.vmf</code> for an example of a background map.--> | --> | ||
После тестирования на работоспособность фоновой карты, вы можете вернуться в редактор, изменить её и улучшить. Вы, возможно, захотите добавить больше деталей, изменить расположение камеры или её цели. Просто скомпилируйте карту заново и используйте '''<code>map_background</code>''' для просмотра изменений. После того, как вы настроите финальный облик карты, хорошо бы [[Оптимизация (создание уровней)|оптимизировать]] уровень по максимуму, например применив материал '''<code>toolsnodraw</code>''' на те грани, которые не видны камере. Опять же, цель — сделать фоновую карту настолько лёгкой, насколько возможно, чтобы она быстро загружалась и рендерилась. | |||
<!-- | |||
See <code>maps\sdk_background.vmf</code> for an example of a background map. | |||
--> | |||
См. <code>maps\sdk_background.vmf</code> для примера фоновой карты. | См. <code>maps\sdk_background.vmf</code> для примера фоновой карты. | ||
== Материал фоновой карты | ==Материал фоновой карты== | ||
<!-- | |||
It is also necessary to create background materials for your menu background .BSP. This is the image that is shown when you first launch the game, but before the background .BSP has finished loading. In Half-Life 2, this was a blurred screenshot of the background map (when recreating this, use a 30px Gaussian Blur filter for a 1280x image). When the background .BSP is finished loading, the screen fades from the static background material to the actual 3D background map. | |||
--> | |||
Также важно создать материалы заднего плана для вашей фоновой карты. Это изображение появляется как только вы запускаете игру, но фоновая карта ещё не загрузилась. В Half-Life 2 это размытый скриншот фоновой карты (чтобы создать его, используйте размытие по Гауссу на 30 пикс. для картинки 1280px). Когда карта загрузилась, экран плавно переходит из статичной картинки на фоновую карту. | |||
<!-- | |||
The following two materials are needed: | |||
--> | |||
Для карты необходимы два материала: | Для карты необходимы два материала: | ||
<code>< | <code><мод>\materials\console\<map name>.vmt</code> | ||
<code><мод>\materials\console\<map name>_widescreen.vmt</code> | |||
< | <!-- | ||
Например, если ваша фоновая карта называется sdk_background.bsp, вам | |||
For example, if you made a background map named sdk_background.bsp, you would need these two materials: | |||
--> | |||
Например, если ваша фоновая карта называется sdk_background.bsp, вам нужны эти два материала: | |||
<code>hl2\materials\console\sdk_background.vmt</code> | <code>hl2\materials\console\sdk_background.vmt</code> | ||
Line 74: | Line 136: | ||
<!-- | |||
The background materials are usually a 1024x1024 screenshot of the background map, blurred in an image-editing application. | |||
--> | |||
Обычно фоновыми материалами являются размытые скриншоты фоновой карты разрешением 1024x1024. | Обычно фоновыми материалами являются размытые скриншоты фоновой карты разрешением 1024x1024. | ||
Убедитесь в том, что размер ваших изображений 1024x1024. Главная хитрость в том, как заставить изображение корректно отображаться на мониторах с разными соотношениями сторон (4:3, 16:9, или 16:10). | Убедитесь в том, что размер ваших изображений 1024x1024. Главная хитрость в том, как заставить изображение корректно отображаться на мониторах с разными соотношениями сторон (4:3, 16:9, или 16:10), чтобы сжать изображение исходя из разрешения с конечным соотношением сторон. | ||
* На | * На мониторах 4:3 создайте изображение размером 1280x1024 и измените размер на 1024x1024. | ||
* На широкоэкранных мониторах создайте изображение размером 1280x800 и также измените его размер на 1024x1024 | * На широкоэкранных мониторах создайте изображение размером 1280x800 и также измените его размер на 1024x1024 | ||
Вы можете задать клавишу для создания скриншотов в меню '''Настройки | <!-- | ||
You can find the key command to take screenshots under Options -> Keyboard when you run the game. The F5 key is the default screenshot key, and saves a .JPG format screen shot to the <game directory>\screenshots directory. You can also bind a key to the screenshot console command, which will save in the .TGA format. | |||
--> | |||
Вы можете задать клавишу для создания скриншотов в меню '''Настройки → Клавиатура''', когда вы запустили игру. По умолчанию это кнопка F5, и изображение сохраняется в формат .JPG в папку <code><мод>/screenshots</code>. Вы также можете [[Bind|привязать]] к кнопке консольную команду '''<code>screenshot</code>''', которая сохраняет в формат .TGA. | |||
Файл фонового материала .vmt может выглядеть так: | Файл фонового материала .vmt может выглядеть так: | ||
Line 98: | Line 171: | ||
</pre> | </pre> | ||
Для дополнительной информации по созданию материалов, | Для дополнительной информации по созданию материалов, прочтите статью [[Material Creation:ru]]. | ||
Пример фоновых материалов для карты sdk_background можно найти по этому адресу: | Пример фоновых материалов для карты sdk_background можно найти по этому адресу: | ||
<code>\half-life 2\hl2\materials\console</code> (для .VMT и .VTF | <code>steamapps\common\sourcesdk_content\hl2\materialsrc\console</code> (для исходных .TGA) | ||
<code>half-life 2\hl2\materials\console</code> (для .VMT и .VTF файлов). | |||
== | ==Скрипты для привязки фонов к главам в ваших модификациях== | ||
<!--Once a custom background map has been created, it must be inserted into the proper script files in order for it to be automatically displayed during the correct game chapter. | <!-- | ||
Once a custom background map has been created, it must be inserted into the proper script files in order for it to be automatically displayed during the correct game chapter. | |||
This section describes the individual files that are used to determine which background map is displayed. | This section describes the individual files that are used to determine which background map is displayed. | ||
The file <code>hl2\scripts\ChapterBackgrounds.txt</code> associates background maps with particular game chapters. It lists all of the chapters in the game, and which background BSP file will be loaded when that chapter is unlocked by the player’s progress. | The file <code>hl2\scripts\ChapterBackgrounds.txt</code> associates background maps with particular game chapters. It lists all of the chapters in the game, and which background BSP file will be loaded when that chapter is unlocked by the player’s progress. | ||
Here is the <code>ChapterBackgrounds.txt</code> for Half-Life 2: | Here is the <code>ChapterBackgrounds.txt</code> for Half-Life 2: | ||
Как только вы создали фоновую карту, она должна быть вставлена в | --> | ||
Как только вы создали фоновую карту, она должна быть вставлена в правильный файл скрипта для того, чтобы она автоматически отображалась во время нужной главы. | |||
В файле <code> | В файле <code><мод>\scripts\ChapterBackgrounds.txt</code> фоновые карты соотносятся с определёнными главами игры. Это список всех игровых глав и их фоновых карт, которые должны загружаться, как только игрок дойдёт до следующей главы. | ||
Вот пример файла <code>ChapterBackgrounds.txt</code> из Half-Life 2: | Вот пример файла <code>ChapterBackgrounds.txt</code> из Half-Life 2: | ||
Line 138: | Line 216: | ||
</pre> | </pre> | ||
<!--<code>hl2\scripts\ChapterBackgrounds\titles.txt</code> contains the chapter key values. A key value is created for each chapter in the game. These key values are put into the “Chapter Title Message” key in the '''Map Properties''' (also called worldspawn) under the '''Map Menu''' in the Hammer editor. The actual text that shows up for each chapter depends upon the language chosen, in these files: | <!-- | ||
<code>hl2\scripts\ChapterBackgrounds\titles.txt</code> contains the chapter key values. A key value is created for each chapter in the game. These key values are put into the “Chapter Title Message” key in the '''Map Properties''' (also called worldspawn) under the '''Map Menu''' in the Hammer editor. The actual text that shows up for each chapter depends upon the language chosen, in these files: | |||
--> | |||
<code><мод>\scripts\ChapterBackgrounds\titles.txt</code> содержит номера глав. Цифровое значение создаётся для каждой главы игры. Эти ключевые значения могут быть помещены в "Chapter Title Message" (Отображаемое название главы) в '''Map Properties''' (Свойства карты) (также называемой "worldspawn") через меню '''Map''' в редакторе [[Valve_Hammer_editor:ru|Hammer]]. Реальный текст, который вы видите зависит от выбранного языка из этих: | |||
<pre> | <pre> | ||
Line 149: | Line 231: | ||
</pre> | </pre> | ||
<!--These files contain the actual chapter name text in various languages. The text entered here will be the text that is displayed in-game wherever chapter names appear.--> | <!-- | ||
Эти файлы содержат названия глав на разных языках. Текст, введённый здесь, будет отображаться в игре | |||
These files contain the actual chapter name text in various languages. The text entered here will be the text that is displayed in-game wherever chapter names appear. | |||
--> | |||
Эти файлы содержат реальные названия глав на разных языках. Текст, введённый здесь, будет отображаться в игре везде, где есть название главы. | |||
== Проверка файла chapterbackgrounds.txt == | ==Проверка файла chapterbackgrounds.txt== | ||
<!--Once you've made your changes to <code>chapterbackgrounds.txt</code>, you can test your background map using the <code>sv_unlockchapters</code> console variable. This variable control which chapters in the game you have played through, and should be set to the chapter number of the background map you wish to view. | <!-- | ||
Once you've made your changes to <code>chapterbackgrounds.txt</code>, you can test your background map using the '''<code>sv_unlockchapters</code>''' console variable. This variable control which chapters in the game you have played through, and should be set to the chapter number of the background map you wish to view. | |||
To choose which chapter background to view: | To choose which chapter background to view: | ||
Line 160: | Line 250: | ||
# Run the game. | # Run the game. | ||
# Open the developer console. | # Open the developer console. | ||
# Type | # Type '''<code>sv_unlockchapters <i>n</i></code>''' where '''<i>n</i>''' is the number of the background in <code>chapterbackgrounds.txt</code> you wish to view. | ||
# Type <code>quit</code> to exit the game. | # Type <code>quit</code> to exit the game. | ||
# Restart the game, and the chosen menu background should be displayed. | # Restart the game, and the chosen menu background should be displayed. | ||
{{note|The current value of <code>sv_unlockchapters</code> is stored in the <code>config.cfg</code> game settings file, and you can edit this file directly if you wish. For Half-Life 2, this file can be found at <code>\half-life 2\hl2\cfg\config.cfg</code> and can be opened in any text editor.}} | {{note|The current value of <code>sv_unlockchapters</code> is stored in the <code>config.cfg</code> game settings file, and you can edit this file directly if you wish. For Half-Life 2, this file can be found at <code>\half-life 2\hl2\cfg\config.cfg</code> and can be opened in any text editor.}} | ||
--> | --> | ||
Как только вы внесли изменения в файл <code>chapterbackgrounds.txt</code>, вы можете проверить фоновые карты, | Как только вы внесли изменения в файл <code>chapterbackgrounds.txt</code>, вы можете проверить фоновые карты, используя консольную команду '''<code>sv_unlockchapters</code>'''. Эта команда отвечает за то, какие главы игры вы уже прошли, и содержит номер той главы, фоновую карту которой вы хотите посмотреть. | ||
Чтобы выбрать фоновую карту главы, надо: | Чтобы выбрать фоновую карту главы, надо: | ||
# Сохранить файл <code>chapterbackgrounds.txt</code> | # Сохранить файл <code>chapterbackgrounds.txt</code> в папку <code><мод>\scripts</code> | ||
# Запустить игру | # Запустить игру | ||
# Открыть консоль | # Открыть консоль разработчика | ||
# Ввести | # Ввести '''<code>sv_unlockchapters n</code>''', где '''''n''''' — номер фоновой карты в файле <code>chapterbackgrounds.txt</code>, которую вы хотите посмотреть | ||
# Перезапустить игру, и тогда отобразится выбранная карта. | # Перезапустить игру, и тогда отобразится выбранная карта. | ||
{{note|Текущее значение <code>sv_unlockchapters</code> сохраняется в файле настройки <code>config.cfg</code>, и вы можете его изменять как вам угодно. Для игры Half-Life 2, этот файл находится в <code> | {{note|Текущее значение <code>sv_unlockchapters</code> сохраняется в файле настройки <code>config.cfg</code>, и вы можете его изменять как вам угодно. Для игры Half-Life 2, этот файл находится в <code>hl2\cfg\config.cfg</code> и может быть открыт в любом текстовом редакторе.}} | ||
==Замена фоновых карт Half-Life 2== | |||
<!-- | |||
If you want to replace the background maps built into Half-Life 2 with maps of your own creation, simply create the background .BSP and .VTF and .VMT material files using the above steps, and make the name the map the same as the chapter map you wish to replace. The <code>chapterbackgrounds.txt</code> file shows the names of the Half-Life 2 background maps: | |||
Если вы хотите заменить | |||
--> | |||
Если вы хотите заменить встроенные фоновые карты Half-Life 2 своими, просто создайте фоновую карту и [[#Материал фоновой карты|материал]] и замените название карты для определённой главы своим. Имена фоновых карт Half-Life 2 есть в файле <code>chapterbackgrounds.txt</code>: | |||
<pre> | <pre> | ||
"chapters" | "chapters" | ||
Line 202: | Line 297: | ||
</pre> | </pre> | ||
<!--For example, if you want to replace first chapter background map, simply name your custom map <code>background01</code>. To replace the chapter 10 background map, use <code>background06</code> as your map name.--> | <!-- | ||
For example, if you want to replace first chapter background map, simply name your custom map <code>background01</code>. To replace the chapter 10 background map, use <code>background06</code> as your map name. | |||
--> | |||
Например, если вы хотите заменить первую фоновую карту, просто назовите вашу карту <code>background01</code>. Чтобы заменить фоновую карту главы 10, переименуйте вашу карту в <code>background06</code> | Например, если вы хотите заменить первую фоновую карту, просто назовите вашу карту <code>background01</code>. Чтобы заменить фоновую карту главы 10, переименуйте вашу карту в <code>background06</code> | ||
== Отмена загрузки фоновых карт == | ==Отмена загрузки фоновых карт== | ||
<!-- | |||
If you would like to just use the vmt texture as a background (without loading a map), simply create the file <code>\cfg\valve.rc</code> and add the following: | |||
--> | |||
Если вы хотите использовать для фона текстуру (без загрузки карты), просто из стандартного файла <code><мод>\cfg\valve.rc</code> удалите либо закомментируйте строку '''<code>startupmenu</code>''' в конце, чтобы ваш файл выглядел примерно так: | |||
<pre> | <pre> | ||
// | // загрузить базовый конфиг | ||
// exec default.cfg | |||
//exec default.cfg | // запустить отдельный контроллер | ||
// | exec joystick.cfg | ||
exec joystick.cfg | |||
// | // запустить пользовательский конфиг, если есть | ||
exec autoexec.cfg | |||
exec autoexec.cfg | |||
// | // | ||
// stuff command line statements | // stuff command line statements | ||
// | // | ||
// | stuffcmds | ||
// запустить фоновую карту. Удалите, если используете статичные изображения вместо фоновых карт | |||
// startupmenu | |||
</pre> | </pre> | ||
<!--If you'd like to add map loading again, just add the command <code>startupmenu</code> to a new line within the valve.rc file.--> | <!--If you'd like to add map loading again, just add the command <code>startupmenu</code> to a new line within the valve.rc file.--> | ||
[[Category: Tutorials:ru]] | [[Category: Tutorials:ru]] | ||
[[Category: Modding:ru]] | [[Category: Modding:ru]] |
Revision as of 07:21, 4 March 2021
Фоновые карты — это трёхмерные динамические задние планы, которые появляются за игровым меню при запуске игры. Это компилированные BSP-карты, как обычные. Обычно фоновые карты используют для однопользовательских модификаций (как Half-Life 2), но их можно использовать для любых других. Фоновая карта может меняться, как только игрок проходит главу, в зависимости от настроек мода
Создание фоновой карты
Фоновые карты могут быть созданы как диорамы. Примитивы на карте должны быть жёстко лимитированы для того, чтобы они были видны только в камере. Цель — использовать как можно меньше геометрии, чтобы карта была меньше по размеру и загружалась быстрее.
Чтобы создать фоновую карту:
- Создайте обычные примитивы на сцену, которую вы хотите добавить на фоновую карту. Они не должны содержать утечек и должны быть герметичны как обычный игровой уровень. Добавьте освещение и материалы, если нужно. Вы можете начать с уже существующего уровня — просто удалите или спрячьте ненужную геометрию и энтити. Все ненужные элементы желательно удалить.
- Добавьте 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>
— имя вашей фоновой карты. Как только она загрузится, поверх неё появится игровое меню.
После тестирования на работоспособность фоновой карты, вы можете вернуться в редактор, изменить её и улучшить. Вы, возможно, захотите добавить больше деталей, изменить расположение камеры или её цели. Просто скомпилируйте карту заново и используйте map_background
для просмотра изменений. После того, как вы настроите финальный облик карты, хорошо бы оптимизировать уровень по максимуму, например применив материал toolsnodraw
на те грани, которые не видны камере. Опять же, цель — сделать фоновую карту настолько лёгкой, насколько возможно, чтобы она быстро загружалась и рендерилась.
См. maps\sdk_background.vmf
для примера фоновой карты.
Материал фоновой карты
Также важно создать материалы заднего плана для вашей фоновой карты. Это изображение появляется как только вы запускаете игру, но фоновая карта ещё не загрузилась. В Half-Life 2 это размытый скриншот фоновой карты (чтобы создать его, используйте размытие по Гауссу на 30 пикс. для картинки 1280px). Когда карта загрузилась, экран плавно переходит из статичной картинки на фоновую карту.
Для карты необходимы два материала:
<мод>\materials\console\<map name>.vmt
<мод>\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 создайте изображение размером 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:ru. Пример фоновых материалов для карты sdk_background можно найти по этому адресу:
steamapps\common\sourcesdk_content\hl2\materialsrc\console
(для исходных .TGA)
half-life 2\hl2\materials\console
(для .VMT и .VTF файлов).
Скрипты для привязки фонов к главам в ваших модификациях
Как только вы создали фоновую карту, она должна быть вставлена в правильный файл скрипта для того, чтобы она автоматически отображалась во время нужной главы.
В файле <мод>\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" }
<мод>\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
. Эта команда отвечает за то, какие главы игры вы уже прошли, и содержит номер той главы, фоновую карту которой вы хотите посмотреть.
Чтобы выбрать фоновую карту главы, надо:
- Сохранить файл
chapterbackgrounds.txt
в папку<мод>\scripts
- Запустить игру
- Открыть консоль разработчика
- Ввести
sv_unlockchapters n
, где n — номер фоновой карты в файлеchapterbackgrounds.txt
, которую вы хотите посмотреть - Перезапустить игру, и тогда отобразится выбранная карта.

sv_unlockchapters
сохраняется в файле настройки config.cfg
, и вы можете его изменять как вам угодно. Для игры 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
удалите либо закомментируйте строку startupmenu
в конце, чтобы ваш файл выглядел примерно так:
// загрузить базовый конфиг // exec default.cfg // запустить отдельный контроллер exec joystick.cfg // запустить пользовательский конфиг, если есть exec autoexec.cfg // // stuff command line statements // stuffcmds // запустить фоновую карту. Удалите, если используете статичные изображения вместо фоновых карт // startupmenu