Форум » Персонажи (Actors) » Баг нецикличной анимации. Кто сталкивался? » Ответить

Баг нецикличной анимации. Кто сталкивался?

Dionysius: У меня возникла проблема с анимацией, когда первый и последний её кадры различаются. Когда персонаж встаёт или садится, похоже на то, что движок воспроизводит первый кадр повторно. Заметно подёргивание между переходом из анимации "standup" (встать) и "idle" (бездействие), а также между "sitdown" (сесть) и "work" (работает за компьютером). Вот exe-файл, демонстрирующий баг http://reptilesquest.mirgames.ru/download/bug.zip (5,2 Mb) нажимаем F1 - персонаж садится нажимаем F2 - встаёт

Ответов - 3

Pipec: Понаблюдал за твоим примером, создал сам тестовую сцену и вот что заметил. Если движок переходит на новую анимацию, в которой первый кадр не соответствует последнему кадру предыдущей анимации, то движок сам просчитывает положение костей для выполнения перехода. Поэтому у тебя и наблюдается легкий рывок, когда твой персонаж садится и начинает работать на компьютере. Когда же персонаж встает, то, если верить тому что ты писал на официальном форуме, ты запускаешь несуществующую анимацию Поэтому движок не может просчитать правидьный переход от анимации к анимации и просто проигрывает анимацию вставания в обратном порядке но быстрее. Если понаблюдать внимательно, то не повторяет первый кадр, а повторяет всю анимацию, только в обратном порядке Чтобы проверить это, я создал тестовую сцену, в которой простой болванчик, созданный в Character Studio из стоячего вертикально положения наклоняется вперед (анимация 1), а потом из положения вперед наклоняется назад (анимация 2). http://halloween.com.ua/temp/test.zip Алгоритм был такой, нажал F1, чурбан наклонился вперет, а потом запускается несуществующая Idle. Движок проигрывает анимацию в обратную сторону и чурбан опят сотит вертикально. Вроде субъективно все ок. Потом нажал F2, запускается вторая анимация, в которой 1-й кадр - чурбан наклонен вперед. Чурбан наклоняется из положения вперед в положение назад, а потом опять запускается несуществующая Idle. Анимаця проигрывается в обратную сторону. Поскольку движение началось из положение наклон вперед, в это же положение персонаж и возвращается, а потом встает вертикально. И создается впечатление, что анимация дергается. Мне кажется,чтобы избежать этой неприятности, нужно переходить из анимации на анимацию, у которой первый кадр соответствует последнему кадру предыдущей анимации. Попробуй.

Dionysius: Хм... надо попробовать

Dionysius: Чё-то сразу не сообразил, а ведь у меня так и есть: последний кадр "sitdown" совпадает с первым кадром "work". И если задать побольше время перехода между анимациями actor.SetAnimTransitionTime("sitdown", "work", 500), то заметно, что анимация переходит из первого кадра "sitdown" в первый кадр "work". Я удивляюсь, почему на оф. форуме никто не ответил? Неужели никто никогда не сталкивался с этой проблемой? Кстати, и в твоей exe-шке я не увидел никакого чурбана почему-то...




полная версия страницы