Как сделать дыру в стене в ue4

Добавил пользователь Евгений Кузнецов
Обновлено: 17.09.2024

Эта страница Вики посвящена снижению порога вхождения для новых программистов на C++ .

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

Я и, надеюсь, другие смогут ответить на эти вопросы.

С чего лучше начать изучение UE4 C++ ?

Лично я рекомендую начать с расширения класса PlayerController, а затем сделать Blueprint из него.

Потом Вы сможете указать свой пользовательский PlayerController в вашем Game Mode Class.

У меня есть урок на эту тему:

ClientMessage

Когда Вы изучаете C ++, Вы должны быть в состоянии дать себе обратную связь, о том, что функции работают, алгоритмы получают информацию, и о том что разные части кода на самом деле отрабатываются.


Вы можете использовать логирование для этого, но также можно использовать ClientMessage!

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

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

PlayerController встречается повсюду

Фактически в любой игре будет PlayerController, так что это хорошая точка входа в мир UE4 C++ :)

Что такое (->), ( ), (::) ?

Я видел, что в C++ мы используем дефис со стрелкой (->), а не точку, как в других языках (.). Но я также видел использование двойных двоеточий (::) которые я не понимаю. Вы можете, пожалуйста, объяснить- что делают с помощью этих символов в C++? Какая разница между (->) и (::) ?

Например, UnrealEdEngine.cpp (\UnrealEngine\Engine\Source\Editor\UnrealEd\Private), Вы можете увидеть функции UUnrealEdEngine ::Init в строке 26. Почему эта функция использует двойное двоеточие? И внутри этой функции я вижу Super::Init(InEngineLoop).

Я ожидал увидеть Super->Init(InEngineLoop), но вместо него двойное двоеточие. И внутри этой функции большинство вызовов с помощью двойного двоеточия. Поэтому пожалуйста: объясните разницу между (::) и (->) и (.) .

(->) означает, что это переменная, указывающая на данные. То есть переменная является ссылкой на контейнер, хранящий данные.

Это означает, что(.) это прямой доступ к реальным данным, в то время как (->) это косвенная ссылка на данные, которые могут и не существовать на самом деле.

То есть (->), может указывать на хранилище (контейнер) данных, которого на самом деле не существует.

Таким образом, Вы всегда должны проверять такие переменные!

Пример

После создания LocationPtr не указывает на хранилище данных, её необходимо связать с фактическими данными.

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

Теперь, когда мы связали LocationPtr, мы можем получить доступ к переменной X с помощью косвенной ссылки (->)

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

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


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

Использование (::)

(::) говорит о пространстве имён (namespace) / или области видимости функции или переменой.

Это означает, что функция объявлена в классе UUnrealEdEngine.

Так как функция инициализации является виртуальной, Вы можете вызвать версию функции из родительского класса (и Вы должны это сделать!)

Super означает родительский класс UUnrealEdEngine.

Для чего это?

У Вас есть огромная власть и свобода в C++!

Это, возможно, то, что делает его немного более сложным, для изучения :)

Вы можете объявить функции и переменные в любом месте в C++, поэтому используются (::) чтобы разграничить области: различные классы могут иметь переменные и функции с тем же именем, но при этом компилятор их будет различать.

Пример

Например, у Вас есть классы AMyTree и AMyFlower.

AMyTree хочется иметь функцию GetLocation (), так же как и в AMyFlower.

Однако в C ++, Вы работаете на очень низком уровне, что означает, что Вы можете объявить функции и переменные в глобальном пространстве имён.

Если Вы просто объявите переменную или функцию вне класса(class) или структуры(struct) или пространства имен(namespace),

то тогда эти функции и переменные будут объявлены в глобальном пространстве имён и будут вызываться везде, где бы они не использовались.

Это на самом деле очень полезно для ! Однако, это вызывает проблемы для AMyTree и AMyFlower, где в обоих классах требуется функция GetLocation ()! Если Вы не будете использовать (::), то компилятор не сможет различить GetLocation () для AMyTree и для AMyFlower при компиляции! Используя (::) Вы говорите компилятору: какая версия функции для какого класса.

Если бы не (::)

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

Что значит, Т? В таких случаях как TSharedRef, TWeakPtr, TArray и т.д. "

Не допускайте, чтобы T запутала Вас! Воспринимать код с ней немного сложнее, так что постарайтесь игнорировать её для себя в таких ситуациях как этот:

..и просто читать следующим образом:

Буква Т нужна, но это скорее заявление о типе класса- Array. Представьте себе: имена классов могут быть разных цветов, Т просто один цвет, или вкус класса в UE4. Но, если Вы пытаетесь прочитать код и если Вы не игнорировали ее, то буква Т может помешать пониманию- что делает сам класс.

Общая Ссылка

Еще один пример:

Читая без T, мы видим "Общая Ссылка" (SharedRef). Игнорируя T, Вы можете читать основной код значительно легче, чтобы получить четкое представление о значениях каждого класса. Просто убедитесь, что использовали T, когда Вы попытаетесь работать с классом :)

Префиксы

Зачем нужны дополнительные префиксы. Например

  • зачем F в FVector и FSourceControlStatePtr
  • зачем T в TSharedRef, TWeakPtr, TArray
  • зачем U в (я думаю это Unreal) UObject, UUnrealEdEngine
  • зачем G в GIsEditor, GSlowTaskOccurred
  • и так далее.

За исключением G, это как цвета или вкусы классов в UE4. Каждая буква указывает на то, от какого класса унаследована та или иная сущность.

EPIC, Официальная документация по классам

Epic подробно рассказывает что означают данные префиксы:

Хорошо, так что в действительности означает T ?

В исходных кодах UE4, все типы данных имеют префикс указывающий на его категорию, например: Т используется для обозначения класса шаблона: TSharedRef, TWeakPtr, TArray и т.д.,- это всё шаблонные классы. Префиксы позволяют легко отличать имена классов от имён переменных, поскольку имена переменных обычно не объявляются с префиксами в исходных кодах UE4 (одно исключение к этому правилу- имена логических переменных (bool), они начинаются с 'B').

В общем T даёт Вам понять две вещи:

  1. Вы смотрите на название типа (не имя переменной).
    1. Этот тип данных является шаблоном класса.

    Так же есть и другие префиксы, которые можно найти в исходниках, например, U, A, S, I и F. Вы можете прочитать об их значениях здесь:

    Да, префикс перед именем типа выглядит несколько некрасиво. [1] ,но может быть гораздо хуже (Посмотрите 36-строчный фрагмент кода ближе к концу статьи).

    В качестве объяснения, шаблонные классы это такие классы, которым можно определить "подтип" к "основному типу". Для TArray, подтип может быть типом данных, которые буду хранится в нём, например:

    Это получился контейнер для ряда значений типа FString. Без шаблонных классов, Вам бы пришлось,"просто знать", что на самом деле массив "MyBadVariableName" содержит переменные типа "FStrings", но благодаря шаблонным классам это знает и компилятор, и это хорошо, так что Вам не придется держать столько вещей в свое голове во время чтения магически-запутанного вуду кода вашего друга.

    Вы можете больше прочитать о шаблонных классах здесь:

    Указатели

    Указатели (*) и ссылки (&). Я с трудом понимаю как их использовать. Что они такое? Вы можете показать несколько примеров того, как использовать и где использовать и какие преимущества их использования ?

    Это, пожалуй, самое главное что надо понять новичкам, чтобы действительно достичь прогресса в C++. Если у Вас есть четкое представление об указателях, то Вы должны быть счастливы от программирования в UE4 C++! Указатели чрезвычайно-мощные и немного опасные, потому что дают Вам силу, которая у них есть.

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

    Всегда проверяйте ваши указатели

    Прежде чем пытаться получить доступ к данным, указатели должны быть связаны, Вы всегда должны проверять это:

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

    Разыменования указателей (Получение доступа)

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

    Разыменования с помощью (*)

    Разыменования с помощью (->)

    Зачем использовать указатели?

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

    Доступ к данным издалека

    Скажем, у Вас есть персонаж, который является частью подуровня, который является частью мира, который является частью далекой Галактики. Чтобы фактически получить доступ к переменной "Броня" этого персонажа, Вам надо пройти через целый ряд гетеров (Gets), как то так:

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

    Теперь, чтобы получить данные о броне, Вам не придётся писать

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

    Вместо этого Вы можете написать:

    Видите насколько это легче прочитать? Но подождите, это еще не все!

    Доступ к огромным объемам данных в любой момент

    Указатели могут быть связаны со сравнительно-небольшим объемом данных, или с большим или даже с гигантским объемом данных!

    Продолжая приведенный выше пример, можно спросить, "Почему я не могу просто создать копию переменной "Броня" ?"

    Но что, если FArmorStruct содержит гигантское количество данных, и Вы хотите сделать это для 300 персонажей по всей галактике? Вы бы стали копировать данные много раз. Но данные уже есть в одном месте памяти. Зачем Вам копировать их несколько раз, тем самым дублируя данные? Указатели позволяют избежать этого! Вы можете просто указать на одну ячейку в памяти и получать доступ к ней в любое время.

    Будьте в курсе изменений в реальном времени

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

    Итак, еще раз, правильный путь:

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

    Передача данных по ссылке

    Еще одно применение ссылок для передачи данных в функции. Это особенно важно для очень больших объемов данных, которые Вы бы не хотели, копировать в контексте функции!

    Если Вы не будете использовать ссылки, то будете копировать весь огромный массив, просто чтобы узнать, насколько он большой!

    Связанный урок от Epic

    Создание реалистичных горных сцен в UE4

    Меня зовут Майкл Ди Лонардо, я начинающий художник окружения из Канады. Окончил факультет графического дизайна и в основном работал в мультимедиа: в публичных местах, автомобильных выставках, концертах, иммерсивных шоу и т.д. В последнее время меня больше всего интересует дизайн окружения. Я нигде не учился этому, и изучал все, что только мог, самостоятельно, через онлайн ресурсы. С Unreal Engine 4 познакомился всего несколько месяцев назад. К счастью, сейчас есть множество различных источников информации, но, тем не менее, даже учитывая, что я уже знаком с некоторыми 3D программами, эта оказалась другим зверем, и у меня взрывался мозг, пока я ее изучал.


    Запуск проекта и использование World Machine

    Как правило, создание проекта начинается с рождения идеи, затем идет поиск вдохновения, может, даже создание подборки картинок для мудборда, и так далее. Но у меня было иначе, так как этот проект не планировался как приоритетный. Будучи новичком в UE4, я хотел просто поэкспериментировать с инструментами скульптурного выдавливания (sculpting tools) для ландшафтов. Они уже были рассмотрены в моем предыдущем проекте, но мне было интересно побольше в них разобраться. Я хотел взять за основу что-то более интересное, чем обычный стандартный ландшафт, поэтому создал базу в World Machine. Забавно, что один из ключевых моментов работы с программами рельефа местности — не лепить рельеф вручную, а я собирался смешать оба способа!

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


    Затем использовал функцию Use Breakup , чтобы создать более реалистичную форму. В ней всего 3 параметра, но их достаточно, чтобы сделать макет более интересным.


    После этого перевернул макет, который только что создал, так, чтобы он выглядел как дыра в земле. Затем добавил легкий градиент, что создало эффект возвышения ландшафта на верхушке, и эффект углубления у его основания. Направил его через две ноды Advanced Perlin вместо одной, чтобы лучше контролировать процесс. Это позволило отвести одну ноду для более крупных смещений, а вторую — для более мелких.


    В завершении добавил ноду Erosion , которая помогла связать все это вместе и подготовить ландшафт к экспорту.


    У меня было несколько нод на выход (Output nodes), поскольку я пробовал еще кое-что. Самое главное, вам необходимо экспортировать файл в RAW16 для карты высот. Более того, я экспортировал 3 отдельных PNG для верхнего, среднего и нижнего слоя высот при помощи нод Select Height , которые облегчат размещение базовых текстурных слоев.


    Здесь изображены все настройки:


    Я добавил несколько гор, чтобы окружить ими сцену.


    Так как я немного экспериментировал, не обращайте внимание на некоторые выходы (outputs). Мне нужно было экспортировать RAW 16 и 2-3 карты высот. Здесь изображены все настройки:




    После перетаскивания материала на ландшафт мне все еще не хватало основной базовой текстуры: снега. Именно здесь и пригодилась нода Select Height в World Machine. Для слоев травы / камней я использовал карты нижней / средней высоты, а для снега — верхнюю карту высоты. Вы можете это сделать, щелкнув правой кнопкой мыши на любом из слоев ландшафта и нажав “импортировать из файла”. Как видите, “линия”, разделяющая снег и горы на более крутых областях, все еще достаточно заметна, но этот момент было легко скорректировать, так как я мог рисовать на слоях и просто смягчил этот переход.



    Процесс скульптурного моделирования

    Скульптурное моделирование было сделано вручную в UE4, так как это и являлось основной целью. Стиль, с которым я работал, однозначно можно было сделать и в World Machine, но сам факт создания его вручную дает возможность что-нибудь еще дорисовать в ходе процесса. К тому же, иногда, во время скульптинга, вам может прийти в голову: “Добавлю-ка я здесь холм, так как озеро делает эту область слишком плоской” и так далее. Почти как в живописи. Поэтому я сделал здесь небольшой пример, чтобы донести основную мысль. Все, что я сделал — возвысил несколько областей при помощи инструментов скульптурного моделирования, чтобы была возможность работать с разными высотами. Затем я использовал инструмент Flatten в самой высокой точке каждой области. Этот инструмент хорош тем, что вы можете немного увеличить силу нажатия, и та область, над которой вы находитесь, либо поднимется, либо же опустится до высоты той точки, где вы удерживаете нажатие. Этот способ очень удобен при создании “ступеней”, что опять же можно выполнить в World Machine, но мне хотелось использовать менее автоматизированный способ и иметь возможность придать объекту любую форму, какую только захочу.


    После выравнивания, вы, вероятно, заметите, что стыки неровные, а переход между травой и камнями — не очень чистый. Поэтому здесь нужно использовать сглаживающий инструмент, чтобы подчистить переходы, а благодаря тому, что у вас есть три базовых слоя, это будет несложно сделать. Также я выбрал случайные точки высоты вдоль крутого склона, “вытянул” их и сплющил при помощи Flatten . И повторил так несколько раз.


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


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



    Добавление растительности

    Для создания деревьев я бы рекомендовал Speedtree, но в этот раз использовал PLE pack из UE4 marketplace, чтобы лучше изучить процедурную генерацию. Забавно, но я дорисовал деревья с помощью foliage tool , просто потому, что не возлагал надежды на этот проект. Разобравшись с PLE pack, я загрузил несколько его ассетов в свой проект, и все работало отлично. Мне понравилось то, что я увидел, захотелось сделать из этого синематик видео. Что и привело меня к ассетам с растениями. Они должны были стать значительной частью синематика. Некоторые я использовал из PLE pack, другие — из Quixel’s Megascans library.



    Чтобы видео получилось кинематографичным, необходимо было помнить о некоторых моментах, отвечающих за оптимизацию, так как я не хотел, чтобы переходы теней и смены LOD были слишком заметны, а деревья\листва вдруг исчезали на заднем плане и т.д. Я хотел, чтобы все получилось отлично. Я также переключил LODLevel для ландшафта на максимум, с -1 на 0, чтобы местность не смещалась, пока камера вращается вокруг нее.


    Но оптимизация требовалась в любом случае. Поэтому, в первую очередь, я отрегулировал culling для растительности, чтобы она не исчезала, когда отдаляешься от нее. Холмы, деревья, крупные камни, объемный туман — все это помогает перекрыть то расстояние, на котором растительность начинает пропадать. Но я не хотел, чтобы деревья исчезали на каком-то определенном расстоянии, так как цель была сделать видео максимально кинематографичным, поэтому мне пришлось усилить низкий LOD нескольких деревьев (использовал вариацию из 11 деревьев), я заполнил ими ландшафт, используя низкую плотность (Density/1kuu), вместо того, чтобы распределить их близко друг к другу.

    Вот эти деревья:


    Другая оптимизация: немного снизил разрешение теней и текстур. Некоторые небольшие элементы были в разрешении 1k-2k, элементы побольше — 2k-4k. Для некоторых ассетов я вырезал текстуры атлас (при помощи Cinema 4D), чтобы снизить количество полигонов, к примеру:


    Все это очень помогает снизить нагрузку.

    Настройка освещения

    Честно говоря, на счет освещения мне особо нечего рассказать. Мне кажется, здесь важнее всего уловить правильное настроение. Я использовал направленный свет, скайлайт (интенсивность 1), экспоненциальный туман (exponential height fog) и постпроцесс (Post Process Volume), чтобы скорректировать цвет сцены и свечение (bloom). Стоит также упомянуть, что объемный туман (volumetric fog), по большей части, перекрыт экспоненциальным туманом (exponential height fog).



    И последнее, но не менее значимое — цветокоррекция, которую я сделал в After Effects при помощи таких инструментов, как Curves, Levels, Color Balance и Film by Magic Bullet. Слева вы можете увидеть финальную версию, посередине — сырой рендер в UE4, а справа — изображение в режиме Detailed Lighting.

    Систему процедурно разрушаемой машины можно бесплатно скачать с 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

    Unity Web Player

    Предпросмотр

    Нет соединения

    Ваше устройство потеряло соединение с интернетом.

    Создание задания

    Статистика

    Список всех наград проекта

    Выбор проекта для репоста

    Уровень 5


    crow lee

    crow lee

    crow lee


    Изометрическая камера в Unreal engine

    Здравствуете. Я создаю карты (уровни) в starcraft 2 galaxy editor, но теперь хочется перейти на более серьёзный движок, а именно Unreal Engine. Дело в том, что (по какой то неизвестной причине) у меня получаются уровни только в изометрическом плане (вид сверху). А суть темы следующая: помогите, пожалуйста, разобраться с камерой в Unreal Engine. Как её создать? Как её потом использовать? Как потом отрендерить уровень который получился? Поверьте, в долгу не останусь.


    Об авторе: Алексей Балакшин — геймплей-программист, имеющий опыт работы над ААА-проектами. В частности, над известной игрой — Tom Clancy’s Rainbow Six Siege.


    Кому подойдёт: каждому, кто желает разобраться в создании персонажей и локаций на Unreal Engine 4.

    Длительность: 3 урока.


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

    Длительность: 6 уроков.

    Формат обучения: видеоуроки + практические задания.


    Кому подойдёт: тем, кто уже имеет опыт работы с Unreal Engine 4, но хочет получить углублённую информацию по теме.

    Длительность: 11 уроков.

    Сертификат: не выдаётся.


    Длительность: 7 уроков = 55 минут.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Ориентироваться в интерфейсе Unreal Engine
    • Создавать игровые уровни при помощи уже готовых ассетов
    • Работать над графикой

    Преимущества курса:

    • Короткий, но ёмкий
    • Есть тесты для проверки знаний
    • Курс от разработчика Unreal Engine — компании Epic Games


    Длительность: 12 уроков.

    Формат обучения: видеоуроки + тесты.

    Программа:

    1. Введение в Unreal Engine.
    2. Введение в Blueprints. Анимации.
    3. Введение в Gameplay Framework.
    4. Создание AI в Unreal Engine.
    5. Работа с GameMode, UI.
    6. Настройка Landscape и Foliage.
    7. Текстуры и материалы.
    8. Освещение: основы работы.
    9. Эффекты: основы работы.
    10. Звуки: основы работы.
    11. Синематика: основы работы.
    12. Сборка проекта на Android.

    Чему научитесь:

    • Настраивать освещение в играх.
    • Работать с GamePlay Framework.
    • Настраивать ландшафт и листву.

    Автор: Николай Конзеровский — профессиональный UE4 Gameplay Programmer.


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

    Длительность: 54 урока.

    Формат обучения: видеоуроки + тесты.

    Программа:

    • Функции и макросы в Blueprint.
    • Создание материала для игры.
    • Работа над объектами и визуальными эффектами.
    • Освещение.
    • Основная панель.
    • Работа с интерфейсом.

    Чему научитесь:

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


    Длительность: 7 занятий.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты + Д/З.

    Длительность: 14 уроков = 1 час 9 минут.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Работать с Unreal Engine Editor.
    • Настраивать горячие клавиши в Unreal Engine Editor.
    • Настраивать интерфейс в Unreal Editor.
    • Работать с элементами программы.
    • Курс от создателей Unreal Engine — компании Epic Games


    Длительность: 15 уроков = 1 час 40 минут.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Создавать пользовательский интерфейс в играх при помощи Unreal Motion Graphics
    • Курс от создателей Unreal Engine — компании Epic Games


    Длительность: 11 уроков = 1 час 14 минут.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Создавать собственные анимации в Unreal Engine
    • Использовать уже готовые анимации
    • Курс от создателей Unreal Engine — компании Epic Games


    Длительность: 9 уроков = 41 минута.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    Длительность: 13 уроков = 1 час 33 минуты.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Работать в редакторе Unreal Engine
    • Использовать стандартные Blueprint и C++ шаблоны для создания нового проекта
    • Курс от создателей Unreal Engine — компании Epic Games


    Длительность: 3 урока = 44 минуты.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Основам программирования на C++ для Unreal Engine
    • Курс от создателей Unreal Engine — компании Epic Games


    Длительность: 6 уроков = 32 минуты.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки + тесты.

    Чему научитесь:

    • Создавать световое оформление игры
    • Работать с цветокоррекцией
    • Курс от создателей Unreal Engine — компании Epic Games

    Длительность: 69 уроков.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки.

    Чему научитесь:

    • Создавать закрытые и открытые карты, а также бесшовные миры
    • Работать со звуковыми эффектами и саундтреками
    • Создавать главное меню
    • Работать с сохранениями и загрузкой
    • Добавлять элементы геймплея
    • Создавать и редактировать загрузочный экран
    • Видеоуроки находятся в открытом доступе
    • Подходит новичкам

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

    Длительность: 56 уроков.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки.

    Чему научитесь:

    • Добавлять шкалу здоровья и брони
    • Анимировать спринт и подъём персонажа
    • Исправлять проблемы с движениями и перезарядкой
    • Работать с инвентарём
    • Настраивать прицелы
    • Работать с баллистикой
    • Добавлять таймер
    • Настраивать UI
    • Добавлять анимации для персонажей

    Длительность: 14 уроков.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки.

    Чему научитесь:

    • Настраивать Visual Studio
    • Писать код на C++ для Unreal Engine

    Длительность: 50 уроков.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки.

    Чему научитесь:

    • Добавлять новых персонажей в игре
    • Настраивать прогресс здоровья и магии
    • Настраивать повреждения от разных типов оружия
    • Добавлять сундуки со случайными вещами

    Длительность: 29 уроков.

    Сертификат: не выдаётся.

    Формат обучения: видеоуроки.

    Чему научитесь:

    • Создавать игры на Unreal Engine без кода (при помощи Blueprint)

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

    Длительность: 97 уроков.

    Формат обучения: видеоуроки.

    Программа: за курс человек узнает:

    • Как работать над освещением в UE 4.
    • Как импортировать модели в программу.
    • Как работать с интерфейсом редактора.
    • Как работать с функциями.
    • Как настраивать персонажа.
    • Работать с текстурами.
    • Настраивать взаимодействие с физическими объектами.

    Чему научитесь:

    • Устанавливать новое освещение для игры.
    • Работать с цветовой гаммой в игре.
    • Создавать разнообразные анимации.
    • Работать с разными утилитами для создания игр на UE 4.
    • Настраивать и добавлять новых персонажей.
    • Все видеоматериалы находятся в открытом доступе.
    • Все видеозаписи очень удобно собраны в плейлисте.

    Основатель и главный редактор проекта. Специалист в области интернет-маркетинга (SEO-продвижения и копирайтинга, в частности). Работаю онлайн с 2018 года.

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