Как сделать ии в unreal engine 4

Обновлено: 07.07.2024

Что такое Unreal Engine 4

Unreal Engine 4 сильно повлиял на игровую индустрию: его использовали при создании Fortnite, Hellblade: Senua’s Sacrifice, Gears 5 и сотен других игр.
Но он полезен и за пределами игровой индустрии — в дизайне интерьеров или даже в кинематографе.

Интерьер, созданный при помощи Unreal Engine 4

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

Видео с демонстрацией графических возможностей Unreal Engine

Ещё одно важное преимущество — быстрый производственный процесс.

Создатели видео рассказывают о производственном процессе

Как Unreal Engin используют в кино

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

Благодаря Sequencer самым популярным способом применения UE4 на съёмках стало создание реалистичного фона. Технологию можно использовать как хромакей — в реальном времени, поэтому теперь это занимает не несколько часов, а всего пару минут и несколько кликов. Иногда специалисты по спецэффектам дорабатывают сцены на постпродакшне, но часто даже этого не требуется: хватает рендера в реальном времени.
В создании фонов помогает шаблон UE4 под названием nDisplay: он позволяет проецировать изображение сразу на несколько экранов или поверхностей. Сгенерированные фоны транслируются на огромные LED-экраны и создают иллюзию, будто актёры находятся внутри этого пространства. Процесс напоминает такие классические для кино методы, как рирпроекция и фронтпроекция (приёмы комбинированной съёмки, в которых фон проецировался на экран позади актёров), только без свойственных им недостатков, вроде теней от съёмочной группы и несовпадения деталей.

Ещё один полезный для кино инструмент — технология Stagecraft, которая создаёт и меняет реалистичное окружение прямо на съёмочной площадке.

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

На конференции разработчиков игр GDC Epic Games представили действительно футуристичную технологию на базе UE4. Движок рендерил уже не фон внутри программы, а физический объект в реальном времени — автомобиль Chevrolet Camaro ZL. Для этого использовалась реальная модель авто без кузова, но с каркасом и нанесёнными на него QR-кодами.

В каких проектах использовали Unreal Engine

Фактически, фильм был изначально полностью поставлен в VR, чтобы во время настоящих съёмок команда могла отталкиваться не от раскадровок, а от анимации с готовыми светом, цветокоррекцией, операторскими приёмами и так далее. Теперь больше не требовалось подолгу искать общий язык с VFX-художниками и присылать им правки. Вся графика уже перед глазами режиссёра, а заметки для пост-продакшна выглядят максимально наглядно. Этот опыт сильно повлиял на Фавро, — он окончательно убедился в эффективности своего новаторского подхода.

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

Джон Фавро
Для актеров это было здорово, потому что они могли ходить по съёмочной площадке, и даже в случае использования интерактивных проекций попадать в среду, где они видят всё окружение.

На эти светодиодные стены не стоит смотреть с близкого расстояния, но они всё равно полезны для периферического зрения во время работы. Вы всегда знаете, где горизонт, ощущаете освещение на себе. И вам даже не нужно настраивать свет на площадке, ведь вы получаете много интерактивного света от этих светодиодных стен.

Полнометражный анимационный фильм на базе UE4 тоже не за горами. Epic работают над проектом под названием Troll, который создаётся с применением технологии трассировки лучей. В главной роли – Алисия Викандер.

О процессе создания анимационных фильмов в UE4 подробно рассказали 3D-художники, работавшие над короткометражкой Fragment — в их гайде описаны все этапы производства.

Каково будущее Unreal Engine в кино

Фавро и другие режиссёры, которые использовали технологию, сходятся во мнении, что UE4 значительно повлияет на будущее кинематографа. Движок становится проще и удобнее для рендеринга, что позволяет добиваться высокого качества эффектов без лишних затрат.
Конечно, пока UE4 далёк до того, чтобы каждый мог с его помощью создать собственный фильм. Но он уже помогает профессионалам отрисовать необходимые объекты и фоны прямо в процессе производства — а ведь это ещё вчера звучало как мечта всех режиссёров блокбастеров, уставших от проблем, связанных с хромакеем.

Джон Фавро

Если попытаться заглянуть в будущее — возможно, благодаря Unreal Engine 4 или аналогичному инструменту, кино станет в буквальном смысле интерактивным. Наблюдая за тем, как используется эта технология сегодня, можно представить, как зритель будущего изменяет фон и детали фильма прямо во время просмотра.

Хорошая статья. Идея менять окружение во время просмотра отличная, ещё бы и делать выбор влияющий на некоторые сцены в последствии и мы на один шаг ближе к полному погружению)

Систему процедурно разрушаемой машины можно бесплатно скачать с Gumroad и импортировать в Unreal Engine 4.

Dries Deryckere рассказал о том, как ему удалось создать замечательную процедурную систему разрушения машин. Трудно представить что студенты могут делать с новейшими технологиями в наши дни. Dries Deryckere совсем недавно опубликовал свой проект (который вы можете скачать абсолютно бесплатно или пожертвовать несколько долларов на Gumroad), который содержит в себе сцену разрушаемых автомобилей с мощными скриптами. Dries рассказал, как он решился сделать эту систему и какие проблемы встречались при создании проекта.

Вступление

Создание процедурно разрушаемой машины в UE4

Создание процедурно разрушаемой машины

Данный проект создавался для научной работы по окончанию учебного года в DAE. Я изучил различные пути процедурной деформации и наконец сел за создание этой системы. Система работает по такому принципу:

Unreal Engine 4 поддерживает систему skeletal меша, которая позволяет пользователю импортировать Fbx файлы с риггом. Этим объектам можно придать физику и симуляцию ragdoll. Я создал меш и добавил на него сильный damping. Модели не имеют анимаций, кроме естественного толкания объекта другим объектом с коллайдером.

Проблема заключалась в том, что объект не падал на пол и не имел другой физики, кроме деформации. Я придумал такой выход из ситуации, который позволил бы симулировать физику в local space. Я достиг этого результата благодаря созданию статичного меша, так чтобы объект вел себя как будто мы установили "simulate physics".

Создание процедурно разрушаемой машины в UE4

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

Если говорить кратко, то вот мой совет в двух словах: Skeletalmesh with high damping > teleport to > simulated staticmesh.

Создание процедурно разрушаемой машины в UE4

Проблемы первой версии моего проекта:

1. Машины не могут взаимодействовать друг с другом (скоро будет исправлено).

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

3. Некоторые объекты отсутствуют на машине.

4. Требуется сильное железо для 6+ машин на сцене.

5. Систему приходится переделывать под каждую новую машину практически с нуля. Нет возможности нажать на кнопку "Generate" и сгенерировать под нужный пользователю меш.

6. Все элементы проекта затекстурированы в Substance Painter. Эффект деформации в Normal карте создается благодаря динамическому материалу, который регистрирует попадание.

Создание процедурно разрушаемой машины в UE4


авг 25, 2016 | 6 комментариев

Заметки о ньюансах разработки в UnrealEngine4

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

Как сделать чтобы персонаж (Character) превращался в ragdoll и падал на землю?

1. Для этого нужно, чтобы у Skeletal Mesh’а, используемого в Character’е был привязан Physical Asset. Проверить, привязан ли он, можно открыв Skeletal Mesh в редакторе (дважды кликнув по нему в Content Browser), и посмотрев на параметр Physical Asset.

2.1. Если тело (Physical Asset) у вас сделано неправильно, одним куском (что, например, именно так у входящего в стандартный набор персонажа Mannequin), нужно сгенерировать новое тело на базе скелета. Нажимаем на Skeletal Mesh правой кнопкой (в Content Browser) и выбираем Create -> Physical Asset. После чего нужно открыть Skeletal Mesh и в настройках указать в качестве физического тела свежесозданное тело.

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

4. И чтобы заставить тело подчиниться гравитации, нужно включить симуляцию физики: Mesh->setSimulatePhysics(true), после этого тело упадёт и начнёт беспорядочно валяться по полу.

RagDoll

Как сделать чтобы тело повалялось и успокоилось?

Функция FreezeMesh

6. Эту функцию можно будет вызывать когда вам надоело, что тело валяется и дрыгается на земле, скажем через пару секунд. Для этого нужно создать Custom Event в Event Graph’е, и вызывать из него команду Delay(2), то есть, приостановить выполнение на 2 секунды, а из неё уже вызывать FreezeMesh.

DelayAndFreeze

Как сделать, чтобы после смерти персонаж перестал подчиняться Controller’у?

Если при смерти у вашего персонажа просто проигрывается анимация смерти, а не включается ragdoll, то персонаж будет продолжать подчиняться Controller’у, например, враг будет даже мёртвым продолжать ползти за героем. Чтобы этого не случилось, достаточно в момент смерти отключить управление персонажа контроллеров. В функции, которая у вас обрабатывает смерть персонажа, достаточно вызвать getAiController->UnPosess.

Внимание! После вызова UnPosess контроллер отстыкуется от pawn’а, и обратиться к нему через getAiController будет уже невозможно!(чтобы осознать это, потребовалось несколько дней отладки)

UnPosess

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

Чтобы решить эту проблему, нужно:

1) Найти внутри вашего персонажа, в дереве компонентов, компонент CharacterMovement
2) в нём найти параметр Push Factor Point ZOffset и установить его = 0

Как сделать простейший объект-пулю

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

Поворот персонажа, управляемого ИИ в сторону врага

1) Для плавного поворота, особенно, когда есть именно враг, можно использовать Controller->setFocus(targetActor)
2) Для поворота на указанную точку (когда врага нет, а надо просто посмотреть куда-то, можно использовать Controller->setFocalPoint(targetPointVector). Плавность поворота при этом не гарантируется.

6 комментариев

Не получается сделать плавное вращение через setFocus, в чем может быть проблема?

Не получается, все равно рывком поворачивается.
проверяю так: у меня в btree стоит задержка, а потом setFocus на pawn игрока, когда он за спиной ai находится

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

Нашел, что надо убрать галку в aicontroller SetControlRotationFromPawnOrientation, тогда setControlRotation работает, но не учитывает pitch? а это проблема. Верх/вниз тоже надо смотреть

В случае когда надо сделать плавный поворот по pitch без изменения скорости (у ракеты тело было настроено всегда поворачивать в направлении скорости), достаточно просто определить угол межу целью и реальным направлением, и добавить к реальному углу небольшой угол равный скорости * dt, где dt — это длина тика (не помню как в UE переменная называется)

Чтобы собрать игру, нужна некая среда с определёнными техническими условиями и необходимыми инструментами. В качестве такой среды выступает игровой движок. Unreal Engine 4 — один из самых популярных движков, который используют как крупные компании, так и небольшие инди-студии. К примеру, на UE4 созданы Final Fantasy VII Remake, Returnal, Gears 5, Borderlands 3, Fortnite, Abzû, Observer и многие другие.

Разработчик игр на Unreal Engine 4: что умеет, сколько зарабатывает и почему UE4 — отличный выбор для начинающего специалиста

Владимир Семыкин

Энтузиаст геймдизайна, автор Нетологии

Почему Unreal Engine 4 — один из лучших движков для работы над играми

Есть несколько причин большой популярности UE4.

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

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

Движком можно пользоваться бесплатно: в лицензионном соглашении Unreal Engine указано, что пока ваша игра не принесёт более $1 000 000 — после этого придётся платить 5% от дохода.

Есть возможность сделать игру, которая запустится на всех популярных платформах: PlayStation, Xbox, Switch, ПК, iOS, Android.

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

Разработчик игр на Unreal Engine 4: что умеет, сколько зарабатывает и почему UE4 — отличный выбор для начинающего специалиста

Epic Games постоянно устраивает бесплатные раздачи ассетов, которые могут пригодиться при разработке игры

Большое преимущество Unreal Engine 4 в универсальности и доступности — его могут использовать как опытные разработчики, так и новички, которые впервые берутся за создание игры. Всё дело в том, что UE4 по умолчанию поддерживает сразу два языка программирования: текстовый C++, в котором нужно писать строчки кода, и визуальный язык Blueprints, в котором игровая логика выстраивается при помощи связанных между собой блоков. Такой подход помогает сделать программирование более наглядным и понятным для тех, у кого нет опыта.

«Blueprints разработала компания Epic Games, чтобы дать инструменты программирования людям, которые далеки от этого. Поэтому научиться работать с Blueprints очень легко. Конечно, необходимо получить минимальную теоретическую базу, например, разобраться, что такое переменные и как работает функциональное и объектно-ориентированное программирование.

Разработчик игр на Unreal Engine 4: что умеет, сколько зарабатывает и почему UE4 — отличный выбор для начинающего специалиста

Пример логики для шарика, который отскакивает от препятствий и теряет скорость после каждого столкновения

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

Читайте также: