Как сделать персонажа в ue4

Epic Games выпустила подробную документацию по созданию реалистичных персонажей в игровом движке Unreal Engine 4. В качестве примера приведён персонаж Дуплет (ранее Твинбласт) из игры Paragon, MOBA от Epic на PC и PS4.

Создание аутентичных, правдоподобных персонажей является фундаментальной задачей для многих современных 3D художников и разработчиков игр. В течение последних нескольких лет Epic привносит в UE4 новые функции рендеринга, которые улучшают шейдинг кожи, глаз, волос и других атрибутов персонажа.

Skin Shading

Кожа представленного ниже персонажа сделана благодаря UE4 Subsurface Profile.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Это специальный метод используется для рендера реалистичной кожи или воска, он аналогичен методу «Subsurface«, но имеет принципиальное отличие в том, как он визуализирует: Subsurface Profile основан на пространстве экрана. Рендеринг экранного пространства более эффективен для отображения тонких эффектов слоёв кожи, где рассеивание при отражении является вторичным эффектом, которое наблюдается только в нескольких случаях, например, на ушах.

Обратите внимание на использование Material Functions для настройки основы материала кожи. Это делается как многоразовый авторский подход к созданию материалов для персонажей из Paragon. Таким образом, художники могут стандартизировать подходы к созданию определенных типов поверхностей, зная, что изменение одной функции будет обновлять все элементы, в которых она используется.

Skin Shader Textures

Текстуры, используемые на коже персонажа, имеют разрешение 4K и первоначально были получены благодаря сканированию лица актера. Текстуры были затем очищены и изменены художниками из Epic. Эта настройка кожи использует пять текстурных карт: Diffuse, Roughness, Specularity, Scatter и Normal.

Диффузная текстура поставляет базовый цвет для материала. Если приблизить 4K, то можно заметить крошечные капилляры. Любое потемнение морщин будет подчеркивать Normal Map.

Карта Roughness сохраняется в альфа канале Diffuse карты. Это общий метод, используемый для уменьшения количества текстур. Обратите внимание, что шероховатость увеличивается в местах с порами и морщинами. Это заставляет эти области казаться менее блестящими, подчеркивая глубину Diffuse и Normal карт.

Карта рассеивания отвечает за то, как много света будет рассеиваться на поверхности кожи. Темные участки, такие как щеки, практически не будут рассеивать свет, в то время как светлые зоны носа и ушей, изображенные на фото, будут рассеивать свет. Цвет рассеивания управляется в Subsurface Profile Asset.Normal Map

Карта нормалей отвечает за «объемность» модели, увеличивая визуальную детализацию объекта без использования дополнительных полигонов. В этом примере нет никаких необычных настроек.

Hair Shading

Чтобы начать работу с шейдером, установите параметр Shading Model вашего материала на Hair.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Волосы и блики

В реальном мире волосы обладают несколькими бликами: один представляет собой цвет света, а другой является смесью цвета волос и светлого цвета. Для упрощения мы будем называть эти блики первичными и вторичными. UE4 Hair Shader показывает очень реалистичный результат с теми же эффектами.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

1. Более светлые волосы являются первичными бликами. 2. Более яркие и рыжие волосы представляют вторичные блики.

Алгоритм аппроксимации, используемый в UE4 Hair, создаёт эти эффекты аналогично тому, как они сделаны в реальном мире. Когда свет попадает на волосяной фолликул, он не просто отталкивается от поверхности. Волосы просвечиваются, они позволяют пропускать через них некоторый свет, после чего свет отталкивается и выходит за пределы. Шейдер для волос достигает такого результата благодаря трем возможным путям движения света, как показано на анимированном GIF ниже:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Смотрите таблицу ниже, в которой описывается каждая часть процесса.

ТекстурыНазваниеОписание
Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4Diffuse

Направление роста (от корня до кончика) волосяного фолликула.

Только отражающийся луч, отталкивающийся от поверхности. Это создаёт первичный блик.

Путь, по которому свет проходит сквозь волос и выходит с другой стороны. Это то, как свет рассеивается в объеме волос.

Путь, по которому свет проникает в волосяной фолликул, отражается от внутренней границы поверхности, а затем выходит. Это создаёт вторичный блик.

Как показано на диаграмме выше, прядь волос не является идеальным цилиндром или трубой. На самом деле волосы выглядят как сложенные конусы. Это значит, что свет, отталкивающийся от поверхности волос, будет рассеиваться совсем по-другому, чем, если бы волосы были идеально гладкими. UE4 шейдер поддерживает анизотропное отражение.

Волосы и их прозрачность

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Использование анимированного сглаживания с помощью TemporalAA требует нескольких кадров для разрешения смешивания. Это может привести к артефактам на волосах, когда они находятся в движении. Это ожидаемый побочный эффект данной техники.

Edge Masking

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Чтобы решить эту проблему, материал должен вычислять вектор камеры, а также вектор плоскости таким образом, чтобы, когда плоскость поворачивалась перпендикулярно вектору камеры, она начинала исчезать. Для заполнения исчезнувшего полигона нужно сделать голову таким образом, чтобы её скальп был текстурой волос. Вот почему многие персонажи с широкими полигонами волос имеют такую текстуру на голове, как показано на изображении ниже.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Создание волос для игрового персонажа

Перед тем как создать геометрию волос, следует посмотреть, как команда Epic конструирует волосы для игровых персонажей.

Геометрия волос

Данная геометрия создана с помощью нескольких плейнов, расположенных по всей поверхности головы, что является стандартным решением во многих real-time движках.

Нет никаких жестких правил для детализации геометрии волос вашего персонажа, но следует отметить, что Дуплет использует около 800 отдельных плейнов, в общей сложности около 18000 треугольников. Также обратите внимание, что материал для волос установлен двусторонний в свойствах Material Node Properties.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Текстуры волос

При использовании UE4 Hair шейдера конечный результат достигается следующими текстурами: Diffuse, Depth, Alpha, Root и Unique ID. В Epic эти текстуры обычно генерируются с помощью системы волос 3ds Max, которая проецирует имитируемые волосы на кусок геометрии. Однако есть много других вариантов для подобных результатов.

НомерОписание
0

Диффузная текстура отвечает за базовый цвет самих волос. Желательно оставлять эту текстуру неокрашенной, а цвет задавать в самом движке, особенно это полезно в тех случаях, если волосы персонажа будут иметь разные цвета.

Альфа текстура обеспечивает прозрачность тех участков, где нет текстуры волос.

Текстура Root является маской для изменения цвета волос от корня до кончика. Полезна при осветлении или затемнении волос по их длине.

Текстура глубины используется как основа для изменения цвета или значений шейдера для волос на различных глубинах.

Текстура The Unique ID просто дает уникальное значение от 0 до 1 (от черного до белого) для каждой пряди на заданной части геометрии волос. Это используется для обеспечения различной вариации волос.

Свойства Hair Shader

Когда вы будете использовать Hair Shader, то увидите новые свойства, доступные в ноде материала: Scatter, Tangent и Backlit.

Scatter

Одна из основных причин, почему мы говорим о шейдере волос как об аппроксимации, а не о симуляции, заключается в том, что он не симулирует каждую отдельную прядь волос и не имитирует совершенно точное поведения лучей света. В реальном мире, когда свет отскакивает и передается через волосяные фолликулы, он часто встречается с другими прядями волос, повторяя один и тот же процесс много раз подряд. В настоящее время нет вычислительной техники, способной точно производить такие эффекты в реальном времени.

Тем не менее, рассеивание света по-прежнему имеет решающее значение для того, насколько реалистичными окажутся волосы в игре. Чтобы контролировать это, Hair Shader имеет параметр Scatter, который заменяет Metallic основного нода шейдера и ограничивается значениями от 0.0 до 1.0. Scatter контролирует, сколько света проходит на всех волосах персонажа, как если бы это была одна поверхность.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Важно отметить, что Scatter должен быть светлее для светлых волос и темнее для более темных волос. В реальном мире более темные волосы будут поглощать больше света. С практической точки зрения, если вы пытаетесь создать светловолосого персонажа, то вы заметите, что изменение диффузной текстуры или цвета недостаточно; Вам также придется увеличить значение Scatter.

Tangent

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

На этом изображении желтая линия представляет вектор вдоль пряди волос, направленный к корню.

Flow Maps

Другой метод требует создания Flow карты. Это будет полезно, если волосы вашего персонажа длинные, а также они должны казаться изгибающимися и завитыми больше, чем фактическая геометрия, или если отдельные участки текстуры для волос ориентированы по-разному (не сверху вниз, как описано выше). В проекте Photoreal Character Bust вы можете найти неиспользованную Flow карту с именем T_Hair_Flow. Ниже приведено сравнение этой карты и финального результата.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Здесь вы можете увидеть, как текстурирована Flow Map на примере волос Сойки (Sparrow). Обратите внимание, что карта используется только на некоторых участках, а не на всей голове.

Использование Pixel Depth Offset и Hair Shader

Pixel Depth Offset (PDO) не является свойством, уникальным для Hair Shader. С точки зрения непрофессионала, PDO заставляет пиксели отдаляться от камеры, создавая искусственное ощущение глубины. Так как волосы состоят из простых плейнов, как описано в разделе «Волосы и геометрия«, использование PDO может обеспечить ощущение глубины формы волос в целом.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Вторая часть статьи о создании реалистичного персонажа в Unreal Engine 4, в которой будет подробно описано создание глаз, можете посмотреть здесь: Devgam.com.

Редакция Devgam

Благодарим наших читателей и подписчиков за проявленный интерес. Поделитесь постом в социальных сетях.

Источник

🎮 Разработка игр Unreal Engine 4: 10 советов начинающим

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Denver 83

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

1. Установите UE 4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Минимальные требования гораздо ниже благодаря гибкой настройке графики.

Другие доступные платформы: Linux, iOS и Android. Имеется встроенная поддержка VR для Oculus Rift, поддержка Xbox One и PlayStation 4.

2. Определите цель изучения движка

Определитесь, что вы хотите сделать при помощи игрового движка. Для чего собираетесь изучить UE4? Вариантов использования масса, но наиболее популярные желания новичков выделить нетрудно:

3. Составьте план проекта (опишите этапы создания игры в UE4)

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Разбив первый проект по созданию игры на этапы, вы будете лучше ориентироваться в ее разработке. Приведем пример такого плана (это не исчерпывающий список, а скорее демонстрация):

4. Определите этапы создания среды в UE4

Теперь давайте рассмотрим, что нужно для создания пользовательской трехмерной игровой среды с помощью Unreal Engine 4:

5. Изучите основные понятия и операции

Чтобы приступить к разработке первого проекта, вам необходимо освоить базовые вещи:

Изучите основные понятия (термины):

6. Главное – режим!

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Подберите, удобный для себя, подход к изучению движка. Для начала достаточно часа в день. Вы можете постепенно наращивать темп, но час – это минимум. Если вы хотите добиться результатов, занимайтесь усердно в одно и то же время. В этом деле очень важна система!

Важно: Ключом к изучению любого игрового движка (особенно UE4) является установка добровольных ограничений. Не переусердствуйте со временем занятий и объемом материала, чтобы не перегореть на старте!

7. Начните с малого

Не пытайтесь сразу сделать большую игру. Ваша цель при разработке первого проекта – изучить функциональность, а также основы и принципы использования игрового движка. Рекомендуется начинать с разработки небольшой игровой среды со стартовым контентом. Это может быть отдельная комната, коридор или созданная при помощи Starter Content внешняя территория.

8. Изучите шаблоны

При разработке первого проекта на Unreal Engine 4 обязательно используйте один из встроенных игровых шаблонов. Это не просто примеры, а скорее концептуальные решения – на их основе строится логика вашего приложения. Стоит изучить каждый из примеров досконально, не боясь что-то испортить. Вы можете его сломать, загрузить и сломать снова, пока не поймете суть происходящего.

9. Освойте Blueprint

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Blueprint – это язык визуальных сценариев внутри UE4. Он сделает всю работу за вас и подключит настраиваемое поведение к проекту. Это означает, что можно создать скрипт для большей части игрового процесса и игровой механики внутри редактора без необходимости писать и компилировать код на C++. Можно создать игру, используя только Blueprint.

Изучите базовые функции Blueprint для создания интерактивных элементов игрового процесса:

10. Используйте интернет-ресурсы для обучения

В процессе изучения Unreal Engine 4 у вас наверняка возникнут вопросы. Ответы на них можно искать не только в документации:

Если вы зашли в тупик, не стесняйтесь просить помощи у более опытных разработчиков. При этом не забывайте золотое правило: обращайтесь к ним с конкретными вопросами, только если вы исчерпали все возможные варианты решения проблем. Не отнимайте время у профессионала на то, что вы можете сделать сами.

На Unreal Engine 4 сделаны многие современные игры, поэтому движок однозначно рекомендован к изучению всем интересующимся геймдевом. На самостоятельное освоение всех его возможностей потребуются не один год, но есть и более короткий путь. Обратите внимание на курс факультета разработки игр на Unreal Engine 4 образовательной онлайн-платформы GeekBrains. Вы освоите сам движок, научитесь программировать на Blueprints и C++ и сможете самостоятельно создавать игры с нуля. Занятия ведут эксперты-разработчики российских технологических компаний, а успешно окончившие курс студенты получат диплом о профессиональной переподготовке, несколько проектов в портфолио и помощь в трудоустройстве.

Источник

Создаем 2D платформер при помощи Unreal Engine 4. Часть 1 — Игровой персонаж, движение

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Давайте подготовим раскадровки для 2х состояний: покой и бег, для этого необходимо удалить красный фон (нам ведь не надо, что бы персонаж перемещался всегда на фоне красного прямоугольника) и вырезать требующиеся части изображения, на выходе получая что-то вроде этого:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Из фоновых изображений пока вырезаем только пол:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Структурируем папки проекта и импортируем соответствующие изображения:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Далее необходимо из текстур извлечь, собственно, спрайты. Сделать это можно двумя способами: автоматически и вручную, замечу, что с автоматичемским извлечением может быть один нюанс: спрайты будут пронумерованы по возрастанию, но совсем не обязательно, что нумерация будет соответсвовать их положению в исходной текстуре, так что после извлечения рекомендую все тщательно проверить, что бы впоследствии не было артефактов анимаций. Поскольку у нас все же урок, сделаем все вручную.

Первым делом создаем еще пару папочек, на этот раз в “Sprites” → “Alucard”, внутри которой будут папки “Idle” и “Walking” с соответствующими спрайтами. Итак, создаем пустой спрайт, называем его “Idle_1” и открываем. Сразу же переходим в “Edit source region”, а в качестве текстуры-источника указываем текстуру «Alucard_Idle».

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Один спрайт должен содержать один кадр анимации персонажа, так что скорректируем значения “Source UV” и “Source dimension”, что бы получить один кадр, либо просто дважды кликаем на нужно изображение, что бы автоматически определить его границы:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Проделываем то же самое с оставшимися кадрами покоя и ходьбы:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Из текстуры платфомы так же создаем спрайт, но, поскольку там всего одно изображение можно сделать просто через контекстное меню.

Самое время придать немного жизни нашим спрайтам! Для этого создаем “Animation flipbook”, даем ему имя и открываем. Добавляем соответствующие кадры по порядку и выставляем количество кадров в секунду по вкусу, мне нравится 6:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Повторяем для ходьбы и на выходе имеем 2 flipbook’а:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь добавим на сцену нашу платформу, важно что в ее положении по компонента Y была равна 0. Далее добавим управление (в заготовке оно уже включено, но переназначим, как нам будет удобно): Edit → Project Setting → Input.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Переходим непосредственно к созданию персонажа. В папке “Blueprints” создаем новый BP, нас спросят, какой класс принта, выбираем “Character”, даем имя, открываем и направляемся в раздел “Components”. Добавляет к капсуле Flipbook, в качестве источника выбираем заготовленную Idle анимацию, так же добавляем SpringArm и к ней цепляем камеру, в принципе можно обойтись и без руки, но лучше с ней. Настраиваем размеры спрайтов и капсулы по вкусу, но капсулу лучше делать немного поменьше, что бы спрайт не парил над землей. У камеры убираем зависимость от контроллера и выставляем ортографический тип, глубину — по вкусу.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Компилируем, сохраняем. В настройках мира можно создать свой GameMode, либо поменять в уже существующем “Default Pawn Class” на только что созданного нами персонажа.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь можно запустить и убедиться, что мы все сделали правильно и что наш персонаж нетерпеливо ожидает приказов.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Пора научить его передвигаться, для этого вновь открываем BP персонажа и переходим в раздел графа. Стоит отметить, что Blueprints – очень мощный инструмент, с его помощью можно обойтись в проекте без классического написания кода, но на деле это то же самое программирование, просто, собственно, писать надо будет разве что несколько имен, да значений. Итак, прежде всего надо добавить движение по вектору при событии MoveRight:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Тут происходит следующее: при воздействии на ось (у нас может быть два воздействия ± 1) происходит передвижение объекта по оси X на заданное воздействие. В принципе этого достаточно для передвижения, можно пробовать — компилируем, сохраняем, тестируем. Персонаж смещается вдоль оси, но без анимации, ведь мы не предусмотрели ее переключение.

Для переключения между анимациями нам необходимо заменить, собственно анимацию в flipbook нашего персонажа. Сделать это можно несколькими способами, но я предпочитаю наиболее универсальный и, как мне кажется, изящный. Создадим на графе Свое событие, назовем соответственно цели – “Update animation”.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Логика работы тут следующая: при вызове события во flipbook цели помещается заданная анимация. Сама анимация выбирается в зависимости от того, какая скорость у нашего объекта, если больше нуля — анимация ходьбы, иначе — покоя. Обновим и граф движения:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Появилось новое событие — “Event Tick”, оно происходит каждый кадр, соответственно каждый кадр у нас теперь происходит проверка необходимости смены анимации. Если сейчас запустить игру, то персонаж будет двигаться с анимацией бега, но всегда будет смотреть в одну сторону, исправим это:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Таким образом сегодня мы создали анимированного 2D персонажа, способного перемещаться по платформе. В дальнейшем добавим способность прыгать, сражаться и уничтожать врагов. Пожелания, комментарии и критика приветствуются.

UPD 1. По совету пользователя Torvald3d убрал билинейную интерполяцию на текстурах-исходниках персонажа. Просто заходим в импортированную текстуру и меняем фильтр на «ближайший».

Источник

Туториал по Unreal Engine. Часть 5: Как создать простую игру

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Если вы новичок в разработке игр, то логичнее всего начинать с создания простой игры. Она научит вас реализации простых механик и тому, как объекты взаимодействуют друг с другом.

В этой части туториала мы создадим игру от первого лица, которая длится бесконечно. Вы научитесь следующему:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Учтите, что в этой части мы будем пользоваться Blueprints и UMG. Если вам нужно освежить свои знания, то прочитайте части, посвящённые Blueprints и UI.

Примечание: эта статья является одной из восьми частей туториала по Unreal Engine:

Приступаем к работе

Скачайте заготовку проекта и распакуйте её. Перейдите в папку проекта и откройте InfiniteMatrix.uproject.

Примечание: если откроется окно, сообщающее, что проект создан в более ранней версии Unreal editor, то всё в порядке (движок часто обновляется). Можно или выбрать опцию создания копии, или опцию преобразования самого проекта.

Нажмите на Play, чтобы проверить управление движением. Двигая мышью, можно перемещаться вертикально и горизонтально.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Первое, что нам нужно сделать — заставить игрока постоянно двигаться.

Движение игрока вперёд

Перейдите в папку Blueprints и откройте BP_Player.

Чтобы двигать игрока вперёд, нужно добавлять в каждом кадре к местоположению игрока смещение.

Во-первых, нам нужно создать переменную, задающую скорость движения игрока вперёд. Создайте переменную Float по названием ForwardSpeed и задайте значение по умолчанию 2000.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь перейдите в Event Graph и найдите нод Event Tick. Создайте следующую схему:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Умножая ForwardSpeed на Delta Seconds, мы получим независимый от частоты кадров результат.

Примечание: если вам непонятно, что такое независимость от частоты кадров, то прочитайте часть туториала про Blueprints. Мы разбираем её в разделе Независимость от частоты кадров.

Теперь нам нужно использовать этот результат, чтобы перемещать игрока по одной оси.

Движение вдоль одной оси

Чтобы перемещать игрока, создайте нод AddActorWorldOffset. Измените значение Sweep на true, нажав на флажок.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Если попробовать соединить результат Float с входом Delta Location, то Unreal автоматически преобразует его в Vector.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Однако таким образом значение Float будет записано в компоненты X, Y и Z вектора. Для нашей игры движение вперёд должно выполняться только вдоль оси X. К счастью, можно разделить Vector на три компонента Float.

Убедитесь, что контакт Delta Location нода AddActorWorldOffset ни с чем не соединён. Нажмите правой клавишей мыши на контакт Delta Location и выберите Split Struct Pin.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Наконец, соедините всё следующим образом:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Вместо расположения туннелей вручную мы можем создать Blueprint, автоматически спаунящий туннели.

Создание системы спауна туннелей

Перейдите в Content Browser и зайдите в папку Blueprints. Создайте новый Blueprint Class с родительским классом Actor. Назовите его BP_TunnelSpawner и откройте его.

Игра будет создавать туннели постоянно, поэтому неплохо было бы создать функцию для спауна. Перейдите в панель My Blueprint и создайте новую функцию SpawnTunnel. Задачей функции будет спаун туннеля в указанном местоположении.

Чтобы передавать функции местоположение, функции нужен входной параметр. Они будут отображаться при вызове функции как входные контакты.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Также они будут отображаться как выходные контакты нода Entry функции.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Давайте создадим входной параметр. Перейдите в граф функции SpawnTunnel. Выберите нод Entry и перейдите в панель Details. Нажмите на значок + рядом с разделом Inputs.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Переименуйте входной параметр в SpawnLocation и смените его тип на Vector.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Чтобы создать туннель, добавьте нод Spawn Actor From Class. Нажмите на раскрывающийся список, расположенный справа от контакта Class и выберите BP_Tunnel.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Чтобы задать местоположение спауна, нажмите правой клавишей на контакт Spawn Transform и выберите Split Struct Pin. Затем соедините нод Spawn Actor From Class с нодом Entry:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь при вызове функции SpawnTunnel она будет спаунить экземпляр BP_Tunnel в переданном ей местоположении.

Давайте проверим, как это работает!

Проверка системы спауна туннелей

Переключитесь на Event Graph и найдите нод Event BeginPlay. Добавьте нод SpawnTunnel и соедините его с нодом Event BeginPlay.

В ноде SpawnTunnel задайте Spawn Location значение (2000, 0, 500).

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь при запуске игры он будет спаунить туннель сверху и перед игроком. Нажмите на Compile и вернитесь в основной редактор.

Сначала удалите BP_Tunnel из уровня. Для этого щёлкните на BP_Tunnel в World Outliner. Затем нажмите на клавишу Delete, чтобы удалить его с уровня.

Затем перейдите в Content Browser. Перетащите левой клавишей мыши BP_TunnelSpawner во Viewport. Благодаря этому его экземпляр появится на уровне.

Если нажать на Play, то игра будет спаунить туннель сверху и перед игроком.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Закончив проверку, вернитесь к BP_TunnelSpawner. Сбросьте значения Spawn Location нода SpawnTunnel на (0, 0, 0).

После этого нажмите на Compile и вернитесь в основной редактор.

В следующем разделе мы настроим работу BP_Tunnel.

Настройка Blueprint туннеля

BP_Tunnel будет выполнять две задачи. Во-первых, он будет определять, когда игра должна создать новый туннель. Для этого мы создадим зону триггера. После срабатывания триггера BP_Tunnel будет сообщать BP_TunnelSpawner, что нужно создать новый туннель. Благодаря этому можно создать иллюзию бесконечного туннеля.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Во-вторых, он будет задавать точку спауна. После этого BP_TunnelSpawner будет использовать эту точку как следующее местоположение спауна.

Давайте начнём с создания зоны триггера.

Создание зоны триггера

Откройте BP_Tunnel и перейдите в панель Components. Добавьте компонент Box Collision и назовите его TriggerZone.

Пока область коллизии довольно мала. Перейдите в панель Details и найдите раздел Shape. Задайте свойству Box Extent значения (32, 500, 500).

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь задайте свойству Location значения (2532, 0, 0). Это разместит TriggerZone прямо в конец меша туннеля. Это значит, что новый туннель должен будет создаваться только когда игрок достигнет конца туннеля.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь настало время создать точку спауна.

Создание точки спауна

Для задания местоположения точки спауна можно использовать компонент Scene. Эти компоненты идеально подходят для задания местоположений, потому что у них есть только Transform. Кроме того, они видимы во Viewport, поэтому вы можете видеть, где находится точка спауна.

Перейдите в панель Components и убедитесь, что ничего не выбрано. Добавьте компонент Scene и переименуйте его в SpawnPoint.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Меш туннеля имеет длину 2500 единиц по оси X, поэтому именно здесь должна быть точка присоединения. Перейдите в панель Details и задайте свойству Location значения (2500, 0, 0).

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Следующее, что нужно сделать — создать функцию, которая спаунит туннель в SpawnPoint.

Создание туннелей в точке спауна

Нажмите на Compile и переключитесь на BP_TunnelSpawner.

Следующий BP_Tunnel должен спауниться в SpawnPoint самого дальнего туннеля. Благодаря этому туннель всегда будет продолжаться.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Поскольку самый дальний туннель всегда будет последним созданным, то нам легко получить ссылку на него.

Откройте граф SpawnTunnel. Нажмите правой клавишей мыши на контакте Return Value нода Spawn Actor From Class. Выберите Promote to Variable и переименуйте переменную в NewestTunnel.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь у нас всегда будет ссылка на самый дальний туннель.

Далее создайте новую функцию и назовите её SpawnTunnelAtSpawnPoint. Создайте следующий граф:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Эта схема будет получать самый новый туннель и местоположение его компонента SpawnPoint, после чего спаунить новый туннель в этом местоположении.

Чтобы BP_Tunnel мог обмениваться данными с BP_TunnelSpawner, ему нужна ссылка. Без передачи данных BP_TunnelSpawner не будет знать, где спаунить следующий туннель.

Создание ссылки на спаунер туннелей

Нажмите на Compile и закройте граф SpawnTunnelAtSpawnPoint. Переключитесь на BP_Tunnel.

Добавьте новую переменную и назовите её TunnelSpawner. В качестве Variable Type выберите BP_TunnelSpawner\Object Reference.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Нажмите на Compile и переключитесь на BP_TunnelSpawner.

Откройте граф SpawnTunnel и добавьте обозначенные ноды:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь у каждого туннеля будет ссылка на BP_TunnelSpawner.

Далее нужно сообщить BP_TunnelSpawner о необходимости спауна следующего туннеля, когда игрок входит в TriggerZone.

Скриптинг зоны триггера

Нажмите на Compile и переключитесь на BP_Tunnel.

Перейдите в панель Components и нажмите правой клавишей на TriggerZone. Выберите Add Event\Add OnComponentBeginOverlap. Это добавит в Event Graph следующий нод:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Этот нод будет выполняться когда другой Actor касается TriggerZone.

Сначала нам нужно проверить, является ли Actor, касающийся TriggerZone, игроком.

Перетащите контакт Other Actor. Отпустите левую клавишу мыши в пустом пространстве и выберите в меню Cast to BP_Player.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Примечание: туннель спаунится в конце другого туннеля, поэтому он приведёт к срабатыванию триггера TriggerZone этого туннеля. Cast to BP_Player предотвращает выполнение всех дальнейших нодов, если Other Actor является туннелем.

Теперь добавим обозначенные ноды после нода Cast to BP_Player:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Давайте посмотрим, что здесь происходит пошагово:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Хотя игра бесконечно создаёт туннели, они не выглядят бесконечными. Исправить это можно, сделав видимыми несколько туннелей. Позже, когда мы соединим их с препятствиями, игрок не сможет увидеть, как создаются туннели.

Создание нескольких туннелей

Первое, что нужно сделать — создать функцию, создающую определённое количество туннелей.

Откройте BP_TunnelSpawner и создайте новую функцию с названием SpawnInitialTunnels.

Чтобы спаунить определённое количество туннелей, можно использовать нод ForLoop. Этот нод будет выполнять соединённые с ним ноды указанное количество раз. Добавьте нод ForLoop и соедините его с нодом Entry.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Чтобы нод ForLoop выполнялся n раз, необходимо задать для Last Index значение n – 1.

В этом туториале мы будем спаунить три туннеля. Для выполнения трёх циклов задайте Last Index значение 2.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Примечание: если не задать поля First Index или Last Index, то по умолчанию они будут равны 0.
Когда игра начинается, игрок всегда должен находиться в туннеле. Для этого можно создать первый туннель в местоположении игрока.

Создание первого туннеля

Чтобы определить, был ли создан первый туннель, мы можем проверить, задано ли NewestTunnel. Если нет, то это значит, что первый туннель ещё не создан, потому что NewestTunnel задаётся только после того, как игра создаст туннель.

Чтобы выполнить эту проверку, добавим нод IsValid (на котором есть знак вопроса) после нода ForLoop.

Затем получим ссылку на NewestTunnel и соединим её с контактом Input Object нода IsValid.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Если NewestTunnel не задан, то будет выполнен нод Is Not Valid, и наоборот.

Добавьте следующее и соедините ноды с контактом Is Not Valid нода IsValid:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Эта схема будет создавать туннель в местоположении Pawn игрока.

Затем нам нужно создать следующие туннели.

Создание следующих туннелей

Добавьте нод SpawnTunnelAtAttachPoint и соедините его с контактом Is Valid нода IsValid.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Вот как выглядит готовый граф:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Нажмите на Compile, вернитесь в основной редактор и нажмите на Play. Теперь туннель стал гораздо длиннее!

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Игра пока не очень сложна, так что давайте добавим препятствия.

Создание препятствий

Вот меши, которые мы будем использовать как препятствия:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Откройте BP_Tunnel и перейдите в панель Components. Добавьте компонент Static Mesh и назовите его WallMesh.

Перейдите в панель Details и измените его свойство Static Mesh на SM_Hole_01.

Затем задайте его свойству Location значение (2470, 0, 0), расположив его таким образом в конце туннеля.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Чтобы сделать игру интереснее, стены должны ещё и вращаться. Добавим новую переменную Float и назовём её RotateSpeed. Зададим Default Value значение 30.

Переключитесь в Event Graph и найдите нод Event Tick. Создайте следующую схему:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Это заставит WallMesh поворачиваться каждый кадр на заданную величину.

Нажмите на Compile и вернитесь к основному редактору. Нажмите на Play, чтобы увидеть, как поворачиваются стены.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Давайте сделаем игру ещё интереснее, добавив стенам вариативности.

Создание вариаций стен

Вместо создания нового Blueprint для каждой вариации, мы можем просто рандомизировать WallMesh.

Откройте BP_Tunnel и создайте новую функцию под названием RandomizeWall. Затем создайте следующий граф:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Как следует из названия, нод Set Static Mesh будет задавать WallMesh переданный меш.

Чтобы создать список статичных мешей, можно использовать нод Select.

Перетащите контакт New Mesh. Отпустите левую клавишу мыши на пустом пространстве и добавьте нод Select.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Нод Select позволяет задать список вариантов. Вход Index определяет, какой вариант будет выводить нод Select.

У нас есть четыре меша стен, поэтому нужно создать ещё два контакта Option. Это можно сделать правым щелчком на ноде Select, выбрав Add Option Pin. Повторяйте эту операцию, пока у вас не будет четыре контакта Option.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь задайте каждому варианту следующие значения:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь сделаем так, чтобы выбирался случайный вариант.

Рандомизация стен

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Если вы столкнётесь со стеной. то перестанете двигаться вперёд. Однако если продолжите двигаться и пройдёте сквозь отверстие, то снова начнёте двигаться вперёд.

Следующим шагом будет отключение движения вперёд после столкновения игрока со стеной.

Обработка коллизий со стенами

Для включения и отключения движения вперёд можно использовать переменную Boolean. Она имеет всего два состояния: true и false.

Откройте BP_Player и создайте новую переменную Boolean под названием IsDead.

Перейдите к ноду Event Tick и создайте нод Branch.

Теперь получите ссылку на IsDead и соедините его с контактом Condition нода Branch.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Соедините нод Event Tick с нодом Branch. Затем соедините контакт False нода Branch с нодом AddActorWorldOffset.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь когда IsDead равно true, игрок будет останавливаться.

Теперь нужно задавать переменную IsDead, когда игрок сталкивается со стеной.

Задание переменной IsDead

Нажмите на Compile и переключитесь на BP_Tunnel. В панели Components нажмите правой клавишей мыши на WallMesh и выберите Add Event\Add OnComponentHit. Это добавить в Event Graph следующий нод:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Этот нод будет выполняться при столкновении другого Actor с WallMesh.

Во-первых, нам нужно проверить, является ли игроком Actor, столкнувшийся с WallMesh.

Перетащите контакт Other Actor. Отпустите левую клавишу мыши на пустом пространстве и выберите в меню Cast to BP_Player.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Перетащите контакт BP_Player нода Cast to BP_Player. Отпустите левую клавишу на пустом пространстве и добавьте нод Set Is Dead.

Задайте IsDead значение true, поставив флажок.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Нажмите на Compile и вернитесь к основному редактору. Нажмите на Play и попробуйте столкнуться со стеной. Если вы переместитесь к отверстию, то не будете двигаться сквозь него дальше.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

В следующем разделе мы научимся отображать кнопку перезапуска, когда игрок ударяется о стену.

Отображение кнопки перезапуска

Виджет, который мы будем отображать, называется WBP_Restart. Его можно найти в папке UI. Вот как он выглядит:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Чтобы отобразить или скрыть виджет, нам нужна ссылка на него. Откройте BP_Player и создайте новую переменную RestartWidget. Измените Variable Type на WBP_Restart\Object Reference.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Затем перейдите в Event Graph и найдите нод Event BeginPlay.

Добавьте нод Create Widget и задайте Class значение WBP_Restart.

Теперь добавьте нод Set Restart Widget и соедините всё следующим образом:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Теперь при спауне игрока мы будем создавать экземпляр WBP_Restart. Следующим шагом будет создание функции, отображающей этот экземпляр.

Создание функции отображения

Создайте новую функцию и назовите её DisplayRestart. Сделав это, создайте следующий граф:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Вызов функции отображения

Закройте граф DisplayRestart и нажмите на Compile.

Переключитесь на BP_Tunnel и найдите нод On Component Hit (WallMesh).

Добавьте нод DisplayRestart в конец цепочки нодов.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Нажмите на Compile и закройте BP_Tunnel. Вернитесь к основному редактору и нажмите на Play. Когда игрок сталкивается со стеной, отображается кнопка перезапуска.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Последним шагом будет перезапуск игры при нажатии на кнопку.

Перезапуск игры

При перезапуске игра должна выполнять два действия:

Сброс игрока

Откройте BP_Player и создайте новую функцию RestartGame. Создайте следующий граф:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Повторное создание туннелей

Нажмите на Compile и закройте BP_Player.

Откройте BP_TunnelSpawner и перейдите в граф SpawnInitialTunnels.

Во-первых, перед созданием новых туннелей нам нужно удалить уже имеющиеся.

Добавьте нод Sequence после нода Entry. Соедините контакт Then 1 с нодом ForLoop.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Примечание: нод Sequence выполняет свои выходы в последовательном порядке. Это отличный способ упорядочить граф вертикально, особенно когда цепочки нодов очень длинные.

Затем создайте следующие ноды:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Эта схема получит все существующие туннели и удалит их из игры.

Наконец, соединим контакт Then 0 нода Sequence с нодом Get All Actors of Class. Благодаря этому туннели удалятся до процесса создания.

Вот как выглядит конечный граф:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Последнее, что нужно сделать — обработать нажатие на кнопку.

Обработка нажатий на кнопку

Нажмите на Compile и закройте BP_TunnelSpawner.

Перейдите в Content Browser и найдите папку UI. Дважды щёлкните на WBP_Restart, чтобы открыть его.

Выберите RestartButton и перейдите к панели Details. Перейдите в раздел Events и нажмите на кнопку рядом с OnClicked.

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Это создаст нод On Clicked (RestartButton). Этот нод выполняется, когда игрок нажимает на RestartButton.

Воссоздайте следующую схему:

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Нажмите на Compile и закройте Blueprint editor. Нажмите на Play, чтобы проверить работу кнопки перезапуска!

Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4

Куда двигаться дальше?

Скачать готовый проект можно здесь.

Теперь, когда у нас есть простая игра, можно начать создавать на её основе что-то ещё. Попробуйте добавить счётчик очков, увеличивающийся, когда игрок избегает столкновения со стеной.

Попробуйте также реализовать простые классические игры типа Pong и Tetris. Механика этих игр проста, но может вызывать сложности в реализации.

Если хотите продолжить изучение, прочитайте следующий пост серии, в котором я расскажу, как анимировать персонажей игры с помощью Blueprints.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ТекстураНазваниеОписание
Как сделать персонажа в ue4. Смотреть фото Как сделать персонажа в ue4. Смотреть картинку Как сделать персонажа в ue4. Картинка про Как сделать персонажа в ue4. Фото Как сделать персонажа в ue4Diffuse