Игровая индустрия в современном мире довольно популярна. Особенно популярны игры со свободным миром и трёхмерной графикой. Я заинтересовался созданием 3D-игр. Мне стало интересно, как создаются подобные вещи и я попробовал создать свой небольшой мир со своеобразным ландшафтом и персонажами. Для создания проекта я выбрал программу для разработки двухмерных и трёхмерных игр и приложений Unity.
Так же существуют и другие программы, конкурирующие с Unity,такие как Unreal Engine и др., но я выбрал именно эту, так как в ней больше функций, большинство которых бесплатные в отличие от конкурентов.
По прогнозам некоторых экономистов: индустрия компьютерных игр в скором времени может стать более прибыльной, чем даже чем нефтяная.
Цель этой работы – создать игровую программу на уже имеющемся движке.
Вложение | Размер |
---|---|
Создание трёхмерной игры на движке Unity | 37.19 КБ |
Министерство образования и науки Республики Крым
МАЛАЯ АКАДЕМИЯ НАУК УЧАЩЕЙСЯ МОЛОДЁЖИ «ИСКАТЕЛЬ»
Секция информатики
Создание трёхмерной игры на движке Unity
Работу выполнил:
Литовский Александр Олегович, дч МАН
ученик 11 класса
МБОУ Новофёдоровская школа-лицей
Руководитель:
Доненко Леонид Николаевич,
учитель физики и информатики высшей категории
Новофедоровка – 2015 г.
Содержание
Глава 3. Работа с программой 7
Список использованных источников 12
Игровая индустрия в современном мире довольно популярна. Особенно популярны игры со свободным миром и трёхмерной графикой. Я заинтересовался созданием 3D-игр. Мне стало интересно, как создаются подобные вещи и я попробовал создать свой небольшой мир со своеобразным ландшафтом и персонажами. Для создания проекта я выбрал программу для разработки двухмерных и трёхмерных игр и приложений Unity.
Так же существуют и другие программы, конкурирующие с Unity,такие как Unreal Engine и др., но я выбрал именно эту, так как в ней больше функций, большинство которых бесплатные в отличие от конкурентов.
По прогнозам некоторых экономистов: индустрия компьютерных игр в скором времени может стать более прибыльной, чем даже чем нефтяная.
Цель этой работы – создать игровую программу на уже имеющемся движке.
Unity — это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux[1], а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One. Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL. Ранее была экспериментальная поддержка реализации проектов в рамках модуля Adobe Flash Player , но позже команда разработчиков Unity приняла сложное решение по отказу от этого.
Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL. Активно движок используется как крупными разработчиками (Blizzard[4], EA, QuartSoft, Ubisoft), так и разработчиками Indie-игр (например, ремейк Мор. Утопия (Pathologic), Kerbal Space Program, Slender: The Eight Pages, Slender: The Arrival, Surgeon Simulator 2013, Baeklyse Apps: Save the Bubble и т. п.) в силу наличия бесплатной версии, удобного интерфейса и простоты работы с движком.
Создав приложение или игру вы можете сделать её под практически любой гаджет или компьютер.
Редактор Unity имеет простой Drag&Drop интерфейс, который легко настраивать, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе. Движок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Boo убран в 5ой версии. Расчёты физики производит физический движок PhysX от NVIDIA. Проект в Unity делится на сцены (уровни) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки»). Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям. У объектов с видимой геометрией также по умолчанию присутствует компонент Mesh Renderer, делающий модель объекта видимой.
К объектам можно применять коллизии (в Unity т. н. коллайдеры — collider). Существует несколько типов коллайдеров:
Character controller — вид физической модели, созданный специально под использование его для игровых персонажей;
Box collider (физическая модель образует куб, в который попадает вся модель объекта);
Sphere collider (физическая модель образует сферу, в которую попадает вся модель объекта);
Capsule collider (физическая модель образует капсулу, в которую попадает модель объекта. В отличие от предыдущего типа размеры можно менять и по одной, и по трём осям сразу);
Mesh collider (физическая модель полностью повторяет реальную геометрию объекта);
Wheel collider (физическая модель колеса);
Terrain collider — тип физической модели, созданный специально для использования на объекте типа Terrain — земля, генерируемая редактором Unity с возможностями скульптинга и окрашивания местности.
При открытии программы Unity нас мы видим непосредственно рабочий стол и поле, на котором мы будем создавать объекты.
Я создал игровое приложение, которое предлагаю Вам рассмотреть.
Большинство современных 3D игр используют несколько камер, чтобы показать часть игрового мира, которую камера персонажа в данный момент не видит. Для Unity это не сложно, он (игровой движок) позволяет размещать несколько камер в одной сцене, которые могут быть настроены так, что бы была возможность использовать любую из них, как основную (главную) камеру (main camera), во время игры. Нескольких камер могут быть использованы в игре, что бы управлять визуализацией (rendering) отдельных 2D и 3D элементов, как метод оптимизации.
Например, объекты могут быть сгруппированы по слоям (layers), а камеры могут быть назначены на визуализацию (render) объектов в отдельных слоях. Это дает нам больше контроля над индивидуальной визуализацией(individual renders) определенных элементов в игре.
При построении 3D фигур, все объекты, в конечном счете, состоят из связанных 2D фигур – называемых полигонами (polygons). При импорте из 3D приложений, Unity преобразует все полигоны объектов в треугольные полигоны (polygon triangles). Треугольные полигоны (polygon triangles) (так же называемые faces), в свою очередь, состоят из трех граней (edges). Места, в которых эти грани (edges) встречаются, называются точками или вершинами (points или vertices). Зная эти места, игровой движок способен произвести расчеты точек удара, известных как collisions (столкновения), используя сложное обнаружение столкновений (complex collision detection) с Mesh Colliders, в шутерах, возможно определить точное место, в котором пуля поразила другой объект. Благодаря сочетанию связанных полигонов 3D редакторы позволяют создавать сложные фигуры, называемые мешами (meshes). Данные, хранящиеся в мешах (meshes), могут использоваться для ряда иных задач, отличных от построения 3D фигур.
В игровых проектах, очень важно для разработчика понять важность количество полигонов (polygon count). Количество полигонов это общее число полигонов, часто по отношению к модели, но и со ссылкой на весь уровень игры. Чем больше количество полигонов, тем больше работы компьютеру необходимо сделать, чтобы визуализировать(render) объект на экране. Разработчику игр необходимо найти баланс между количеством полигонов (детализация моделей, количество объектов на уровне и т.д.) и производительностью визуализации (render).
Материалы (Materials) общее понятие для всех 3D приложений, так как они обеспечивают средства для создания внешнего вида 3D моделей. От базовых цветов до отражающих поверхностей (reflective image-based), материалы способны на все. Начиная с простых цветов и возможность использовать один или несколько изображений – известных как текстуры (textures) – в одном материале, и заканчивая, работай с шейдерами (shader), чей код отвечает за стиль визуализации (rendering). Например, при использовании шейдеров отражения (reflective shader), материал будет отражать окружающие предметы, но при этом сохраняют свой цвет и внешний вид изображения, применяемого в качестве текстуры.
В Unity, использовать материалы легко. Любые материалы созданные в 3D редакторах, будут импортированы и автоматически воссозданы игровым движком в качестве ресурса (assets), для дальнейшего применения. Вы так же можете создать свой собственный материал “с нуля”, назначив изображение из файла текстуры и выбрав нужный шейдер из обширной встроенной библиотеки. Вы так же можете написать собственный скрипт шейдера или использовать созданные членами сообщества (community) Unity.
Важно отметить, что при создании текстуры для игры в графических пакетах, таких как Photoshop, вы должны быть осведомлены о данном соглашении. Текстуры должны быть квадратными и иметь размер равный степени двух, т.е. они должны иметь разрешение равное:
• 32 x 32
• 64 x 64
• 128 x 128
• 256 x 256
• 512 x 512
• 1024 x 1024
Вы также должны знать, что чем больше текстура, которую вы используете, тем больше вычислительной мощности будет требоваться от компьютера игрока.
Физика жестких тел. Rigid Body physics.
Для разработчиков, работающих с игровым движком, физический движок (physics engines) производит симуляцию физических законов реального мира в мире виртуальном с той или иной степенью достоверности. Unity, в качестве физического движка, использует Nvidia's PhysX engine.
В игровом движке отсутствует предположение, что все объекты подвержены физическому воздействию, т.к., во-первых, это требует огромных вычислительных затрат, и во-вторых, в этом нет необходимости. Например, в автогонках, автомобиль находиться под влиянием физического движка, но не окружающие предметы, такие как деревья, стены и т.п., т.к. в этом нет необходимости. Поэтому, делая игры, компонент Rigid Body присвоен любому объекту, который, по вашему замыслу, должен находиться под контролем физического движка (physics engine).
Физический движок используют систему динамики Rigid Body, для создания реалистического движения. Это означает, что вместо статичных объектов, находящихся в 3D мире, мы имеем объекты, у которых могут быть следующие свойства:
• Масса (Mass)
• Гравитация (Gravity)
• Скорость (Velocity)
• Трение (Friction)
Все эти моменты были реализованы мной в данной игре.
Для просмотра любого скрипта Unity, вам нужно открыть его в редакторе скриптов. Для этого нужно выбрать скрипт в окне проекта (Project), а затем дважды кликнуть на его значке (или нажать кнопку Edit, в Inspector-е), чтобы открыть скрипт для редактирования.
На PC, редактор скриптов по умолчанию называется Uniscite. Это автономное приложение, которое позволяет вам редактировать различные форматы текстового файла, JavaScript и C # пример двух таких форматов.
Вы можете использовать и другие, удобные для вас, текстовые редакторы, для написания скриптов Unity.
Unity делает процесс производства игры простым, давая Вам ряд логических шагов, чтобы построить любой мыслимый сценарий игры. Известный тем, что был "не типом игры", определенным, Unity предлагает Вам чистый холст и ряд последовательных процедур, чтобы позволить Вашему воображению быть пределом Вашего творческого потенциала. Устанавливая его использование понятие Объекта Игры,
Вы в состоянии трансформировать части своей игры в легко управляемые объекты, которые сделаны из многих отдельных составных частей. Вы в состоянии бесконечно расширить свою игру в логической прогрессивной манере. У составных частей в свою очередь есть параметры настройки переменной( var ) по существу, чтобы управлять ими. Регулируя эти переменные, у Вас будет полный контроль над эффектом, который Компонент имеет на Ваш объект.
10 осенних мастер-классов для детей
Бородино. М.Ю. Лермонтов
Зимний дуб
Военная хитрость
Ласточка