Содержание:
1 Документация по инструменту импорта
1.1 Необходимые условия​
1.1.1 Предварительно скомпилированный контент​
1.1.2 Исходные файлы карт​
1.1.3 Исходные файлы текстур​
1.2 Начало работы​
1.2.1 1. Установка Python 2.7.14​
1.2.2 2. Установка переменных среды​
1.2.3 3. Установка расширения Colorama​
1.2.4 4. Создание нового аддона с помощью инструментов мастерской​
1.2.5 5. Поиск скриптов импорта​
1.2.6 6. Запуск скрипта + параметры​
1.2.6.1 Параметры скрипта​
1.2.7 7. Исправление после импорта​
1.2.8 Экспериментальное GU​
2 Устранение неполадок

В состав инструментов Мастерской CS2 мы включили скрипт Python, который поможет создателям контента быстро перенести карты и ресурсы в Source 2. Прежде чем приступить к работе, необходимо выполнить некоторые подготовительные действия.

Это руководство первоначально указывало на Steam\steamapps\common\counterstrike source 15\csgo который, похоже, является внутренним названием для
Steam\steamapps\common\Counter-Strike Global Offensive\csgo
Все пути в руководстве были изменены, чтобы отразить то, что большинство пользователей имеют в своей файловой системе.

Необходимые условия

Предварительно скомпилированный контент

Предварительно скомпилированный контент (например, любые пользовательские vmt, vtf, mdl и т.д.) должен быть расположен в папке
Steam\steamapps\common\Counter-Strike Global Offensive\csgo
Например:
  • Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials
  • Steam\steamapps\common\Counter-Strike Global Offensive\csgo\models
Любое пользовательское содержимое, заархивированное в .bsp, необходимо извлечь в соответствующие папки перед импортом. Инструмент импорта также требует vmf, поэтому если у вас есть только bsp для вашей карты, вам нужно будет декомпилировать его в vmf. Наконец, не копируйте файлы .vmf в указанную выше папку, так как это запутает инструмент импорта.

Исходные файлы карт
Ваши файлы карт (vmfs) могут находиться в любом месте за пределами Counter-Strike Global Offensive при условии, что они находятся в папке maps. Любой префаб или экземпляр vmfs, на который ссылается ваша карта, должен находиться в любой структуре подпапок, ожидаемой картой. Например:
  • c:\mymapfolder\maps\mymap.vmf
  • c:\mymapfolder\maps\prefabs\mymapprefab.vmf
  • c:\mymapfolder\maps\instances\mymapinsstance.vmf
Исходные файлы текстур
Если у вас есть несжатые исходные файлы текстур (tga, psd и т.д.), инструмент импорта попытается использовать их при импорте материалов, в противном случае произойдет сбой. к преобразованию и повторному сжатию файлов vtf (что может снизить качество текстур). Для успешного выполнения этой операции убедитесь, что ваши исходные файлы находятся в зеркальном расположении файлов vtf в папке \Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials. Например:
  • C:\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\mymaterial\mytexture.vtf
  • C:\mymapfolder\materials\mymaterial\mytexture.tga

Начало работы

1. Установка Python 2.7.14

Для выполнения скрипта импорта вам потребуется установить Python 2.7.14, который вы можете взять здесь: https://www.python.org/downloads/release/python-2714/.

2. Настройка переменных среды
Затем вам нужно будет установить две переменные пути среды, чтобы Windows знал, где находится ваша установка python и другие библиотеки импорта в
Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\bin\win64 папке:
Нажмите клавиши ⊞ Win+X, чтобы открыть меню задач пользователя.
  • В меню задач опытного пользователя выберите пункт Система.
  • В окне Система прокрутите страницу в самый низ и щелкните опцию О программе.
  • В окне Система > О программе нажмите ссылку Дополнительные параметры системы в нижней части раздела Характеристики устройства.
  • В окне Свойства системы перейдите на вкладку Дополнительно, а затем нажмите кнопку Переменные среды в нижней части этой вкладки.
  • В окне Переменные среды (на рисунке ниже) выделите переменную Path в разделе Системные переменные и/или нажмите кнопку Создать.
  • Добавьте переменную path, где Value - это путь к месту установки Python, а путь к вашему Counter-Strike Global Offensive\game\bin\win64 разделенный точкой с запятой. Например.
    C:\python27;
    C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\bin\win64
  • Сделайте это как для переменных пользователя, так и для системных переменных:

Maps_import_environment_variables.png


Чтобы убедиться в правильности применения переменных Path, может потребоваться перезагрузка компьютера.

3. Установка расширения Colorama
Далее вам понадобится расширение Python под названием colorama. Чтобы установить его, просто откройте командную строку (найдите cmd в меню "Пуск" Windows) и введите

Python:
python -m pip install colorama

Maps_colorama_ext.png



4. Создание нового аддона с помощью инструментов мастерской

Перед запуском импорта необходимо создать аддон Workshop Tools, чтобы у импортируемого содержимого было действительное место назначения. Чтобы создать новый аддон, просто запустите игру с помощью Workshop Tools, в пользовательском интерфейсе нажмите "Создать новый аддон" и запишите название для дальнейшего использования.

1688704608488.png




5. Поиск скриптов импорта

Сначала нужно найти скрипт импорта python, который можно найти в папке:
(YourSteamInstallFolder)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\import_scripts

1688705065588.png


После того как вы нашли папку, откройте командную строку. Это можно сделать, просто набрав "cmd" в адресной строке проводника Windows и нажав клавишу Enter:

1688705152561.png


Существует также экспериментальный графический интерфейс под названием import_map_community_gui.exe более подробную информацию о нем можно найти в конце этого документа.




Запуск скрипта + параметры
Теперь вы готовы запустить скрипт, введя следующее:

Python:
python import_map_community.py <s1gameinfopath> <s1contentpath> <s2gameinfopath> <s2addon> <mapname> -usebsp

Параметры скрипта

<s1gameinfopath>

Путь к папке, содержащей файл gameinfo.txt CS:GO, это ДОЛЖЕН быть путь, содержащий скомпилированные модели CS:GO и материалы, которые вы хотите импортировать (например, .mdl, .vmt).

<s1contentpath>
Путь к папке с исходным содержимым (.vmf.psd.tgaи т.д.). Как упоминалось выше, чтобы импортер мог успешно найти и использовать исходные файлы текстур, убедитесь, что они находятся в зеркальном расположении по отношению к .vtfs(см. пример выше).

Путь к содержимому S1 не может содержать пробелов.

<s2gameinfopath>
Путь к папке, содержащей файл gameinfo.gi в CS2

<s2addon>
Имя аддона CS2 Workshop, который вы создали ранее. Именно сюда будут импортированы ваши ресурсы.

<mapname>

Это имя карты (.vmf) без расширения, например, de_examplemap, которую вы хотите импортировать. Если ваша карта находится в подкаталоге
maps в папке <s1contentpath>. Обязательно добавьте этот путь перед именем вашей карты. Например:
my_maps/de_examplemap

-usebsp
При этом карта проходит через специальный процесс vbsp для создания чистой геометрии карты из кистей, удаляются скрытые грани и сшиваются края, что делает версию CS2 более удобной для работы в Hammer. Он сохраняет кисти мира (vis) и кисти func_detail для совместимости с Source 2. Этот параметр также объединит все func_instances в вашей карте. Обратите внимание, что конечная геометрия будет триангулирована, но ее очистка - довольно простой процесс, который будет описан в другом руководстве.

-usebsp_nomergeinstances
Используйте это вместо -usebsp, если вы хотите одновременно сгенерировать чистую гео и сохранить func_instances. Обратите внимание, что это занимает немного больше времени, так как процесс импорта выполняется дважды. Конечная геометрия также будет триангулирована.

-skipdeps
Необязательно: пропускает импорт всех зависимостей/контента и генерирует только файл(ы) vmap. Это обеспечивает "быстрый" импорт, например, при итерации сущностей. Не используйте эту опцию, если вы импортируете в первый раз.

Пример:


Python:
python import_map_community.py "C:\Steam\steamapps\common\Counter-Strike Global Offensive\csgo" "c:\map_sources\" "C:\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo" de_example_cs2 de_examplemap -usebsp

7. Исправление после импорта
После того, как ваш уровень будет импортирован, просмотрите шаги по исправлению после импорта

Экспериментальное GU
В (YourSteamInstallFolder)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\import_scripts
мы включили экспериментальный GUI для импортера карт, который может помочь несколько упростить процесс импорта, под названием import_map_community_gui.exe

Преимуществом этого графического интерфейса являются полезные подсказки, легко выбираемые параметры импорта, а также запоминание настроек между сеансами. Обратите внимание, что для корректной работы вам все равно придется выполнить предварительные условия и шаги 1-4 выше. Мы также включили исходные python-скрипты, чтобы сообщество могло изменить их по своему усмотрению.

1688707372424.png


Устранение неполадок
Вы можете получить следующую ошибку при импорте, если вы используете скайбокс не по умолчанию. Измените свой skybox на sky_dust и попробуйте снова.

FAILED::
vpk:c:\program files (x86)\steam\steamapps\common\counter-strike global offensive\csgo\pak01.vpk:materials\skybox\sky_csgo_night_flatrt.vmt

Следующая ошибка указывает на то, что в вашем <s1contentpath> есть пробелы. Измените

FAILED::
C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\import_scripts>python import_map_community.py "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo" "C:\map" "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo" elitehvh de_hvh_v3_prodigy_d -usebsp
WARNING - this script will potentially overwrite imported content in your addon folders?
Enter to Continue, Esc to Quit
--------------------------------
- Running Command: source1import -retail -nop4 -nop4sync -usebsp -src1gameinfodir "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo" -src1contentdir "C:\map" -s2addon "elitehvh" -game csgo maps\de_hvh_v3_prodigy_d.vmf
--------------------------------
Creating device for graphics adapter 0 'NVIDIA GeForce RTX 3090' [vendorid 0x10DE]: 31.0.15.4629
c:\program files (x86)\steam\steamapps\common\counter-strike global offensive\csgo\pak01.vpk
Failed to load file (invalid)!
Error running:
>>>source1import -retail -nop4 -nop4sync -usebsp -src1gameinfodir "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo" -src1contentdir "C:\map" -s2addon "elitehvh" -game csgo maps\de_hvh_v3_prodigy_d.vmf
Aborting

Следующую ошибку можно решить, переименовав файл vpk.signatures в "counter-strike global offensive\game\bin\win64" во что-нибудь другое (например, vpk.signature.bak) и повторив попытку.