WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
Работа с Альфа-каналом. Прозрачность и Тим-колор
ПредисловиеЗдравствуйте, дорогие читатели! Уже много раз я встречал на нашем форуме людей, которые ничего не знают о такой важной и полезной вещи в работе с текстурами и моделировании, как Альфа-канал. И как раз для таких людей я решил написать эту статью. Вводная частьНа Wikipedia Альфа-канал описывается как ...процесс комбинирования изображения с фоном с целью создания эффекта частичной прозрачности.Но я бы охарактеризовал Альфа-канал для WarCraft III проще: Чёрно-белое изображение, встроенное в текстуру, отвечающее за прозрачность и полупрозрачное смешивание. Основная частьИтак, к делу! Необходимые программы:- Adobe Photoshop любой версии Но если вы собираетесь конвертировать в *.blp вашу текстуру, то понадобится соответствующая программа, которых на нашем сайте море. Возьмём, к примеру, BLP Laboratory Вы также можете проверить вашу текстуру в деле, т. е. на модели, тогда вам понадобится еще ряд программ: - MDLvis 1.39c (желательно именно этой версии) - War3ModelEditor 1.05 (желательно именно этой версии) - в архиве английская версия программы и русификатор от NETRAT Но в принципе можно обойтись и одним War3 Model Editor'ом, если вы будете редактировать уже имеющуюся и наложенную на модель текстуру. Работа в PhotoshopДетально разъяснять его интерфейс и возможности я не буду, т. к. в Интернете существует множество уроков по этой замечательной программе. Я сделал простую текстуру, которую потом наложу на обычную плоскость: DEAD URL
1.1В чёрной области у нас будет полупрозрачный Альфа-канал. Шаг 1Открыв в Photoshop’е необходимую текстуру, нужно перейти на вкладку редактирования каналов (п. 1 на 1.2). В данной вкладке сразу же имеются 4 канала: "RGB", "Красный", "Зелёный" и "Синий". Также там сразу может быть канал "Альфа 1", тогда можно пропуститиь шаг 2. Шаг 2Если в каналах нет альфа-канала, то необходимо его создать - в самом низу окошка редактирования каналов есть 4 маленьких кнопки. Нам необходима та, что слева от корзины (п. 2 на 1.2) - нажмём её, и создастся новый, полностью чёрный, альфа-канал (п. 3 на 1.2). Шаг 3Альфа-канал для WarCraft'а представляет собой чёрно-белое изображение, встроенное непосредственно в текстуру и сохраняющееся, насколько я знаю, только в *.tga, *.png (как непосредственная прозрачность) и *.blp форматах (ещё в *.dds - но это к варкрафту не относится, и в *.bmp - но в нём альфа-канал теряется при конвертации в *.blp). Чёрный цвет - прозрачность, белый - непрозрачность. DEAD URL
1.2При выборе Альфа-канала, автоматически включается только его видимость в Photoshop’е (п. 5 на 1.2), но можно включить в видимость все каналы, нажав на место "глазка" (п. 4 на 1.2 и 1.3) слева от канала RGB и Альфа 1, тогда прозрачность Альфа-канала становится полупрозрачным красным цветом, а непрозрачность отображается непосредственно исходной картинкой (1.3). Альфа-канал можно произвольно редактировать любыми цветами - все они будут конвертироваться в серые оттенки. После нехитрых операций с выделением, заливкой и копированием/вставкой, я получил такой Альфа-канал: DEAD URL
1.3Шаг 4Теперь осталось лишь сохранить нашу текстуру. Делается это простейшими командами: Файл\Сохранить как...Форматом сохранения выберите Targa (*.tga). После нажатия кнопки сохранить вам будет выдано следующее окно: DEAD URL
1.4Выберите "32 bits\pixel" (1 на 1.4) и нажмите "ОК" (2 на 1.4). КонвертацияИтак, если вы хотите конвертировать вашу текстуру и посмотреть Альфа-канал уже в *.blp-изображении, то этот раздел вам поможет. Я решил использовать для этого BLP Laboratory (далее BLP Lab) (ссылка на которую дана в начале статьи). Запускаем BLP Lab и выбираем: Файл\Открыть... (п. 1 на 2.1)В раскрывшемся окне выберите вашу текстуру в формате *.tga. Уже сейчас вы можете просмотреть альфа-канал, нажав кнопку "Альфа-канал" (п. 2 на 2.1) или "Прозрачность" (п. 3 на 2.1). DEAD URL
2.1Налюбовались? Теперь нам осталась лишь конвертация сама по себе, для этого выберите: Файл\Сохранить как... (п. 4 на 1.5)Выберите фомат *.blp и сохраните в нужное вам место. Во всплывшем окне можете поиграть с настройками, описание которых можете найти в теме данной программы на форуме, а можете оставить всё по стандарту и нажать "ОК". Теперь, если хотите, можете пооткрывать полученное *.blp-изображение в разных программах. Использование в моделяхТеперь я наложу нашу текстуру на простейшую модель - плоскость. Как работать с MDLvis'ом я рассказывать не буду, т. к. на XGM достаточно статей и уроков по этой программе. Я создал плоскость и наложил на неё мою текстуру: DEAD URL
3.1ПрозрачностьА вот теперь первая часть того главного, ради чего мы создавали наш Альфа-канал. Здесь нам понадобится War3 Model Editor (далее w3me). Откройте вашу модель и перейдите в редактор материалов командой: Окна\Редактор Материалов (4.1)У меня в нём всего один материал, которым мы и будем заниматься Поочерёдно дважды нажимая сначала на материал, затем на слой материала, вы перейдёте в окно "Слой материала", которое нам сейчас нужно. DEAD URL
4.1Здесь мы можем выбрать 2 варианта смешивания, которые подойдут нам для прозрачности - это Transparent (п. 1 на 4.2) и Blend (п. 2. на 4.2). Я также поставил галочку на "Двусторонний" (п. 3 на 4.2), т. к. в случае с плоскостью её использование необходимо. DEAD URL
4.2- Transparent работает как грубое смешивание прозрачности по Альфа-каналу с использованием только 2-х единиц измерения прозрачности: прозрачно и непрозрачно. - Blend работает мягче, используя все оттенки прозрачности в соотвтетствии с цветами Альфа-канала, но данное смешивание очень странно работает с нормалями... как описать словами эти баги я не знаю, но думаю, изображение ниже раскроет их суть: DEAD URL
» Дополнительная информация Мне кажется, будет не лишним, описать оставшиеся 3 режима смешивания, а в частности Add Alpha, Additive, и Modulate. - Add Alpha создаёт прозрачность, основываясь на яркости цвета. При наложении, яркости цветов складываются (это можно легко проврить инструментом "Пипетка" в Photoshop (4.2.1), но такая проверка пройдёт только на чёрном фоне, т. к. с ним чёрные, а значит и прозрачные по яркости участки получают обратно свой цвет), альфа-каналы тоже складываются (попиксельно, разумеется). Одна из особенностей этого режима смешивания состоит в том, что с ним текстура материала становится такой же как и оригинальная только на чёрном фоне, все остальные цвета дают повышение яркости. DEAD URL
4.2.1- Modulate является полной противоположностью Add Alpha, он не зависит от альфа-канала, а прозрачность создаёт инверсно повышению яркости, т. е. тёмный цвет непрозрачен, а светлый прозрачен. При наложении яркость цветов вычитается. Чем темнее фон, тем темнее материал, а значит, оригинальную текстуру он приобретает только на белом фоне. - Additive - это нечто между Add Alpha и Modulate, при наложении поверх тёмного цвета, все участки затемняются, при наложении поверх светлого - осветляются, но в отличие от Modulate затемниться до абсолютно чёрного материал с таким смешиванием не может, прозрачность строится аналогично. В отличие от Add Alpha, Additive никак не зависит от альфа-канала. Здесь вы можете увидеть как фон и альфа-канал воздействуют на данные режими смешивания: DEAD URL DEAD URL DEAD URL
4.2.2 | 4.2.3 | 4.2.4Используя эти режимы смешивания можно добиться интересных и красивых эффектов, в том числе и для прозрачности и цвета игрока. 4.3Однако, есть способ исправления этого бага: нужно подложить под слой с Blend'ом слой с таким же материалом, но со смешиванием Transparent. DEAD URL
4.3.1На изображении 4.4 вы можете видеть разницу между режимами смешивания None, Transparent и Blend. DEAD URL
4.4Цвет игрокаТеперь я расскажу вам о создании Тим-колора или говоря по-русски, Цвета Игрока. Тут я буду использовать ту же самую модель, что и раньше. Вы, если хотите, можете взять какую-нибудь другую. Сначала необходимо в список используемых текстур добавить Replaceable ID 1 (Цвет Игрока). На изображении ниже наглядно показан порядок действий: DEAD URL
5.1После того, как вы добавили Replaceable ID 1 в список текстур, нужно перейти в редактор материалов и сделать следующее с тем материалом, в котором используется ваша текстура с Альфа-каналом: DEAD URL
5.2Также в случае с плоскостью целесообразно установить флажок на «Двусторонний». Теперь необходимо передвинуть только что созданный слой с Цветом Игрока под слой с основной текстурой, т. е. вверх: DEAD URL
5.3Внимание: для того чтобы цвет игрока правильно работал необходимо, чтобы вышележащий слой (выше по иерархии, но визуально он находится ниже в окне редактирования материла) имел режим смешивания Blend или Transparent. Ну вот и всё. Теперь осталось лишь понажимать везде «ОК» и полюбоваться результатом. DEAD URL
5.4Цвет игрока в частицахНемногие знают, что частицы тоже можно наделить цветом игрока, но здесь есть один огромный недостаток: цветом игрока могут обладать лишь частицы, использующие текстуры Replaceable ID 1 (собственно текструа цвета игрока) и Replaceable ID 2 (свечение цветом игрока, как у героев). Эти значения устанавливаются в графе "ID текстуры" (п 2 на 5.5): 1 соответствует Replaceable ID 1, а 2 - Replaceable ID 2. Вообще, туда можно поставить любой ID, но при, например, 31-ом, у вас будут излучаться текстуры дерева лордерона, которые будут меняться при попадании на порчу. Также, чтобы видеть результат, нужно поставить соответствующую текстуру в отвечающий за неё уже другой "ID текстуры" (п. 1 на 5.5), но даже если вы там поставите совершенно иную текстуру, в игре он заменится на ID из пункта 2 (5.5). DEAD URL
5.5Внимание: перед импортом в редактор измените текстуру Replaceable ID в графе текстуры (п. 1 на 5.5) на любую другую, например на Flare.blp, иначе редактор, при выборе модели в РО, выдаст ошибку и закроется. ЗаключениеВот я и рассказал вам про создание и использование Альфа-канала. Надеюсь, предоставленная мною информация оказалась вам полезна, а статья пришлась по нраву! К статье приложены материалы, использовавшиеся в этой статье. В связи с багами нормалей во всех приложенных моделях, в материалах я поставил дополнительный флажок на Незатуманенный (ошибка перевода – Незатуманенный – Незатенённый (подробнее)). Благодарности:Спасибо Wolverine’у за то, что он выложил на сайт War3 Model Editor 1.05, Dron’у за информацию об утере Альфа-канала в *.bmp при конвертации в *.blp и Q w e r t y за инфрмаию об исправлении бага нормалей. Спасибо за внимание!Отредактировано WebSter, 16.12.2009 в 11:42. |
07.08.2009, 14:10 | #1
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
sleep
offline
Опыт:
35,789Активность: |
cтопуды из за меня написал статью,что я тупил с курсором(я последняя капля терпения)!
|
07.08.2009, 14:44 | #2
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
|
07.08.2009, 14:52 | #3
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Dr
offline
Опыт:
48,871Активность: |
Про это всё уже давно написано.
Dron добавил: Пример неиформативен. |
07.08.2009, 14:54 | #4
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
WebSter добавил: В примере есть вся необходимая информация. |
07.08.2009, 16:14 | #5
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Dr
offline
Опыт:
48,871Активность: |
https://xgm.guru/forum/showthread.php?t=16306
https://xgm.guru/articles.php?section=wc3&name=teamcolor Потому что квадрат, а не текстура на модели. |
07.08.2009, 16:19 | #6
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
WebSter:
О, что правда что-ли? У меня битмап с альфа-каналом нормально и полностью сохраняется в BLP. Другое дело, что битмап, сохраненный в фотошопе, не откроется в текущей версии blp lab. palevo Отредактировано ShadoW DaemoN, 07.08.2009 в 16:32. |
07.08.2009, 16:23 | #7
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
Dron, на обе ссылки отвечу: в моей статье всё проще и нагляднее + множество картинок, что облегчает чтение и способствует пониманию написанного.
ShadoW_DaemoN, ну хз, я опирался на знания Dron'а, т. к. не знал, что в bmp альфа-канал вообще сохраняется. WebSter добавил:
Dron: А по-твоему квадрат не модель? И на нём, по-твоему не текстура? Да и вообще какая разница? От того, какая это модель никак не зависит ни информативность написанного, ни информативность самой модели, т. е. информативность нужно искать не в геометрии модели, а в тексте статьи и материалах модели. WebSter добавил:
+ для понимания такой вещи, как Альфа-канал вполне хватит и плоскости с одним материалом, чтобы можно было сконцентрироваться на нужных вещах, а не отвлекаться на ненужную геометрию и лишние материалы WebSter добавил: короче говоря, в примере есть всё необходимое и ничего лишнего. |
07.08.2009, 17:04 | #8
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Статья тру, все расписано, понятно. Конечно, статьи были, но это ближе к варкрафту, так что очень полезно) |
07.11.2009, 23:57 | #9
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
XiMiKs, спасибо =) наконец-то хоть кто-то обратил на неё внимание... |
08.11.2009, 10:32 | #10
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,058Активность: |
WebSter, шикарная статья, мне это как раз актуально, но я застопорился на 1 моменте... У меня изображение 1024х768, в tga 3 метра, это для юзания в Fade Filter в варе. Так вот - проблемы с конвертацией: как мне такое большое изображение конвертнуть в blp??????? 0_o |
08.11.2009, 13:13 | #11
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
Fakov, спс, можно конвертнуть через WarCraft 3 Viewer или через War3 Model Editor - с ними не должно быть проблем. |
08.11.2009, 13:21 | #12
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,058Активность: |
WebSter, не прокатило... конвертнуло, но блин, не открыло в W3ME... еще есть варианты?( |
08.11.2009, 13:38 | #13
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
Fakov, у меня через w3me всё нормально конвертится. Открой текстуру в tga, зайди в менеджер текстур, нажми на используемой текстуре правой кнопкой мыши и выбери "Экспорт". При сохранении файла в конце допиши .blp - у меня всё прокатило. |
08.11.2009, 13:52 | #14
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,058Активность: |
WebSter, огромное спасибо) сработало)) вообщем зачетная статья, пошел делать прозрачность по ней) |
08.11.2009, 14:28 | #15
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
SwuJe
aka Sakh_badboy
offline
Опыт:
15,248Активность: |
WebSter, спс как раз понадобилось альфа,по статье всё сделал |
21.11.2009, 09:40 | #16
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
iZucken
ШТО
offline
Опыт:
17,960Активность: |
WebSter, начет бага с "нормалями" как ты его обозвал - у меня есть два способа его избежать: 1 - Подложить в материале под бленд-слой транспарент-слой 2 - Подложить в материале под бленд-слой бленд слой 8) Работает!!!11 Ах да! Есть еще коечто: в параметрах материала ставиш галочку на SortPrimitivesFarZ |
24.11.2009, 21:04 | #17
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
Q_w_e_r_t_y, я его не обзывал, я назвал его как он есть =)
И правда работает, спасибо) А это нет Q_w_e_r_t_y: такая галочка есть только в ParticleEmitter2 WebSter добавил: Обновил статью (исправление бага с нормалями при использовании режима смешивания Blend) |
25.11.2009, 14:42 | #18
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
iZucken
ШТО
offline
Опыт:
17,960Активность: |
WebSter, смотри ^_^
И всетаки, про бленд-смешивание не стоит забывать, например если нужно сделать воду или стекло or etc.
А то ведь есть чудаки, умудряются аддитивные стекла и воду делать. Тока SortPrimitives проверяй в игре, т.к. МоделЭдитору нельзя верить на сто процентов... Даже на 75 имхо...
Да, и добавь информацию про !!Тимколор в партиклах!!! |
25.11.2009, 16:07 | #19
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|
WebSter
Товарищ Mechanicus
offline
Опыт:
86,111Активность: |
Q_w_e_r_t_y, SortPrimitivesFarZ не пашет, я проверил в варе.
мм... о чём ты? А про тим-колор в партиклах - хорошая идея, думаю дополню статью этим. |
25.11.2009, 17:07 | #20
+0/−0
Профиль |
Приват |
Поиск |
IP: Записан
|