Открыть список
Как стать автором
Обновить

Комментарии 15

У меня вот такой вопрос по 2D анимации (возможно глупый, Unity для меня — просто увлечение). Допустим мы делаем стратегию, в ней есть юниты, например пехотинец красной команды и пехотинец синей команды, для них нарисованы несколько spritesheet (idle для красного и синего, бег и т.п.), очевидно, что для анимации используются спрайты. Логика контроллера и набор анимаций одинаковы, разница лиш в spritesheet (ведь у нас синие и красные). Вопрос: возможно ли, и если да, то как, использовать один и тот же Animation Controller вместе с набором AnimationClip (idle, бег..) для обоих пехотинцев? Или, если точнее, возможно ли подменять спрайты или целые spritesheet в AnimationClip? Или же надо создавать клоны Animation Controller/AnimationClip для каждого вида?
Присоединяюсь у вопросу. Вообще как-то можно делать анимацию с параметрами? Если есть несколько объектов со схожей анимацией — можно ли как-то унифицировать процесс?
Пока дошел только до идеи реализовывать анимацию через скрипты и передвать туда все, что нужно, но это как-то топорно.
Параметризацию можно сделать через BlendTree в Mecanim.
Посмотрите видео от Unity Tech. в ютуб канале. Там среди них было выдиео, где докладчик реализовал движение 2д персонажа (пчёлка летала) в любые стороны на один раз подготовленных анимациях. То есть если у вас разные персонажи отличаются лишь спрайтами, но используют одинаковые анимации, то одна и та же стэйт-машина может ими управлять, а в скриптах мы только лишь задаём параметры для неё.
Дополнение: анимации тогда лучше делать через кривые, а не покадровые SpriteSheet'ы. В таком случае не будет Pixel Perfect, но жизнь станет значительно проще.
Спибо за информацию. Про BlendTree и Mecanim впервые услышал. Буду изучать.
Да, BlendTree очень мощная штука. Обязательно посмотрите в стороне нее.
Почему вы не сделали разные анимации для разных подобъектов и не настроили стэйты в Mecanim? В итоге остался бы всего один скрипт, управляющий стэйт-машиной.
Хотелось полностью визуального контроля над анимациями. Чтобы ты на таймлайне мог видеть, что после чего идет и сколько времени занимает.
Визуальный редактор Mecanim'а — недостаточный контроль? Там же всё буквально мышкою настраивается. И сэйты и переходы и условия переходов и блендинг и так далее.
Да, Механим хорош именно для смены стейтов одного спрайта по каким-то условиям/триггерам. Но для реализации на нем секвенции анимаций, привязанной по длительности к каждой из вложенных — неудобно. Гораздо удобнее видеть все на таймлайне.

По крайней мере, говорю за себя.
Я понимаю, на вкус или цвет маркеры разные. Вам удобнее флеш-стайл, я же говорю, что и секвенции, особенно по длительности, делать в меканиме достаточно удобно и наглядно. Но это уже вопрос привычки.
Я так понял, что стандартных событий для анимаций не существует, что то типа начало/конец анимации. И их надо самому выставлять на таймлайне?
Да, так и есть. Особенно не хватает события окончания анимации, которое вызывалось бы не на последнем кадре анимации, а после него (в первом кадре следующей анимации, если предусмотрен переход). В своём проекте я реализовал такую возможность жутким костылём. Может кто-нибудь предложит решение?
Жду не дождусь юнити 5, где много чего вкусного.
Спасибо за статью. У меня вопрос по событиям анимации.
Если повесить несколько на одном кадре, эти «якоря» в таймлайне встают друг за друга, а срабатывает только первое событие. Зачем вообще давать возможность кидать назначать несколько методов на один кадр, если срабатывает один? Или есть возможность заставить срабатывать сразу все?

И еще очень и очень интересует вопрос, как получить длину анимации из аниматора? Я использую Animator с кучей клипов внутри и либо они переключаются по внутренним условиям, либо переключаю их с помощью _animator.Play("Mlee");. Как в данном случае получить из аниматора, сколько по времени займет анимация Mlee?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.