UDK Tutorial 01: example of making a snow (Пример создания снега)
Сегодня я покажу вам один из способов создания снега в UDK без использования Эмиттеров (источников частиц). В основе данного урока лежит идея использовать редактор материалов, для того, чтбы сделать прозрачный двигающийся шейдер, который будет похожим на снег.
На основе данного материала легко можно будет сделать и такие вещи как град, дождь, бури, метели (однако тут не помешает еще и дополнительно использовать систему частиц). В чем же фишка создания снега без эмитеров? В том, что это будет съедать меньшее количество компьютерных ресурсов, а значит позволит добиться большей производительности. Но в то же время будет сложно соорудить реалистичность таких осадков. Однако, давайте от слов переходить к делу и разберемся что к чему.
1) Создаем текстуры снега в Photoshop.
Я использовал CS3 версию, вы же можете использовать любую другую версию или вообще программу, отличную от фотошопа. Однако, чтобы было проще и понятнее, я решил сделать текстуру именно в PS.
Для начала я нашел подходящие кисти в интернете (например, отсюда) и нарисовал снег белым цветом на черном полотне размером 256x256 (это важно, чтобы размеры текстур были двойкой в степени). При рисовании я следил, чтобы расположение снежинок были приблизительно равномерными по всей площади. В итоге я применил стандартный фильтр Filter > Pattern Maker (Конструктор узоров) в PS для создания бесшовных текстур и вот что у меня получилось:
И еще раз:
Для начала и для демонстрации способа, три текстуры нам вполне будет достаточно.
2) Импорт в UDK и подготовка уровня.
Теперь есть смысл запустить наш горячо любимый движок и импортировать свежеиспеченные текстуры. Для этого три наших текстуры сохраним в каком либо поддерживаем формате 2д графики в UDK, я решил использовать для этого *.png. Затем импортируем их в Content Browser в свой package.
Теперь у нас есть текстуры в редакторе, но созданием самого материалы займемся чуть позже - давайте для начала подготовим уровень под себя.
Для примера я сделал комнату из простого холокуба (куб со внутренней и внешней стенкой) размерами 1024x1024. Текстуры пола/стен можете выбрать по своему усмотрению. Добавьте свет, точку старта и каких нибудь декораций, если хотите (я решил не перебарщивать, пример все таки). Вот что вышло у меня, вид сверху и общий вид (можно кликнуть для полного просмотра):
Итак, комната готова, теперь сделаем нечто, что будет носить наш материал снега.
3) Создаем сетку для потока снега.
Вся хитрость приема заключена в этом шаге. ам необходимо сделать сетку плоскостей в этой комнате равномерным образом, чтобы пустить по ним материал снега.
Делаем сетку из панелей размерами 1024х1024 (тобы охватывали всю комнату) и располагаем примерно так:
У меня на картинке выше панели все вместе уже конвертированы в один Static Mesh
(вам нужно сделать тоже самое), так удобнее будет работать и добавлять снежное пространство куда захотим. Материал который был при конвертации нам не важен, мы его потом всегда можем изменить в настройках сатик меша.
4) Создание материала.
Пожалуй, самая основная часть того, ради чего мы здесь собрались. Все остальное было подготовкой к этому шагу. Приступаем. Создайте новый материал в Content Browser'е и назовите по своему усмотрению, например Snow_Material_01.
Теперь рассмотрим сам уже готовый материал и ваша задача сделать такой же или со своими изменениями, как вам больше нравится. На картинке я добавил комментарии и значения, так что вопросов возникнуть не должно. Не забудьте также настроить сам метериал: Bland Mode- BLAND_Translucent, Lighting Model - MLM_Unlit, Two Sided - Yes, Allow Lightmap Specular - No.
И сама финальная картинка с примеенением этого материала на нашу сетку из панелей (в которой нужно в настройках отключить восприятие света во всех световых слоях и тенях - иначе свет может не пройти "через" снег).
Вот и все, все готово. Вскоре добавлю видео с финальным вариантом.
У данного способа есть существенный недостаток - при небольшой плотности сетки можно во время игры иногда наблюдать некрасивые переходы, которые выдают играющему то, что разработчик сэкономил на снеге в ресурсах. В общем то полностью реалистичный снег сделать на таком примере будет сложно, но можно попробовать, благо за основу взять уже есть что.
Финальное видео:
Удачи с UDK, удачно присыпать все своё - своим же снежком.
Супер!
ОтветитьУдалитьА как наулице сделать? На всю карту у меня 4 км карта
ОтветитьУдалитьНа всю карту скорее всего метод не подойдет, либо сделать его с динамеческой подгрузкой, разбить карту на области. Метод что я описывал он скорее для закрытых пространств..
ОтветитьУдалить> Метод что я описывал он скорее для закрытых пространств..
ОтветитьУдалитьЗабавно, я наверное отстал от жизни... Снег теперь идет в закрытых помещениях? Конденсируется и превращается в снег, пока падает с потолка?) Хотя выполнено очень хорошо
можно к башке персонажа прилепить систему частиц)) и на улице волюм тригер для эго запуска
ОтветитьУдалить"сделать сетку плоскостей" это как?? sheet`ы расставить?
ОтветитьУдалитьДа,что такое сетка плоскостей и как сделать,не могу допереть?
ОтветитьУдалить