Unreal development kit что это
Приступая к работе
Внимание! Этот документ ещё не опубликован.
Обзор
Этот документ представляет собой обзор процесса планирования, производства и публикации игры с использованием движка Unreal Development Kit (UDK). Начало нового проекта с использованием UDK может быть непростой задачей. Движок сложный и не всегда очевидно с чего следует начать и в каком направлении двигаться дальше. Данный обзор поможет вам разобраться и укажет верное направление. Мы рассмотрим основные этапы подготовки к процессу разработки, поможем сориентироваться в документации, дадим общее представление об основных аспектах производственного цикла и базовые знания, необходимые вам для запуска проекта вашей игры.
Разделы расположены по порядку, начиная с планирования и заканчивая публикацией. Каждый раздел содержит краткое описание задачи и основные элементы, участвующие в ее решении, вместе со ссылками на документы, охватывающими важные вопросы в соответствующей области.
Здесь приведен далеко не полный и не исчерпывающий перечень всех возможных документов Unreal Developer Network и может выясниться, что перечисленные здесь этапы и аспекты разработки не совсем точно соответствуют проекту вашей игры. Этот документ должен дать вам представление о основных методах и инструментах, необходимых для разработки игры с использованием Unreal Development Kit.
Планирование и подготовка производства
Перед началом производства, а фактически перед принятием решения, что Unreal Development Kit точно подходит для реализации вашего проекта, необходимо разобраться с некоторыми важными моментами, чтобы в конечном счете избежать множества ошибок. Вам необходимо точно знать:
Чтобы ответить на эти и другие вопросы, посетите страницу Приступая к работе: Планирование производственного процесса.
Приобретение и установка движка
Приобретение Unreal Development Kit является быстрым и простым процессом. Вам необходимо лишь скачать инсталлятор, установить приложение и создать новый проект кода сценариев в любой среде разработки по вашему выбору. В этом вам помогут подробные руководства и инструкции.
UnrealScript и база кода UE3
Чрезвычайно важно понимать язык UnrealScript и ориентироваться в базе кода движка. Это существенно повысит ваши способности по использованию всех мощностей движка и позволит применять его все его возможности более эффективно, так как вам не придется постоянно вести поиск по документации и бесцельно блуждать по коду, пытаясь найти местоположение необходимых вам функций и классов.
Безусловно, вам не обязательно знать всю базу кода Unreal Engine 3. Однако, перед тем, как приступить к работе, вы должны изучить все основные классы наряду с глубоким пониманием тех, что относятся непосредственно к вашей специальности.
Страница Приступая к работе: Программирование содержит информацию и ссылки на документы, необходимые для работы с Unreal Engine 3.
Создание элементов геймплея
Создание собственных элементов геймплея является неотъемлемой частью процесса разработки и позволяет вашей игре сдвинуться с мертвой точки. К элементам геймплея в этом смысле относятся: тип игры (или правила игры), сам игрок (включая камеру и точку входа), HUD и пользовательский интерфейс. Конечно, это всего лишь малая доля из всего числа элементов геймплея, которые ваша техническая группа будет создавать в процессе разработки новой игры, но они составляют основу игрового проекта, являются общими для всех игр и требуют особого внимания.
Страница Приступая к работе: Элементы геймплея, содержащая ссылки на справочные материалы и примеры, ознакомит вас с деталями каждого из этих элементов.
Создание уровней
Уровни или карты представляют собой наборы элементов, вместе образующие миры или окружения, в которых разворачивается игра. Строительство окружений и миров для вашей игры, очевидно, очень важный аспект производственного цикла. Процесс создания уровней включает в себя широкий набор областей, но в основном он включает в себя размещение различных типов объектов на картах в Unreal Editor и их редактирование средствами Unreal Engine 3.
Так как дизайн уровней в действительности подразумевает широкий спектр дисциплин, может быть несколько специалистов, работающих одновременно над одним и тем же уровнем. Таким образом, один специалист может быть ответственным за уровень в целом, в то время как один или несколько других могут отвечать за сценарии событий с помощью визуальной системы сценариев Kismet, а другие работать над событиями анимации и видеороликами с помощью Matinee. Потоковая система уровней в Unreal Engine 3 делает все это возможным, так как один уровень, называемый потоковым уровнем, может содержать несколько подуровней. Эти подуровни могут содержать сценарии Kismet и последовательности Matinee, позволяя нескольким пользователям работать над одним и тем же уровнем одновременно.
Подробнее о том, как создавать окружения для вашей игры, вы узнаете, посетив страницу Приступая к работе: Создание уровней.
Создание контента
Страница Приступая к работе: Создание контента содержит более подробную информацию о каждом из основных типов контента, а также инструкции по их созданию, импорту и редактированию.
Компиляция и тестирование
Множество раз протяжении всего процесса разработки движок и сценарии должны быть построены и скомпилированны для того, чтобы запустить игру для тестирования. Этот процесс был сделан максимально эффективным путем добавления в Unreal Engine 3 нескольких инструментов. Построением и компиляцией занимаются Unreal Build System и Unreal Frontend. Эти средства автоматизации требуют меньшего вмешательства со стороны пользователя, чем в предыдущих версиях движка.
Тестирование и отладка может быть утомительным процессом, но этот процесс становится более простым и эффективным с инструментами, включенными в поставку и помогающими отслеживать ошибки, проблемы с производительностью и настройками игры.
Посетите страницу Приступая к работе: Сборка и тестирование для получения общих сведений о процессе сборки и об использовании всех включенных в поставку средств.
Упаковка и распространение
Подготовка и создание новой версии игры, готовой для распространения, является заключительным этапом производственного цикла с использованием Unreal Development Kit. В случаях, когда это критично, важно убедиться, что вы включили только контент, фактически используемый в игре. Также вы должны быть уверены, что вами соблюдены все лицензионные соглашения на программное обеспечение, которое будет поставляться с вашей игрой или от наличия которого зависит возможность запуска и работоспособность вашей игры.
Страница Приступая к работе: Развертывание содержит дополнительную информацию по подготовке игр, сделанных с Unreal Engine 3, к распространению.
Чего ждать от Unreal Engine 5 и что он умеет в сравнении с UE4
Содержание
Содержание
Геймеры, заставшие 1990-е годы, помнят имена Джона Кармака и Тима Суини — программистов, фактически определивших, как выглядят современные игры. Но если Кармак давно не в id Software и не занимается id Tech, то Суини по-прежнему прихорашивает Unreal Engine. Будущее видеоигр, несомненно, тесно связано с UE5. И если фотореалистичная графика покорилась еще UE4, то чем же удивит UE5 на PC и «некстгене»? Разберемся в новой статье.
История Unreal Engine: от Unreal до Gears of War
Unreal (1998) вышла спустя два года после Quake, первого полностью трехмерного шутера. Игра базировалась на движке Unreal Engine. Его написал Тим Суини, основатель и глава Epic Games. Сейчас Суини знают по бесплатным раздачам игр в Epic Store и судебному разбирательству с Apple. И сейчас, и на заре карьеры Суини программирует движок самостоятельно. Миллиарды долларов, заработанные на Fortnite, и почтенный возраст (50 лет) ему ничуть не мешают.
Чем же удивила первая версия Unreal Engine? В Unreal поражало красивое небо, прозрачная вода, хитрый искусственный интеллект. Радовала динамическая смена музыки — композиторы позаботились о вариациях тем для разных ситуаций. Текстуры не ужасали при приближении. Еще можно вспомнить порталы и зеркальные отражения.
Были и проблемы. Так, с рендерером Glide на видеокартах 3dfx движок взаимодействовал без нареканий. С OpenGL и Direct3D — увы, нет. Шутер Unreal ценили за графику, однако на слабых и средних компьютерах он работал плохо.
Epic исправила недостатки в Unreal Tournament (1999) и заодно причесала сетевой код, иначе в мультиплеерный FPS никто бы не стал играть. Кстати, UT99 основана на UE1.5 — промежуточной версии движка. Впоследствии выпуск подобных итераций с небольшими правками (с поддержкой текстур почетче и последних технологий) превратился для американской студии в норму.
UE задумывался как продукт для лицензирования. Суини встроил в него удобный редактор UnrealEd и язык программирования UnrealScript. От UnrealScript он отказался только к выходу UE4.
И действительно — Unreal Engine покупали крупные компании. В 2000 году свет увидели Deus Ex и Rune, взращенные как раз на UE. В наши дни UE лицензируют для десятков проектов, но в 1990-е и 2000-е годы разработчики зачастую сами писали движок для конкретной игры, универсальных инструментов на рынке не наблюдалось. UE попытался предстать универсальным. Он подавался как мультиплатформенная технология и даже позволял наладить кроссплатформенный мультиплеер.
UE2 помнят по Unreal Tournament 2003 (2002), Splinter Cell (2002), Postal 2 (2003) и другим играм. Среди его новшеств — поддержка VoIP (голосовой связи в многопользовательских матчах), неплохая физика транспорта (помните режим Onslaught в Unreal Tournament 2004?), скелетная анимация и, конечно, физический движок Karma. Он гарантировал, что тело врага после попадания отлетит эффектно, на манер тряпичной куклы.
С UE2 изменения пробрались не только на компьютеры, но и на консоли. Так, Unreal Championship (2002) вошла в историю как одна из первых консольных игр, что получила патч по интернету.
UE3 уже ближе к современности. Как известно, переход от шестого к седьмому поколению консолей сопровождался гигантским рывком в плане качества графики. В революции поучаствовал третий Unreal Engine, выступив «сердцем» Gears of War (2006), Mass Effect (2007), Borderlands (2009).
К UE3 в Mortal Kombat vs. DC Universe (2008) обратился Эд Бун. Вы удивитесь, но недавняя Mortal Kombat 11 тоже использует UE3, пусть и за долгие годы серьезно переписанный программистами NetherRealm Studios!
В числе «фишек» UE3 упомянем попиксельный расчет освещения и теней, поддержку технологии генерации растительности SpeedTree и DirectX 10-11, правдоподобную симуляцию толпы. На смену Karma пришла NVIDIA PhysX. Из недостатков отметим порой медленную загрузку текстур.
UE3 расширил список привычных платформ. Он покинул пределы PC и консолей и обосновался на iOS и Android, взять небезызвестную Infinity Blade (2010). За движок охотно садились независимые разработчики — в итоге мы имеем, к примеру, The Vanishing of Ethan Carter (2014) и Life Is Strange (2015).
Особенности Unreal Engine 4
UE4 отбыл в свободное плавание в 2014 году. Вам наверняка попадались на глаза файтинги на этом движке (Tekken 7, Street Fighter V), слэшеры (Hellblade: Senua’s Sacrifice), стратегии (Battlefleet Gothic: Armada), платформеры (Yoshi’s Crafted World, Psychonauts 2), RPG (Vampyr, Final Fantasy VII Remake, Kingdom Hearts 3), шутеры (PUBG, S.T.A.L.K.E.R. 2: Heart of Chernobyl)… Разброс жанров широк, количество проектов с трудом поддается подсчету. В крупнобюджетной разработке UE4 практически стал синонимом понятия «игровой движок».
В нем Epic наконец вынесла за скобки собственный язык программирования UnrealScript. Создавать игры в UE4 вы можете либо на языке C++, либо пользуясь визуальным инструментом программирования — так называемыми «блюпринтами», они же «чертежи». Теоретически они позволяют вообще обойтись без кода.
Технология, придуманная Тимом Суини, шагнула за пределы игровой индустрии. На 2023 год, например, запланирована премьера мультфильма Gilgamesh от аргентинского режиссера Томаса Липгота. Картина о герое Древней Месопотамии примечательна тем, что целиком снята в программной среде Unreal Engine.
Unreal Engine и Unity
У UE сейчас только один приличный соперник — Unity. Его с 2005 года совершенствует Unity Technologies. В основном движок распространен в мобильном секторе (Pokemon Go, Monument Valley, Hearthstone), однако громкие игры для PC и консолей в активе тоже есть: Firewatch, Inside, отечественные Escape from Tarkov и «Мор». Под стать UE, Unity — мультиплатформенный инструмент.
Исходный код UE4 открыт. Unity Technologies на такую щедрость не отважилась.
В Unreal Marketplace хватает бесплатных материалов для создания игр. Магазин с моделями и материалами для конкурирующего движка называется Unity Asset Store. Тут тоже присутствуют халявные ассеты, но их часто ругают за низкое качество.
В случае UE4 можно выбирать между C++ и «блюпринтами». У Unity языком программирования выступает С#, а аналогом «блюпринтов» служит инструмент Playmaker, однако его придется докупать отдельно.
Unity хвалят за низкий порог вхождения и обилие учебных материалов в сети. Освоить UE4 сложнее, зато многие функции работают «из коробки».
В итоге нельзя однозначно сказать, какой из движков лучше. Исторически сложилось так, что UE4, как правило, берут для AAA-игр, Unity — для мобильных и инди-проектов.
Что нового в Unreal Engine 5
Первый показ UE5 состоялся в мае 2020 года. В числе двух главных «фишек» движка Epic заявила Nanite и Lumen. Из обеих выгоду извлекут и разработчики, и геймеры.
Описывая Nanite, Epic пускает в дело определения «виртуализированная геометрия» и «микрополигональный рендеринг». Что это значит? Разработчики теперь смогут загружать в движок модели высокого, кинематографического качества из миллионов полигонов. Впоследствии их не придется искусственно «портить», ухудшать детализацию, чтобы движок смог вывести всю эту красоту на экран с приемлемой кадровой частотой.
Напротив, благодаря Nanite не нужно соглашаться на компромиссы. Не нужно думать, среди прочего, о настройке LOD (level of detail) — уровней детализации моделей для разных ситуаций. Раньше, чтобы сэкономить ресурсы, разработчики делали, допустим, один вариант модели для близкого расстояния, второй — для среднего, третий — для дальнего. Но Nanite в UE5 рендерит изображение из расчета полигон на пиксель дисплея, то есть чем разрешение выше, тем картинка четче. Без разницы, лицом к лицу вы с персонажем или в сотне метров от него, количество полигонов в модели не уменьшится. Есть одно «но»: иногда число объектов в кадре зашкаливает, и тогда приходится использовать уловку с динамическим (изменяемым в зависимости от нагрузки) разрешением.
Дебютную техническую демоверсию UE5 компания Epic назвала «Lumen in the Land of Nanite». Демка обсчитывалась в реальном времени на PS5 в разрешении 1440p при 30 кадрах/с. Разрешение динамическое. Epic использовала 8K-текстуры и сделала статую, на которую натыкается героиня демки, из 33 миллионов полигонов. Позже в зале девушка видит 485 таких статуй, что дает нам свыше 16 миллиардов полигонов.
Теперь о Lumen. Это система динамического глобального освещения в реальном времени. Она выступает чем-то средним между «лайтмэпами» (карта статичных источников света), известными с 1990-х годов, и рэйтрейсингом. Представьте сцену, созданную в UE5: освещение реагирует на смену условий (например, со дня на ночь) и окружения — медленно открываешь окно, и комнату правдоподобно заливает светом. Причем от поверхностей лучи отражаются бессчетное количество раз.
В «Lumen in the Land of Nanite» есть момент, где героиня протискивается в узком пространстве Поначалу пресса подумала, что это пресловутое «бутылочное горлышко» — ухищрение от дизайнеров уровня. «Бутылочное горлышко» позволяет выгрузить из памяти старые данные и загрузить новые при переходе между просторными сегментами уровня. В итоге геймер изображает какую-то деятельность, а не скучает за загрузочным экраном. В играх «бутылочное горлышко» обычно замаскировано лифтом или щелью. Однако Джефф Фаррис, один из технических специалистов Epic, заверил, что разработчики нарочно создали этот момент — чтобы вы поближе рассмотрели детали сцены.
В мае 2021 года американская компания организовала еще один показ UE5 и раскрыла некоторые его особенности через технодемку «Valley of the Ancient». Вот что заслуживает внимания в движке, помимо Nanite и Lumen:
Интерфейс в UE5 «взрослее», чем в UE4, с небольшими иконками. Расположение разделов изменено, но в целом для обучения сгодятся даже уроки, посвященные четвертой версии движка. UE5 требовательнее UE4, «народной» GeForce 1060 ему не хватает, разработчикам придется докупать GeForce RTX.
Крупные студии потихоньку показывают результаты трудов на UE5. Так, The Coalition, которая сейчас развивает серию Gears of War, недавно выложила на YouTube запись демки «Alpha Point» на Xbox Series X.
Ассеты в «Alpha Point» состоят из 300 000–500 000 треугольников. В среднем в Gears 5 на объект приходится в 15 раз меньше полигонов.
Ресницы персонажа, вылепленного The Coalition на UE5, содержат 3500 полигонов, то есть примерно столько же, сколько в целом было в модели героя эпохи Xbox 360.
Unreal Engine 5 распространяется по программе раннего доступа с мая 2021 года. Масштабный запуск намечен на начало следующего года. Движок заточен под PC, PS5 и Xbox Series, но готовить в нем можно будет и проекты для консолей предыдущего поколения, а также для мобильных устройств.
Какие игры выйдут на UE5? Пока известно о Senua’s Saga: Hellblade 2, Dragon Quest XII: The Flames of Fate, ArcheAge 2 и Fortnite. UE5 держит курс на фотореализм уровня голливудских блокбастеров. Пожалуй, уже Hellblade 2 даст понять, так ли это на самом деле.
Туториал по Unreal Engine. Часть 1: знакомство с движком
Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.
Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.
В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:
Примечание: туториал будет состоять из восьми частей:
Установка Unreal Engine 4
Для установки Unreal Engine 4 используется Epic Games Launcher. Перейдите на сайт Unreal Engine и нажмите на кнопку Get Unreal в правом верхнем углу.
Перед загрузкой программы запуска необходимо будет создать учётную запись. После её создания скачайте программу запуска, соответствующую вашей операционной системе.
После скачивания и установки программы запуска откройте её. Появится следующее окно:
Введите адрес электронной почты и пароль, использованный для скачивания программы загрузки и нажмите на Sign In. После выполнения входа откроется такое окно:
Нажмите на Install Engine в левом верхнем углу. Программа запуска перейдёт к экрану, на котором можно будет выбрать устанавливаемые компоненты.
Примечание: Epic Games постоянно обновляет Unreal Engine, поэтому ваша версия движка может слегка отличаться от представленной на скриншотах. Например, после написания первого черновика этого туториала версия уже обновилась до 4.14.3! Туториал подойдёт вам, если у вас есть версия не ниже 4.14.
По умолчанию выбраны Starter Content, Templates and Feature Packs и Engine Source. Лучше так всё и оставить. Они будут полезны по следующим причинам:
Выбрав нужные компоненты, нажмите на Install. После завершения установки движок появится в библиотеке. Теперь настало время создать проект.
Создание проекта
Нажмите на одну из кнопок Launch, чтобы открыть браузер проектов (Project Browser). После его открытия нажмите на вкладку New Project.
Нажмите на вкладку Blueprint. Здесь можно выбрать один из шаблонов. Однако, поскольку мы начинаем с нуля, то выберем шаблон Blank.
Ниже будут перечисленные дополнительные параметры.
Вот, за что отвечает каждая опция:
Сменить папку хранения проекта можно, нажав на многоточие в конце поля Folder.
Имя проекта не является названием игры, так что не волнуйтесь, если хотите название позже. Выберите текст в поле Name и введите BananaTurntable.
И наконец нажмите на Create Project.
Навигация по интерфейсу
После создания проекта откроется редактор. Он разделён на несколько панелей:
Импорт ассетов
Какой смысл в поворотном столе, если на нём нечего показывать? Скачайте эту модель банана. Внутри находятся два файла: Banana_Model.fbx и Banana_Texture.jpg. Можете также использовать собственную модель, но зачем, если есть такой потрясающий банан?
Чтобы Unreal мог использовать файлы, их нужно импортировать. Перейдите в Content Browser и нажмите на Import.
С помощью диспетчера файлов найдите папку, в которой находятся Banana_Model.fbx и Banana_Texture.jpg are. Выделите оба файла и нажмите Open.
Нажмите на Import. Два файла появятся в Content Browser.
При импорте файла на самом деле он не сохраняется в проект, если не указать этого явным образом. Сохранять файлы можно, нажав на файл правой клавишей мыши и выбрав Save. Также можно сохранить все файлы за раз, выбрав File\Save All. Старайтесь сохраняться почаще!
Учтите, что в Unreal модели называются «мешами» (meshes). Теперь у нас есть меш банана, настало время добавить его на уровень.
Добавление мешей на уровень
Пока уровень выглядит довольно пустым, давайте сделаем его интереснее.
Чтобы добавить на уровень меш, нажмите правой клавишу мыши и перетащите Banana_Model из Content Browser во Viewport. Отпустите левую клавишу мыши и меш добавится на уровень.
Объекты на уровне можно перемещать, поворачивать и масштабировать. Горячие клавиши для этих действий — W, E и R. После нажатия на них можно использовать манипулятор:
О материалах
Если внимательно посмотреть на банан, то можно увидеть, что он не жёлтый! На самом деле. он выглядит почти полностью серым.
Чтобы придать банану цвет и детали, необходимо создать материал.
Что такое «материал»?
Материал задаёт внешний вид поверхности. На базовом уровне материал определяет четыре аспекта:
Создание материала
Для создания материала нужно перейти в Content Browser и нажать на зелёную кнопку Add New. Появится меню со списком ассетов, которые можно создать. Выберите Material.
Назовите материал Banana_Material, а затем дважды нажмите левой клавишей мыши на файле, чтобы открыть его в редакторе материалов.
Редактор материалов (Material Editor)
Редактор материалов состоит из пяти основных панелей:
Что такое нод (узел)?
Прежде чем приступать к созданию своего материала, нужно узнать про объекты, которые используются для его создания: ноды.
Ноды составляют бОльшую часть материала. Существует множество типов нодов, имеющих различные функции.
У нодов есть входы и выходы, представленные кругом со стрелкой. Входы расположены слева, а выходы — справа.
Вот пример с использованием нодов Multiply и Constant3Vector, добавляющих текстуре жёлтого цвета:
У материалов есть особый нод, называемый нодом Result, который в нашем случае уже создан как Banana_Material. Здесь заканчиваются со временем все ноды. То, что подключено к этому ноду, определяет внешний вид конечного материала.
Добавление текстур
Для добавления модели цвета и деталей нам необходима текстура. Текстура — это просто двухмерное изображение. Обычно они проецируются на трёхмерные модели, придавая им цвет и детали.
Для текстурирования банана мы используем Banana_Texture.jpg. Применить в материале текстуру позволяет нод TextureSample.
Перейдите к панели Palette и найдите TextureSample. Добавьте нод, удерживая левую клавишу мыши и перетащив его на схему.
Для выбора текстуры необходимо сначала выделить нод TextureSample. Перейдите в панель Details и нажмите на раскрывающийся список, расположенный справа от Texture.
Откроется меню, в котором перечислены все текстуры проекта. Выберите Banana_Texture.
Чтобы увидеть текстуру на меше предварительного просмотра, нужно подключить её к ноду Result. Удерживайте левую клавишу мыши на белом контакте выхода нода TextureSample. Перетащите его на входной контакт Base Color нода Result.
Вернитесь во Viewport, чтобы увидеть текстуру на меше предварительного просмотра. Можно поворачивать его (удерживая левую клавишу мыши и перемещая мышь), чтобы рассмотреть другие детали.
Нажмите на Apply в Toolbar, чтобы обновить материал, и закройте редактор материалов после завершения.
Использование материалов
Чтобы применить материал на банан, нужно его назначить. Вернитесь к Content Browser и дважды нажмите на Banana_Model, чтобы открыть его. Появится следующее окно редактора:
Перейдите в панель Details и найдите раздел Materials. Нажмите на раскрывающееся меню, расположенное справа от Element 0, и выберите Banana_Material.
Закройте редактор мешей, вернитесь к основному редактору и посмотрите на Viewport. Вы увидите, что теперь на банане есть текстура. Поздравляю, вы теперь знаете всё необходимео, чтобы стать дизайнером уровней!
Примечание: если освещение слишком тёмное, можно изменить его, зайдя в World Outliner и нажав на Light Source. В панели Details найдите параметр Intensity и увеличьте его значение.
Про Blueprints
Даже несмотря на то, что банан выглядит отлично, будет ещё лучше, если он начнёт вращаться на поворотном столе. Проще всего создать его с помощью «чертежей» Blueprints.
В простейшем случае Blueprint представляет собой «вещь». Blueprints позволяют создавать свои поведения для объектов. Объект может быть чем-то физическим (типа поворотного стола) или чем-то абстрактным, например, системой здоровья.
Хотите создать движущийся автомобиль? Используйте Blueprint. А как насчёт летающей свинки? Используйте Blueprints. А если нужен взрывающийся при касании котик? Blueprints.
Как и в материалах, в Blueprints используется система на основе нодов. Это значит, что достаточно создать ноды и соединить их — никакого кода не требуется!
Примечание: если вы предпочитаете писать код, то используйте вместо этого C++.
Blueprints просты в использовании, однако не так быстры, как код на C++. То есть если вам нужно создать что-то «тяжёлое» с точки зрения вычислений, например, сложный алгоритм, то лучше воспользоваться C++.
Но даже если вы предпочитаете C++, то бывают случаи, когда оптимальнее использовать Blueprints. Вот некоторые из преимуществ Blueprints:
Создание Blueprint
Перейдите в Content Browser и нажмите на Add New. Выберите в списке Blueprint Class.
Откроется окно с запросом выбора родительского класса. Ваш Blueprint будет наследовать все переменные, функции и компоненты из выбранного родительского класса. Уделите время на изучение возможностей каждого класса.
Примечание: поскольку мы можем расположить классы Pawn и Character, они также являются акторами (Actors).
Поворотный стол будет находиться на месте, поэтому самым подходящим будет класс Actor. Выберите Actor и назовите новый файл Banana_Blueprint.
Дважды нажмите на Banana_Blueprint, чтобы открыть его. Нажмите на Open Full Blueprint Editor, если появится подобное окно:
Blueprint Editor
Во-первых, выберите в редакторе Blueprint editor вкладку Event Graph.
Blueprint editor состоит из четырёх основных панелей:
Создание поворотного стола
Для создания стола нам нужно две вещи — основание и подставка. Их можно создать с помощью компонентов.
Что такое «компоненты»?
Если Blueprint — это автомобиль, то компоненты — это строительные элементы, из которых он состоит. Примерами компонентов могут быть двери, колёса и двигатель.
Однако компоненты могут быть не только физическими объектами.
Например, чтобы автомобиль мог двигаться, можно добавить компонент движения. Можно даже заставить машину летать, если добавить компонент полёта.
Добавление компонентов
Чтобы увидеть компоненты, необходимо переключиться в режим Viewport. Нажмите на вкладку Viewport, чтобы переключиться на неё. Вот как это выглядит:
Примечание: компонент DefaultSceneRoot при запуске приложения не отображается, он виден только в редакторе.
Поворотный стол будет использовать два компонента:
Неплохо было бы сделать основание чуть короче. Активируйте манипулятор масштаба, нажав R, а затем уменьшите масштаб (точный размер неважен, можно будет изменить его позже).
Теперь пора добавить меш. Вернитесь в панель компонентов Components и нажмите левой клавишей на пустой области, чтобы снять выделение с компонента Cylinder. Благодаря этому следующий добавляемый компонент не будет прикреплён к компонентуCylinder.
Примечание: если этого не сделать, то следующий компонент будет прикреплён к компоненту Cylinder. Это значит, что он также унаследует масштаб компонента Cylinder. Поскольку мы уменьшили масштаб цилиндра, следующий компонент тоже будет уменьшен.
Затем нажмите на Add Component и выберите из списка Static Mesh.
Для отображения банана выберите компонент Static Mesh, а затем нажмите на вкладку Details. Нажмите на раскрывающий списков в правой части Static Mesh и выберите Banana_Model.
Переместите банан, если он находится в неправильном положении. Для этого активируйте манипулятор перемещения, нажав W, а затем переместите его вверх.
Про ноды Blueprint
Теперь нужно сделать так, чтобы поворотный стол вращался. И здесь нам потребуются ноды Blueprint.
В отличие от своих близких родственников — нодов материалов — ноды Blueprint имеют особые контакты, называемые контактами Execution. Контакт слева — это вход, контакт справа — выход. У всех нодов есть хотя бы по одному входу и выходу.
Если нод имеет контакт входа, то его нужно подключить, чтобы он заработал. Если нод не поключен, все последующие ноды не будут выполняться.
Node A и Node B будут выполняться, потому что у их входных контактов есть подключение. Node C и Node D никогда не выполняются, потому что входной контакт Node C не имеет подключения.
Вращение поворотного стола
Прежде чем начать, давайте посмотрим на панель Components. Можно заметить, что у Cylinder и Static Mesh есть отступ, а у DefaultSceneRoot — нет, потому что они подключены к DefaultSceneRoot.
Если переместить, повернуть или отмасштабировать корневой компонент, то тоже самое произойдёт и с прикреплёнными к нему компонентами. Благодаря этому поведению можно поворачивать Cylinder и Static Mesh одновременно, а не по отдельности.
Создание нода
Чтобы приступить к созданию скриптов, переключитесь назад на вкладку Event Graph.
Реализация вращения объекта настолько проста, что требует всего одного нода. Нажмите правой клавишей на пустое пространство в графе, чтобы открыть меню доступных нодов. Найдите AddLocalRotation. Нам нужно поворачивать основание и банан, поэтому мы просто будем вращать корневой компонент. Выберите AddLocalRotation (DefaultSceneRoot).
Примечание: если нода нет в списке, снимите флажок Context Sensitive в правом верхней части меню.
В вашем графе теперь появится новый нод AddLocalRotation. Вход Target автоматически подключится к выбранному компоненту.
Чтобы задать значение вращения, перейдите к входу Delta Rotation и измените значение Z на 1.0. Благодаря этому Blueprint сможет выполнять вращение относительно оси Z. Чем выше значения, тем быстрее будет вращаться стол.
Чтобы поворотный стол вращался постоянно, нужно вызывать AddLocalRotation в каждом кадре. Для выполнения нода в каждом кадре воспользуемся нодом Event Tick. Он уже находится в графе. Если его нет, то создайте его тем же способом, что и ранее.
Перетащите выходной контакт нода Event Tick ко входному контакту нода AddLocalRotation.
Примечание: в этой реализации скорость вращения зависит от частоты кадров. Это значит, что поворотный стол на медленных компьютерах будет вращаться с меньшей скоростью, и наоборот. Для туториала это нас вполне устраивает, потому что я не хочу ничего усложнять, но в будущем я покажу, как это исправить.
Наконец, перейдите в Toolbar и нажмите на Compile, чтобы обновить Blueprint, а затем закройте Blueprint editor.
Добавление Blueprints на уровень
Прежде чем добавлять Blueprint, вернитесь ко Viewport в основном редакторе и удалите модель банана. Для этого выберите модель, а затем выберите Edit\Delete или нажмите клавишу Delete.
Добавление Blueprint — это тот же процесс, что и добавление меша. Удерживайте левую клавишу мыши на файле и перетащите его во Viewport.
Перейдите к Toolbar и нажмите Play, чтобы увидеть результаты своих трудов!
Примечание: если вы не удалите исходную модель банана, то можете получить предупреждение о необходимости перестройки освещения. Если удалить модель, то ошибка больше не будет проявляться.
Что делать дальше?
Готовый проект можно скачать отсюда.
В этой части туториала вы многое узнали, но это только небольшая часть Unreal. Если вы хотите продолжить изучение, то ждите следующей части туториала, в которой мы подробнее рассмотрим Blueprints.