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

Обновлено: 07.07.2024

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

Эта статья не требует от вас абсолютно никаких познаний в UDK, тут будет рассказанно о навигации в редакторе, различных приемах и фишках. Все, что от вас требуется - элементарные знания програм Windows (чтобы не бегать в панике глазами по экрану, пытаясь найти меню "Edit"), желание научится и немного времени (по предварительным расчетам, весь прогресс создания уровня, само собой, без учета времени, потраченного на прочтение статьи, займет около четырех часов).

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

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

26.03.12: Добавлена часть "Заполняем дыры в центре".
20.03.12: Добавлена часть "Дверь и лестница".
15.03.12: Добавлена часть "Применяем материалы".
13.03.12: Добавлена часть "BSP и браши".
11.03.12: Добавлена часть "Центральная секция".
10.03.12: Создана статья, написаны первые части: "Предисловие", "Первые шаги, первый куб" и "Крыша и башни".

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

Благо на данный момент времени в интернете просто масса информации по этой теме. Начиная от бесплатных статей и кейсов и заканчиваю также платными и бесплатными курсами.

Советую вам для начала ознакомиться с предназначением данного движка и понять действительно ли вы хотите связать свою работу именно с ним. Ну а если решились, то однозначно начинайте с просмотра вводных роликов на youtube. После переходите к изучению интерфейса и т.д. После можете рассмотреть платные курсы, но только подходить к этому стоит крайне ответственно. Сейчас 8 из 10 курсов откровенный шлак и сделаны ради высасывания денег.


Насколько сложно сделать игру в духе первого Вульфинштейна?

Владислав Богушов

Почему в функции Axis есть value, а в другой ее нет?

Станислав Колмаков

Kirill Alexandrov

Kirill Alexandrov

можно ли выбрать все объекты одного типа быстро, к примеру пол?

Andrey Tomov

Andrey Tomov

- В процессе раздумия

Vladimir Omyshev

Vladimir Omyshev

А про UI пара слов будет?

Sasha Rus

Sasha Rus

Дмитрий Глухов

а можно добавить бег

Anton

Как использовать CMake для компиляции UE4 проектов?

CRASTER PLAY

получится сделать чтобы один триггер бокс заработал после пересечения другого?

SunBro

-пока интерисуюсь к ureal

Tanktema

- Пока нет на это времени

Kirill Alexandrov

Kirill Alexandrov

- хочу еще посмотреть что это из себя представляет

- хотелось бы сначала увидеть темы для изучения

Москва, Ленинский проспект, дом 6, строение 20

Мы используем файлы cookie для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.

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

Если ты уже прошерстил первые 2–3 страницы гугла и ничего не нашёл, удостоверься, что ты правильно гуглишь:

  • твои запросы должны быть на английском с припиской в конце unreal engine (например, set start level unreal engine)
  • постарайся как можно сильнее обобщить запрос, например, не “как перекрасить кубик когда у меня игрок нажмет кнопку”, а “change material parameter on button event unreal engine”.

Посоветуйте с чего начать. Курсы, ссылки, вот это все.


Освещение постоянно меняется, то светлеет, то темнеет.

Так работает автоэкспозиция. Отключить её совсем или настроить можно через постпроцесс. Для отключения выставьте минимальное и максимальное значение одинаковым в разделе экспозиции в настройках постпроцесса. Убедитесь, что вы попадаете в объем постпроцесса, либо что он бесконечный (галочка Unbound). Что-то еще узнать по этой теме можно прогуглив “auto exposure unreal engine”.


Объекты исчезают при отдалении камеры.

  • Проверяем лоды: нужно проверить как выглядит ассет в разных лодах, возможно в одном из них его не видно вовсе. Так же у лодов есть возможность скрывать объект в зависимости от настроек графики (пробить этот вариант можно выставив все пункты скалабилити на эпик).
  • Проверяем дистанцию прорисовки у объектов (кулинг): у одних ассетов на уровне (например, статик или скелетал меши) это настройка draw distance, у других (например, у фолиажа) это cull distance
  • Проверяем материал: ищем в материале все ноды, которые так или иначе могут быть связанны с дистанцией или глубиной пикселей, например функция CameraDepthFade или Distance_Blend или просто Camera Distance в сочетании с Absolute World Position может скрывать объект на определенной дистанции от камеры
  • Баунд боксы: проверяем достаточен ли размер баунд бокса объекта для отображения, можно попробовать сильно увеличить баунд бокс для проверки.


Импортирую меш, а он раздельными кусками в движке. Как импортировать одним мешем?

Самым лучшим решением будет объединить меш в любом 3D пакете, но, если такой возможности нет, то в окне импорта нужно поставить галочку Combine Meshes.


Импортирую меш, а пивот не там, где в 3д пакете.

Сбросьте позицию модели в 0.0.0. в 3D редакторе, чтобы ось координат и пивот совпадали, тогда он импортируется корректно.


Можно ли поменять пивот в движке?

Конечно проще и лучше сделать это изначально в 3D редакторе, но если вам этот способ не подходит, то можно делать так или так.

А что насчет целых сцен? Как импортировать разом сцену, сохраняя и пивоты объектов и позиции?

Импорт целых сцен разом — кейс нетривиальный. С дефолтными настройками импорта у вас сохранятся позиции на сцене, но пивотом у всех объектов станет 0.0.0 сцены.


Если при импорте убрать галочку Transform Vertex to Absolut, то у каждого объекта будут сохранены пивоты, но позиции на сцене не сохранятся.


Чтобы сохранить и позиции и пивоты объектов, можно импортировать сцену через File — Import Into Level. Пивоты объектов сохранятся, а сами объекты будут расставлены на уровне как в 3D пакете. Так же там есть опция импортировать сразу как отдельную сцену в блюпринт акторе.



Или же можно воспользоваться плагинами для переноса из вашего 3D пакета в анрил. Такое, например, позволяет делать плагин Datasmith.


Unreal Engine завис на первом открытии проекта. Стоит на 45% (95%, 39%, 50% _подставьте свою цифру_ ). Это нормально? Сколько ждать то?

Да, в большинстве случаев это нормально. При первом запуске проекта происходит компиляция шейдеров. Вы можете проверить это в диспетчере задач — процессы Shader compiler. Скорость компиляции зависит напрямую от производительности вашего процессора. В зависимости от его мощности и сложности проекта, компиляция может длиться как 10 минут, так и полтора-два часа.

Особенно нетерпеливые или потерявшие надежду могу попробовать открыть этот проект в другой версии движка.


Кстати, в UE5 это учли и теперь помимо процентов показывается и состояние компиляции шейдеров и другие процессы, чтобы вы не волновались. А так же добавили эту киллерфичу в 4 анрил с 4.27 версии.

Как правильно перенести ассет в другой проект? Как передать ассет другому человеку? Поломались ассеты при переносе. Пути к текстурам потеряны, материалы не материалы, ничего не работает. Ааааа.

Чтобы переместить ассет в другой проект, ПКМ по ассету в контент браузере — Asset Actions — Migrate. В окне выбора места указать папку Content второго проекта, в который нужно передать ассет. Важно указать именно папку Content, а не какую-либо другую. Иначе все ссылки на пути к используемым ассетам будут неверными и в новом проекте ассет будет отображаться некорректно.


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

Если что-то пошло не так и после переноса ассеты отображаются неверно или не отображаются вовсе — cкорее всего вы произвели мигрейт неправильно. Насоздавали лишних папок или переместили не в то место. Пути к ассетам до и после мигрейта должны полностью совпадать.


Если вы сделали все правильно, но в вашем втором проекте ассеты не отображаются (видны только папки), значит вы пытаетесь перенести ассеты из старшей версии движка в младшую. Смотри пункт 11.

Можно ли как-то вытащить ассеты в другой движок или 3D пакет?

Да, для некоторых ассетов это возможно, например, для моделей или текстур. В контент браузере ПКМ по ассету — Asset Actions — Export. Модели экспортнутся в формате fbx, а текстуры в tga.


Как перенести проект из 4.26 в 4.25 (из любой другой старшей версии в младшую)?

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

Но можно попробовать перенести вручную (ноды блюпринтов и материалов переносятся через Ctrl+C и Cntrl+V, меши и текстуры — через ПКМ Asset Actions — Export и импортируются заново).

Ассеты из маркетплейса забивают диск С, хотя я добавляю их в проекты, которые лежат в других местах.

Перед тем как добавить ассеты в выбранный вами проект, они скачиваются в Vault Cache из которого потом копируются в указанные вами проекты.

По дефолту он расположен на диске С. Изменить его расположение можно через лаунчер. Epic Games Launcher — Settings — Vault Cache Location.


Я запек свет и что-то пошло не так.

Перед тем, как печь свет, убедитесь, что вы посмотрели хотя бы несколько базовых уроков по запеканию и понимаете, как это работает. Понимаете, что такое лайтмасс и как выглядит хорошая развертка для лайтмапы. Для старта подойдут вот эти базовые уроки, например: Статичный свет (Lightmass) в UE и UV развертка для Lightmass.
Если хочется больше — Lighting Techniques & Guides.

Если вы уверены, что хорошо понимаете что такое запекание, можно поискать решение своей проблемы вот тут (оригинал), (а тут перевод на русский) или вот тут в офф доках.

После запекания объект\объекты становятся черными или очень странно освещенными.

Скорее всего дело в плохой развертке для лайтмапы (либо и вовсе её отсутствии). Проверьте что у вас всё хорошо с разверткой под лайтмапу (объекты на развертке не выходят за границы, не пересекаются, достаточного размера) и что именно её индекс выставлен для лайтмапы. А еще желательно глянуть туторы из пункта 13, прежде чем печь свет.


После запекания тень пиксельная.

Первым делом проверьте вашу развертку для лайтмапы, удостоверьтесь что пиксели возникают не из-за того, что элемент на развертке очень маленький. Попробуйте увеличить разрешение лайтмапы. Если это не помогло, в конце пункта 13 есть 2 ссылки с часто возникающими проблемами, возможно они помогут.


Делаю лэндскейп и на нём появились квадраты.

После запекания освещения они исчезнут.


Объекты с эмиссив материалом не освещают уровень.

Свечение от эмиссива не дает динамического света. Чтобы свет от объектов с эмиссив материалами учитывался в освещении нужно поставить соответствующие галочки и запечь свет. Тогда он появится в запеченном освещении. Какие галочки ставить — в первой части видео. Если же вам нужен не только статический свет от эмиссив материала, но и динамический, то этого можно добиться только используя RTX технологии в проекте (ну либо фейковать источником света как во второй части видео из этого пункта).

Могу ли я использовать RTX\GPU Lightmass, если у меня не 20xx\30xx серия карт?

Да, поддерживаются не только последние серии карт. С меньшей производительностью, но можно использовать даже GTX начиная с 1060 на 6гб. Весь список (кроме 30ой серии) на картинке:


Накладываю материал на разные меши, и он выглядит\масштабируется на них по-разному. Как увеличить\уменьшить масштаб текстуры или сдвинуть текстуру? Как использовать текстуру без развертки\с плохой разверткой проекцией как в моем любимом 3D пакете N?

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


Менять масштаб текстуры можно умножением TexCoord на скаляр или вектор. Сдвигать текстуру добавлением или вычитанием из TexCoord. Вот здесь все наглядно показано (ссылка с таймкодом).


Точно такие же проекции как в своем 3д пакете вы вряд ли найдете, но помимо наложения по UV, можно накладывать текстуру и без нее. По ссылке с таймкодом несколько вариантов проекций текстур без UV (с 17 минуты и по 25ую). Скорее всего вам подойдет трипланар, примерной реализацией которого является нода WorldAlignedTexture. Чтобы текстура держалась на объекте, следует учитывать локальные координаты объекта.


Кстати, въехать в материалы вам поможет бесплатный мини-курс с офф сайта Materials Master Learning.

Прозрачный материал не блюрится DOFом камеры.

В материале нужно убрать галочку Render after DOF.


Как сделать, чтобы коллизия у меша была не простыми примитивами, а полностью повторяла форму меша?

В ассете меша в настройках коллизии выставить Use Complex Collision As Simple. Замечу, что это будет несколько дороже для вычислений и в физических взаимодействиях меши с комплексной коллизией могут выступать только в роли статики.


Частицы пропадают во время игры или записи синематика в секвенсоре или просто, когда начинаешь отворачиваться от эмиттера.

В 90% случаев дело в баунд боксах частиц. Если у вас GPU частицы им нужно выставить фиксированный баунд бокс и увеличить его (иногда существенно увеличить). У CPU частиц размеры баундбокса считаются автоматически, но и им иногда приходится выставлять большие фиксированные баунд боксы, особенно во время записи секвенсором или при больших масштабах эффекта. В каскаде выставляется так:


В ниагаре здесь:


Как въехать в системы частиц?

Сейчас в Unreal Engine две системы частиц: старая Cascade (помечена как Legacy в UE5) и новая Niagara. Базовые уроки по Cascade: раз и два
Базовые уроки по Niagara: раз и два

Кстати, здесь есть статейка о том, чего посмотреть, если хочется в vfx на движке.

Хочу отрендерить видео секвенсором, но на рендере камера не моя, статичная съемка непонятно откуда.

  • В первую очередь убедитесь, что ваша камера присутствует в Camera Cuts вашей секвенции.


  • Затем удостовертесь в том, что на уровне у левел сиквенса стоит галочка авто плей.


  • Ну и на всякий случай в World Settings можно выставить дефолтный гейммод, чтобы секвенсор точно ничего не перехваттывало.


Когда Unreal Engine 5?

С 26 мая 2021 доступна версия в раннем доступе. Вы можете загрузить её в лаунчере или на гитхабе. Версия пока сыроватая и сами эпики указывают, что она пока не для продакшена. Но в качестве изучения вполне подойдет. Из раннего доступа Unreal Engine V должен выйти в 2022 году.

Что же изучать сейчас? Unreal Engine 4 (4.26) или Unreal Engine 5?

По факту сильной разницы нету. 98% того, что вы можете узнать про UE4 точно так же работает и в UE5. Материалы, левелдизайн, блюпринты, частицы — все работает одинаково. Какие-то существенные различия есть только в физике, свете и новых технологиях, которые появились только в пятёрке. Поэтому достаточно начать с любых уроков по четвёртой версии движка и, когда более-менее освоитесь в ней, начинать изучать новые технологии пятой, которых в UE4 нет.

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