Добавить в корзинуПозвонить
Найти в Дзене

Создание ткани в Unreal Engine 5

Подробный гайд по созданию симуляции ткани и масочного материала для этой ткани. Для начала запустим существующий проект, куда хотели-бы добавить ткань, или создадим новый. Откроем раздел моделирование (горячие клавиши SHIFT+5) Создадим «Rectangle» (данный раздел отвечает за создание прямоугольников с сеткой. В созданном ресурсе выставим значения ширины и длины будущего полотна ткани. После нажмём "Принять". Далее зайдём в раздел "Модель" и нажмём на "Subdivide". В значении сетки увеличим до 6. В параметре "Boudary Sheme" выставим значение "Sharp Corners" (Данное значение означает, что наши края буду острыми, а не скруглёнными, как было до) После изменений нажимаем "Принять" В режиме "Каркас" (горячие клавиши ALT+2) мы можем проверить количество треугольников. (Чем больше треугольников, тем выше детализация, тем больше нагрузки на симуляцию) Теперь перейдём в библиотеку "FAB", и найдём материал ткани.
Для этого в поисковой строке введём "Tarp", со значениями фильтра "Материалы и текст

Подробный гайд по созданию симуляции ткани и масочного материала для этой ткани.

Для начала запустим существующий проект, куда хотели-бы добавить ткань, или создадим новый.

Откроем раздел моделирование (горячие клавиши SHIFT+5)

-2

Создадим «Rectangle» (данный раздел отвечает за создание прямоугольников с сеткой.

-3

В созданном ресурсе выставим значения ширины и длины будущего полотна ткани. После нажмём "Принять".

Subdivide - это инструмент, увеличивающий значение сетки
Subdivide - это инструмент, увеличивающий значение сетки

Далее зайдём в раздел "Модель" и нажмём на "Subdivide". В значении сетки увеличим до 6.

-5

В параметре "Boudary Sheme" выставим значение "Sharp Corners" (Данное значение означает, что наши края буду острыми, а не скруглёнными, как было до)

-6

После изменений нажимаем "Принять"

-7

В режиме "Каркас" (горячие клавиши ALT+2) мы можем проверить количество треугольников. (Чем больше треугольников, тем выше детализация, тем больше нагрузки на симуляцию)

-8

Теперь перейдём в библиотеку "FAB", и найдём материал ткани.
Для этого в поисковой строке введём "Tarp", со значениями фильтра "Материалы и текстуры", со свободной лицензией для личного использования.

-9

Откроем подходящий материал и добавим его в наш проект, нажав "Add to Project"

-10

В скаченной с библиотеке "FAB" папке создадим новый материал, он будет базовым для дальнейших манипуляций.

-11

Откроем его. В разделе сведения, выставим галочку в значении "Two Sided".
Two Sided— это настройка, которая позволяет сделать материал двухсторонним. Это означает, что текстура будет отображаться на обеих сторонах объекта.

-12

Также в разделе "Bland Mode" выставим значение "Masked"

-13

Откроем панель ресурсов, и из папки материала и добавим текстуры

-14

Подключим текстуры согласно схеме. В большинстве случаев базовые узлы одинаковы в логике подключения.

-15

Теперь создадим ноду "Texture Coordinate" - она будет определять координаты нашей текстуры.

-16

Далее создадим ноду "Multyplay" — это компонент графа материалов, который позволяет умножать значения, передаваемые через соединения.

-17

Далее нода "Param" (Горячие клавиши S+ЛКМ) — это узел, который позволяет задавать параметры материала. Выставим параметр в 1 единицу.

-18

Дадим название данной ноде "Tiling" (Горячая клавиша F2)

-19

Подключим "Multyplay" к каждой текстуре "UVs"-каналу.

-20

Через ЛКМ выделим 3 ноды и скопируем их.

-21

Вставим чуть ниже данные ноды.

-22

В панели ресурсов откроем содержимое проекта и выставим фильтр на значение "Текстура"

-23

В поиске найдем текстуру будущей маски. (Текстура шума)

-24

Через ЛКМ добавим в наш Event Graph.

-25

Повторим подключение "Multyplay" к текстуре через "UVs"-канал.

-26

Добавим дополнительные ноды "Multyplay" и "Param". Где "Param" подключим к каналу "B" ноды "Multyplay", а в канал "A" подключим "RGB" текстуры маски. Тем самым мы создадим настраиваемую маску ткани.

-27

Теперь нашу настраиваемую маску подключим к параметру "Маска прозрачности".

-28

Через ЛКМ (или Ctrl+ЛКМ) выделим все 4 текстуры и преобразуем их в параметры. Для этого нажмем ПКМ, раздел "Преобразовать в параметр".

-29

Дадим каждой текстуре имя. И после, не забываем все сохранить.

1 текстура - "BaseColor"
2 текстура - "Normal"
3 текстура - "ARD"
4 текстура - "Mask"
-30

Теперь в папке, где располагается наш полученный материал создадим его экземпляр. Через ПКМ "Создать экземпляр материала".

-31

Применим данный экземпляр к нашему объекту. Добавим его в материал объекта.

Появлется первое представление будущей ткани.
Появлется первое представление будущей ткани.

Откроем наш экземпляр через двойное нажатие ЛКМ.

-33

Активируем параметры "Param" и "Tiling" прожав галочки в соответствующих пунктах.

-34

Изменим данные параметры по своему усмотрению.

При изменеии парметров наша загатовка будет изменяться
При изменеии парметров наша загатовка будет изменяться
-36

Выделим наш объект и через ПКМ нажмём "Перейти к ресурсу" (Либо нажмем горячие клавиши Ctrl+B).

-37

В панели найдем искомый ресурс и экспортируем его. Нажмем по нему ПКМ, раздел "Действия с ресурсом", выпадающее меню "Экспорт".

-38

В открывшимся окне выберем папку для сохранения объекта, дадим ему название (по желанию).

-39

В следующем открывшимся окне настройки экспорта обязательно выставим в Fbx Export Compatibility значение FBX 2020. Остальное по умолчанию.

-40

Далее создадим новую папку, дадим ей название и откроем ее.

-41

В этой папке, через ПКМ импортируем нашу заготовку.

-42

В открывшимся окне выберем наш файл, который ранее был экспортирован, и нажмем открыть.

Обязательное условие для данного шага.
Обязательное условие для данного шага.

В окне "Параметры импорта FBX" найдем параметр "Сетка", "Skeletal Mesh" и поставим галочку.

-44

Далее нажмем "Импорт всего".

-45

После успешного импорта журнал не должен показать критических ошибок. Это означает, что предшествующие шаги были выполнены верно. Следовательно журнал можно очистить и закрыть.

-46

Теперь найдем файл формата "Скелетная сетка" и добавим его на сцену.

-47

Откроем данный файл через двойной ЛКМ.

-48

Откроется окно редактирования данного файла. Развернем его для удобства на весь экран.

-49

Далее ПКМ на нашей скелетной сетке и выберем раздел "Создать данные об одежде из секции" и нажмем "Создать".

Данный инструмент позволяет создавать одежду (ткани) для персонажей и окружения, используя существующие элементы материала скелетной сетки.
Данный инструмент позволяет создавать одежду (ткани) для персонажей и окружения, используя существующие элементы материала скелетной сетки.

В верхней части меню нажмем на раздел "Активировать заливку одежды".

-51

Далее, в открывшимся окне "Одежда" выберем наши данные "Rectangle"

-52

Найдем параметр "Tool Settings", "Рисовать значение" выставим на 1000, а "Радиус" по своему желанию.

-53

Обратим внимание, что кисть показывает силу и радиус влияния на материал.

-54

Переходим к покраске скелетной сетки. Помним, что розовый цвет оставит скелетную сетку без изменений.

-55

После манипуляций с кистью отключим режим заливки одежды.

-56

Теперь найдем наш созданный экземпляр материала и применим его к скелетной сетке.

-57

Далее снова выберем наш ресурс и через ПКМ откроем дополнительное меню.

-58

Применим данные об одежде созданной в предыдущих этапах.

На данном изображении видно что ткань ушла за пределы видимой карты.
На данном изображении видно что ткань ушла за пределы видимой карты.

Если все верно выполнено, то произойдет примерно так.

-60

Запустим симуляцию уровня.

-61

Полотно ткани работает. Но не хватает динамики. Добавим в наш уровень систему ветра.

-62

Для начала развернем наш объект в плоскости. Используем горячие клавиши "W", "Z", "E".

-63

В данном виде будет подобие флага

-64

Теперь в верхней части меню нажмем на добавление на сцену акторов и в поисковой строке найдем "Wind Directional Source". Добавим его в наш уровень.

-65

Данный актор (инструмент) сориентируем в плоскости по желанию.

-66

Запустим симуляцию уровня и проверим.

-67

Теперь откроем параметра нашего ветра (Wind Directional Source Component) и выставим значение скорости ветра (Speed) около 10. Что означает примерно 10 метров в секунду.

-68

Нажмем на симуляцию уровня и получим конечный результат. (https://dzen.ru/video/watch/6841e25643f4657534623cbf)