Что такое тильда на клавиатуре в unreal engine
Ну что, покринжевали вдоволь с картинки? Пора читать статью. Вряд ли вы найдёте здесь какие-то откровения, вещи я рассказываю довольно базовые. Некоторые из них могут даже показаться очевидными, но они мне сохранили много нервов в своё время и сделали работу с редактором блупринтов приятной.
Если вас не пугает картинка из начала поста - ну и ладно, ну и не читайте, больно нужно! (╯ ͠° ͟ʖ ͡°)╯┻━┻
А если серьёзно - сейчас я расскажу, как такое не допустить.
Если интересно, чем они отличаются - лучше почитать официальную документацию. Но если совсем влом читать - ладно, так и быть, напилю статью, только дайте знать)
По какой-то причине люди (в основном, конечно, новички) боятся использовать функции и макросы. Не надо так. Блупринты очень быстро захламляются десятками и сотнями нодов. А порой вы просто копипастите определённый набор нодов с места на место. Так почему бы не свернуть их в функцию или макрос?
Можно либо создать их, нажав соответствующую кнопку в левой части интерфейса, либо, если у вас уже есть на примете ноды, которые вы хотите включить в функцию/макрос, выделите их, кликните по любому из них ПКМ и выберите "Collapse to Marco/Function".
Потом сможете использовать их где нужно, вместо копирования-вставки целой кучи нодов. Да и даже если их нельзя повторно использовать где-то ещё, всё равно удобнее свернуть ноды в функцию/макрос. Намного удобнее будет визуально воспринимать ноду с названием "Calculate Galaxy Size" чем пару десятков математических нодов.
Не круто, если у вас вместо блупринтов свисающая отовсюду лапша. Просто кликните дважды на любой связи между нодами (или ищите в меню создания):
Таким образом можно очень сильно упорядочить мешанину из связей.
Замечали, что у каждой переменной в панели Details есть поле "Category"? Это не какое-то рандомное поле, а ещё один способ упорядочить ваши блупринты. Категорию можно назвать как угодно, но называйте их разумно - без всяких "testCat 12411kof", иначе очень быстро потеряете, где у вас что.
Группировка переменных в категории - чисто визуальная штука, и она напрямую не влияет на блупринты, в общем-то, но это всё равно довольно удобная фишка, которая позволит вам положить все переменные в сворачиваемые группы, а не хранить их единым списком.
Комменты - ещё одна удобная штука для организации блупринтов. Просто выберите нужные ноды и нажмите "С". Вокруг выбранных нодов появится цветная (по умолчанию серая) зона. Можно будет поменять описание и цвет фона - таким образом вы сможете узнавать разные части вашего кода даже издали. Более того, таким образом вы сможете легко перемещать ноды группами, просто перетаскивая комментарий.
Способ именования (также соглашение о наименованиях) - это свод правил, как следует называть разные файлы/переменные/функции и всё такое прочее в программировании. Это относится далеко не только к блупринтам, но и к ним тоже, поэтому я считаю важным это упомянуть.
Чтобы особо не раздувать этот пост, советую вам почитать Asset Naming Convention на официальной вики, там много интересного. Вот лишь пара основных моментов:
- Все названия должны быть на английском и только на английском.
- Существуют префиксы и суффиксы
Префиксы зависят от типа ассета. Например, BP_Character01 - это Blueprint
Суффиксы используются реже, например в текстурах: T_BrickWall_01_AO для карты Ambient Occlusion - Используйте цифровые значения (две цифры) для идентификации вариантов ассетов: T_Grass_01, T_Grass_02 и так далее
Что касается переменных, функций и прочего "программистских" вещей, тут всё чуть менее строго и не обязательно использовать CamelCase ("верблюжью" нотацию). В анриле можно в названиях переменных/функций допустимы даже пробелы. Вообще, хорошей идеей будет прочитать Coding Standard из их вики. Он хоть и про C++, но несколько интересных мыслей можно почерпнуть.
Также хочется заметить, что какого-то единого стандарта относительно блупринтов нет (например, в Coding Standard рекомендуется начинать имя булевой переменной с "b", например bFadedOut, но при этом на большинстве стримов их прогеры называют такие переменные вроде "isDead?"), и от студии к студии соглашение о наименованиях может различаться, но оно должно быть. Оно как хороший стайлгайд - призвано сделать так, чтобы разные люди в рамках одного проекта писали код так, будто это сделал один человек.
Сделайте себе одолжение и выучите комбинации горячих клавиш. Таким образом вы сохраните себе кучу времени. Серьёзно, мне больно смотреть на то, как люди используют контекстные меню там, где то же самое можно было сделать с помощю хоткеев в разы быстрее.
В документации есть Blueprint Editor Cheat Sheet - почитайте. А я хочу показать пару самых основных действий, которые вы будете постоянно использовать.
Вместо перетаскивания переменной из списка и затем выбора опции get или set, можно просто нажать Ctrl для получения или Alt для присваивания значения:
Последняя статья из цикла «Разработка» — работаем с редактором UE4, пишем логику без навыков программирования и начинаем конкурс работ.
Автор: Александр Блинцов. Специализируется на Unreal Engine. В Pixonic является клиентским разработчиком и отвечает за разработку и поддержку технической стороны нового сетевого мобильного шутера.
Уже две статьи цикла «Разработка» были полностью посвящены Unity и различным туториалам для этого движка. А в этой я расскажу об относительно молодом Unreal Engine 4. Несмотря на то, что оригинальный UE существует уже два десятилетия, новая версия была почти полностью переписана и сильно повлияла на разработку игр в целом. Мы рассмотрим основные плюсы этого движка для начинающих инди-разработчиков с упором на тех, которые никогда раньше не занимались программированием.
Четвертая версия движка вышла в 2014 году и распространялась по подписке за $19 в месяц. Но уже через год Epic Games сделала его бесплатным, после чего Unreal Engine 4 начали использовать не только студии, но и инди-разработчики.
Одно из главных преимуществ движка — это множество инструментов и возможностей «из коробки». Не нужно писать или покупать плагины, достаточно скачать редактор, и можно приступать к разработке.
Несмотря на «новизну» UE4, сообщество вокруг движка растёт очень быстро, появляется огромное количество туториалов, документации, ассетов и плагинов.
Сразу после запуска движка вам предложат выбрать один из шаблонов. Можно, конечно, открыть пустой, но всегда легче переписывать и дополнять что-то готовое, если шаблон подходит к выбранному жанру.
Стоит обратить внимание на демки из лаунчера Epic Games (вкладка Learn/Изучить). Там можно найти очень много проектов на разные темы. Причём это практически полноценные прототипы игр, с логикой и графикой.
Демо идеально подойдут новичкам — их можно изучать или сделать свой проект на их основе. Все готовые шаблоны и демо можно использовать в коммерческих целях.
Лайфхак: можно собрать проект полностью на основе предложенного контента, а потом потихоньку заменять его на свой, оригинальный.
После выбора шаблона или демо-проекта вы попадёте в редактор. В первый раз здесь можно потеряться — в UE4 огромное количество фичей и кнопочек, а у каждого ассета есть ещё и внутренний редактор для настройки контента. Например, в отдельном редакторе статичных мешей можно сгенерировать низкополигональные модельки, а в редакторе анимаций создать позы или изменить анимацию.
Может показаться, что редактор перегружен функционалом, но в этом и плюс: всё необходимое находится в одном месте. Хотя создавать хороший контент (модели, звуки, текстуры и т.д.) всё равно придётся в сторонних программах.
Зато в UE4 есть инструменты для прототипирования, благодаря которым можно собрать билд игры вообще без использования других программ. Например, с помощью Brush’ей можно смоделировать базовый мир и предметы. А уже потом поменять их на более качественные или оставить как есть, если стилистика проекта позволяет.
В Unreal Engine 4 есть Blueprints — специальный инструмент визуального программирования. Он позволяет строить логику игры с помощью блок-схем из нод. Инструмент достаточно наглядный, простой и интересный в работе. Например, оба скрипта на скриншотах ниже создают мигающую лампочку.
С блюпринтами работать намного легче, потому что в них невозможно допустить синтаксическую ошибку — подать неправильный тип данных или забыть поставить нужный знак. Ещё блюпринты защищают от вылетов программы. Например, если в С++ попытаться получить доступ к несуществующему объекту, игра вылетит, а в блюпринтах просто появится ошибка в логе.
Звучит слишком хорошо, чтобы быть правдой. Подвох в том, что несмотря на низкий порог входа и наглядность, блюпринты — полноценный инструмент объектно-ориентированного программирования (ООП).
В итоге игру можно написать только на блюпринтах (причём не только одиночную, но и сетевую) и во многих случаях разницы в производительности не будет. Хотя зависит от самой игры.
В Unity, кстати, тоже есть аналогичный инструмент. Он называется Playmaker, но стоит 45 долларов.
Предположим, у вас уже готов прототип игрового мира и механика геймплея. Теперь нужно импортировать модели и настроить материалы к ним, чтобы всё выглядело как нужно. Мы обойдёмся готовыми ассетами.
Движок поддерживает .fbx и .obj форматы 3D-моделей, а также все популярные форматы текстур. Импортировать их достаточно просто — можно даже закинуть всё в папку с проектом, и импорт произойдёт автоматически.
Ещё важно настроить материалы, то есть шейдеры. Обычно они пишутся кодом в других программах, но в Unreal Engine 4 и на этот случай есть визуальный инструментарий, который позволяет описать инструкции шейдера нодами. Может показаться запутанным, но на самом деле для простых материалов присоединить нужные текстуры и получить реалистичный вид не так сложно.
Чтобы собрать игру, нужна некая среда с определёнными техническими условиями и необходимыми инструментами. В качестве такой среды выступает игровой движок. Unreal Engine 4 — один из самых популярных движков, который используют как крупные компании, так и небольшие инди-студии. К примеру, на UE4 созданы Final Fantasy VII Remake, Returnal, Gears 5, Borderlands 3, Fortnite, Abzû, Observer и многие другие.
Узнали у Владимира Семыкина, автора направления «Геймдизайн» в Нетологии, об особенностях движка Unreal Engine, разнице между Blueprints и C++, а также насколько востребована профессия разработчика на Unreal Engine.
Gears 5 — шутер канадской компании The Coalition, — использует движок UE4Владимир Семыкин
Энтузиаст геймдизайна, автор Нетологии
Почему Unreal Engine 4 — один из лучших движков для работы над играми
Есть несколько причин большой популярности UE4.
UE4 поддерживает большое количество функций, благодаря чему в нём можно создать практически любую игру.
В Unreal Engine 4 есть встроенная система визуального скриптинга, которая позволяет без особых препятствий выстраивать игровую логику даже новичкам.
Движком можно пользоваться бесплатно: в лицензионном соглашении Unreal Engine указано, что пока ваша игра не принесёт более $1 000 000 — после этого придётся платить 5% от дохода.
Есть возможность сделать игру, которая запустится на всех популярных платформах: PlayStation, Xbox, Switch, ПК, iOS, Android.
У движка огромное сообщество пользователей, которые создают обучающие материалы, делятся друг с другом опытом и помогают решать проблемы. Дополнительный плюс большого сообщества — множество игровых ассетов, доступных для свободного использования в своём проекте.
Большое преимущество Unreal Engine 4 в универсальности и доступности — его могут использовать как опытные разработчики, так и новички, которые впервые берутся за создание игры. Всё дело в том, что UE4 по умолчанию поддерживает сразу два языка программирования: текстовый C++, в котором нужно писать строчки кода, и визуальный язык Blueprints, в котором игровая логика выстраивается при помощи связанных между собой блоков. Такой подход помогает сделать программирование более наглядным и понятным для тех, у кого нет опыта.
«Blueprints разработала компания Epic Games, чтобы дать инструменты программирования людям, которые далеки от этого. Поэтому научиться работать с Blueprints очень легко. Конечно, необходимо получить минимальную теоретическую базу, например, разобраться, что такое переменные и как работает функциональное и объектно-ориентированное программирование.
Но и эту теоретическую базу можно изучать, применяя Blueprints. И даже без неё можно сделать что-то интерактивное, например, кнопку, которая открывает дверь. Язык Blueprints крайне прост в освоении, и в нём есть много решений, которые делают его применение удобнее. Например, цветовая индикация различных типов переменных», — Антон Токарев, преподаватель Нетологии, геймдизайнер в Dreamside Interactive.
Большое преимущество Blueprints в том, что с его помощью можно быстро собрать базовый геймплей для игры.
Actor.h
//потключены 3 библиотеки
//метка что начинаеться описание класса
//начало описание гласа
class AMyActor : public AActor
//метка что это начало тела класса
//обьявление публичных методов
//Функция срабатывающая при создании класса в UE4
//Функция срабатывает при каждом создании класса на сцене во время игры
virtual void BeginPlay() override ;
// функция которая будет вызываться при каждом обновлении экрана
virtual void Tick( float DeltaSeconds) override ;
Функция с именем класса называется конструктором она позволяет при первом обращении к классу создать его и например назначить какие ни будь стан драные параметры которые должны быть у объекта. Допустим мы делаем класс мина и хотим чтобы у мины которой мы разместим в игре был выставлен параметр урона в 100 тогда в этом методе мы можем задать значение переменной и она при создании нового класса будет иметь значение 100. Но в нашем случае конструктор просто включает функцию класса отслеживать обновление кадров игры.Actor.cpp конструктор
//включает отслеживангие каждого обновления игры
Допустим у нас возникла ситуация, когда мы хотим создать у класса какой ни будь параметр, или параметры, чтобы их можно было изменять из редактора Unreal Editor. Для этого в конструкторе нужно описать создание свойств. Для этого нужно в конструкторе класса описать следующий код.Создание редактируемого параметра видимого из Unreal Editor
//при создании класса
class AMyActor : public AActor
//указываем что данный параметр будет виден из редактора
//переменная типа целого числа которая будет хранить значение
Директива UNPROPERTY() (Unreal Property ) это по сути функция которая создает пункт во вкладке параметров она позволяет указать область видимости параметра в окнах редактора, возможность чтения записи параметра в Blueprint скрипта и категорию параметра. Добавим в для наглядности несколько параметров нашему объекту которые будут видны из редактора при выборе нашего объекта в обозревателе ресурсов (Content Brouser).Добавляем 3 параметра
class AMyActor : public AActor
//переменная общий урон
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Damage" )
//Получаемый урон в секундах
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Damage" )
//Возможный разовый молучаемый урон в секунду
UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Transient, Category = "Damage" )
После того как добавили код его нужно собрать в библиотеку для этого нужно скомпилироваться проект. После этого скомпилировать UE4Зададим в конструкторе значения по умолчанию
AMyActor::AMyActor()
//зададим 1 параметр
TotalDamage = 200;
//задаим 2 параметр
DamageTimeInSeconds = 1.f;
>
создание функций изменения параметра
//функция срабатывает во время обновления настроек на экране
void AMyActor::PostInitProperties()
Super::PostInitProperties();
Читайте также: