Closed MrTGN closed 7 years ago
Коммент из Pawn: "Note that animation channels 2 through 11 are used for animation updating by physics". Что означает, что каналы со 2-го по 11 зарезервированы под воспроизведение анимации, основанной на физике Pawn. Значит для проигрывания анимации, которая не перезаписывалась бы анимацией физики, нужно использовать каналы 0 и 1.
В идеале нужно задействовать больше каналов для анимации, что бы она все смешивалась и плавно проигрывалась. На каналах 0 и 1 проигрывается анимация, которая может быть перезаписана анимацией движения. Это удобно в тех случаях, когда нужно проиграть анимацию атаки и получения не критического урона. В тех же случаях, когда нужно проиграть полноценную анимацию, которая ничем не должна быть перезаписана, нужно уже использовать канал с 12 и выше, дабы такая анимация точно проигралась поверх анимации движения. При этом по завершению проигрывания анимации на таком канале нужно будет убирать его AlphaBlend обратно в 0,0, дабы он не перекрывал проигрывание анимации движения в дальнейшем.
Получается, что нужно для нормального плавного проигрывания анимации использовать два канала под анимацией движения (каналы 0 и 1), а так же 12 канал над анимацией движения. На 0 и 1 канале будут проигрываться анимации атаки и получения некритического урона. На 12 же канал будет проигрываться важная анимация, конца которой нужно ждать.
Таким образом мы уже обходим проблему, с которой столкнулись разработчики оригинального Killing Floor, когда вводили дополнительные проверки, дабы анимация атаки на ходу не прерывалась анимацией получения урона.
Так. На данный момент эта доработка не столь необходима. Её нужно хорошо обдумать и просмотреть код анимации в целом. Ибо добавление дополнительного канала для анимации потребует дополнительных проверок на смешивание и т.д. Переношу на следующий Milestone.
Закрываю. Слишком много заморочек пока в реализации. А результат не будет столь заметен. Оно того не стоит.
В Killing Floor анимация монстров проигрывается довольно топорно. Она резко сменяется при тех или иных событиях и выглядит это не очень хорошо. Связано это с тем, что разработчиками используется лишь два канала для анимации, а так же они почти не использует возможности движка по смешиванию анимаций. Первое, что нужно сделать - это выставить плавный переход от старой анимации, к новой. Второе - проверить нужно ли проигрывать анимацию на 0 канале, ибо как я понял, на этом канале проигрывается анимация физического движения. Т.е. это канал для проигрывания анимации на основе физики, которая выбирается в зависимости от того, в каком физическом состоянии находится монстр - падает, идет, ползет по лестнице, летит и т.д. Проверить все ли анимации используются, ибо есть ивенты для проигрывания анимации на прыжка и приземления. Но есть подозрение, что они тоже не используются.