Анимация персонажей в 3ds max

         

Вечно движущаяся игрушка



Так каков же механизм, с помощью которого персонаж появляется в игровом мире? В следующий раз, играя в FPS или другую «стрелялку», посмотрите на ступни персонажей при ходьбе или беге. Несомненно, они немного сдвигаются относительно персонажа. Это обусловлено тем, что обычно анимации персонажей создаются «на месте». Проиллюстрировать связь персонажа, его анимаций и кода можно с помощью заводного игрушечного солдатика. Поднимите игрушку, заведите ее и держите над полом. Ноги солдатика двигаются, но с полом не соприкасаются. Преодоление расстояния моделируется перемещением вашей руки: игрушка не стоит на полу и не идет по нему самостоятельно. В случае персонажа игры в реальном времени роль руки исполняет код - он перемещает персонаж, запускает одну анимацию, когда происходит определенное событие, или другую, когда случается следующее, кажется, что персонаж бежит, идет, отступает в сторону или назад (рис. 5.9).



Рис. 5.9. Заводная игрушка «Солдатик Betty»


Этот подход, несмотря на свою простоту, не может в полной мере имитировать реальность по двум причинам. Во-первых, скорость, с которой код перемещает персонаж, невозможна в реальном времени. Действие должно быть быстрым, яростным и стремительным. Поэтому персонажи двигаются быстрее, чем должны; как правило, масштаб игрового мира огромен, и в этом мире просто не существует способа, которым можно было бы путешествовать в реальном времени на большие расстояния.

Согласно проведенным оценкам в игре Doom персонажи бегут со скоростью около 145 км/ч. В игре Quake скорость движения персонажей уменьшилась до 101 км/ч, а в Quake II они двигались с ничтожной скоростью 82 км/ч.





Вторая причина, по которой персонажи перемещаются неправдоподобным способом, - это их широкий шаг. Когда персонаж перемещается программными средствами, его ступни бегут с одной скоростью, а перемещается он с другой, но они обе постоянны. При ходьбе, беге или движении назад, при начале движения или остановке нет периодов нарастания или замедления скорости. Даже повторяющаяся анимация имеет небольшие расхождения с действительностью в расстоянии, которое нужно покрыть при движении в соответствии с циклом (рис. 5.10).

Расстояние между точками А и В равно всего лишь 8,5 единицы, потому что Betty только начинает отходить назад. Расстояние между точками В и С составляет 29,3 единицы, это практически длина широкого шага Betty. Из точки С в точку D она перешагивает 33,7 единицы и вполне укладывается в шаг, как и при переходе из точки D в точку Е, расстояние между которыми равно 39,8 единицы. Расстояние между точками Е и F равно 34,1 единицы, шаг замедляется, Betty наклоняется немного вперед. Отрезок между точками В и F можно назвать полным циклом (посмотрите на левую ногу), но есть различие в расстояниях, которые будут покрыты за несколько соседних циклов. К сожалению, некоторые аспекты анимации не соответствуют действительности - они зависят от технологии и не могут ее опережать.



Рис. 5.10. Длина каждого шага от старта до финиша разная


Содержание раздела