Больше - лучше? Нет, когда речь о весе файла!
Эта статья предназначена для тех, у кого в карте очень много импорта и кто хочет уменьшить занимаемый им объём в карте.
Что это вам даст? Ваша карта будет быстрее скачиваться и загружаться, особенно в официальной сети
Battle.Net, где карты весом более 8 мегабайт запрещены.
Эта статья не о том, как импортировать мультимедиа в карту (иконки, тайлы, звуки и пр.), а о том, как оптимально уменьшить их вес в карте: максимальное сжатие при минимальной потере качества.
1. Что такое сжатие? Любой тип файла, который будет импортирован в карту, будет сжат до определённого размера при сохранении карты. Проще говоря, все файлы как бы записываются в zip-архив, который носит название такое же, как и карта.
Zip-сжатие медиафайлов осуществляется по типу lossless, что во многих случаях не особо эффективно. Однако, было разработано некоторое количество кодеков (
COmpressor-
DECompressor) для ещё большего сжатия, но с некоторой потерей информации. Лучшим примером будет Fraunhofer mp3 codec, серьёзно сжимающий размер аудиофайла, к примеру, сжатие в битрейте 128 kbps уже заход на грань планки между небольшой или серьёзной потерей информации (качеством).
WarCraft 3 поддерживает лишь некоторые из них. В некоторых случаях может понадобиться workaround, помогающий в сжатии файла для достижения более эффективного результата. Вы узнаете, как это делать ниже.
В зависимости от качества и количества импортированных материалов, эта процедура будет или не окажется полезной и стоящей. Очевидно то, что чем больше вес карты, тем настоятельнее и важнее рекомендация оптимизировать её. Если с импортом карта весит менее 1 Мб, тогда оптимизация будет всего лишь полезным советом.
Небольшой дисклеймер перед началом работы: Нижеуказанные процедуры могут повредить информацию в файлах и потерю качества, которое может быть или не может быть замечено. Все процедуры потенциально опасны и могут спровоцировать порчу файлов, так что храните оригиналы при себе.
2. Текстуры Потенциал сжатия: ~20% - 60% от каждого файла Нужные программы: BLPaletter позволяет сжимать файлы формата *.blp, которые для WarCraft 3 являются "родными". Это касается импортированных текстур и иконок. Положительный момент этой программки в том, что она применяет сжатие jpg, которое позволяет большее сжатие. С GUI его использование предельно простое:
- Нажмите на кнопку Open, откройте текстуру или иконку;
- Выберите имя сжатого *.blp-файла во втором поле сверху;
- Ниже, проверьте JPEG-сжатие, чтобы получить полный потенциал от него;
- Оставьте следующее поле как есть, оно не касается JPEG-сжатия;
- В поле ниже задайте Compression Rate (уровень сжатия). Рекомендую задать здесь ~75-85 для всех текстур и ~55-65 для всего, что редко видно, к примеру, Disabled-иконки. Подробнее о ручном создании иконок здесь.
3. Модели Потенциал сжатия: ~30% - 40% от каждого файла Нужные программы: Как уже видно из названия, программа позволяет сжимать модели, в результате чего мы получим большее сжатие. Как уже сказано в readme к этой программе, не рекомендуется использовать её много раз на одной модели, в результате можно получить заметное снижение её качества. Некоторые модели уже могут быть ей обработаны, это должно быть сказано в её описании. В этом случае лучше снова не сжимать модель. Использование MDX Squisher особых объяснений не требует - выберите модель, сохраните её и всё.
Те, кто хочет выжать ещё больший процент оптимизации, могут прочесть
статью FkoFF'а про оптимизацию моделей. Уверен, что вы почерпнёте очень многое из неё.
4. Звуки и аудио Потенциал сжатия: ~50% - 80% от каждого файла Нужные программы: Звуковые файлы в WarCraft 3 сохраняются в формате *.wav (22,050 khz, 16 bit, 1 channel pcm). Когда вы импортируете свои звуки (за исключением музыки в формате mp3), учтите этот факт.
Неплохо бы импортировать все прочие звуки в формате *.mp3, правда? Но, к сожалению, это невозможно. Правда, есть трюк, позволяющий импортировать файлы *.mp3, воспринимаемые как *.wav-файлы. Мы не можем при этом сохранить все прелести сжатия аудио формата *mp3, ведь получится *.mp3-файл с заголовком *.wav-файла. Среди всех коммерческих и некоммерческих аудиоконвертеров был найден лишь один, который бесплатный, очень эффективный с экстраординарным функционалом и лгкой установкой. Это и есть BeSweet.
Как установить BeSweet:1. Извлечь папку BeSweet;
2. Извлечь в неё GUI-файлы, перезаписав оригиналы.
Как сконвертировать аудио:1. Выбрать файл для конверсии;
2. Проверить все настройки:- Azid1: Уберите всё, если же звук громкий - поиграйте с Normalizer'ом.
- Azid2: Если даже что-то включено, уберите всё.
- SSRC: Или оставьте как есть, или задайте на 22050
- Lame1: Задайте "Mode" как mono, если конвертируете mono-файл, на "Stereo", если конвертируете stereo-файл; необязательно: включите "Turn ATH down to a Flat Noise Factor"
- Lame2: Включите "Error Protection", теперь (важно!): задайте "CBR" на 96 (или на 128 для немного большего качества)
- Lame3: Уберите всё.
- 2Lame: Оставьте как есть.
- BeSweet: Отключите SRRC, отключите Boost; Важно: в Lame задайте MP3-WAVE.
- OTA-опции должны быть отключены.
3. Выберите файл на выходе. Задайте другую папку или имя, отличающееся от оригинала;
4. Поехали - нажимайте WAV to WAV.
Кстати, все настройки будут сохранены. Я бы даже рекомендовал их задать как нестандартный профиль.
Нелишне послушать звуковой файл после конвертации.
5. Оптимизация кода Потенциал сжатия: Никаких конкретных значений тут нет, всё зависит от того, насколько код "запущен" - чем меньше в нём строк, тем меньше он весит. Когда мы говорим об оптимизации кода, мы говорим об оптимизации каждого триггера и устранении лагов в карте по максимуму. Искусство программирования уже не тема этой статьи, так что почитайте эти, которые могут оказаться вам полезны:
Уменьшаем лаги в карте Как оптимизировать свой код 6. Последние штрихи Потенциал сжатия: ~10% - 20% от всего места, занятого картой Нужные программы: Это - последний шаг в одиссее сжатия карты. Имейте в виду, что некоторые опции могут повлиять на возможность открытия и редакции карты, так что будьте очень внимательны и сразу сохраните копию карты перед использованием оптимизатора!
В разделе Script Optimization выделите: ZLib Deflate
В разделе Map Optimization Options выделите: Optimize string usage
Clean BLP's.
Если у вас есть скрипты, например, скрипты ИИ, также выделите: also optimize other scripts
В разделе Extra Cleaning выделите: Remove Editor Suffixes
Remove Editor Only Files
Remove as much WE-only data as possible
После того, как все шаги пройдены, карта должна достаточно потерять в весе. Надеюсь, эта инструкция поможет сохранить несколько лишних мегабайт для другого импорта в карте!