Https://Youtube.Com/Clip/UgkxkyuStCKnTBhIu1t9TCnr6IGAo2aIh98m Привет, подскажите, как лучше всего реализовать вот такую анимированную сцену? Изначально

думал сделать всё одной анимацией, но столкнулся с кучей ограничений редактора.
Кажется, проще всего написать свой компонент, который будет императивно управлять всей сценой, вручную менять спрайты, вручную проигрывать звуки, и т.д.
Но, может, кто-нибудь подскажет готовый удобный инструмент из ассет стора (или я просто не умею работать с анимациями и контроллерами, и вы подскажете - как это делать на них).

2 ответов

21 просмотр

Катсцены в Unity можно делать с помощью Cinemachine. В Package Manager устанавливается.

Ал-Кипленд Автор вопроса

Посмотрел в сторону Cinemamachine, но оттуда подходит только камера с зумом, это сделаю и сам. В итоге пришёл к такой концепции: - Отдельно описываю шаблоны персонажей и атак. - Создаю параметризуемый Scene Controller. - Описываю IBattleAction, которые выполняются последовательно, расставляя персонажей, перемещая их, управляют фокусом камеры, включают звуки и меняют анимационные клипы. Получается: - Unity использую для биндинга звуков и графики. - Контроллер управляет всей сценой. - В зависимости от того, кто, кого и чем атакует, формируется разный набор IBattleAction для описания сцены. yield return ChangeScene(Attacker); yield return new BattlerAction.ChangeAnimation(Attacker, Attack.InitAnimation); yield return new BattlerAction.PlaySound(Attack.InitSound); yield return new BattlerAction.MoveForward(Attacker); yield return new BattlerAction.WaitOutOfScreen(Attacker); yield return ChangeScene(Defender); yield return new BattlerAction.ResetPosition(Attacker); yield return new BattlerAction.MoveForward(Attacker); yield return new BattlerAction.WaitAttackRange(Attacker, Defender, Attack); yield return new BattlerAction.ChangeAnimation(Attacker, Attack.HitAnimation); yield return new BattlerAction.PlaySound(Attack.HitSound); yield return FadeScene(Defender); От идеи использования Animation Event и прочих контроллеров, параметризуемых в Unity отказался - слишком много ограничений.

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта