Garry's Mod

Garry's Mod

72 ratings
Простое сжатие аддонов
By [FG] Shark_vil
Это руководство по использованию приложения для быстрого и простого сжатия тяжелых аддонов.
   
Award
Favorite
Favorited
Unfavorite
1. Введение
Думаю, многие из вас вздыхали, когда видели очередной крутой, но тяжелый аддон. Это терпимо, когда их один или два. Но когда их много, контент игры может достигать пяти и более гигабайт. Это особенно неприятно при разработке контента для игрового сервера, когда скорость загрузки важнее, чем текстуры с разрешением 8k.

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

Сторонний видео-туториал:
2. Установка
2.1. Установка пакета Net 6
Для работы приложения необходимо установить пакет "Net 6". Загрузите его по этой ссылке:
https://dotnet.microsoft.com/en-us/download/dotnet/6.0/runtime

Выберите категорию, которая позволяет запускать десктопные приложения:




2.2. Установка приложения
После установки пакета вы можете загрузить приложение. Это можно сделать, перейдя по этой ссылке:
https://github.com/Shark-vil/GmodAddonCompressor/releases/latest

Выберите версию для вашей системы:



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



3. Как использовать
3.1. Интерфейс
Приложение выглядит следующим образом:



3.1.1. Блок выбора папки


Здесь вы можете выбрать папку для сжатия. Определившись с настройками, нужно нажать кнопку "Compress", чтобы начать.

Вы также можете запустить консоль разработчика, но это нужно сделать сразу после запуска приложения, иначе потом ничего не будет отображаться.

3.1.2. Блок настройки аудио
Здесь вы можете выбрать настройки для сжатия аудиофайлов. На данный момент поддерживается только формат "WAV".



Не рекомендую ставить "16000". Качество заметно ухудшается. Лучше использовать первые два варианта.

3.1.3. Блок настройки текстур
Здесь вы можете выбрать настройки для сжатия текстур практически всех форматов.



Этот параметр отвечает за степень сжатия изображения от его исходного размера. Например, 2 - это ширина и высота, деленные на 2.



Здесь вы можете установить ограничения. Разрешение изображений не будет меньше установленных вами пределов.



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



Если вы установите этот флажок, все изображения будут сжаты точно до указанных пределов.



Эта опция необходима для сохранения оригинальных пропорций изображений. Я не рекомендую ее отключать.



По умолчанию текстуры "VTF" сжимаются через "VTFCmd". Если вы включите эту опцию, то в приоритете будет использоваться библиотека "ImageMagick". Она обеспечивает лучшее сжатие и сохраняет качество текстур.



UPD 07.08.2022: Функция изменила своё наименование и была помечена как демонстрационная из-за обнаруженных ошибок при сжатии некоторых текстур. Рекомендую использовать её выборочно, а не на большой папке с контентом.



3.1.4. Блок настройки LUA
Эта опция минимизирует код LUA, делая его одной строкой, а также удаляет все комментарии.



UPD 08.08.2022:
Дополнительная настройка, которая использует библиотеку Prometheus[github.com] для минимизации кода. Однако она также меняет исходный код, делая переменные более короткими.



Пример того как меняется исходный код:

4. Демонстрация
В качестве примера я возьму мод "MW19 Tactical Infiltration".



Оригинальный размер аддона:



Для демонстрации попробуем следующие настройки:



Вы можете наблюдать за ходом работы здесь:



Результат вы можете увидеть сами:

.
5. Проблемы
Известные проблемы
  • Некоторые аудиофайлы не сжимаются и пропускаются
  • Существует небольшая вероятность зависания приложения при обработке файлов
  • Существует вероятность поломки LUA-скриптов после минимизации, если они были обфусцированы или скомпилированы

Основная рекомендация при работе с этим приложением - делать резервные копии. Не используйте сжатие для оригинальных файлов. Сделайте копию аддона и поэкспериментируйте с настройками сжатия на дубликате.

В будущем я планирую добавить кнопку для быстрой отмены сделанных изменений, чтобы вы могли настроить параметры для одной папки несколько раз.
6. Заключение
Я надеюсь, что это будет кому-то полезно. Если вы найдете ошибки в приложении, вы можете сообщить о них в комментариях. Но лучше делать это на GitHub[github.com] или на моем Discord-сервере[discord.gg], там можно открыть тикеты.

Вы также можете предлагать идеи в комментариях. Удачи!

42 Comments
hwndk Mar 8 @ 1:54pm 
также это можно использовать и с sfm, а то моделькоделы уже совсем зажрались со своими гигабайтами на 1 модель
коробочка Feb 5, 2024 @ 1:55pm 
Реально полезно
[FG] Shark_vil  [author] Jun 28, 2023 @ 8:01am 
Программа не сжимает .mdl модели, если вы вдруг надеялись уменьшить количество полигонов. Только текстуры, звуки и скрипты. И нет никакой гарантии, что 100% ресурсов будут сжаты.
Кирюха пивнуха Jun 28, 2023 @ 7:25am 
В какой папке ты мод нашёл?
Кирюха пивнуха Jun 28, 2023 @ 7:06am 
Такая же дичь
не работает , загрузил папку с моделькой и настроил все нажал компрес и ничего не происходит :rinconfused:
Joystick Apr 9, 2023 @ 1:46pm 
Твою мать, я извиняюсь, я это всё скачал и установил, если честно я думал я смогу сжать несколько аддонов в один, это, как я понял, не то для чего приложение сделано? Ни как не выйдет?
YRAN Apr 9, 2023 @ 8:51am 
как сжать модель, если она файлом GMA в папке addons лежит
msmr Mar 3, 2023 @ 9:42am 
Ладно, спасибо за ответ
[FG] Shark_vil  [author] Mar 3, 2023 @ 8:53am 
@msmr, перед нажатием компрессии открой консоль, поставив галочку внизу слева. Если много красных ошибок, значит не может сжать. Плюс, если основной вес составляют модели, то они конечно сжаты не будут.