|

Вы хотели эффектов? Их есть у меня! Послесловие для маньяков Q3Radiant
Xakep, номер #044, стр. 044-072-1
Автор: Александр "xtracer" Логинов (http://www.gamemag.ru)
Если ты помнишь, в прошлом номере у нас был последний урок Q3Radiant. По крайней мере, я так думал. Но когда я объявил, что сага о квако-лелвело-строительстве подошла к концу, на меня обрушился холодный душ читательских писем, в которых ты (а это был ты, без сомнений) просил рассказать еще что-нибудь про Q3Radiant, позамороченней. Ну что ж, придется отложить мега-хитовые Warcraft 3 и Morrowind и выдать что-нибудь... позамороченней, как просили.
Разобравшись с элементарной архитектурой, пройдя арки, текстурирование и воду, ты готов к самой кропотливой и сложной части сражения - специальным эффектам.
Когда падает листва
Одним из самых симпатичных и облагораживающих виртуальный мир эффектов остается листопад. Пожелтевшие от осени листья кружатся в легком танце вокруг игрока, они подпрыгивают, падают и вновь взмывают вверх, создавая приятное ощущение реальности окружающего мира, а заодно отвлекая его внимание от малополигональных и неровных конструкций ;). Итак, приступим к процессу изготовления нашего зелья. Для начала возьми в руки Photoshop, PaintShop pro или любой другой графический редактор достойного производства. Используя руки и мышку, создай в своем графическом редакторе новое изображение форматом 256 на 256 пикселей. Конечно, ты можешь использовать текстуры и большего (512x512) размера, но это может вызвать нежелательные последствия для обладателей старых ускорителей.
На чистой поверхности нарисуй три небольших листа. Ты можешь не обращать внимания на детали, так как листья в данном случае лишь один из множества примеров. Ты можешь заменить их на старые газеты, дождь или снег. Внимательно посмотри на рисунок 1.
Все три листа выстроены в ряд и имеют различную окраску и степень освещения. Это важно при создании листопада. Ты ведь не хочешь, чтобы с деревьев падал однообразный мусор, верно? Теперь обрати внимание на правую часть меню. Видишь, мы выставили (речь идет о Photoshop) нашу волшебную палочку на ноль и включили антиальястинг? Это необходимо для того, чтобы при использовании альфа-канала листва сохранила свою свежесть, хруст и красоту. ;) Именно этим мы сейчас и займемся. Используя волшебную палочку, окрась зону вокруг листвы и создай альфа-канал (см. рис. 2).
Учти, что если твоя листва или снег имеют сглаженные углы, то создание альфа-канала может оказаться неудачным. Более того, Q3Radiant может очень серьезно глюкнуть при считывании текстур с кривым альфа-каналом.
Если ты все сделал правильно, то листва готова, и мы можем приступить к оживлению сцены. Выбрав путь наименьшего сопротивления, воспользуемся советом умудренного опытом Terry DeLaney. Для начала сохраним файл как leaf.tga в директорию
/baseq3/textures/leafs
Теперь обнови shaderlist.txt (см. предыдущий номер, урок работы с Q3Radiant), добавив название нового объекта leafs, так, чтобы игра могла распознать твои листья при работе с редактором. Теперь, когда листья готовы к использованию, пришло время для написания небольшого скрипта, который оживит сцену. Основная задача состоит в том, чтобы программа анимировала наши статичные объекты в замкнутом цикле, создавая эффект реальности происходящих на экране событий. Для начала мы определим границы движения листвы. Так как листья падают строго вертикально, то мы воспользуемся командой tcmod scroll со значениями 0 и 24. В данном случае 0 означает то, что объект статичен по оси координат X, а 24 - медленную прокрутку задника по оси Y. Мы не хотим, чтобы наши листья падали нам на голову мрачными булыжниками, поэтому прибегнем к команде surfaceparm nonsolid, а для расчета поворота листа воспользуемся deformVertexes wave. Финальный скрипт (спасибо Terry DeLaney) выглядит следующим образом:
Содержание Вперед на стр. 044-072-2
|