Реализация сложных сцен в Unity
Возникла проблема с реализацией сложных интерактивных катсцен в Unity.
Приведу минимальный пример. Допустим у меня есть много объектов на сцене. Например, 5 персонажей, у каждого из которых есть сложный скрипт и Animator, которые вместе управляют персонажем на сцене, и больше им ничто не управляет.
Теперь допустим, что мне нужно одновременно запустить несколько независимых сложных катсцен с разными персонажами. Катсцены будут сложные, и реализовать их кроме как записью ключевых кадров, например, в анимацию, не получится. Катсцены могут произойти в произвольном порядке, или не произойти вообще. Реализовать это с помощью 5-ти Animator'ов будет крайне трудно, т. к. объекты сложно взаимодействуют друг с другом, например, персонажи танцуют.
Попытки решения:
- Не получится реализовать это с помощью множества timeline'ов, потому что катсцены сложные и нелинейные.
- Все сложные сцены реализовать с помощью 5-ти Animator'ов, у каждого из которых вовремя включать нужную анимацию. Способ жестокий, потому что придется делать ключевые кадры анимаций по-отдельности, что будет крайне неприятно.
- Единственный вариант, который мне удалось придумать это:
Убрать Animator со всех персонажей. Поставить Animator SceneAnimator на объект AllScene. В SceneAnimator создать условно столько слоев аниматора, сколько есть сложных катсцен.
Сложным аниматором будет руководить скрипт, который в зависимости от ситуации будет руководить слоями так, чтобы каждым персонажем руководил ровно один слой. Тогда всю логику сложных сцен будет нетрудно реализовать с помощью анимаций и переходов между ними.
Вопрос: будет ли работать предложенный способ №3? Например верно ли будет себя вести персонаж если им руководит анимация на одном слое, а на других - выполняются пустые анимации?
Существует ли более удобный и эффективный способ реализовать такую сложную сцену?


