Полная Версия: Мод: Создание BookArta
Infernal knight
Итак, BookArt - это картинки, которые вставляются в книги или свитки в игре. По сути дела ничего особо сложного в создании BookArtа нету - достаточно взять какой-нибудь файл и конвертировать его в формат TGA 24bit Uncompressed. Но тут есть свои тонкости:
1) При такой простой конвертации фон рисунка сохраняется, что ОЧЕНЬ сильно портит впечатление. BookArt, созданный разработчиками, однако фон не сохраняет... Потому что там используется так называемый Alpha Channel, который представляет из себя маску, которая отрезает фон. Значит основной проблемой создания BookArtа является создание подходящей Маски.
Чтобы создать маску требуется какой-нибудь графический редактор: я пользовался Paint Shop Pro 4.1 и 6 (Adobe Photoshop 6 позволяет создать несколько масок, однако мне, во-первых, он не нравится, а, во-вторых, у меня не вышло сразу создать работующую маску). В PSP 4.1, чтобы создать маску достаточно выделить область, которая НЕ должна входить в отрезаемую игрой область и нажать на Masks->New->Create from selection. Самым простым путем если, конечно, фон одноцветный, а контур с градиентым переходом в фон, просто выделить весь фон Magic Wandом c 0 Tolerance, а затем просто Invertiroвать выделение.
2) По непонятной мне причине игра лучше всего воспринивает картинки с размерами являющимися степенями 2, то-есть 256х256, 128х512 и т.д. Когда я попытался использовать картинку с маской с размером не кратным 2, игра показала мне белый прямоугольник. Самый, кажется, наибольший возможный размер это 512х512.
3) Стиль BookArtа Морровинда подразумевает однотонность картинки, подделку "под карандаш" и практически только один контур объекта без закрашивания внутри. Как сделать иммитацию карандаша я рассказывать не буду, так как я этим не маялся, поэтому разбирайтесь сами... Чтобы от картинки остался один контур можно попробовать или убрать все закрашенные места при помощи Magic Wanda, хотя это далеко не всегда получится, или обвести все желаемые контуры в каком-нибудь графическом редакторе, использующем векторную графику (С векторной графикой удобнее работать). Однотонность картинки достигается путем первоначального переведения ее в GreyScale.
4) Третья часть удачного BookArta - это палитра. Сначала, когда я сделал свой первый BookArt он ОЧЕНЬ сильно отличался по цвету, от шрифта и других BookArtов. Чтобы привести свой BookArt в соответствие с Artом игры требуется сначала перевести картинку в GreyScale, а затем подправить паллитру или в ручную или ползунками, регулирующими насыщенность Red/Green/Blue. Я выяснил, что самым темным цветом является (RGB) 24/16/8, а самым светлым стоит делать не больше 210/140/70. Дальше, все цвета в формате RGB относятся, как 3/2/1, то-есть если номер красног это 3*n, то номер зеленого - 2*n, а номер синего - 1*n или просто n. В принципе для нормальных BookArtов с градиентами и фоном вполне хватае 16 цветов, поэтому можете сразу сократить палитру. Весьма желательно, чтобы изображение не состояло только из двух цветов - контур должен постепенно через 2-8 градаций цвета постепенно переходить в фон, иначе BookArt получается уродливым, если же изображение уже двух цветное можно для его улучшения использовать размытие - Blur или Soften.

Итак, чтоб не быть голословным показываю эти две картинки:
Так выглядел Guar в формате TGA, когда я его вставил в свиток в игре
Так он выгядел уже в свитке в игре (Я открыл Scroll в игре сделал 3 скрина и "склеил" их в графическом редакторе, поэтому тут 3 шва - в игре швов нету)
А так выгядет Shalk, даже лучше Guara ;)

Да, кстати, еще плохо смотрятся в игре BookArtы со слишком тонкими линиями, чтобы они смотрелись лучше в Adobe Photoshopе есть эффект, который помогает избежать этого - это "Accent Edges" он делает толще все линии и заодно делает градиенту.
Cheb
В Фотошопе можно саму картинку (чёрную на белом, допустим) скопировать в альфа-канал, потом подправить уровни и инвертировать, а потом канал изображения залить одним цветом (чёрным, например). Теоретически, должно работать. И при таком методе не надо фон подбирать

> По непонятной мне причине игра лучше всего воспринивает
> картинки с размерами являющимися степенями 2, то-есть 256х256, 128х512 и т.д


Современные видеокарты требуют, чтобы размер текстуры был кратен степени двойки (иначе не удастся построить мип-мапы, образующиеся последовательным ужиманием текстуры вдвое, пока не получится 1 пиксель по одной из осей).
Infernal knight
Только вот, я заметил, что на DDS правило "степени двойки" не распространяется...
Infernal knight
Кстати, я все-таки немного поисследовал процесс создания эффекта рисования крандашом - много подобных эффектов присутствует в Adobe Photoshop 6, под названием Filter->Brush Strokes->, но результат меня не порадовал...
Voron
Кстати, на dds правило двойки распространяется так же, как и на bmp с tga. Было замечено только вчера. Случайно вместо 256*256 ввел 256*255, результат - отсутствие текстуры в игре как таковой.

Карандашный эффект надо делать ручками :) Ластик, кисточка, ластик, кисточка. Привыкли ко всяким там фильтрам :)
Infernal knight
2Voron
Если у тебя текстура УЖЕ была 256х256, а в для книги изображение ты ввел 256х255 в TES CS, то естественно ничего не заработало, но у меня в папке лежит BookArt разработчиков с разрешением 377х253 и работает великолепно. Я же имел ввиду, что я сделал TGA 247х193, ввел правильный размер в TES CS, но когда загрузил игру она у меня автоматически переделала рисунок в 256х256 и вместо рисунка показала белый квадрат... :( И это очень печально, так как нельзя обрезать неиспользуемую область картинки, чтобы она меньше места занимала...
цитата:
Карандашный эффект надо делать ручками :) Ластик, кисточка, ластик, кисточка. Привыкли ко всяким там фильтрам :)

Я сделал 3 из 35 нужных мне картинок и каждая занимает почти день, если я еще и ластик/карандашом маяться буду, то мой мод не увидят еще год ;)))

Voron
Я подразумевал текстуру для clothing'а. Но результат был тот же - при нечетном размере - белый квадрат. Как работают оффициальные нечетные текстуры я пока не понимаю.

цитата:
Я сделал 3 из 35 нужных мне картинок и каждая занимает почти день, если я еще и ластик/карандашом маяться буду, то мой мод не увидят еще год ;)))


Хе-хе-хе :)
Cheb
>Я подразумевал текстуру для clothing'а.
>Но результат был тот же - при нечетном размере - белый квадрат.
>Как работают оффициальные нечетные текстуры я пока не понимаю.


На некоторых видеокартах, в некоторых случаях некратные текстуры работают. Например, моя GF2 глотает любые нечётные разрешения (хотя официально их не поддерживает) - но только если для этой текстуры не генерируются мипмапы.

to Infernal knight:
Таким образом, Вы, уважаемый, вероятно, сохранили текстуру в разновидности *.dds без мипмапов (насколько я знаю, они обычно входят в состав картинки в этом формате) - и Ваша конкретная видеокарта это проглотила, но никто не поручится, что оно будет работать на другой видеокарте или на той же, но с другими драйверами.

..вот такая страшная сказка. Бу-у-у-у!... ;)

Voron
Я понимаю, что это смешно, но ведь я нечетную dds'ку создал с мипмапами :) Естественно, мой GeForce 4 MMX 440 это не скушал.

Кстати, а не стоит ли организовать некую процедуру проверки текстур на совместимость с различиными картами/дровами? Просто еще один чек перед нажатием кнопки save в CS? А то на свою внимательность и уж тем более на свои дрова стоит полагаться крайне редко.

Например: при опубликовании плагина предоставлять информацию: на какой версии игры, на какой конфигурации машины (с указанием типа и версии дров видяхи) плагин работает 100%.
Infernal knight
2Cheb
Я вообще не делал DDS - я делал TGA... Так что вопрос в том: может ли TGA быть любого размера или это только привилегия DDS?

2Voron
У меня такие характеристики:
1) Версия Мора: ver 1.3.1029 - Tribunal
2) Драйвер видео: Detonator 30.82
3) DirectX: ver 8.1 (4.08.01.0881)
4) Video: Innovision (Хотя больше напоминает Noname... Все-таки OEM версия) Geforce 3 Ti200 64mb
Infernal knight
Добавление.
Теперь я точно знаю насчет макимального размера картинок BookArta: Morr воспринимает 512*512 хорошо, однако отображает он в формате Scrolla только 480 пикселов ширины! То-есть для показа максимальной видимой области требуется создать картинку 512*512 по правилу степени двойки, хотя видимой областью будет только центральные 480 пикселов ширины и все 512 высоты.
Ваш ответ: