Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Компьютерная анимация

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Особенности 2D графики в компьютерных играх. Анимации движения персонажей. Конвейер контента в проектах. Контент-импортер и контент-процессор. Понятие компонента в XNA и его использование. Визуальные и механические эффекты. Методы исполнения спецэффектов.
Краткое сожержание материала:

Размещено на

ВВЕДЕНИЕ

Ни для кого не секрет, что видео игры прочно заняли свою позицию в современной индустрии развлечений. Существуют попытки выделить компьютерные игры как отдельную область искусства, наряду с театром, кино и т.п. Разработка игр может оказаться не только увлекательным, но и прибыльным делом, примеров этому предостаточно в истории. Первые примитивные компьютерные и видео игры были разработаны в 1950-х и 1960-х годах. Они работали на таких платформах, как осциллографы, университетские мейнфреймы и компьютеры EDSAC. Самой первой компьютерной игрой стал симулятор ракеты, созданный в 1942 году Томасом Голдсмитом Младшим (англ. Thomas T. Goldsmith Jr.) и Истл Рей Менном (англ. Estle Ray Mann). Позже, в 1952 году, появилась программа "OXO", имитирующая игру "крестики-нолики", созданная А.С. Дугласом как часть его докторской диссертации в Кембриджском Университете. Игра работала на большом университетском компьютере, известном как EDSAC (Electronic Delay Storage Automatic Calculator). В настоящее время, разработка игры - это многомиллионный процесс, в котором задействована целая команда разработчиков, сложные современные технологии и даже маркетинговые ходы.

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1 Особенности 2D графики в компьютерных играх

Система координат.

Двумерная система координат, предназначенная для представления графики в компьютерных играх, перевернута по отношению к обычной декартовой системе координат. Т.е. начало этой системы координат находится в левом верхнем углу экрана. Такая практика, кстати, была введена еще на этапе становления первых «устройств вывода» типа монитор. Положительная ось Х проходит по верхней кромке экрана слева направо, а положительная ось Y - сверху вниз по левой боковой стороне экрана.

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

Ключевым понятием в двухмерной графике является спрайт.

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

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

Вектора - это структура данных, которая хранит в себе несколько вещественных чисел, логически связанных между собой. В компьютерной графике повсеместно используются три типа векторов - это Vector2, Vector3 и Vector4. Доступ к отдельным компонентам получается через {x, y}, {x, y, z}, {x, y, z, w} соответственно для каждого из векторов. Vector2, например, дает возможность задавать две координаты по осям X и Y для положения в пространстве в 2д играх, а Vector4 позволяет описать любой цвет в формате RGBA (к примеру, красный цвет описывается, как {255, 0, 0, 255}).

1.2 Конвейер контента в проектах на XNA

Контент - целый конвейер по обработке содержимого для игры.

Существует множество различных форматов файлов для обозначения, по сути, одних и тех же вещей. Картинки могут иметь расширение jpg или bmp, png или gif. Музыка может храниться в форматах mp3, wav, ogg, а видео в avi, mkv или mp4. И это лишь капля в море возможных форматов. Из всего этого получается, что для обработки каждого из форматов надо знать конкретно его внутреннюю структуру, принцип записи данных в файле. Соответственно и обработка каждого формата должна производиться индивидуально. Однако XNA исправляет ситуацию введением такого понятия, как конвейер содержимого (Content Pipeline). Суть этого механизма заключается в том, что при использовании XNA вы не работаете напрямую с файлами ресурсов (mp3, wav, jpg и т.д.), а работаете с некоторым абстрактными понятиями, типа «текстура», «модель», «музыка». Визуально схему работы с контентом в XNA можно изобразить следующим образом

Рис. 1 - Схема работы с контентом в XNA

1.3 Контент-импортер и контент-процессор

Первым этапом при добавлении содержимого в нашу игру идет контент-импортер. Это специально написанная библиотека, которая «исследует» входной файл и по описанным правилам его обрабатывает - задает структуру, характерную для необходимого в будущем типа (модель, звук). Так же в контент-импортере, путем использования атрибутов, задается имя контент-процессора, который должен будет использоваться для загрузки и обработки уже скомпилированного бинарного (двоичного) файла формата xnb во время работы игры, и расширения исходных файлов, которые будут обрабатываться данным импортером. Выходным файлом мы получим скомпилированный xnb, готовый для использования на следующем этапе - загрузке контента в игре. Тут в дело вступает характерный контент-процессор, имя которого записано прямо внутри самого xnb файла. Файл полностью самодостаточен и, даже будучи бинарным, может быть открыт на любом компьютере с XNA Framework'ом, в отличие от обычных файлов, за распознавание расширений которых отвечает операционная система. Т.е. контент-процессор отвечает за корректное считывание информации из файла контента и приведение его к внутреннему типу -будь то Model, Texture2D, Effect или как-то другой.

1.4 Понятие компонента в XNA и его использование

Особенностью XNA Framework, которую нельзя не упомянуть, являются «игровые компоненты»:

§ Microsoft.Xna.Framework.Game Component

§ Microsoft.Xna.Framework.Drawable Game Component.

Смысл компонентов состоит в том, чтобы автоматизировать и стандартизировать вызов обновления (Update), отрисовки (Draw), загрузки контента (Load Content) и инициализации логики (Initia lization) для игровых объектов. Т.е. «облегчить» основной класс игры, внеся логику по работе с каждым объектом внутрь самого объекта и при этом сохранить структуру методов, предлагаемых нам шаблоном XNA. В итоге, просто добавив класс, наследник компонента, в коллекцию компонентов игры один раз, мы можем уже не думать о нем.

Первый компонент призван работать с невидимыми, но постоянно обновляемыми объектами, типа сила и направление ветра или логики искусственного интеллекта (ИИ) компьютерных оппонентов, а второй - для объектов, которые еще должны и выводится на экран, к примеру, счетчик FPS (Frame Per Second) или курсор мыши.

1.5 Компьютерная анимация

Слова «анимация» и «мультипликация» означают одно и то же. На «западный манер» будем использовать первый вариант. Слово animation с английского языка можно перевести как оживление или воодушевление. Когда мы видим обычное рисованное изображение, которое, вдруг начинает двигаться и изменяться, то может действительно показаться, что произошло что-то невероятное, и картинка ожила. Но научное мировоззрение не позволяет нам поверить в это; поэтому обратимся к другому, логичному объяснению.

Если множество похожих изображений (рис. 2) быстро сменять друг за другом, то при определенной скорости смены человек будет воспринимать происходящее как плавное движение (или изменение) объекта на рисунке.

Рис. 2. Ряд изображений, при быстрой смене которых может возникнуть эффект анимации

Оптимальная скорость смены для человека равна 24 изображения (или кадра) в секунду. На самом деле в одном кадре может присутствовать несколько изображений (слоев). Кроме того, может быть всего одно изображение, которое в каждом последующем интервале времени (кадре) будет смещаться на небольшую величину (такую простейшую анимацию можно наблюдать, когда создаются спецэффекты в компьютерной презентации).

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

Компьютерная анимация создается с помощью специальных программ. Их достаточно много. Условно можно выделить два или три вида ПО для создания анимации:

1. Программы, позволяющие создавать анимацию из готовых изображений (различные gif-аниматоры, например, Microsoft GIF Animator).

2. Программные среды, позволяющие создавать 2D анимацию (например, Adobe Flash CS4, Synfig).

3. Программные среды, позволяющие создавать 3D анимацию (например, Autodesk 3ds Max, Blender).

Другие файлы:

Графика и анимация
Я выбрала эту тему, потому что мне интересно работать с компьютерной графикой и анимацией. Создавать новые проекты, редактировать уже созданные с учет...

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

Общая и специальная компьютерная практика (компьютерная графика)
Понятие растра и растровой графики. Аффинные преобразования на плоскости и в пространстве. Цветовые модели RGB, MCYK. Алгоритмы вывода линий и фигур,...

Компьютерная анимация физических процессов
Знакомство с технологией и возможностями применения флеш-анимации в образовательном процессе. Мультимедийные технологии как одно из наиболее бурно раз...

Компьютерная графика и анимация как средство медиаобразования
Сущность медиаобразования: базовые проблемы, развитие, цель обучения. Анализ образного мышления, компьютерной графики и анимации, процесс создания мул...