netlib.narod.ru< Назад | Оглавление | Далее >

Обзор трехмерной анимации

Сперва выясним, что же такое трехмерная анимация? В двух словах — это выполнение действий с одним или несколькими объектами в трехмерном пространстве, изменяющих их с течением времени каким-либо образом. Думаете, почему это нужно вам, разработчику стратегических игр? Хорошо, объясню специально для начинающих: трехмерный танк в вашей игре будет выглядеть не слишком правдоподобно, если его гусеницы не двигаются, а трехмерный механоид не выглядит впечатляющим, если антена его радара не вращается. Чтобы понять как трехмерная анимация вписывается в общую картину разработки игр, сперва надо усвоить следующие концепции:

Сцена

Первое, что потребуется вам для трехмерной анимации — сцена. Сцена это всего лишь набор трехмерных объектов. Звучит элементарно, правда? Взгляните на сцену, изображенную на рис. 11.1.


Рис. 11.1. Трехмерная сцена визуализированная в 3ds max

Рис. 11.1. Трехмерная сцена визуализированная в 3ds max


На иллюстрации показан результат визуализации созданной в 3ds max сцены. (Компания Discreet была настолько любезна, что предоставила старому доброму автору свое программное обеспечение для этой книги, так что пожалуйста рассмотрите их программы, когда будете выбирать пакет трехмерного моделирования для себя.) Обратите внимание на составляющие сцену трехмерные объекты. Самыый бросающийся в глаза объект — вода. Кроме того, здесь есть небо, несколько островов и одинокая рыбацкая лодка. Все эти объекты вместе и составляют сцену. Поняли? Хорошо, идем дальше.

Объекты

Объекты — это источник жизненной силы трехмерной анимации. Без объектов не было бы ни сцен ни анимации. Что такое объект? В этой главе объектом будет называться трехмерная модель, состоящая из полигонов, цветов и текстур. Возьмем к примеру механоида, упомянутого мной минутой раньше. Механоид, как вы хорошо знаете, представляет собой бронированного боевого робота. К тому же у рассматриваемого в примере механоида наверху есть вращающаяся антена радара. Поскольку антена вращается независимо от движения тела механоида, она является отдельным объектом. Итак, в этом примере у нас два трехмерных объекта: тело механоида и антена радара. Хотя эти два объекта всегда существуют вместе, они должны быть отдельными, чтобы вы могли анимировать их независимо друг от друга. Другой пример, танк, изображен на рис. 11.2.


Рис. 11.2. Танк

Рис. 11.2. Танк


Как видите, танк состоит из башни, корпуса, гусениц и колес. Поскольку башня может вращаться независимо от корпуса, она должна быть отдельным объектом. То же самое справедливо для гусениц и колес.

Фиксированные объекты

Другой метод трехмерной анимации состоит в комбинировании всех составляющих модель объектов и сохранении изменений для анимации в нескольких файлах моделей. Этот метод используется в игре Quake, поскольку реализовать его гораздо проще, чем отслеживать состояние нескольких объектов, составляющих единое целое. Хотя запрограммировать этот метод проще, он не всегда будет самым лучшим, поскольку приводит к повторению одинаковых фрагментов для каждого кадра.

Ключевые кадры

Теперь мы переходим к будничной, но абсолютно необходимой части анимации. Чтобы анимировать объект вы задаете серию ключевых кадров. В каждом кадре вы вносите какое-нибудь изменение, чтобы объект отличался от своего изображения в предыдущем кадре. Для наших целей при переходе от одного кадра к другому вы можете поворачивать, перемещать или масштабировать объект. Предположим, вы хотите, чтобы башня танка повернулась на 45 градусов. Взгляните на рис. 11.3.


Рис. 11.3. Два кадра танка

Рис. 11.3. Два кадра танка


На иллюстрации изображены два ключевых кадра танка. На левом кадре объект башни находится в исходном состоянии. На кадре справа объект башни повернут на 45 градусов влево. Как видите, ключевой кадр это просто снимок объекта в определенный момент времени. На рис. 11.3 есть одна проблема — при наличии только двух кадров нельзя показать постепенный разворот башни. Это элементарно решается путем добавления дополнительных кадров. Взгляните на рис. 11.4 где представлена более детальная анимация танка.


Рис. 11.4. Более детальная анимация танка

Рис. 11.4. Более детальная анимация танка


Здесь в анимации башни больше ключевых кадров. Вместо двух их стало шесть. Это повышает качество анимации.

Автоматическая вставка промежуточных кадров

Помните, что вам не обязательно создавать ключевой кадр для каждого изменения объекта. Вы можете использовать метод, называемый автоматическая вставка промежуточных кадров (tweening). В этом случае вы задаете ключевые кадры и алгоритм, который будет генерировать промежуточные изображения для плавной анимации. Пример представлен на рис. 11.5.


Рис. 11.5. Автоматическая вставка промежуточных кадров при анимации танка

Рис. 11.5. Автоматическая вставка промежуточных кадров при анимации танка


На рис. 11.5 вы видите ту же самую анимацию танка, но на этот раз я отметил ключевые кадры дополнительно обведя контур танка. Остальные, промежуточные кадры создаются автоматически, чтобы обеспечить плавный переход от одного ключевого кадра к другому. Ясно? Хотя автоматическая генерация промежуточных кадров во многих случаях может оказаться полезной, в примерах программ из данной главы ради простоты я ее не применяю.

Анимационные наборы

К настоящему моменту у вас есть сцена, состоящая из объектов с набором ключевых кадров для выполнения анимации. Кроме этого вооружения аниматора вам необходимы анимационные наборы. Зачем? Чтобы ваша жизнь стала проще. Вы знаете что говорится: программисты по своей природе ленивы. Именно поэтому они всегда пытаются писать программы, для того чтобы упростить работу. Или чтобы не покупать изделия других программистов. Кто еще работает 26 часов в сутки? Шутка. Если серьезно, анимационные наборы — хороший способ сэкономить время при разработке игры. Взгляните на рис. 11.6, где изображены анимационные наборы в действии.


Рис. 11.6. Анимационный набор для танка

Рис. 11.6. Анимационный набор для танка


На рис. 11.6 изображены три анимационных набора для танка. Верхний называется «поворот башни влево», средний — «поворот башни вправо», а нижний — «откат орудия». Идентифицировав таким образом анимационные наборы, вы можете произвольным образом комбинировать их, чтобы оживить объекты в игре. Возьмем, к примеру, стратегическую игру в которой требуется, чтобы башня танка повернулась влево, затем возвратилась в исходное положение, после чего был бы произведен выстрел из орудия. Если попробовать сделать для этого отдельную анимацию, то в результате у вас будут тысячи, если не миллионы отдельных анимаций для изображения каждого возможного сценария. Благодаря анимационным наборам вы можете создавать небольшие простые анимации, а затем динамически объединять их. Ниже приведен список анимационных наборов, необходимых для футуристической игры с боями механоидов.

В списке перечислены названия различных анимационных наборов, комбинация которых позволяет реализовать динамическую анимацию объекта. Правда, здорово?

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

netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz