• Игры
  • Отрасль
  • Ресурсы
  • Сообщество
  • Обучение
  • Поддержка
Услуги разработчиков
Движок Unity
Создавайте 2D и 3D игры для любой платформы
ЗагрузитьТарифы и цены
Монетизация
Встроенная покупка (IAP)
Откройте и управляйте IAP в разных магазинах
Mediation
Максимизируйте доход и оптимизируйте монетизацию
Качество рекламы
Защитите пользовательский опыт вашего приложения
Tapjoy
Создавайте долгосрочную лояльность пользователей
Все продукты монетизации
Привлечение пользователей
Привлечение пользователей
Будьте замечены и привлекайте мобильных пользователей
Unity Vector AI
Соединяйте игроков с подходящими играми
Aura - реклама на устройстве
Достигайте пользователей на устройстве в пиковые моменты вовлеченности
Все продукты для роста
Примеры использования
3D сотрудничество
Создавайте и просматривайте 3D проекты в реальном времени
Иммерсивное обучение
Обучение в иммерсивных средах
Пользовательские опыты
Создавайте интерактивные 3D опыты
Все отраслевые решения
Отрасли
Производство
Достигнуть операционного совершенства
Торговля
Преобразовать опыт в магазине в онлайн-опыт
Автомобильная отрасль
Повысить инновации и опыт в автомобиле
Все отрасли
Техническая библиотека
Документация
Официальные руководства пользователя и ссылки на API
Инструменты для разработчиков
Версии релизов и трекер проблем
План развития
Обзор предстоящих функций
Глоссарий
Библиотека технических терминов
Дополнительная информация
Истории успеха
Истории успеха из реальной жизни
Руководства по лучшим практикам
Советы и хитрости от экспертов
Все ресурсы
Что нового
Блог
Обновления, информация и технические советы
Новости
Новости, истории и пресс-центр
Сообщество
Обсуждения
Обсуждать, решать проблемы и соединяться
События
Глобальные и местные события
Истории сообщества
Made with Unity
Показ Unity-креаторов
Прямые трансляции
Присоединяйтесь к разработчикам, креаторам и инсайдерам
Награды Unity
Празднование Unity-креаторов по всему миру
Для каждого уровня
Unity Learn
Освойте навыки Unity бесплатно
Профессиональное обучение
Повышайте уровень своей команды с тренерами Unity
Не использовали Unity раньше
С чего начать
Приступите к обучению
Основные пути Unity
Не использовали Unity раньше? Начните свое путешествие
Практические руководства
Практические советы и лучшие практики
Образование
Для студентов
Запустите свою карьеру
Для преподавателей
Улучшите свое преподавание
Лицензия Education Grant
Принесите мощь Unity в ваше учебное заведение
Программы сертификации
Докажите свое мастерство в Unity
Варианты поддержки
Получить помощь
Помогаем вам добиться успеха с Unity
Планы успеха
Достигайте своих целей быстрее с помощью экспертов
FAQ
Ответы на часто задаваемые вопросы
Связаться с нами
Свяжитесь с нашей командой
Тарифы и цены
Язык
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Соцсети
Валюта
Купить
  • Продукты
  • Unity Ads
  • Подписка
  • Unity Asset Store
  • Торговые посредники
Образование
  • Студенты
  • Преподаватели
  • Образовательные учреждения
  • Сертификация
  • Learn
  • Программа развития навыков
Загрузить
  • Unity Hub
  • Архив загрузок
  • Программа бета-тестирования
Unity Labs
  • Лаборатории
  • Публикации
Ресурсы
  • Платформа обучения
  • Сообщество
  • Документация
  • Unity QA
  • FAQ
  • Статус услуг
  • Истории успеха
  • Made with Unity
Unity
  • Наша компания
  • Новостная рассылка
  • Блог
  • События
  • Вакансии
  • Справка
  • Пресса
  • Партнеры
  • Инвесторы
  • Партнеры
  • Безопасность
  • Отдел Social Impact
  • Инклюзия и разнообразие
  • Связаться с нами
© Unity Technologies, 2025
  • Правовая информация
  • Политика конфиденциальности
  • Cookie-файлы
  • Использование персональных данных

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Hero background image

Советы по созданию контроллеров аниматора в Unity

Создавайте контроллеры-аниматоры для своих персонажей так же, как если бы вы создавали сценарий, чтобы их было достаточно просто использовать, поддерживать и отлаживать на протяжении всего цикла разработки.

Все скриншоты ниже взяты из анимации персонажа Генри из Firewatch от Campo Santo.

  • Скрыть сложность в Blend Trees
  • Думайте о слоях как о классе скрипта.
  • Повторное использование шаблонов
  • Ступица и говорила
  • Общий шаблон входа/выхода
  • Критический раздел и шаблон расчета
  • Не пишите сложный код внутри поведения конечного автомата.
  • Используйте поведение конечного автомата, чтобы гарантировать, что события анимации всегда срабатывают.
  • Дополнительные ресурсы
Смешать изображение дерева

Скрыть сложность в Blend Trees

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

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

Аниматор утверждает

Думайте о слоях как о классе скрипта.

Полезно думать о слоях как о классе в скрипте. Вы хотите, чтобы все в слое выполняло одну и ту же логическую и поведенческую функцию. Это связано с тем, что каждый отдельный слой контролирует, какие другие слои он переопределяет – влияет ли он на определенные кости, является ли этот слой аддитивным и так далее.

Повторное использование шаблонов

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

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

Ступица и спицы аниматоров

Ступица и говорила

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

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

Вход на выход аниматоров

Общий шаблон входа/выхода

Группируя состояния по шаблону «вступление» — выполнение/цикл — «завершение», вы можете четко прикрепить любые анимационные события или поведение конечного автомата к вступительному и завершающему состояниям. Как и в случае с деревом смешивания, вы можете перебирать и изменять внутренние состояния выполнения/цикла, не беспокоясь о том, что игра сломается.

Разделение и расчет шаблона

Критический раздел и шаблон расчета

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

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

Не пишите сложный код внутри поведения конечного автомата.

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

Избегайте написания внутри них сложного игрового кода, потому что может быть сложно отследить, откуда берутся изменения в состоянии. Если вы используете поведение конечного автомата для управления кодом игрового процесса, используйте систему обмена сообщениями; поговорите с классом менеджера или запустите свой код из параметров на более высоком уровне.

Debug.Break() — одно из наиболее эффективных вариантов поведения конечного автомата, которые вы можете использовать. Прикрепите его в любом месте настройки анимации, и вы получите точку останова, аналогичную системе визуальных сценариев.

При необходимости используйте код C#. Вместо управления сотнями или тысячами переходов или повсеместного подключения переходов AnyState используйте Animator.Play или Animator.CrossFade для динамического создания прямых переходов из кода. Если вам все еще недостаточно контроля, загляните в Unity’s Playables API, чтобы узнать больше о способах анимации с помощью кода. Некоторые примеры можно найти здесь.

Поведение конечного автомата

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

Анимационные события связывают конкретный момент вашего анимационного клипа с конкретным изменением состояния в вашей игре. Их можно использовать для выделения таких элементов, как визуальные и звуковые эффекты. Однако если вы выйдете из клипа до того, как он был запущен, он никогда не сработает. Один из способов решения этой проблемы — добавить поведение конечного автомата, которое гарантирует, что событие всегда срабатывает при достижении определенного момента времени, независимо от того, что еще происходит (или не происходит) в игре.

Дополнительные ресурсы

Ключевые инструменты Unity и рабочие процессы для технических художников

Анимации с самым высоким рейтингом в Asset Store

Кейсы игр

Бесплатные электронные книги и руководства по Unity

Был ли этот контент полезен?

Да!

Хочу получать новые материалы

Так себе.

Могло быть и лучше