Unity – отличный движок для создания многих прототипов: от игр до интерактивных визуализаций. Это программное обеспечение отвечает за объединение всего того, что разработчик будет использовать в своих видеоиграх, двухмерных или трехмерных моделях, звуковых эффектах, анимации, музыке, интерактивности, игровом процессе. Он сможет не только создавать уровни и миры собственной видеоигры, но и экспортировать ее для консолей: Windows, Linux, Html5, Android, iOS, tvOS, PlayStation, Xbox, Windows Phone. Движок передаст все инструкции ЦП и видеокарте, чтобы генерировались изображения игры. Он работает, генерируя от 30 до 60 изображений в секунду. Такая быстрая последовательность позволяет участникам видеть плавные действия, происходящие в видеоиграх. Игровой движок, такой как Unity, предоставляет пользователю в помощь высокопроизводительную программную архитектуру, которая дает ему возможность не вникать в технические детали проекта, а сосредоточиться на разработке дизайна видеоигры. Новичкам, чтобы освоить Unity, придётся пройти онлайн-курсы.
Кратко об игровом движке Unity
Unity Technologies выпустила Unity летом 2005 года. После этого события создание 2D-игр стало невероятно простым и быстрым. Сообществу было представлено три основных инструмента, способных сделать программу доступной для оформителей и разработчиков: Tilemap Editor, Timeline и Cinemachine. Редактор Tilemap был выпущен немного позднее и позволил программистам рисовать непосредственно в Unity.
Tilemap Editor дает возможность создавать обширные и сложные Tilemaps без использования сторонней программы. Редактор шкалы времени и Cinemachine были выпущены практически одновременно, хотя серьезные улучшения для Cinemachine были представлены сообществу позже.
Cinemachine — это набор камер, позволяющих создавать ролики. Инструмент демонстрирует, как камера отслеживает игровой объект, и предлагает лучший вариант. Редактор временной шкалы — инструмент, который позволяет пользователю создавать сценарии игровых объектов, подобных редактору фильмов. С помощью этих двух инструментов он может воссоздавать потрясающие композиции и написать любой код.
Прежде чем начать работать с движком Unity, пользователь должен пройти онлайн-обучение, чтобы понять его основы, навигацию по интерфейсу с использованием трех основных инструментов манипулирования: Translate, Rotate и Scale, научиться создавать префабы, добавлять и изменять компоненты внутри «Инспектора».
Для того чтобы творить с движком Unity 2d-игры, на пользовательском компьютере должны быть установлены Unity и некоторые 2D-приложения, такие как Ps, Gimp, SketchPad или MS Paint. Также разработчик должен хорошо разбираться в основах C #, таких как создание переменных, их изменение и вызов функций. Технические требования:
- Компьютер с Windows 7 SP1 или выше либо macOS 10.12 Sierra и выше.
- Доступ в интернет для загрузки бесплатной версии Unity.
Хотя Unity изначально имела бесплатную версию, но многие из опций, например помощь публикации для мобильных устройств, были доступны только в платной версии. С выходом Unity 5 ее философия изменилась, а ограничения увеличились. Бесплатных функций стало намного меньше, что существенно снижает ее преимущества.
Изучение интерфейса Unity
Рабочая область разделена на четыре части, где пользователь может организовать свой процесс создания проекта. Окно иерархии с левой стороны показывает все объекты, которые в данный момент находятся на сцене. В окне сцены должны строиться и размещаться игровые объекты.
Внизу есть еще одна рабочая область, где можно закрепить различные вкладки в удобной области. Главное окно редактора состоит из окон, которые можно переупорядочить, сгруппировать или отсоединить и свернуть. Это означает, что внешний вид редактора может отличаться в зависимости от проекта, личных предпочтений разработчика и типа выполняемой работы. Расположение окон по умолчанию обеспечивает удобный доступ к наиболее распространенным окнам.
Окно проекта (Project) показывает пользовательские библиотечные активы, которые доступны для использования, когда разработчик импортирует активы в свой проект.
Вид сцены (Scene View) позволяет разработчику осуществлять визуальную навигацию и редактирование. Он может отображать двухмерную или трехмерную перспективу, в зависимости от типа проекта, над которым работает.
Окно Иерархии (Hierarchy) представляет собой иерархическое представление текста для каждого объекта в сцене. Каждый элемент в сцене имеет запись в иерархии, так что два окна неразрывно связаны между собой. Иерархия структуры показывает, как объекты сгруппированы друг с другом.
Окно Инспектора (Inspector) позволяет просматривать и редактировать все свойства выбранного объекта. Так как объекты имеют различные свойства, макет (дизайн) и содержимое Окна Инспектора будут меняться.
Окно редактора Unity
Окно редактора разделено на несколько разделов. Unity Game Objects — просмотр сцены: позволяет размещать и перемещать объекты GameObject в сцене и является основным строительным блоком проекта в игровом движке Unity. Все, что разработчик помещает на сцену в Unity, должно быть заключено в «игровой объект». Если у пользователя есть опыт веб-дизайна, он может использовать его в GameObjects, как элементы – контейнеры. Они легко расширяются для создания сложных функций или визуальных эффектов. Создание Иерархии происходит так же, как и в веб-разработке. Логика вложения игровых объектов во многом аналогична веб. Чтобы добавить контейнерам функциональности, прибавляют компоненты, которые, по сути, являются скриптами, написанными на C # или Javascript. Unity работает с моделью Actor Component, проще говоря, GameObjects — это актеры, а Components — сценарии.
Создание настраиваемого окна редактора заключается в следующем:
- Создается сценарий, полученный из окна редактора.
- Используется код, чтобы активировать окно.
- Реализуется код GUI для пользовательского инструмента.
Для создания «Окна Редактора» пользовательский скрипт нужно сохранить в папке с именем «Редактор». Создают в этом скрипте класс, производный от «Окна Редактора». А после прописывают элементы управления GUI в функции OnGUI внутри.
Первые шаги использования Unity
Начинают работу с наиболее простого — загружают и настраивают Unity. Закачку свежей версии выполняют с официального сайта, после чего запускают установку. Редактирование в Unity 4 и выше выполняет редактор MonoDevelop. Для тех, кто использует Windows, специалисты рекомендуют применять в качестве альтернативы Visual Studio 2013 (C#), после этого в опциях движка меняют его по умолчанию.
При запуске Unity у пользователя будет кнопка для создания нового проекта – New Proyect. Ей присваивают имя и выбирают вариант 2D. Unity откроет проект, и если по какой-то причине на ПК не загружена последняя версия, движок предложит обновление.
Далее появится экран, разделенный на различные рабочие области окна, организованные определенным образом в макет:
- Сцена — это место, где происходит игра, а разработчик добавляет спрайты и ресурсы для взаимодействия друг с другом.
- Иерархия — тут расположены все спрайты, объекты и ресурсы, добавленные на сцену, но сгруппированные по иерархии.
- Инспектор — при выборе объекта из «Сцены» или «Иерархии» он сообщает все его детали и характеристики: положение, размер и другие.
- Проект — здесь отображаются доступные ресурсы — активы игры.
- Кнопки симуляции — именно они позволяют начать проект или приостановить его.
- В разделе «Ресурсы» находятся ресурсы, которые будут использованы в игре. Вначале эта область будет пустой, но можно заполнить ее изображениями, если добавить спрайты.
Перед тем как перенести ресурсы в проект Unity, лучше распределить их по папкам. Затем можно легко переносить их, щелкнув правой кнопкой мыши на «Активы» и выбрав «Показать» в Проводнике. Далее заходят в папку «Активы» и копируют туда нужные ресурсы. В проекте также есть возможность использовать хранилище ресурсов: Window-> Asset Store или нажав Ctrl + F9.
Графические ресурсы для видеоигры
Графика в видеоиграх очень важна, потому что именно она привлекает внимание потенциальных клиентов для загрузки игры. Если в проекте будет стоять уродливая графика, никто не выберет такую игру, даже если у нее шикарный игровой сценарий.
После выбора темы пользователю потребуется графика персонажей (спрайтов) и фон. Он может создавать их сам или скачать с интернет-страниц. Популярные графические ресурсы для загрузки: Spriter ресурс, Vxresource, Jpengameart, Gamedev и некоторые другие. На сайте Unity также есть раздел, где можно купить и скачать бесплатные ресурсы видеоигр. Для загрузки звуков обычно используют Freesound и находят в Google бесплатные звуки и музыку.
Многие изображения спрайтов формируются из столбцов и строк одного и того же повторяющегося изображения, но с небольшими изменениями. Обычно каждая строка представляет собой набор рисунков, которые создают определенную анимацию спрайта, например в данном случае строка 1 — кукла, двигающаяся вниз, 2 ряд — слева, 3 — справа и 4 — сверху. Таким образом, на одном изображении имеются все анимации персонажа.
Простая 2D-видеоигра состоит в основном из анимированных спрайтов — двигающихся кукол, неподвижных объектов, с которыми спрайт может взаимодействовать и которые могут быть анимированными, а также платформы – неподвижных объектов и фонов.
Во многих видеоиграх средства используются Параллакс — фоны расположены в несколько слоев, которые движутся с разными скоростями относительно друг друга, чтобы дать ощущение глубины перемещения. Они придают игре фон изумительной красоты и динамичности.
Добавление графических ресурсов на игровую сцену
Для добавления графики на «Сцену» нужно перетащить нужный ресурс из окна «Активы» в окно «Сцена». В окне «Иерархии» с левой стороны видны все ресурсы, которые добавлены в проект. После выбора в окне «Инспектора» можно расширить его размер, переместить их и изменить глубину.
Некоторые особенности ресурсов в Unity:
- Позиция — положение может быть изменено как с «Инспектора», так и со «Сцены» с использованием координаты X и Y.
- Вращение — угол поворота, с которым показывают спрайт.
- Масштаб может быть изменен как от «Инспектора», так и от «Сцены». Если он имеет значение 1, то это нормальный размер, если равен 2, то это двойное увеличение.
- Порядок в Layar — это очень важно, так как именно он указывает очередность, в котором объекты будут изображены. Например, если есть птица с порядком в Layar = 0, а другая с порядком в Layar = 1, то птица с наивысшим порядком будет нарисована поверх другой.
В этом примере видно, что кукла и птица нарисованы над горами, что связано с порядком рисования в слоях. Кроме того, в Unity есть несколько объектов по умолчанию, которые можно добавить из GameObject-> 2D-> Sprite для 2D-объектов.
Компоненты помогут добавить наших персонажей и физические объекты, которые будут вести себя, как в реальном мире. Перед их добавлением, если запустить симуляцию с помощью кнопки воспроизведения, объекты будут плавать на экране. Если добавить физические спрайты, на них будет влиять гравитация.
Чтобы добавить компонент, нужно выбрать объект из сцены и в окне «Инспектора» нажать «Добавить компонент» -> Физика 2D -> Жесткое тело. Этот компонент заставляет объект вести себя, как твердое тело с гравитацией. Для этого прописывают Add componenttent-> Physics 2D->, но теперь вместо Rigid Body добавляют в помощь детектор столкновений и выбирают самый простой Box Collider.
Важно выбирать коллайдеры с хорошей производительностью, если на экране много объектов, так как в противном случае производительность игры упадет.
Столкновения спрайтов могут быть в основном двух типов:
- Блокировщики: спрайт сталкивается с другим и не может пройти через него. Пример: стена или пол.
- Неблокирующая, например, спрайт сталкивается с быком, но проходит через него, и все, что он будет делать, — например, выстрелит триггером, чтобы изменить состояние и выполнить действие.
Сценарии Unity
Для того чтобы сделать видеоигру на движке, разработчику придется немного программировать. Сценарии Unity могут быть выполнены на 3 языках программирования: Boo Script, Javascript, C #.
Чтобы создать скрипт, нажимают правой кнопкой мыши на окне проекта-> Create-> C # Script. Это создаст скрипт с любым именем NewScript. Чтобы отредактировать его, нужно дважды щелкнуть мышью, и откроется MonoDevelop, который представляет собой редактор, интегрированный с Unity.
В этих скриптах нет конструктора, потому что в этом нет необходимости, и добавлять его также контрпродуктивно, так как это может вызвать проблемы. В сценарии класса могут быть добавлены переменные класса, по умолчанию они имеют публичную видимость. Переменные будут видны в окне «Инспектора» и доступны для редактирования. Unity в «Инспекторе» будет показывать имена переменных особым образом, для удобства чтения он ставит пробел перед заглавными буквами. Переменные также могут быть приватными, в этом случае они не будут видны в «Инспекторе».
После того как будет создан сценарий, можно добавить его к объекту «Сцены», просто перетащив сценарий и поместив его на объект. В окне «Инспектора» он появляется в списке компонентов, которые есть у спрайта. И также можно добавить его, нажав на Sprite, и в окне «Инспектора», щелкнув Добавить компонент-> Сценарии-> NAME_OUR_SCRIPT_NAME.
Совет для новичков
Для тех, кто планирует написать свою первую игру, не стоит недооценивать сложность и время, необходимое для написания даже самых тривиальных игр на движке Unity. Начинают с выбора с самой простой концепции и разбивают ее на небольшие достижимые этапы. Специалисты советуют максимально разделить игру как можно на более мелкие независимые компоненты, тогда будет гораздо меньше шансов столкнуться с ошибками.
Кроме того, не надо стесняться спрашивать советов у опытных разработчиков. Новичкам лучше пройти онлайн-курсы. У игрового движка есть одно из лучших сообществ в мире, и есть множество высококвалифицированных профессионалов, которые размещают контент бесплатно или почти бесплатно. Также следует посетить магазин активов Asset Store, где можно найти широкий спектр материалов: сценарии, модели, звуки, музыку или даже законченные проекты по различным ценам, включая бесплатные, которые можно включить в первый собственный проект, чтобы понять, как работает Unity.
Лучшие бесплатные пакеты в Asset Store
Как уже было упомянуто в начале, разработчики Юнити добавляют новые модули, которые изначально отсутствуют в базовой версии. Скачать их можно из Asset Store, многие пакеты бесплатно. И с их помощью будет проще делать игры в формате 2D. Итак, список лучших бесплатных пакетов в Unity:
- TextMesh Pro. Этот модуль предназначен для редактирования текстовых элементов. В Юнити вам придется много работать с такими элементами, без них мало какая игра обходится. Среди достоинств этого модуля для Unity – улучшенный рендеринг, множество динамические визуальные стили, оптимизированные инструменты для верстки. Если в вашей версии Unity этого модуля нет, смело скачивайте, при работе с 2Д игрушками он точно пригодится.
- 2D Sprite Pack. Пакет представляет собой набор спрайтов, которые пригодятся в разработке прототипов в 2Д. В Юнити спрайты – основа практически каждой игры, поэтому стоит скачать пакет для упрощения работы.
- Anima 2D. Если ваша игра содержит скелетную анимацию, этот пакет для Unity поможет ускорить работу с ней. В последних версии программы утилита включена в базовый набор, но если вы установили более старую версию Unity, стоит скачать пакет дополнительно.
- Post Processing Stack. Если вы хотите игрушку создать как профи, не обойтись без этого стека. Он покажет свои возможности при постобработке игры. С его помощью вы сможете применить полный набор эффектов, и ваша 2Д разработка станет по-настоящему зрелищной и интересной. Но нужно учитывать, что при добавлении эффектов в проект Unity для смартфонов и планшетов, устройства снижают производительность. Тут главное – найти баланс между зрелищностью и потреблением ресурсов.
- Standard Assets. Обязательный пакет для новичков, осваивающих разработку 2D игрушек. Содержит большой набор скриптов, ассетов и сцен для Unity, которые точно пригодятся при изучении возможностей программы.
Это не полный перечень бесплатных пакетов для Юнити, которые используют и новички, и более опытные разработчики 2Д игрушек. Но перечислены наиболее полезные. Конечно же, зайдя в Asset Store, хочется скачать вообще все, что там есть, потому что каждый пакет по-своему интересен. Но остановитесь вовремя, осваивайте новые возможности постепенно. Что же касается установки других утилит – сделать это можно в любой момент.
Какие еще есть возможности в Unity
Это не просто программа, а разветвленное обширное сообщество, в котором всегда можно получить поддержку, консультацию, поделиться опытом с другими разработчиками. Благодаря сообществу, создание игрушек в 2D, обучение и сотрудничество намного упрощаются. Итак, какие еще возможности вы найдете в Unity:
- Участие в обсуждениях проектов и получение помощи. Для этого есть сразу несколько ресурсов. Первый – раздел «Ответы», где новички и более опытные разработчики помогают друг другу решать различные проблемы. Второй – форум, где, помимо профессиональных обсуждений, можно найти и другие темы. Живое общение с единомышленниками это всегда здорово, особенно, если игра не идет. Также создаются группы пользователей программы, найти их несложно. Множество обсуждений есть на Reddit или Stackoverflow. В общем, вы не одиноки, это точно.
- Использование грамотного руководства по самым важным этапам разработки. Логика построения игры, вопросы игровой механики, работа над персонажами – все это подробно рассмотрено в руководстве, и не стоит его игнорировать.
- Возможность поделиться проектом в сети, найти участников для него, создавать резервные копии – все это, и многое другое обеспечивает Unity Collaborate.
- Благодаря облачному сервису Unity Cloud Build вы сможете упростить процесс создания сборок для различных ОС, работая прямо в облаке.
- Unity Performance Reporting – очень полезный инструмент для анализа и отчетности. Ведь вы создаете 2Д игрушку не просто так, а значит, вам нужно отслеживать ее популярность у пользователей.
- А сервис Unity Analytics поможет эффективнее монетизировать продукт, используя наиболее подходящий вариант монетизации.
Таким образом, начиная работать с программой, вы открываете для себя безграничный мир, в котором все продумано для мелочей и есть масса возможностей. Начав с элементарного проекта, можно легко дойти до профессионального уровня – возможности программы и сообщества позволяют сделать это без проблем.