Source Filmmaker

Source Filmmaker

54 ratings
Как "пробилдить" cubemaps для карты под SFM
By MARK2580
Маленький гайдик, о том, как пробилдить отражения для вашей SFM карты.
   
Award
Favorite
Favorited
Unfavorite
Введение
Здравствуй юзер. Если ты читаешь этот гайд, то явно хочешь понять, почему большинство моделей на карте, а так-же всякие "блестящие" текстуры нифига не блестят, а модели чёрные, место эффекта хрома.

Если ваша карта была сделана для garry's mod, то можно поступить намного проще, вам всего лишь надо установить размер всех env_cubemap на 128х128 и пересоздать отражения, такая карта без проблем будет работать в Source Filmmaker.


Для примера вот модель одного dev_елоперсокого оружия "weapon_cubemap", в SFM его нет, но модель существует. Именно с помощью неё можно продетектить, что на карте не пробилдены отражения или на ней вообще не присутствуют env_cubemap энтити.
Моделька проживает по адресу
models/shadertest/envballs.mdl
Пункт №1. Декомпиляция карты
Опишу декомпиляцию карты. Если у вас уже есть VMF исходник, переходим к пункту №2.

Для начала вам понадобится декомпилятор, чтобы получить из BSP - VMF файл, который сможет открыть редактор Hammer Editor. Прога называется BSPSource и её можно скачать по следующей ссылке - https://github.com/ata4/bspsrc/releases
Для работы программы, у вас должна быть установлена последняя версия Java !

В проге всё просто: перетаскиваете нужный BSP в окошко и жмёте кнопочку Decompile.
Рядом с BSP файлом появится нужный VMF с припиской _d, по желанию можно убрать.
Пункт №2. Hammer Editor
Данный пункт нужен если у вас на карте вообще нету env_cubemap энтити
Запускаем Hammer. Для этого запускаем в стиме SFM и выбираем Launch SDK место SFM. Открывается лаунчер, в котором жмём ссылку Hammer Editor.

Открываем полученный в пункте №1 VMF файл и натыкиваем, желательно по больше энтий env_cubemap. Чем их больше, тем больше вариаций отражений окружающией среды вы получите, но так-же из-за каждого env_cubemap карта будет толстеть, а билд отражений затянется на неприличное время.


Я расставил несколько env_cubemap примерно следующим образом. Замечу, что кубемапы стоит ставить примерно на высоте зрения игрока, ориентируйтесь по фигурке зелёного фримана =).


Я не буду рассказывать как ставятся энтити, как компилируется карта и всё остальное, это вы должны знать из других источников ! Лишь скажу, что у env_cubemap есть параметр размера кубемапа, если выставить Default то кубемапы билдятся по умолчанию 32х32, если хочется вы*бнуться, то можно поставить и 256х256, но карта разжиреет просто не прилично, а сам билд будет длится наверно минут 15.
Пункт №3. Подключение контента
Сам SFM не умеет билдить кубемапы вообще ! Для этого будем использовать бесплатную игру Alien Swarm Это самый близкий по версии движок. Некоторые до сих пор уверены, что для этого можно воспользоваться Portal 2, но это платная игра, весит она много и совершенно не дружит со сторонним контентом, по этому эти утверждения полная чушь !

Для подключения контента, нам надо пошаманить с GameInfo.txt у сварма. Для этого топаем в
...\Steam\SteamApps\Common\Alien Swarm\swarm\
и находим там выше указанный файл. В разделе "SearchPaths" добавляем новую строчку, например
"Game" "d:\Games\Steam\SteamApps\Common\SourceFilmmaker\game\workshop"
Да, можно указать прямой путь до папки, ничего не копируя лишний раз.
Так-же желательно указать usermod и другие папки относящиеся к данной карте, каждый путь с новой строки с game

Далее кидаем свежеиспечённый BSP из хаммера в папку
..\Steam\SteamApps\Common\Alien Swarm\swarm\maps\
только туда и никуда больше ! Т.к. движок при билде работает только с корневой папкой maps.
Пункт №4. Запуск карты и билд
Запускаем Alien Swarm, открываем консольку и пишем map название_карты.
Например
map sfm_mirror_day

Ждём загрузки карты, после чего на экране выбора перса вбиваем в консоль следующие команды по порядку:
sv_cheats 1 building_cubemaps 1 buildcubemaps
После чего наблюдаем быстрое мелькание различных ракурсов карты, это билдятся отражения. Ни в коем случае ничего не трогаем, не сварачиваем игру итд.

Если в процессе билда, на каком либо ракурсе замечены "эмо текстуры" то проверяйте, все ли контенты вы подключили, отражения получатся то-же с эмо отблесками, а нам это понятно дело не нужно.

Если на карте присутствует текстура, которая имитирует зеркало, такую текстуру нужно временно переписать в VMT на обычный "LightmappedGeneric" шейдер, например
materials/dev/reflectivity_80b.vmt
т.к. по ходу Alien Swarm не дружит с таким шейдером, после билда можно вернуть содержимое VMT на место.
Финальный результат
В итоге после всех мучений, вы должны получить рабочие отражения на моделях, текстурах и.т.п. на вашей карте. А вот и скриншот, где всё удачно получилось.
7 Comments
MARK2580  [author] 11 Jun, 2022 @ 4:28am 
SFM почему-то кубемапы не билдит, остаются чёрные
Purple Smoker 11 Jun, 2022 @ 2:44am 
Блин, спасибо. Раньше мучался, почему кубмапы не пробилдились после компиляции, и плакался, что это уже не исправить.
MARK2580  [author] 9 Jun, 2022 @ 6:02pm 
Сварм весит гига 2 всего, через лефт вряд-ли, там движок отличается. Скорее всего такие отражения в SFM будут "радужные" артефакты выдавать.
Purple Smoker 9 Jun, 2022 @ 12:17pm 
а способ через l4d2 и через другие игры пробилдить возможно? А то не охота лишний раз что-то скачивать.
MARK2580  [author] 8 Jun, 2022 @ 6:34pm 
для всего, кубемапы это точки на карте в которых хранится маленький снимок окружения, он проекцируется на любые поверхности и модели поблизости
Purple Smoker 8 Jun, 2022 @ 12:07pm 
а на плоскостях карты будут работать?
alex_mmc 8 Jan, 2018 @ 3:21pm 
Найс.