Реализация сложных сцен в Unity

Возникла проблема с реализацией сложных интерактивных катсцен в Unity.

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

5 персонажей

Теперь допустим, что мне нужно одновременно запустить несколько независимых сложных катсцен с разными персонажами. Катсцены будут сложные, и реализовать их кроме как записью ключевых кадров, например, в анимацию, не получится. Катсцены могут произойти в произвольном порядке, или не произойти вообще. Реализовать это с помощью 5-ти Animator'ов будет крайне трудно, т. к. объекты сложно взаимодействуют друг с другом, например, персонажи танцуют.

Попытки решения:

  1. Не получится реализовать это с помощью множества timeline'ов, потому что катсцены сложные и нелинейные.
  2. Все сложные сцены реализовать с помощью 5-ти Animator'ов, у каждого из которых вовремя включать нужную анимацию. Способ жестокий, потому что придется делать ключевые кадры анимаций по-отдельности, что будет крайне неприятно.
  3. Единственный вариант, который мне удалось придумать это:

Убрать Animator со всех персонажей. Поставить Animator SceneAnimator на объект AllScene. В SceneAnimator создать условно столько слоев аниматора, сколько есть сложных катсцен.

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

Первый слой

Второй слой

Вопрос: будет ли работать предложенный способ №3? Например верно ли будет себя вести персонаж если им руководит анимация на одном слое, а на других - выполняются пустые анимации?

Существует ли более удобный и эффективный способ реализовать такую сложную сцену?


Ответы (0 шт):