(Текст записи скрыт. Показать...)
Programming
(Текст записи скрыт. Показать...) Вопрос знатокам Unity. Есть казалось бы простая задача. Сделать плавный переход от одной к другой анимации. Однако в процессе реализации наткнулся на особенность: при коротких анимациях <= 0.5с CrossFade при необходимом FadeLength (0.25-0.3с) съедает кадры текущей анимации. А задача стоит, чтобы текущая доигралась в неизменном виде до конца, а после этого произошел плавный переход в следующую анимацию. Вызов CrossFade по Event на последнем кадре не приводит ни к необходимому результату - анимация начинается рывком. Если кто сталкивался с подобным, подскажите как решить проблему не контентом (это мутный вариант). Заранее спасибо.
не скажу за CrossFade, но если делать руками, то можно поставить анимации режим WrapMode.ClampForever и после завершения старой анимации в течение 0.25-0.3сек снижать ее вес до нуля и от нуля поднимать вес новой - переключаться будет плавно и без проблем с длинами анимаций.
Хм, а как же тот факт что Clamp режим играет в обратную сторону анимацию, т.е. получится смешение не совсем корректное. Или я что-то упускаю?
ClampForever это не PingPong, хотел бы заметить, зачем ему играть в другую сторону?
http://unity3d.com/support/documentation/ScriptReference/WrapMode.html
ClampForever для time>length всегда берет последний кадр просто, т.е. блендиться будет последний кадр старой анимации с началом новой анимации. при небольших временах бленда (0.2-0.5сек) тот факт, что старая уже не играется, будет совершенно незаметен.
|
Списки доступа
Права доступа
Вы можете читать группу, но не можете отвечать на сообщения и создавать новые темы.
Доступ для остальных:
|
Copyright © 2021 ООО "ДТФ.РУ". Все права защищены.
Воспроизведение материалов или их частей в любом виде и форме без письменного согласия запрещено.
Замечания и предложения отправляйте через форму обратной связи.