Unity (игровой движок)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Unity
Unity Logo.png
Interface Unity 3D.jpg
Интерфейс программы
Тип

Игровой движок

Разработчики

Unity Technologies

Написана на

Си и C++

Операционная система

Microsoft Windows, Mac OS X, Linux, Xbox 360, Wii, Wii U, PlayStation 3, PlayStation 4, PlayStation Vita, Windows Phone, iOS, Android, Native Client, Adobe Flash и Smart TV

Последняя версия

4.5.3

Лицензия

лицензия несвободного программного обеспечения

Сайт

unity3d.com

Unity на Викискладе

Unity — это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux[1], а также на игровых приставках Wii, PlayStation 3 и Xbox 360, Xbox One. Есть возможность создавать интернет-приложения с помощью специального подключаемого модуля к браузеру Unity, а также с помощью экспериментальной реализации в рамках модуля Adobe Flash Player[2]. Позже от поддержки Flash отказались. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL. Активно движок используется разработчиками Indie-игр (например, Slender: The Eight Pages, Slender: The Arrival, Surgeon Simulator 2013, и т. п.) в силу наличия бесплатной версии, удобного интерфейса и простоты работы с движком.

Возможности[править | править вики-текст]

Редактор Unity имеет простой Drag&Drop интерфейс, который легко настраивать, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе. Движок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Редактор поддерживает DirectX 11 и HDR. Расчёты физики производит физический движок 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 поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла). В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта. Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.

При импорте текстуры в Unity можно сгенерировать alpha-канал, mip-уровни, normal-map, light-map, карту отражений, однако непосредственно на модель текстуру прикрепить нельзя — будет создан материал, которому будет назначен шейдер, и затем материал прикрепится к модели. Редактор Unity поддерживает написание и редактирование шейдеров. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в 3D-редакторе и импортировать вместе с моделью, а затем разбить на файлы.

Помимо пустого игрового объекта и моделей, на сцену можно добавлять ещё такие объекты типа GameObject:

  • Система частиц;
  • Камера;
  • GUI текст;
  • GUI текстура;
  • 3D текст;
  • Точечный свет;
  • Направленный свет;
  • Освещение территории;
  • Источник света, имитирующий солнце;
  • Стандартные примитивы;
  • Деревья;
  • Terrain (земля).

Unity 3D поддерживает систему Level of distance (сокр. LOD), суть которой заключается в том, что на дальнем расстоянии от игрока высокодетализированные модели заменяются на менее детализированные, и наоборот, а также систему Occlusion culling, суть которой в том, что у объектов, не попадающиих в поле зрения камеры не визуализируется геометрия и коллизия, что снижает нагрузку на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создается исполняемый (.exe) файл игры (для Windows), а отдельной папке — данные игры (включая все игровые уровни и динамически подключаемые библиотеки).

Движок поддерживает множество популярных форматов, таких как:

  • .3ds, .max, .obj, .fbx, ,dae для трёхмерных моделей;
  • .mp3, .wmv, .ogg для звуковых файлов;
  • .bmp, .gif, .png, .tga, .psd, .tif, .dds для изображений;
  • .mov, .ovg для видеофайлов.

Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат .unityassets и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity. Unity имеет все нужные компоненты для создания мультиплеера. Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN или Source Gear.

Unity Asset Server[править | править вики-текст]

Gone Home — Unity

Инструментарий для совместной разработки на базе Unity. Сущность разработки игр — это работа в команде. Сервер ресурсов Unity это add-on, который добавляет контроль версий в функционал Unity.

Система контроля версий

Сервер ресурсов Unity это полнофункциональное решение для контроля версий для всех игровых скриптов и ресурсов. Как и все остальное в Unity, он прост в использовании.

Оптимизация для больших проектов

Много-гигабайтные проекты с тысячами много-мегабайтных файлов управляются с изяществом. Настройки импорта и все другие метаданные также хранятся точно также вместе с историей изменений их версий. Наблюдать за изменением ресурсов\версий можно прямо внутри Редактора Unity. Если файлы подвергаются изменениям, их статус немедленно обновляется. Переименование и перемещение ресурсов не создает каких-либо препятствий для непрерывного рабочего процесса.

Сервер с открытым исходных кодом

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

Mac OS X или Linux

Сервер ресурсов доступен как для Mac OS X Installer, так и для Linux RPMs. Поддержка нескольких платформ дает вам гибкость в том, как внедрить Сервер ресурсов Unity в вашу существующую IT-инфраструктуру.

История[править | править вики-текст]

  • Июнь 2005, Unity 1.0.1. Первый выпуск.
  • Август 2005, Unity 1.1. Добавлена сборка игр под Windows и поддержка плагинов C/C++.
  • Декабрь 2005, Unity 1.2. Добавлены эффекты постобработки, рэгдолл, тени, встроенный скрипт управления персонажем, расширены возможности редактора скриптов.
  • Октябрь 2008, Unity iPhone 1.0 Unity приходит на iPhone.
  • Октябрь 2008, Unity iPhone 1.0 Начало официальных продаж Unity iPhone.
  • Март 2009, Unity 2.5.0. Добавлена поддержка Windows средой разработки, переработан редактор скриптов.
  • Апрель 2009, Unity приходит на рынок игр для Wii
  • Октябрь 2009, Unity получает инвестиции от Sequoia Capital в размере 5 500 000 долларов США.
  • Октябрь 2009, Unity 2.6.0. Indie-версия стала бесплатной.
  • Декабрь 2009, журнал Gamasutra назвал движок Unity одним из самых значительных участников на рынке игровых компаний.[3]
  • Март 2010, Unity iPhone 1.6 Добавлена поддержка .NET 2.1, встроенная поддержка сети и прочие множественные улучшения.
  • Апрель 2010, Unity iPhone 1.7 Добавлена поддержка iPad.
  • Сентябрь 2010, Unity Technologies и Electronic Arts (EA) заключили контракт о многолетнем сотрудничестве.[4]
  • Ноябрь 2012, Unity 4.0.0. Улучшена система анимации (добавлен скиннинг на GPU), освещения. Добавлены визуальные эффекты. Добавлена сборка игр под Linux и Adobe Flash. DirectX 11
  • Ноябрь 2013, Unity 4.3. Поддержка 2D-спрайтов, интеграция физического движка Box2D, возможность собирать игры для iOS в версии движка для Windows.
  • Март 2014,Unity 5.Новые шейдеры и интеграция с технологией глобального освещения в режиме реального времени Geomerics Enlighten.Это принесет в игры появление реалистичного освещения и визуальных эффектов консольного уровня, а также математически точное отображение теней. Новые инструменты WebGL позволяют создавать в браузерах более продвинутые проекты с более высокой производительностью.

По состоянию на лето 2013 года количество зарегистрированных пользователей Unity 3D выросло до 2 миллионов пользователей.[5] В основном это связано с тем, что indie-версия движка стала бесплатной.

Игры на движке Unity[править | править вики-текст]

Сборки[править | править вики-текст]

Помимо бесплатной, существуют четыре сборки — стандартная Unity[6], Unity iOS Pro[6] (для разработки игр под iOS), Android Pro[6] и командная лицензия. Они отличаются стоимостью и функционалом.

В бесплатной версии многое ограничено, однако возможность создавать игры сохраняется, но их можно распространять, если ежегодный доход с игры не превышает 100 000$[7]

Примечания[править | править вики-текст]

  1. Официальная информация о поддержке GNU/Linux на сайте Unity (англ.) (28 August 2012). Архивировано из первоисточника 21 ноября 2012.
  2. Dean Takahashi. Unity Technologies developers will be able to publish 3D games via Adobe Flash (англ.). VentureBeat (21 December 2011). Проверено 11 марта 2012. Архивировано из первоисточника 9 июня 2012.
  3. Christian Nutt. Gamasutra's Best Of 2009: Top 5 Game Companies (англ.). Gamasutra. — «Unity has become a major player in the market as of 2009, and there's more to come»  Проверено 11 марта 2012. Архивировано из первоисточника 9 июня 2012.
  4. Unity Technologies Wins GigaOM’s Mobilize LaunchPad 2010 (англ.). Unity Technologies (1 October 2010). — «We’re excited about and proud of our long term relationship with Electronic Arts.»  Проверено 11 марта 2012. Архивировано из первоисточника 9 июня 2012.
  5. Another million Unity developers in the house
  6. 1 2 3 Unity — Store
  7. - Unity Software License Agreement 4.x

Основные ссылки[править | править вики-текст]