Unity (ігровий рушій)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Unity
Интерфейс программы
ТипІгровий рушій,фреймворк
РозробникUnity Technologies
Стабільний випуск2019.1 (квітень 2019)
Операційна система
Мова програмуванняC Sharp і C++
Доступні мовиАнглійська мова
ЛіцензіяВласницьке програмне забезпечення
Вебсайтunity3d.com

Unity — багатоплатформовий інструмент для розробки дво- та тривимірних додатків та ігор, що працює на операційних системах Windows і OS X. Створені за допомогою Unity застосунки працюють під системами Windows, OS X, Android, Apple iOS, Linux[1], а також на гральних консолях Wii, PlayStation 3 і XBox 360.

Є можливість створювати інтернет-додатки за допомогою спеціального під'єднуваного модуля для браузера Unity, а також за допомогою експериментальної реалізації в межах модуля Adobe Flash Player[2]. Застосунки, створені за допомогою Unity, підтримують DirectX та OpenGL.

Технічні характеристики

  • Ігрова логіка пишеться за допомогою C#, раніше також була можливість використовувати Boo та JavaScript, але розробники відмовились від їх підримки[3][4].
  • Ігровий рушій повністю пов'язаний із середовищем розробки. Це дозволяє випробовувати гру прямо в редакторі;
  • Робота з ресурсами можлива через звичайний Drag&Drop.
  • Підтримка імпортування великої кількості форматів файлів;
  • Вбудований генератор ландшафтів;
  • Вбудована підтримка мережі;
  • Інтерфейс редактора дуже гнучкий, є можливість писати свої вікна редактора та різноманітні розширення для нього.
  • Існує рішення для спільної розробки — Asset Server. Також можна використовувати зручний для користувача спосіб контролю версій. Наприклад, SVN або Source Gear;

Функціональні можливості

Редактор Unity має простий Drag & Drop інтерфейс, який легко налаштовувати, що складається з різних вікон, завдяки чому можна проводити налагодження гри прямо в редакторі. Рушій підтримує три сценарних мови: C #, JavaScript (модифікація). Проект в Unity ділиться на сцени (рівні) — окремі файли, що містять свої ігрові світи зі своїм набором об'єктів, сценаріїв, і налаштувань. Сцени можуть містити в собі як, об'єкти (моделі), так і порожні ігрові об'єкти — тобто ті, які не мають моделі. Об'єкти, в свою чергу містять набори компонентів, з якими і взаємодіють скрипти. Також у них є назва (в Unity допускається наявність двох і більше об'єктів з однаковими назвами), може бути тег (мітка) і шар, на якому він повинен відображатися. Так, у будь-якого предмета на сцені обов'язково присутній компонент Transform — він зберігає в собі координати місця розташування, повороту і розмірів по всіх трьох осях. У об'єктів з видимою геометрією також за умовчанням присутній компонент Mesh Renderer, що робить модель видимою.

Також Unity підтримує фізику твердих тіл і тканини, фізику типу Ragdoll (ганчіркова лялька). У редакторі є система успадкування об'єктів; дочірні об'єкти будуть повторювати всі зміни позиції, повороту і масштабу батьківського об'єкта. Скрипти в редакторі прикріплюються до об'єктів у вигляді окремих компонентів.

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

Рендеринг

Графічний рушій використовує DirectX (Windows), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), та спеціальне власне API для Wii. Також підтримуються bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), динамічні тіні з використанням shadow maps, render-to-texture та повноекранні ефекти post-processing.[5]

Unity підтримує файли 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks та Allegorithmic Substance. В ігровий проект Unity можна імпортувати об'єкти цих програм та робити налаштовування за допомогою графічного інтерфейсу.[6]

Для написання шейдерів використовується ShaderLab, що підтримує шейдерні програми написані на GLSL або Cg. Шейдер може включати декілька варіантів реалізації, що дозволяє Unity визначати найкращий варіант для конкретної відеокарти.[7]Unity також має вбудовану підтримку фізичного рушія Nvidia PhysX (колишнього Ageia), підтримку симуляції одягу в системі реального часу на довільній та прив'язаній полігональній сітці (починаючи з Unity 3.0), підтримку системи ray casts та шарів зіткнення.[8]

Скрипти

Скриптова система ігрового рушія зроблена на Mono — вільний відкритий проект з реалізації .NET Framework. Програмісти можуть використовувати UnityScript (власна скриптова мова, подібна до JavaScript та ECMAScript), C# або Boo (мова програмування, подібна до Python).[9] Починаючи з версії 3.0, до Unity входить перероблена версія MonoDevelop для зневадження скриптів.[10]

Із виходом версії 5.2 передбачається вбудована можливість редагувати скрипти у середовищі Visual Studio

Asset Tracking

В Unity включено систему контролю версій Unity Asset Server для ігрових об'єктів та скриптів. Система використовує PostgreSQL, роботу зі звуком, побудовану на основі бібліотеки FMOD (з можливістю програвати Ogg Vorbis аудіофайли), відеопрогравач із кодеком Theora, рушій для побудови ландшафтів рослинності, вбудовану систему карт освітлення (Beast), мережу для мультиплеєру (RakNet) та вбудовані навігаційні меші для пошуку шляху.[11]

Unity Asset Server

Інструментарій для спільної розробки на базі Unity. Сутність розробки ігор — це робота в команді. Сервер ресурсів Unity це доповнення, яке додає контроль версій у функціонал 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 одним із найзначніших учасників на ринку ігрових компаній[12].
  • Березень 2010, Unity iPhone 1.6 Добавлена підтримка .NET 2.1, вбудована підтримка мережі та інші покращення.
  • Квітень 2010, Unity iPhone 1.7 Добавлена підтримка iPad.
  • Вересень 2010, Unity Technologies и Electronic Arts (EA) уклали контракт про багаторічну співпрацю[13].
  • Листопад 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 дозволяють створювати в браузерах більш просунуті проекти з більш високою продуктивністю.
  • Березень 2015, Повноцінна Unity 5. (Вище перераховане) + Додавання всіх можливостей з Pro. версії в Free. а в Unity Pro. залишилось: Unity Analytics, Team License, Prioritized bug handling, Beta access, Dark Skin та інше. Мова скриптів Boo була прибрана, як і приклади коду на офіційному сайті документації.

Станом на літо 2013 року кількість зареєстрованих користувачів Unity3d виросло до 2 мільйонів користувачів[14]. Загалом це пов'язано з тим, що indie-версія рушія стала безкоштовною.

Примітки

  1. Официальная информация о поддержке GNU/Linux на сайте Unity (англійською) . 28 серпня 2012. Архів оригіналу за 21 листопада 2012. Процитовано 29 березня 2013.
  2. Dean Takahashi (21 грудня 2011). Unity Technologies developers will be able to publish 3D games via Adobe Flash (англійською) . VentureBeat. Архів оригіналу за 9 червня 2012. Процитовано 11 березня 2012.
  3. UnityScript’s long ride off into the sunset – Unity Blog. Unity Technologies Blog (амер.). Процитовано 26 червня 2019.
  4. Documentation, Unity scripting languages and you – Unity Blog. Unity Technologies Blog (амер.). Процитовано 26 червня 2019.
  5. Using DirectX11 in Unity 4. Unity Technologies. Архів оригіналу за 27 серпня 2013. Процитовано 19 лютого 2013.
  6. How do I import objects from my 3D app?. Unity Technologies. Архів оригіналу за 27 серпня 2013. Процитовано 19 лютого 2013.
  7. Shaders. Unity Technologies. Архів оригіналу за 27 серпня 2013. Процитовано 19 лютого 2013.
  8. Physics. Unity Technologies. Архів оригіналу за 27 серпня 2013. Процитовано 19 лютого 2013.
  9. Using Scripts. Unity Technologies. Архів оригіналу за 30 січня 2013. Процитовано 19 лютого 2013.
  10. Getting started with Mono Develop. Unity Technologies. Архів оригіналу за 27 серпня 2013. Процитовано 19 лютого 2013.
  11. Asset Server (Pro Only). Unity Technologies. Архів оригіналу за 27 серпня 2013. Процитовано 19 лютого 2013.
  12. Christian Nutt. Gamasutra's Best Of 2009: Top 5 Game Companies (англ.). Gamasutra. Архів оригіналу за 9 червня 2012. Процитовано 11 березня 2012. Unity has become a major player in the market as of 2009, and there's more to come
  13. Unity Technologies Wins GigaOM’s Mobilize LaunchPad 2010 (англ.). Unity Technologies. 1 жовтня 2010. Архів оригіналу за 9 червня 2012. Процитовано 11 березня 2012. We’re excited about and proud of our long term relationship with Electronic Arts.
  14. Another million Unity developers in the house

Ресурси для навчання

  • UNITYSTUDY [рус.] — Курси по навчанню Unity для початківців.
  • unity3d.com/ru/learn [англ.] — Офіційна сторінка по навчанню Unity.

Посилання