Создание стилизованного окружения — опыт автора ассетов для Unity

Описание главных принципов.

Художник и автор ассет-пака для Unity под названием The Illustrated Nature Драгош Матковский в 2019 году опубликовал на сайте 80 Level текст, в котором подробно рассказал, как создавал свои живописные работы. Выбрали из текста главное.

Создание стилизованного окружения — опыт автора ассетов для Unity

По словам художника, его главная цель при создании ассетов заключалась в том, чтобы любой скриншот выглядел живописно — он стремился не к реализму, а к художественной ценности. Кроме того, для Драгоша было важно, чтобы каждый элемент мира ощущался живым.

Создание стилизованного окружения — опыт автора ассетов для Unity

Чтобы сделать листья, Драгош смоделировал простой меш из трёх пересекающихся квадратов с текстурой листа. Затем он создал «каркас» и наложил на него меши, чтобы это было похоже на скопление листвы на ветке. В результате получилось так, что все меши листьев имели нормали, которые смотрели в разные стороны. Автор отредактировал модели так, чтобы нормали были направлены наружу — благодаря этому скопление получилось более сглаженным.

Если разместить скопления листьев вдоль ветвей дерева, то они сформируют крону. Ствол и ветви сделаны с помощью сплайнов

Чтобы подготовить модель к вертексной анимации, Драгош раскрасил альфа-канал Vertex Color градиентом сверху вниз — это позволило управлять силой изгиба по оси Y. Затем он использовал зелёный канал, чтобы нарисовать ветви и листья, а также придать им дополнительное движение.

Создание стилизованного окружения — опыт автора ассетов для Unity

Для растительности Драгош использовал белые текстуры размером 256×256 с альфа-каналом. Все цвета в сцене можно легко и быстро поменять.

Художник рассказал, что он намеренно сделал все текстуры абстрактными. Например, листья представлены квадратами со скруглёнными углами
Так выглядит быстрая настройка цвета 

Растительность анимируется с помощью двух типов анимации — вертексной и UV. При этом оба типа реализованы на уровне шейдера.

Вертексная анимация используется для создания более крупных движений, например, раскачивания ветвей, а UV-анимация нужна, чтобы листья колыхались на ветру. Оба типа анимаций можно включать и выключать независимо друг от друга — это важно для лучшего контроля над производительностью.

В шейдере всё управляется при помощи глобальной noise-текстуры, которая влияет на весь игровой мир, а также управляет вертексным смещением и UV-анимацией текстур.

Создание стилизованного окружения — опыт автора ассетов для Unity

Драгош отметил, что особенно хорошо получилась UV-анимация листьев — именно она делает движения настолько достоверными. Чтобы добиться этого, автор просто двигал текстуру листьев синхронно с вертексным смещением. Такой же эффект применяется и к траве.

При компоновке объектов окружения Драгош всегда старался избегать очевидных паттернов и повторений. Он пытался ориентироваться на референсы из реальности, потому что стремился добиться общей правдоподобности. Это же касается и разных эффектов, например, отражений неба в воде.

Слева — реальное видео, справа — эффект

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

Драгош разместил почти всё окружение при помощи Prefab Painter 2

Автор с самого начала хотел сделать цветовую гамму стилизованной, а не реалистичной. Он использовал Amplify Shader Editor для создания и настройки всех шейдеров.

Цвет воды можно задавать при помощи специального шейдера — он позволяет менять цвет у разных областей: на глубине, на мелководье, на точках соприкосновения с другими объектами. Эффект пены создаётся при помощи шума Перлина и добавляет воде деталей, благодаря чему она лучше сочетается с остальной графикой.

Создание стилизованного окружения — опыт автора ассетов для Unity
Ещё один шейдер отвечает за цвет дымки — автор добавил настройку, которая позволяет менять плотность тумана вблизи и вдали от камеры
7373 показа
14K14K открытий
2323 репоста