Unity 6.3
0 онлайн 86 гостей 3 в системе
Вход
Советы по повышению продуктивности в Unity 6 Глава 3 из 8 Оригинал, стр. 35

2D

Спрайты В 2D-проекте визуальное представление создаётся с помощью спрайтов. Они могут использовать разные ассеты текстур, поэтому при неправильно настроенном батчинге может потребоваться много вызовов отрисовки. Для оптимизации ресурсов используйте Sprite Atlas (Asset > Create > Sprite Atlas): он позволяет объединять в один батч спрайты, использующие один материал и упакованную текстуру.

Избегайте дублирования ассетов при упаковке спрайтов В 2D URP спрайты могут содержать карты нормалей и карты-маски, которые также стоит упаковать в Sprite Atlas. Это важно для производительности и качества: такая упаковка позволяет рациональнее использовать память, сократить число вызовов отрисовки и ускорить загрузку. Если вы добавляете в Sprite Atlas целые папки, убедитесь, что в них находятся только обычные спрайты или текстуры альбедо. Карты нормалей и карты-маски автоматически попадут в соответствующие атласы, которые можно выбрать в раскрывающемся списке. Если же поместить такие карты в добавляемые папки, они без необходимости окажутся и в основном атласе, заняв в нём место. Чёткое разделение атласов карт нормалей и карт-масок позволяет независимо настраивать для них параметры сжатия. Например, разрешение карт нормалей можно уменьшить вдвое, а обычные спрайты оставить в полном разрешении либо подобрать другие параметры с учётом целевой платформы.

©2025UnityTechnologies

Три типа атласов при упаковке 2D-спрайтов

Структурируйте папки, чтобы поддерживать единообразие Продуманная структура папок для 2D-спрайтов упрощает поиск ассетов и управление ими, помогает контролировать использование памяти благодаря группировке ассетов по моменту загрузки, чётко разделяет разные элементы игры и даёт другие преимущества. Ниже приведён типичный вариант структуры папок для проекта Unity: - Sprites/Characters/[CharacterName]/Animations - Sprites/UI/[MenuType]/Elements - Sprites/Environment/[LevelName]/Background - Sprites/Effects/[EffectType] - Sprites/Common/SharedElements

Импортируйте пиксельную графику прямо в Unity с помощью Aseprite Importer Aseprite - редактор спрайтов и инструмент для создания пиксельной графики, ставший отраслевым стандартом среди DCC-приложений для пиксельных художников. С Unity Aseprite Importer не нужно по отдельности экспортировать сотни спрайтов в формате .PNG: файл .aseprite можно добавить непосредственно в проект.

©2025UnityTechnologies

Работайте прямо в Aseprite, нажимайте Save и сразу просматривайте изменения в Unity. Aseprite Importer поддерживает перетаскивание файлов .aseprite, автоматически создаёт и настраивает готовые к использованию объекты GameObject и анимационные клипы, а также полностью интегрируется с набором 2D-функций Unity. В Unity 6 появилась автоматическая генерация ассетов Tilemap из файлов .aseprite с тайлмапами. Изменения исходного файла автоматически переносятся во все производные ассеты.

Aseprite Importer в окне Project в Unity: в этом фрагменте доклада Unite 2024 «Знакомьтесь: новые рабочие процессы 2D и улучшения на основе ИИ» показана работа Aseprite Importer

Импортируйте покадровую анимацию из Aseprite в Unity Один из самых полезных советов по работе с Aseprite Importer в Unity: перед импортом тщательно организуйте файлы Aseprite с помощью Tags и Slices. Эти средства позволяют корректно и автоматически обрабатывать анимации и нарезать изображения на спрайты прямо в редакторе. Например, определяйте и организуйте анимации с помощью тегов вроде Idle и Walk, а области спрайта или отдельные части, такие как голова и оружие, отмечайте с помощью Slices. Это упрощает импорт и экономит время.

©2025UnityTechnologies

Анимация, импортированная из Aseprite в Unity

Ускорьте процесс повторного импорта с помощью PSD Importer PSD Importer импортирует файлы Adobe Photoshop в Unity и на основе исходного файла создаёт префаб из спрайтов. С PSD Importer можно ускорить импорт 2D-спрайтов, элементов UI и любых других ассетов, созданных в Photoshop. Раньше художникам приходилось экспортировать каждый слой файла Photoshop в отдельный файл .png для Unity, а после каждого изменения заново экспортировать все файлы .png. Теперь это не требуется: Unity поддерживает многослойный формат .psd. Анимированных 2D-персонажей, у которых каждая конечность или другая часть находится в отдельном слое, можно импортировать в Unity для дальнейшей работы в 2D Animation. PSD Importer подготовит персонажа к последующему риггингу и анимации. Если каждый слой PSD должен стать отдельным спрайтом, снимите флажок Character Rig. Тогда префаб создаваться не будет, а результатом станет обычный набор нарезанных спрайтов: каждый слой можно будет использовать как самостоятельный спрайт.

©2025UnityTechnologies

Импортируйте многослойные PSD-файлы именно через PSD Importer, а не через стандартный импортёр текстур, чтобы были доступны все возможности импортёра.

Другие полезные советы в действии смотрите в видеоруководстве «Из Photoshop в Unity с помощью PSD Importer».

Упростите работу с Rule Tile в Tilemap Editor в Unity 6.1 Система Tilemap в Unity хранит и обрабатывает ассеты Tile, предназначенные для создания 2D-уровней на сетке. Благодаря этому уровни легко создавать и итеративно дорабатывать прямо в Unity.

При работе с тайлами бывает сложно создать ассеты всех соседних вариантов тайла и назначить их ассету Rule Tile. В Unity 6.1 этот процесс упрощает новая функция AutoTile. Загрузите лист тайлов, выделите внутренние области и сохраните его: Unity создаст ассет тайла, который можно использовать в палитре тайлов.

©2025UnityTechnologies

Пример AutoTile

Избегайте затекания текстур и зазоров между тайлами После всей работы над графикой и тайлмапами важно не допустить просачивания текстуры и появления небольших зазоров между тайлами из-за интерполяции и сглаживания краёв. Для игр с пиксельной графикой, где спрайты не сглаживаются, эта проблема нехарактерна. Если вы не используете лист тайлов, рекомендуем упаковать спрайты в Sprite Atlas, чтобы сгладить стыки, и включить внутреннюю сортировку в TilemapRenderer. Это улучшит организацию проекта, производительность и творческий контроль. Настройки по умолчанию подходят большинству спрайтов, но для тайлмапов может потребоваться дополнительная настройка. Чтобы тайлы сохраняли чёткие края, при упаковке отключите Allow Rotation и используйте Alpha Dilation.

©2025UnityTechnologies

Параметр Alpha Dilation в Sprite Atlas

На левом изображении заметно просачивание по краям тайлов; проблему устранили, скорректировав настройки Sprite Atlas.

©2025UnityTechnologies

Используйте систему 2D Inverse Kinematics для создания естественных движений Unity включает комплексное решение для скелетной анимации под названием 2D Animation. Для управления движением рига используйте систему Unity 2D Inverse Kinematics (IK). С помощью IK можно создавать естественные и динамичные движения, например сгибание коленей или вытягивание руки, без ручной настройки каждой кости.

Использование 2D IK при анимации главного персонажа в демонстрационном проекте Happy Harvest

Тщательно проектируйте иерархии костей в Sprite Editor, чтобы обеспечить корректное управление. Например, сделайте кость кисти дочерней по отношению к кости руки. Проверьте иерархию на простых анимациях и убедитесь, что изменения кости верхнего уровня правильно влияют на её дочерние кости. Используйте Animation Blend Trees для плавных переходов между анимациями ходьбы, бега и покоя в зависимости от таких переменных, как скорость или направление ввода. Это позволяет добиться естественных анимаций без резких переключений между состояниями.

©2025UnityTechnologies

Имитируйте профили IES с помощью 2D-источников света В 3D-приложениях, например в HDRP, затухание света часто имитируют с помощью профилей IES. Система 2D-освещения Unity очень гибкая и предлагает удобные параметры настройки, включая цвет, интенсивность, затухание и эффекты смешивания. Если требуется точнее настроить характер затухания источника света, выберите для него тип Sprite и используйте созданный вами световой эффект.

Спрайт с ореолом вокруг подвесной лампы в демонстрационном проекте Happy Harvest

Дополнительные советы по 2D-освещению можно найти в этой статье Мартина Райнмана из Odd Bug Studio, а приёмы работы с 2D-светом и тенями в Universal Render Pipeline - на этой странице.

©2025UnityTechnologies

Создавайте детализированные 2D-окружения произвольной формы с помощью 2D Sprite Shape 2D Sprite Shape позволяет создавать детализированные 2D-окружения произвольной формы с помощью наглядного и интуитивно понятного рабочего процесса. Инструмент укладывает спрайты вдоль контура фигуры, автоматически деформируя и заменяя их в зависимости от угла контура.

Пример использования 2D Sprite Shape в демонстрационном 2D-проекте Dragon Crashers

Sprite Shape также автоматически создает компонент Polygon Collider 2D, если вы хотите использовать контуры или фигуры в системе Physics 2D.

©2025UnityTechnologies

Пользовательская ось сортировки спрайтов Сортируйте спрайты в выбранном направлении. Это полезно, когда несколько спрайтов находятся на одном слое, имеют одинаковый порядок сортировки, но должны отрисовываться в определенной последовательности. Например, представьте карточную игру, где карты немного перекрываются: при этом карта в нижней части экрана должна отрисовываться поверх остальных. В URP откройте ассет 2D Renderer и выберите General > Transparency Sort Mode > Custom Axis. Например, задайте для Transparency Sort Axis значение (0, 1, 0), чтобы сортировать объекты вдоль оси Y сверху вниз.

Пример настройки Transparency Sort Mode и Transparency Sort Axis; дополнительные советы см. в этом видеоруководстве (оно создано для более ранней версии Unity, но по-прежнему актуально)

Создавайте освещение с шейдерами Sprite Custom Lit Если вам нужны эффекты освещения, не зависящие от глобального освещения сцены, рассмотрите возможность использования шейдера Sprite Custom Lit. Это один из приемов, использованных для создания визуальных эффектов в демонстрационном проекте Gem Hunter Match. Этот шейдер заменяет освещение сцены, позволяя команде изменять данные текстуры 2D-освещения и управлять освещением каждого игрового элемента. В результате спрайты получают выразительное освещение, например переливающийся блик, движущийся по игровым элементам. Данные о положении источника света передаются в шейдер, поэтому отдельные объекты источников света в сцене не нужны, а сама сцена остаётся чище. Инкапсулированное в шейдере освещение каждого объекта упрощает независимую настройку и массовое редактирование, а там, где возможна пакетная отрисовка, повышает производительность.

©2025UnityTechnologies

Шейдер Sprite Custom Lit в Gem Hunter Match

Узнайте из статьи в блоге «Сокровищница освещения и визуальных эффектов в новом match-3-примере Gem Hunter Match», как команда с помощью шейдера Custom Sprite Lit получила полный творческий контроль над освещением каждого 2D-спрайта.

©2025UnityTechnologies

Сократите избыточную отрисовку прозрачных пикселей Чтобы повысить производительность, избегайте многократной отрисовки одних и тех же пикселей. В Import Settings установите для Mesh Type значение Tight (значение по умолчанию). По возможности объединяйте перекрывающуюся графику в один спрайт и отключайте спрайты в фоновых слоях, если они не используются в игре. Это уменьшит область избыточной отрисовки и вероятность перекрытия с соседними спрайтами.

Сокращение избыточной отрисовки между спрайтами .

©2025UnityTechnologies

Сокращайте неиспользуемые области в Sprite Editor С помощью 2D Sprite Editor можно также задать пользовательский контур для каждого спрайта. Это позволяет свести к минимуму неиспользуемые области при упаковке спрайтов и избежать избыточной отрисовки.

Пользовательский контур в Sprite Editor

Организуйте спрайты и анимации проекта с помощью Sprite Libraries Используйте Sprite Libraries, чтобы удобно организовать спрайты для проектирования уровней и составных персонажей. Sprite Libraries отличаются от Sprite Atlases, предназначенных для группировки спрайтов с целью повышения производительности отрисовки. Поскольку Sprite Libraries, Sprite Atlases и Addressables совместимы, их можно использовать вместе, чтобы поддерживать порядок в крупных проектах.

©2025UnityTechnologies

Окно Sprite Library Editor

Изменение контрольных точек Sprite Shape Sprite Shape помогает проектировать естественно выглядящий 2D-ландшафт: холмы, динамически изменяемые дороги, тропы, гоночные трассы и водоемы, а также декоративные элементы.

С его помощью можно создавать и игровые механики: объедините Sprite Shape с системой Unity 2D Physics, чтобы создавать интерактивные области, которые способны адаптироваться и изменять форму в реальном времени, например разрушаемый ландшафт или деформируемые платформы. Контрольные точки Sprite Shape можно изменять, а API предоставляет к ним доступ как во время выполнения, так и в редакторе. Это влияет на производительность, но при продуманной интеграции может дать игре ощутимое преимущество.

©2025UnityTechnologies

Изменение контрольных точек Sprite Shape в демонстрационном проекте Dragon Crashers - 2D URP

Удобно заменяйте спрайты через контекстное меню Sprite Resolver - компонент, который работает вместе с системой 2D Sprite Library и позволяет динамически переключаться между различными вариантами спрайта во время выполнения. Он позволяет менять спрайт объекта GameObject, не назначая его вручную в окне Inspector, что расширяет возможности управления спрайтами в проекте и делает его более гибким.

Вот несколько наиболее удачных сценариев использования Sprite Resolver: - Системы настройки внешнего вида персонажей - Динамическая смена выражений лица или настроения NPC и персонажей - Смена спрайтов окружения в зависимости от времени года или внутриигровых событий - Изменение внешнего вида объектов при улучшении или ухудшении их состояния - Более эффективная и упорядоченная замена спрайтов в анимациях

©2025UnityTechnologies

В Unity 6 компоненты Sprite Resolver можно использовать как в окне Inspector, так и в компоновке редактора.

Компонент Sprite Resolver в Sprite Library

©2025UnityTechnologies