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

крос-платформений ігровий рушій З Вікіпедії, вільної енциклопедії

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

Unity — багатоплатформовий інструмент для розроблення відеоігор і застосунків, і рушій, на якому вони працюють. Створені за допомогою Unity програми працюють на настільних комп'ютерних системах, мобільних пристроях та гральних консолях у дво- та тривимірній графіці, та на пристроях віртуальної чи доповненої реальності. Застосунки, створені за допомогою Unity, підтримують DirectX та OpenGL.

Коротка інформація Тип, Розробник ...
Unity
Thumb
Thumb
Приклад роботи в Unity
ТипІгровий рушій,фреймворк
РозробникUnity Technologies
Стабільний випуск2021.3.6f1 (травень 2022)
ПлатформаWindows, macOS, Linux, Android і iOS 
Операційна система
Для розробки
Застарілі (v5.0)
Мова програмуванняC Sharp і C++ 
Доступні мовиАнглійська мова
ЛіцензіяВласницьке програмне забезпечення
Вебсайтunity3d.com
Закрити

Характеристики

Unity — це кросплатформовий ігровий рушій.[1] Програма-редактор Unity працює на Windows, macOS і Linux, а сам рушій може запускатися на 25 платформах[2][3], а саме iOS,[4] Android,[4] Tizen,[5] Windows,[4] Universal Windows Platform,[6] Mac,[7] Linux,[8] WebGL,[3] PlayStation 4,[4] PlayStation Vita,[9] Xbox One,[7] 3DS,[10] Oculus Rift,[4] Google Cardboard,[11] Steam VR,[12] PlayStation VR,[13] Gear VR,[3] Windows Mixed Reality,[14] Daydream,[15] Android TV,[16] Samsung Smart TV,[17] tvOS,[18] Nintendo Switch,[4] Xbox Series X та Series S,[19] PlayStation 5,[20] Facebook Gameroom,[15] Apple ARKit,[21] Google ARCore,[22] Vuforia,[22] і Magic Leap.[23]

Ігрова логіка пишеться за допомогою мови C#, раніше також була можливість використовувати Boo та JavaScript, але розробники відмовились від їх підтримки[24][25].

Можливості

Узагальнити
Перспектива
Thumb
Тривимірна графіка в Unity (гра Everything, 2017)

Робота з ресурсами

Редактор Unity має інтерфейс, що складається з різних вікон, які можна розташувати на свій розсуд. Завдяки цьому можна проводити налагодження гри чи застосунка прямо в редакторі. Головні вікна — це оглядач ресурсів проєкту, інспектор поточного об'єкта, вікно попереднього перегляду, оглядач сцени та оглядач ієрархії ресурсів[26].

Проєкт в Unity поділяється на сцени (рівні) — окремі файли, що містять свої ігрові світи зі своїм набором об'єктів, сценаріїв, і налаштувань. Сцени можуть містити в собі як об'єкти-моделі (ландшафт, персонажі, предмети довкілля тощо), так і порожні ігрові об'єкти — ті, що не мають моделі, проте задають поведінку інших об'єктів (тригери подій, точки збереження прогресу тощо). Їх дозволяється розташовувати, обертати, масштабувати, застосовувати до них скрипти. В них є назва (в Unity допускається наявність двох і більше об'єктів з однаковими назвами), може бути тег (мітка) і шар, на якому він повинен відображатися. Так, у будь-якого предмета на сцені обов'язково наявний компонент Transform — він зберігає в собі координати місця розташування, повороту і розмірів по всіх трьох осях. У об'єктів з видимою геометрією також за умовчанням присутній компонент Mesh Renderer, що робить модель видимою. Різні моделі можуть об'єднуватися в набори (ассети) для швидкого доступу до них. Наприклад, моделі споруд на спільну тему[27][28].

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

У 2D іграх Unity переважно використовує спрайти. В 3D іграх Unity здебільшого використовує тривимірні моделі (меші)[30], на які накладаються текстури (зумовлюють вигляд поверхні об'єктів), матеріали (зумовлюють як поверхня реагуватиме на різні фактори) та шейдери (невеликі скрипти, за яким вираховується зміна кольору кожного пікселя згідно заданих параметрів, як-от розсіяння відбитого світла)[31]. В обох видах застосовуються системи часток для відображення субстанцій, таких як рідини чи дим[30].

Unity підтримує стиснення текстур, міпмапінг і різні налаштування роздільності екрана для кожної платформи; забезпечує бамп-мапінг, мапінг відображень, паралакс-мапінг, затінення навколишнього світла у екранному просторі, динамічні тіні за картами тіней, рендер у текстуру та повноекранні ефекти обробки зображення, такі як зернистість, глибина чіткості, розмиття в русі[32], відблиски віртуальних лінз або ореол навколо джерел світла[33].

Рендеринг

Рендеринг зображення відбувається через віртуальну камеру огляду. В робочій області редактора ігрова сцена може розміщуватися як завгодно, а при рендерингу — так, як її видно з камери. В сцені може бути декілька камер, які рухаються за персонажем чи за вказаною траєкторією. Вигляд з камери подається в двовимірно чи тривимірно (в перспективі або ортографічно). Фон сцени, видимий через камеру, типово зображає небо, утворене скайбоксом, але може презентувати й інше довкілля[34].

Графічний рушій використовує 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.[35]

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

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

Скрипти

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

З виходом версії 5.2 у 2015 році передбачена вбудована можливість редагувати скрипти у середовищі Visual Studio[41].

Asset Tracking

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

Unity Asset Server

Сервер наборів ресурсів Unity — це платне доповнення, що додає інструментарій для спільної розробки на базі Unity багатьома користувачами одночасно та контроль версій у функціоналі Unity[43].

Багатогігабайтні проєкти з тисячами мегабайтних файлів піддаються легкому керуванню. Налаштування імпорту та інші метадані також зберігаються разом з історією їх версій. Переглядати зміни ресурсів\версій можна одразу всередині редактора Unity. Якщо файли змінюються, їх статус негайно оновлюється. Перейменування і переміщення ресурсів не створює будь-яких перешкод для безперервного робочого процесу. Сервер ресурсів Unity управляється базою даних PostgreSQL[43].

Сервер ресурсів доступний як для Mac OS X Installer, так і для Linux RPMs. Підтримка декількох платформ забезпечує гнучкість у впровадженні Сервера ресурсів Unity у наявну IT-інфраструктуру[44].

Історія

Узагальнити
Перспектива
Thumb
Гра Chaos Reborn (2015), створена на Unity

Ігровий рушій Unity було створено 2005 року, він мав на меті «демократизувати» розробку ігор, зробивши її доступною для більшої кількості розробників[45][46]. Він був показаний на Всесвітній конференції розробників 2005 року Скоттом Форстолом для Mac OS X[47]. 2006 року Unity посіла друге місце в категорії «Найкраще використання графіки Mac OS X» на Apple Design Awards від Apple Inc[48]. Unity спочатку був випущений для Mac OS X, пізніше додано підтримку Microsoft Windows і веб-браузерів.

  • Червень 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. Підтримка Windows як середовище розробки, перероблений редактор скриптів.
  • Квітень 2009, Unity приходить на ринок ігор Wii.
  • Жовтень 2009, Unity отримує інвестиції від Sequoia Capital в розмірі 5 500 000 доларів США.
  • Жовтень 2009, Unity 2.6. Indie-версія стала безкоштовною[49].
  • Грудень 2009, журнал «Gamasutra» назвав рушій Unity одним із найзначніших учасників на ринку ігрових компаній[50].
  • Березень 2010, Unity iPhone 1.6 Підтримка .NET 2.1, вбудована підтримка мережі та інші покращення.
  • Квітень 2010, Unity iPhone 1.7 Підтримка збірки ігор для iPad[49].
  • Вересень 2010, Unity Technologies й Electronic Arts (EA) уклали контракт про багаторічну співпрацю[51].
  • Листопад 2012, Unity 4.0. Покращена система анімації (доданий скінінг на GPU), освітлення. Додано візуальні ефекти. Додано підтримку збірки ігор під Linux і Adobe Flash. DirectX 11[52].
  • Листопад 2013, Unity 4.3. Підтримка 2D-спрайтів, інтеграція фізичного рушія Box2D, можливість збирати ігри для iOS у версії рушія для Windows[53].
  • Березень 2014, Unity 5. Нові шейдери та інтеграція з технологією глобального освітлення в режимі реального часу Geomerics Enlighten. Це принесе в ігри появу реалістичного освітлення та візуальних ефектів консольного рівня, а також математично точне відображення тіней. Нові інструменти WebGL дозволяють створювати в браузерах більш просунуті проєкти з більш високою продуктивністю[54].
  • Березень 2015, Повноцінна Unity 5 (містить вище перераховане) + додавання всіх можливостей з Pro-версії в Free. А в Unity Pro залишилось: Unity Analytics, Team License, Prioritized bug handling, Beta access, Dark Skin та інше[55][56]. Мова скриптів Boo була усунена, як і приклади коду на офіційному сайті документації.
  • Серпень 2017, Unity 2017. Інструмент Timeline для редагування заставок. Набір камер Cinemachine, що можуть слідувати за об'єктами та перемикатися за тригерами та змінювати ефекти зображення. Інструмент Post-Processing Stack, який об'єднує в собі всі візуальні ефекти. Робота з атласами спрайтів у 2D. Можливість записувати взаємодію об'єктів замість покладати їх обрахунок на гру[57].
  • Травень 2018, Unity 2018. Різні конвеєри рендерингу для різного рівня графіки. Компілятор на основі LLVM (Low Level Virtual Machine). Система написання ігрового коду C# Job System для підвищення продуктивності гри[58].
  • Квітень 2019, Unity 2019. Вдосконалення конвеєрів рендерингу. Інструмент Timeline Signals для керування заставками через тригери. Можливість оновлювати свої готові мобільні ігри замість перезбирати їх. Перебудова ядра Unity на базі DOTS (Data-Oriented Technology Stack) з використанням багатопотоковості процесора[59].
  • Червень 2020, Unity 2020. Система візуального створення скриптів Bolt. Детальніша інформація про набори ресурсів і помилки в них. Детальне налаштування об'єктів безпосередньо в сцені. Запуск інструмента Profiler для оцінки споживання ресурсів грою як окремої програми. Нові інструменти налагодження коду. Прискорена обробка спрайтів. Виведення зображення з кількох камер на одному екрані. Оптимізовано роботу з VR, додано підтримку HDR-дисплеїв[60].
  • Листопад 2020, Unity 2022. Візуальні пошукові запити. Прискорена робота з 2D-графікою, підтримка файлів PSD, таселяція Делоне. Полегшена розробка власних інструментів. «Успадкування» властивостей матеріалами, залежно від впливу на них. Детальна аналітика продуктивності[61].

Відомі ігри на Unity

Примітки

Посилання

Wikiwand - on

Seamless Wikipedia browsing. On steroids.