Unity 6.3
0 онлайн 17 гостей 3 в системе
Вход

Animator Контроллер переопределения

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

Например, в вашей игре есть разные персонажи: гоблины, огры и эльфы. Каждый персонаж использует свои клипы анимации для простоя, поворотов и бега, но структура, параметры и логика машины состояний у всех одинаковы. В этом случае можно создать базовый Animator Controller для всех персонажей и по одному Animator Override Controller на каждого персонажа.

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

Настройка ассета контроллера переопределения Animator

Перед использованием ассета Animator Override Controller необходимо создать и определить ассет Animator Controller. Эти действия начинаются с уже созданного и определенного ассета Animator Controller с именем NPC Animator.

Дерево смешения для контроллера NPC Animator
Дерево смешения для контроллера NPC Animator

Чтобы расширить Animator Контроллер с помощью Animator Контроллера Переопределения, выполните следующие действия:

  1. Перейдите в Ассеты > Создать > Animation > Animator Контроллер переопределения для создания нового ассета Animator Override Controller в окне Project. Также можно использовать кнопку Создать в окне Project.

  2. В окне Project выберите новый ресурс Animator Override Controller для отображения его параметров в окне Inspector.

    Контроллер переопределения Animator без назначенного контроллера Animator
    Контроллер переопределения Animator без назначенного контроллера Animator
  3. Переименуйте ассет Animator Override Controller в Ogre Animator.

  4. Используйте Контролер поле, чтобы выбрать ассет Animator Controller, который вы хотите переопределить. Для этого выполните одно из следующих действий:

  5. Выберите и перетащите ресурс Animator Controller из окна Project в поле Controller.

  6. Выберите Animator Controller picker (⊙) и выберите NPC Animator Controller из окна, которое отобразится.

    Перетащите ассет Animator Controller из окна Project в поле Controller
    Перетащите ассет Animator Controller из окна Project в поле Controller

    Окно Inspector показывает Animator Override Controller в виде таблицы из двух столбцов. В первом перечислены клипы анимации из исходного Animator Controller, во втором — переопределяющие клипы. По умолчанию каждый переопределяющий клип совпадает с исходным.

  7. В полях столбца Override выберите переопределяющий клип анимации для каждого исходного клипа. Например, исходные клипы анимации в NPC Animator контроллеры переопределяются версиями Ogre.

    Контроллер переопределения Animator с версиями Ogre оригинальных анимационных клипов
    Контроллер переопределения Animator с версиями Ogre оригинальных анимационных клипов

    В своей машине состояний вы можете задавать время выхода перехода в секундах или в нормализованном времени. При использовании Animator Override Controller убедитесь, что время выхода перехода задано в нормализованном времени.

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

Назначение ассета контроллера переопределения Animator

Чтобы назначить ресурс контроллера переопределения Animator ресурсу GameObject, выполните следующие действия:

  1. В окне Hierarchy выберите GameObject, который будет использовать Контроллер Переопределения Animator.

  2. В окне Inspector найдите компонент контроллера Animator, связанный с выбранным GameObject.

  3. В компоненте Animator Controller выберите Ogre Animator в качестве его Animator Controller.

В этом примере ассет Animator Override Controller с именем Ogre Animator использует ту же логику, переходы и смешивания, что и оригинальный Animator Controller с именем NPC Animator, но воспроизводит клипы анимации, указанные в ассете Ogre Animator Override Controller.

Персонаж Огр использует ассет Animator Override Controller в качестве своего Контроллера в Компонента Animator
Персонаж Огр использует ассет Animator Override Controller в качестве своего Контроллера в Компонента Animator