Найдите сокровищницу световых и визуальных эффектов в нашем новом матче 3 образца Gem Hunter Match

Gem Hunter Match, новый официальный образец Unity, показывает, как 2D-головоломка/матч-3 может выделиться на фоне конкурентов с помощью привлекательного освещения и визуальных эффектов, созданных в Universal Render Pipeline (URP) в Unity 2022 LTS.
Скачайте образец вместе с мини-мануалом и приготовьтесь погрузиться за богатствами в кристально-голубые воды, населенные яркими драгоценностями и морскими обитателями. Вы узнаете, как подготовить и осветить 2D-спрайты, чтобы добавить им глубины, применить шейдер Sprite Custom Lit для мерцания, а также создать эффекты бликов и ряби.
Просмотрите скрипт Gem Hunter Matchв Unity Samples.

Gem Hunter Match следует за URP 3D Sample и Happy Harvest как последние в серии примеров, созданных несколькими командами Unity, которые иллюстрируют многочисленные возможности URP в Unity 2022 LTS для 3D и 2D мультиплатформенных проектов. В конце этой заметки мы приводим ссылки на другие замечательные учебные ресурсы URP.
Этот играбельный кусочек кроссплатформенной головоломки в стиле match-3 доступен в Unity Asset Store и Unity Samples. Вы можете изменить Gem Hunter Match, добавив в него свои объекты или геймплей, или использовать любые спрайты, шейдеры, эффекты, звук, текстуры и скрипты в своем собственном проекте.

Пузырьки, кораллы и бдительная русалка составляют фон игрового поля в игре Gem Hunter Match. Жемчуг, розовые сапфиры, рубиново-красные морские звезды, голубые рыбки, золотые моллюски и сонные морские черепахи населяют доску на трех игровых уровнях. Очищайте драгоценные камни и зарабатывайте бустеры и монеты, совмещая три или более элементов. Бустеры помогут вам достичь цели, но если вы потерпите неудачу, то потеряете сердце. Деревянные ящики и веревка являются блокираторами; чтобы убрать их, соберите три ящика рядом с деревянным ящиком или под куском веревки.

Простой игровой цикл включает в себя инвентарь, который можно использовать повторно. Вот его основные элементы:
Главная сцена: На этом экране перечислены все играбельные уровни, на которые ссылается объект ScriptableObject под названием LevelList, расположенный в папке Data.
Сцена на уровне: Здесь показана установка для игрового процесса. Вам нужно очистить элементы в разделе " Цели".
В папке Data/BonusItems вы найдете бустеры и связанный с ними префаб, содержащий такие параметры, как форма комбо, которая будет спауниться (в случае, если несколько предметов имеют одинаковую форму комбо, будет выбрана случайная). Вы можете создавать свои собственные бустеры в верхнем меню через Assets > Create > 2D Match.
Конец уровня / Магазин: Заходите в магазин, когда проваливаете или завершаете уровень; покупайте себе бустеры, сердечки или другую валюту. Все предметы магазина находятся в папке Data/ShopItems (вы также можете добавить свои собственные через Assets > Create > 2D Match. В магазине представлены такие товары, как:
Монеты: Зарабатывайте монеты за совпадения из трех и более совпадений и используйте их в качестве мягкой валюты. Сердца или жизни: Эти бустеры дают вам шанс повторно пройти неудачный уровень. Если в игре match-3 у игрока заканчиваются такие бустеры, то зачастую они имеют период охлаждения, прежде чем он сможет восполнить свои очки жизни/здоровья.
Звезды: Вы собираете их после прохождения каждого уровня; в настоящих match-3 играх звезды часто являются частью метагейма, украшением или используются для продвижения по сюжетной линии.

2D-головоломки/матч-3 популярны, потому что они милые и красочные, в них легко и весело играть, и они доступны любому человеку практически из любого места.
В них также можно найти красивые иллюстрации, но благодаря статичной камере, повторяющемуся геймплею и, во многих случаях, заранее проработанному освещению и теням, они не славятся передовыми световыми и визуальными эффектами. И все же есть множество способов добавить блесток и мерцания, чтобы получить дополнительное удовольствие.
Шейдер Sprite Custom Lit - это одна из техник, используемых для создания визуальных эффектов в игре Gem Hunter Match. Этот шейдер заменяет освещение сцены, позволяя нам изменять информацию о 2D текстуре света и управлять освещением каждой детали. В результате получается креативная подсветка спрайтов, например, мерцающий эффект, который перемещается по фигурам.
Данные о положении света переносятся в шейдер, что устраняет необходимость в реальных световых объектах в сцене, что также помогает сохранить ее аккуратной. Инкапсулированное освещение каждого объекта в шейдере хорошо работает для лучшей изоляции и редактирования в масштабе, а также повышает производительность там, где возможна пакетная обработка.
Поскольку информация о свете и тени хранится в шейдере, в спрайты включается только информация о цвете. Карта нормалей используется двухмерной системой освещения для расчета направления движения каждого пикселя, что позволяет ему получать больше или меньше света в зависимости от его положения. Карта масок используется для освещения, которое может воздействовать на определенный канал RGB.
Фаб Lights в сценах уровней Gem Hunter Match содержит 2D-освещение для сетки. Эти огни влияют на стандартный шейдер Sprite Lit и применяются к элементам сетки, включенным в слой сортировки, который получает свет.
На следующем изображении показаны этапы создания спрайтов и то, как шейдер Sprite Custom Lit вписывается в этот процесс.

В Gem Hunter Match"фиктивное" положение света представлено игровым объектом LightRotator, который анимируется для создания эффекта бликов от драгоценных камней. Модификации текстуры 2D-света и созданные блики с помощью узла Dot Product используются в шейдерной графике TileShader, которая применяется к драгоценным камням в игре.

Узел Dot Product может быть полезен в 2D-проектах, когда вы хотите сделать индивидуальное освещение. Точечное произведение измеряет, насколько близко друг к другу расположены два вектора. В образце позиция LightDirection сравнивается с видимым направлением каждого пикселя на карте Normal. Сэмплированное черно-белое изображение можно использовать для добавления света в спрайт и обновления значений во время выполнения для всех частей с помощью одного и того же шейдера.

Шейдер Radial Warp использует настройку URP 2D Camera Sorting Layer Texture. Эта удобная функция дает вам доступ к графике, созданной до указанного слоя сортировки в настройках URP 2D Renderer, которую вы можете затем использовать в Shader Graph для применения эффектов. В Счастливый урожай текстура слоя сортировки камеры используется для создания эффекта преломления воды, а в Dragon Crashersона используется для искажения дыма. В этом примере мы используем его для применения искажения, имитирующего ударную волну, что придает дополнительную визуальную привлекательность при создании совпадения. Это тот эффект, который создает впечатление, которое запомнится вашим игрокам.

Мы надеемся, что вы скачаете Gem Hunter Match, поиграете и настроите его, а затем опробуете его графические приемы в своих собственных проектах. Обо всем этом и многом другом пойдет речь на сессии Unite 2023 " Освещение и методы искусственного интеллекта для вашей 2D-игры".
Не пропустите эти другие образцы, электронные книги и учебники по URP:
- Электронная книга: 2D-арт, анимация и освещение для художников
- E-book: Введение в универсальный конвейер рендеринга для опытных создателей Unity
- Unite 2023: Ускорьте разработку мультиплатформенных продуктов с помощью новейшей версии URP
- Прямая трансляция: Что нового в универсальном конвейере рендеринга Unity?
- Видеоурок: Счастливый урожай: Пользовательские посевы и заметки игроков
- E-book: Окончательное руководство по созданию продвинутых визуальных эффектов в Unity
Обязательно присоединяйтесь к обсуждению Universal Render Pipeline на форумах Unity или присоединяйтесь к Unity Discussions.