Создаем Locomotion систему в UDK

Locomotion системаПродолжая работать над постановкой стоп персонажа в UDK через инверсную кинематику (IK), мы плавно переходим к созданию так называемой Locomotion-системы для UDK. Вечно меня тянет в те области, в которых я вообще не разбираюсь! ;)

В чем же заключаются недостатки обычной IK-системы для постановки стоп?

Во-первых, она работает пост-фактум. Т.е. корректировка стопы осуществляется уже после того, как в анимации стопа поставлена на землю. А учитывая неровность поверхности — поставлена изначально неправильно. Стопа проваливается в землю и только после получения сигнала из анимации корректируется IK-контроллером. Смотрится это, честно говоря, не айс!

Во-вторых, в процессе перемещения стоп под воздействием анимации также не осуществляется корректировки положения стопы с учетом рельефа местности. Например, перешагивая через камень, стопа волшебным образом пройдет сквозь него. Смотрится это также не айс.

А в чем же заключается отличие Locomotion-системы от постановки стоп при помощи IK-контроллеров?


( Читать дальше )
  • +1
  • 05 ноября 2012, 14:20
  • dimanjy
  • 1

Процедурная (программная) анимация в UDK

Настало время заняться программированием анимации в UDK. Чтобы освоить этот аспект разработки игр на Unreal Engine, попробуем начать с чего-то простого, но в тоже время полезного. Создадим актера (Actor), который будет проигрывать различные заданные нами анимации в ответ на какое-либо внешнее воздействие или действие игрока. В качестве примера представим себе экскаватор, который игрок может заставить копать, нажав на рычаг или кнопку. Понятно, что экскаватор должен быть выполнен в виде модели со скелетной анимацией (SkeletalMesh). Если мы хотим заставить экскаватор ездить и при этом копать, то нам, возможно, придется использовать AnimTree и блендинг различных анимаций. Также вместо экскаватора можно представить себе какой-либо более-менее сложный роботизированный станок с механической рукой, или что-то в этом роде…

Для имитации простого механизма со скелетом я создал болванку, похожую на лапу экскаватора:

Простой SkeletalMesh в UDK



( Итак, приступим... )