Этот метод создания анимационных сцен я придумал сам, хотя, возможно, он уже где-нибудь реализован. Что-то подобное есть в Unreal Engine, но там используется графическая форма, которая, на мой взгляд, тут лишняя, и применяется она не совсем так. Затраты на рисование схемы гораздо больше, чем толк от неё.
Идея такова, что любое важное для синхронизации движений событие указывается прямо в тексте слов персонажа и прямо в его анимации. А последующие действия, титры или речь привязываются уже к этому тригеру.
На мой взгляд, это позволит сделать анимацию более естественной и простой для режиссёра, причём не привязывая её ко времени (без кейфреймов). В частности, это позволит переводить безактёрный фильм, не ограничивая длительность фраз при дубляже.
Объясню на примере. Допустим, частный детектив называет имя убийцы, а потом указывает, почему он так решил. Хотя сыщик ещё продолжает говорить, все люди, присутствующие в помещении, реагируют именно на имя, фамилию или профессию преступника (например, в фразе "убийца - садовник").
Соответственно, в этом примере тригер должен стоять после слова садовник. Назовём его названубийца (в тексте тригер может указываться в квадратных или фигурных скобках, либо создаваться специальным инструментом, это сейчас не существенно).
Теперь самое интересное - анимация реакции. Большинство присутствующих, видимо, будут удивлены, а подозреваемые могут выдохнуть с облегчением. То есть у них нужна запись вроде при( названубийца + 0,1 ) играть( выдохсоблегчением + удивление ), игратьвцикле( зантересованноеслушание ). Разумеется это всё может указываться в диалоговых окнах, хотя текстовая запись делается быстрее. 0,1 - это время реакции на событие (в секундах).
То есть не важно, в какой именно момент будет назван убийца - режиссёр спокойно может регулировать этот процесс, важен только тригер. То есть можно добавить или удалить текст, добавить дополнительную сцену - это ничего не поменяет, всё будет срабатывать.
Но самое интересное будет за столом убийцы, рядом с которым сидит инспектор (заранее предупреждённый о личности киллера). Преступник, видимо, сначала испугается, потом возьмёт себя в руки, затем выберет тактику дальнейшего поведения. Например, полезет в карман, вытащит пистолет.
В момент, когда он начинает движение (тригер движениеначато), то же самое делает инспектор, стараясь помешать ещё одному убийству, угрозе пистолетом или взятию заложников.
Программа всегда способна проследить, какой тригер за каким вызывается, поэтому может написать, ответом на какую реплику является данная фраза, и даже нарисовать схему диалогов в сцене. Поэтому, хотя физически режиссёром дерево диалогов не рисуется, посмотреть на все связи в сцене вполне возможно.