Гайд на шикарные анимешные деревья в Unreal Engine 5
Приветствую читающих, во мне проснулся лютый туториалолог и туториалист, и сегодня я хочу рассказать о прикольном, и быстром способе сделать стилизованную растительность.
Туториал рассчитан на людей, кто уже шарит хоть немного за Unreal Engine, и работу шейдеров!
Нам понадобятся:
1. Blender
1.1 Плагин "Sapling Tree"
2. Unreal Engine 5
3. Krita (или любой другой редактор)
4. Графический планшет (необязательно)
5. Настрой (обязательно)
Blender
Первым делом открываем блендер и ставим бесплатный плагин Sapling Tree Gen в настройках.
Теперь жмакаем Shift + A и добавляем дерево
Как только дерево появится, можете поиграть с его настройками в левом нижнем угле, главное, выставите такие же параметры для листвы, как у меня:
Особенно обратите внимание на Scale листиков - нам нужно, чтобы они были квадратными, позже поймете почему.
Теперь у вас должно получиться что-то вроде этого:
Выглядит уже неплохо, но можно сделать еще лучше!
Создайте сферу, добавьте ей больше подразделений, щелкните правой кнопкой по ней, и выберете Shade Smooth.
Теперь ваша задача расположить сферу так, чтобы она охватывала всю листву. Вот так:
В моем случае, сфера накрыла всё дерево.
На данный момент, ствол дерева - кривые, то есть, не является мешем. Поэтому вам необходимо сделать конвертирование. Нажмите на ствол дерева, затем ПКМ, и дальше как на скриншоте ниже:
Нам необходимо перенести параметры "гладкости" сферы на нашу листву. Для этого щелкните по листве, и добавьте ей модификатор Data Transfer. Выставьте параметры как у меня:
Дерево превратится в что-то такое:
Теперь добавьте материалы, отдельно для листвы, и отдельно для ствола. О UV развертке переживать не будем, там главное у листвы все гуд, а ствол дерева у нас будет состоять из одного только цвета.
Объедините листву и ствол в один меш, выбрав обоих, и нажмите Ctrl+J, или ПКМ -> Join.
Можем экспортировать дерево в FBX формате. Так как мы его собираемся использовать в UE, Forward вектор выставляйте Y:
Импортируйте дерево в Unreal Engine с дефолтными настройками, и перетащите на сцену.
Будет что-то эдакое:
Самое время придумать какую-нибудь текстурку для листьев, для этого открывайте криту, фотошоп, гимп, всё что пожелаете. Сделайте черную заливку или прозрачный фон, и нарисуйте белым цветом внешний вид листьев. Текстура должна быть квадратной, как и форма листиков! Разрешение можете выставить 512x512.
Если лень рисовать, в нашем тг вы найдете несколько исходников.
Хорошо, у нас есть текстурки и модель, но одного только натягивания текстуры на листву будет мало. Пора делать материалы!
Создайте новый материал, сразу организуйте все папки, для легкого и понятного доступа к ассетам.
Займемся базовый цветом!
Здесь суть в том, что цвет выбирается в зависимости от нормалей листвы, в нашем случае, зеленым цветом будет верхушка и края, а голубоватым - нижняя часть, и внутренняя. Можете добавить Float-параметры, для гибкой настройки такой штуки. Конец подключите к Base Color
Пока что мы не хотим чтобы листва блестела как от дождя, поэтому добавим параметр шероховатости равным одному, и подключим к Roughness:
Как мы знаем, листва пропускает часть света сквозь себя. Для имитации эффекта мы воспользуемся эффектом Фрезнеля (для понимания советую почитать инфу в internet):
Конец протяните к Emissive Color.
Этот эффект будет аккуратно подсвечивать края нашей листвы, делая красиво.
Теперь зададим саму форму наших листьев. Перетащите в материал созданную текстуру, или скачанную с нашего дурацкого тг.
Так же, преобразуйте текстуру в параметр, и подключите к Opacity:
Карты нормалей у нас нет, ну и черт с ней - щелкните ЛКМ+3, добавится вектор с тремя значениями. Выставьте Z на 1, и подключите к Normal:
Теперь самое сложное для понимания(
Создаем эффект ветра!
Добавьте ноду SimpleGrassWind, и сделайте параметры для управления интенсивностью, силой воздействия, и скоростью.
По факту, это уже должно работать, но мы можем углубиться, и добавить дополнительные крутилки, для управления масштабом листвы.
Пока что, сделайте так, как на скрине, объяснение для каждого блока найдете на просторах internet.
Если кратко, мы находим каждый отдельный листочек, и раздуваем его, равным параметрам scale и inflate.
Конец подключите к AdditionalWPO, а Result - к World Position Offset:
Позже расскажу как сделать глобальное управление ветром у деревьев, там все очень просто, но выглядит круто все равно.
Теперь всё готово! Щелкайте ПКМ по созданному материалу, делайте Instance, и вперед к настройкам!
Кидайте материал на листву, для ствола создайте простой материал с коричневым оттенком, и так же примените его к дереву.
На данный момент все может выглядеть не так как хотелось бы:
Поиграйте с настройками как захотите, но в среднем должно получиться что-то вроде такого:
С данными настройками, листва выглядит следующим образом:
Чтобы она не была такой темной, с резкими перепадами цветов, больше внимания уделите созданным параметрам scale и inflate.
Например, увеличивая параметр inflate, листва становится уже куда пышнее:
На этом всё! Если дочитали - спасибо вам человеческое, а я пошел спать.
А если интересно, можете подписаться на наш тг канал. Мы готовим игру в сеттинге северной России. Будем рады, если загляните!