Как правильно перевести изображение в нужный формат для использования в Героях
Предположим, у нас имеется изображение с глубиной цвета 24 бита, которое мы хотим запаковать в файл с расширением *.def для использования в Героях.
Для запаковки в Def необходимо иметь изображение в 8-битном формате (с палитрой). Кроме того, нужно учесть, что первым 10 цветам палитры в Героях отводятся специальные функции - прозрачность, цвет флага, тень и т.д. - то есть, пикселы изображения, имеющие индекс цвета в палитре из этого диапазона, будут отображаться специальным образом. Во избежание спутывания с обычными пикселами изображения, этим цветам по умолчанию поставлены специфические значения: прозрачный - чистый голубой, флаг - желтый, тень - оттенки пурпурного. Хотя, опять же, важны не сами цвета (и даже вообще не важны в игре), а индексы в палитре.
Поэтому, чтобы изображение корректно отображалось в Героях, функциональным областям растра должны соответствовать цвета с соответсвующими индексами. Для этого эти области заливаются стандартными цветами, а при переводе изображения в палитровый формат эти 10 стандартных цветов должны присутствовать в палитре на своем месте.
(Впрочем, и простой перевод изображения в оптимальную палитру может привести к приемлемому результату: в качестве цвета 0 (прозрачного) поставится первый встреченный цвет, а именно цвет фона - голубой. Это сработает в большинстве случаев - однако, не во всех.)
Для этого переводить изображение в индексный режим нужно следующим образом:
(Photoshop)
- Image->Mode->Indexed Color... : Появится диалог Indexed Color. Здесь задается палитра изображения.
- В комбо-боксе Palette выберите Local (...) : палитра, наилучшим образом передающая изображение.
- Colors: 256
- Forced: Custom... - Насильно заданные цвета: пользовательские.
Появится диалог Forced Colors. Загрузите (Load...) файл heroes_default.act. Первые 10 цветов заполнятся системными, остальные останутся незаданными (заштрихованными).
(Если нет файла heroes_default.act: загрузите сюда предварительно сохраненную палитру, взятого из любого bmp-файла, выдранного из файла def, и удалите (Ctrl-Click) все цвета, кроме 10 первых)
- OK - закройте диалог Forced Colors.
- OK - закройте диалог Indexed Color.
Описанную последовательность выполняет действие To Heroes Palette из файла Heroes.atn - загружать в панель инструментов Actions.
Однако есть еще проблема - файлы BMP, сохраненные Фотошопом, некорректно читаются DefMaker-ом. Для приведения файлов в нужный вид нужно удалить в них два последних байта (00 00). Это можно сделать, пересохранив файл из другой программы обработки изображений, или с помощью ChopBMP.
Подобное изображение годится для статического дефа. В анимированном дефе, состоящем из последовательности кадров, все изображения должны иметь одну палитру. При переводе последовательности изображений можно построить вышеописанным образом палитру для самого характерного изображения, сохранить ее (Image->Mode->Color Table, Save...) и применить ее (Image->Mode->Indexed Color, Load...) ко всем остальным изображениям анимации.
Рекомендуется изучить работу с действиями (Actions) Фотошопа, это часто позволяет облегчить подобные (и не только) задачи.
-------------Примечание
Эт не я писал, взято из справки к O_ChopBmp. Все проверено, работает, монстров так делал. Монстры воюют нормально, без глюков все.
-----------
ДобавленО--------
www.Wogforever.narod.ru
© Lyucifer 2006 ©