Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Это захватывающая 2D рогалик, аркадный шутер и динамичная игра. Исследуйте уникальные уровни, уничтожайте врагов, собирайте монеты и прокачивайте своего персонажа.

Подземелье дизлайков

Экшены, Аркады, Шутер

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Unreal Engine 4 + Программирование

С этим тегом используют

Gamedev Разработка Игры Инди игра Unreal Engine YouTube Инди IT Программист IT юмор Python Картинка с текстом Юмор Все
18 постов сначала свежее
wh1t3n01z31
4 года назад

Unreal Engine 4 ошибка установки IS-BV03⁠⁠

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

Но вот беда - выскакивает ошибка в конце установки IS-BV03.

Я облазил все форумы, все англ форумы, переустановил винду 10, удалил антивирустник, отформатировал оба жд нахер, но всё равно эта клятая ошибка.

Помогите пж кто-то, я очень хочу игры создавать!

[моё] Unreal Engine 4 Программирование Помощь Ошибка Текст
31
41
XYZ.School
XYZ.School
4 года назад
Лига Разработчиков Видеоигр

Blueprints и C++ в Unreal Engine: плюсы и минусы⁠⁠

Epic Games последовательно развивает систему визуального программирования Blueprints в Unreal Engine. Она продвигается как полноценная рабочая среда, в которой любой новичок может освоиться и собрать свою игру. Но действительно ли «блюпринты» ни в чём не уступают классическому программированию?


Александр Балакшин, программист AAA-игр, внёсший значительный вклад в разработку сезонных обновлений для Tom Clancy’s Rainbow Six Siege в роли старшего инженера-разработчика и лида геймплейной команды, разбирает плюсы и минусы Blueprints и объясняет её отличия от «чистого» C++.


Автор: Александр Балакшин

Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост

Источник


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


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

Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост

Источник


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


Наконец, блюпринты бьют по производительности, так как компилируются в байт-код, который работает на встроенной в движок виртуальной машине. Да, их можно нативизировать, — то есть преобразовать Blueprint-логику в файлы C++, но даже разработчики из Epic рекомендуют этим не злоупотреблять.


Да и с точки зрения GOMS-анализа нажатие на клавишу клавиатуры оказывается быстрее, чем перемещение мышки. Это ни в коем случае не отменяет удобство визуального редактора, но, по моему опыту, с автодополнениями и прочими синтаксическими функциями современных IDE писать код удобнее и быстрее, чем создавать граф в блюпринтах. Хотя полезные сочетания клавиш и шорткаты в Unreal Engine тоже облегчают жизнь.

Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост

Источник


Я считаю, что если программисту нужно работать с Tick-функциями, или он использует какую-то сложную математику и пространственные запросы (например, LineTrace), всё это лучше вынести в С++. Отчасти из-за всех перечисленных особенностей Epic Games раздумывают над созданием отдельного скриптового языка для реализации игровой логики в Unreal Engine.


Тем не менее, блюпринты — достаточно мощный инструмент, который в Unreal Engine 4 используется не только для построения игровой логики, но и для работы с анимацией и системой эффектов Niagara. Поэтому каждая студия должна сама найти подходящий баланс между Blueprints и С++. Например, технические дизайнеры Riot Games использовали блюпринты в Valorant только для создания способностей игроков.

Blueprints и C++ в Unreal Engine: плюсы и минусы Xyz, Программирование, Unreal Engine 4, Gamedev, Разработка, Разработчики игр, Длиннопост

Valorant


Сами Epic Games рекомендуют использовать блюпринты, когда в проекте очень много ссылок на контент, а его логика работает в первую очередь на визуальную составляющую. Также они пригодятся в создании прототипов, прямолинейной или редко используемой логики, которая не является частью основной архитектуры. Всё, что не получит преимуществ в С++ с точки зрения производительности, масштабируемости и стабильности, тоже может быть создано в Blueprints.


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


Словом, с любыми важными переменными, перечислениями и типами данных C++ работает лучше. Но и работа в Blueprints не отменяет классический подход, а только органично дополняет его в необходимых случаях. Так что разработчикам от визуального программирования никуда не деться.

Показать полностью 4
[моё] Xyz Программирование Unreal Engine 4 Gamedev Разработка Разработчики игр Длиннопост
17
16
Hunchback56
4 года назад
Лига Разработчиков Видеоигр

Игра мечты (SolarMax 2)⁠⁠

Давным давно заметил игру под названием solarmax 2 (видео и скрины приложены). Играл в нее как на компьютере, так и на телефоне. Подобные игры есть куча типа война грибов и так далее. Игра очень казуальна, но при этом обладала большим количеством плюсов таких как: красивая графика, музыка и ии врагов. Игра была, к сожалению, очень короткой. Многие игроки просили разработчика (насколько известно одиночка из Азии) выпустить обновление, и я тоже писал разработчику, но в ответ ничего. Игра была выпущена  больше 10 лет назад, наверно. Уже лет 5 как она пропала из google play и appstore, а на steam так и не вышла.

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


1)На чем пилить данную игру? Рассматриваю Unity3d (оригинальная игра была создана на флеше, вроде). Можно ли там организовать такие эффекты (естественно при наличии хорошего художника)

2)Сильно ли придется углубляться в программирование, чтобы создать более менее умный ИИ врагов (хотя бы как в видео). Просто с С# не знаком(

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



Просьба тапками не закидывать сильно)

Игра мечты (SolarMax 2) Gamedev, Unity3D, Unreal Engine 4, Steam, Unity, Программирование, Видео
Показать полностью 1
[моё] Gamedev Unity3D Unreal Engine 4 Steam Unity Программирование Видео
42
bynilow
4 года назад

Как я сделал мобильную игру за неделю и что из этого вышло⁠⁠

С чего все началось?

До этой игры я делал небольшую казуальную игру в стиле игры «Archero». Разработка шла 3 месяца. Загрузил в Google Play, прошло 2 недели - в итоге я получил 20 скачиваний. Меня это конечно же не обрадовало.

Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост

Отдохнув неделю, я решил сделать что-то простое, что не займет много времени и сил. Сама идея игры пришла мне совершенно спонтанно и неожиданно.

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

Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост

Для создания игры я использовал Unreal Engine 4. Я использовал его потому что и до этого в нем работал и более-менее в нем разбираюсь.

Механику полета (планирования) я нашел в открытом доступе в интернете, разобравшись с ним я настроил всё под свои нужды. Изменил стандартную модель на модель бумажного самолетика, модель я сделал в программе Blender.

Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост

Разместил самолетик на сцене, после чего добавил ограничения, пределы полета самолетика, вылетев за которые вы проиграете. При приближении, к которым экран покрывается рябью, цвета пропадают, оставляя только черно-белые цвета. Ограничения находятся слева, справа, сверху, снизу и движутся за самолетиком по X координатам.

Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост
Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост

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

Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост

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

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

Как я сделал мобильную игру за неделю и что из этого вышло Gamedev, Unreal Engine 4, Инди, Google Play, Разработка, Программирование, За неделю, Длиннопост

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

Скачать игру вы сможете тут: https://play.google.com/store/apps/details?id=com.bynilow.fl...

Так же прошу заглянуть в мою группу вк, где можно посмотреть на мои прошлые и будущие проекты: https://vk.com/by_nilow

Спасибо за прочтение моей первой статьи, я очень старался!

Жду ваших оценок и пожеланий!

Показать полностью 7
[моё] Gamedev Unreal Engine 4 Инди Google Play Разработка Программирование За неделю Длиннопост
8
2
Nam1bo
Nam1bo
5 лет назад

Программирование это весело⁠⁠

[моё] Unreal Engine 4 Blender Кавай Gamedev Программирование Юмор IT юмор Няша Видео
2
26
opasnoste11
opasnoste11
8 лет назад
Лига Разработчиков Видеоигр

Часть 3. Так лень, что прыгну выше головы.⁠⁠

Это хроники разработки After Stars. Предыдущие части:

Часть 1: http://pikabu.ru/story/kak_sdelat_igru_esli_tyi_gumanitariy_...

Часть 2: http://pikabu.ru/story/igra_ot_gumanitariya_chast_2_4397337

Повествование будет неполным без рассказа о том, как вообще зародилась идея After Stars, и в чём собственно заключается эта идея.

Год назад я впервые поиграл в раннер на телефоне. Мне жанр пришёлся по душе, но чего-то не хватало. Я бы сказал проверки навыков. Все раннеры были достаточно казуальны. И тогда я начал искать в Google Play что-то проще гонок, но сложнее раннера, какой-нибудь Drag Race наподобие одноимённого режима из Need for Speed. Всё не то! Хочешь, чтоб что-то было сделано хорошо, сделай это сам.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

В концепте было задумано уровней 12-20. Я сел разрабатывать скелет игры, то есть перемещение корабля, управление, пользовательский интерфейс и т. п. Было сложно, не смотря на то, как это просто. Всё-таки первые шаги в программировании. Чуть ли ни с каждой мелочью пришлось повозиться. Я даже не знал нужно ли использовать симуляцию физики и каким из 10 способов перемещать корабль.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

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

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

Итак, по какому же принципу строится уровень?

1. Строится кривая (Spline), по которой движется корабль. Каждая точка равноудалена от предыдущей, но смещена либо случайным образом, либо специальным, чтобы создать какую-то определённую фигуру, например петлю.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

2. По Spline строится трек из Spline Mesh. Spline Mesh создаётся движком из Static Mesh путём его растяжения между двумя точками с учётом касательного вектора (Tangent). Именно от Tangent зависит как плавно Spline будет изменять траекторию.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

3. По правилам расставляются камни и другие препятствия на пути. По оси Y (в ширину) их должно быть не больше двух, по оси X (в длину) между ними должно быть определённое расстояние. И появляются они группами. Есть несколько видов групп и они различаюся по сложности. Всего их 8+3 аномалии, вот некоторые:

- Обычные камни, расстояние по X 4 м — нужно пройти на максимальной скорости (400 м/с), 2 очка повреждения.

- Крупные камни, чередуются слева-справа, занимают 2 клетки, расстояние по X 2 м — нужно пройти хотя бы на 300 м/с, 3 очка повреждения.

- Осколки, расстояние 1 м — их не пройти на скорости выше 200-250м/c, 1 очко повреждения, длина общего отрезка больше чем у других камней.

4. Далее с учётом всех препятствий считается оптимальное время прохождения трассы. Тут поподробнее.

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

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

«Вызов принят!» - хладнокровно сказал я себе. Просто нужно было заставить компьютер считать самому оптимальное время. Если бы я ограничился 20 дизайнерскими уровнями, я бы мог просто протестировать их и записать время прохождения. А миллиарды уровней уже, как вы понимаете, не протестировать. Бился я над этим целый месяц. В итоге я взял формулу из школьного курса физики, где через ускорение/скорость и путь можно найти время. Рассчитывая это время с учётом ускорений и замедлений для каждого участка (в моём случае 4 м), я сложением получаю оптимальное время для каждого уровня. Основная сложность была в правильной реализации этой идеи. Накрутив «проводов», я заставил всё работать как надо...с 20-ой попытки.

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

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

Часть 3. Так лень, что прыгну выше головы. After Stars, Разработка, Программирование, Unreal Engine 4, Игры, Инди, Gamedev, Гифка, Видео, Длиннопост

А в видео показан геймплей двух уровней. Обратите внимание на правый верхний угол — это оптимальное время прохождения. Я взял Millenium Falcon, а он быстрее других кораблей, поэтому он будет чуть быстрее оптимального времени. И к вопросу о балансе — не беспокойтесь, другие корабли вполне неплохо с ним конкурируют даже по времени.

Вот, пожалуй, основные моменты разработки. Если вы так и не поняли, о чём игра и зачем она, задавайте вопросы. Надо готовить трейлер и нужно учесть все ошибки :) Спасибо.

Показать полностью 8 1
[моё] After Stars Разработка Программирование Unreal Engine 4 Игры Инди Gamedev Гифка Видео Длиннопост
23
295
opasnoste11
opasnoste11
8 лет назад
Лига Разработчиков Видеоигр

Как сделать игру, если ты гуманитарий.⁠⁠

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

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

Так вот - ближе к делу. В 2014 году на наше счастье Epic Games выпустили Unreal Engine 4. Главное, что сильно возвышает его над конкурентами в лице Unity и CryEngine, это — Blueprints (Чертежи). Blueprints – это уникальная система программирования, где не нужно писать код. Код уже написан за нас и объединён в разного рода Nodes (Узлы), которые выполняют определённые функции (Переместить объект, определить его координаты, установить размер, обозначить условия события и т.п.), которые нам просто нужно выставить в нужном порядке. Примерно так это выглядит:

Как сделать игру, если ты гуманитарий. Gamedev, Unreal Engine 4, Программирование, After Stars, Видео, Длиннопост, Игры, Indie

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

Не сразу, например, можно вникнуть в то, что есть объект как пример для его копий в игре, которому мы назначили какую-то логику, и есть собственно его копии в игре. И если мы хотим назначить новые свойства одной из копий, то необходимо делать отсылку именно на эту копию, а не на наш главный объект. Или если мы уже в игре меняем свойства объекта, то потом нужно ссылаться именно на изменённую версию, произвести соответстующие действия. В памяти игры хранится та информация, которую МЫ сказали хранить. То есть процесс не полностью автоматизирован и не упрощён до уровня всяких RPG Maker'ов в угоду гибкости и возможностям. Ну, и нужно просто знать, какие функции есть библиотеке движка и как они называются; разобраться в интерфейсе; быть внимательным и грамотно организовывать своё, так сказать, рабочее пространство, иначе, когда проект разрастётся, можно взять и запутаться.

Естественно, рекомендуется знание английского или наставник, поскольку ответы на свои вопросы очень тяжело найти на русском. Скорее, на русском сложно правильно задать этот самый вопрос. На английском есть официальная документация, множество обучающих видео и форумы: https://www.unrealengine.com https://www.youtube.com/channel/UCBobmJyzsJ6Ll7UbfhI4iwQ А на русском - полезен этот сайт и их канал: https://uengine.ru https://www.youtube.com/channel/UCLbkGIcYJxxL0tciH9RVebg Поскольку на этих сайтах есть всё, я не описываю всё в деталях. Хотя, как я понял, вы любите, когда пишут детально и конкретно :) Есть, конечно, в моей игре пара хитростей, но не то что бы они были чем-то сверхъестественным. Возможно, я сделаю пару постов про некоторые конкретные вещи и техники.

Ну, а теперь к игре. В разработке она около года и сейчас на стадии поздней альфы. Называется After Stars (По-русски — ещё не определился как). Можно играть и на телефоне (Тестировалось на Nexus 5). Она представляет из себя раннер, но необычный.

Цитата из Гугла: Endless Runner (в пер. с англ. — бесконечный раннер) — набравший популярность на мобильных платформах жанр, использующий в геймплее особенности тачскринов – возможность управления касаниями экрана (тапами и свайпами). Персонаж бесконечного раннера бежит сквозь локации игры, набирая очки и собирая монеты, преодолевая препятствия, прыгая и уклоняясь. Бег происходит автоматически и управлять им геймеру не придётся, а вот чтобы вовремя уклоняться и прыгать, вам понадобятся хорошая скорость реакции и точные тапы и свайпы. Классическими примерами бесконечных раннеров являются Temple Run, Subway Surfers, Totem Runner и многие другие.


Чем же отличается мой раннер?

- Скорость контролируется игроком.

Плюсы: Является ещё одним «слоем» гемплея, открываются некоторые интересные возможности. Например, режим Drag Racе — короткий заезд на время, требующий точных действий игрока. Бесконечное количество трасс, для каждой из которых по секретной формуле расчитано оптимальное время, в которое необходимо уложиться. Такого в Google Play ещё не встречал, а хотел

Минусы: Усложняется управление, может отпугнуть казуалов.


- Серьёзный стиль графики

Плюсы: Во-первых, это красиво.

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


- Космический сеттинг с любимыми кораблями

Плюсы: Это эпично.

Минусы: Возможно??? будут проблемы с авторскими правами.


- Соответствующая и действительно уникальная способность у каждого корабля.

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

Минусы: Тяжело сбалансировать.


Я записал видео обучающего уровня, где показаны основны геймплея. При необходимости включите субтитры на YouTube.

В следующем посте я сделаю обзор ангара и кораблей. А после планирую рассказать, как генерируются уровни. Спасибо за внимание.

Показать полностью 1 1
[моё] Gamedev Unreal Engine 4 Программирование After Stars Видео Длиннопост Игры Indie
70
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

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

Попробовать

Ремонт Теплый пол Текст
59
Mealtris
Mealtris
9 лет назад

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи.⁠⁠

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

Для начала ответим на пару вопросов.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Тут очень интересно. Как я писал ранее, BP - очень мощный инструмент. Вообще, BP использует функции, написанные на C++, которые, кстати, довольно легко найти, если покопаться в движке (об этом будет в этом посте). На самом то деле, мы пишем не на чистом C++, а используем его синтаксис, разные особенности, используя SDK движка. Ну где вы видели, например, класс Character или структуру FRotator в чистом C++? Собственно, в BP реализовали циклы, математические операции, функции, переменные и разное прочее, привязав SDK движка, чтобы можно было обходиться без Visual Studio. Даже если вам не хватает того функционала, что идет телегой с движком, вы всегда можете написать свой плагин для движка (над чем я и потел, что так долго не выпускал пост) на C++, в который можно вкрутить свои библиотеки и код на чистом C++ и настроить все так, чтобы движок видел все функции и предоставлял их использование в редакторе BP.  Тут уже дело удобства. Просто, как я, опять же, писал ранее, BP может разрастись в не хилую паутину, в которой будет уже довольно трудно разобраться. BP можно раскидать по функциям, которые тоже создаются в BP. Но есть некоторые задачи, которые не очень удобно решаются (или вообще не решаются) использованием BP. Серьезно, это очень мощный инструмент и при работе с этим движком вы никуда не денетесь от использования BP.

И самый частый вопрос: "Как с тобой связаться?". 
Долго я не отвечал на эти вопросы, ибо не понимаю чем не устраивает вас пикабу? Ведь тут можно задать вопрос, на который я отвечу либо постом либо комментарием и все смогут увидеть решение той проблемы, с которой вы столкнулись. Работу я имею, уходить никуда не собираюсь в ближайшее время. Ну нравится мне коллектив и проекты, над которыми я работаю. Да и куда то уехать из города я пока не имею возможности т.к. через пару месяцев у меня защита, а потом магистратура и т.д. и т.п. По текущему проекту и реализации того, над чем я сейчас работаю, я отвечать не буду, т.к. это глупо сливать информацию третьим лицам. Я выкладываю проекту на своем гуглодиске, переходя по которой вы видите почту владельца этого диска. Вот на эту почту (mealtris@gmail.com ага, сложно было догадаться:) ) и можете задавать вопросы, она рабочая.

Ну и раз начали мы с BP, так и продолжим с BP.
Дополним ответ на вопрос выше. Я тут почитал особенности UE 4.11, который сейчас готовят к выпуску и там может появиться конвертер BP в C++ код! Но конвертация происходит на этапе финальной сборки проекта. Все-равно, круто же?

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

После чего спокойно используете ее.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Пора все же перейти к следующей части поста. 
Состав проекта.
Если вы зайдете в папку с проектом, вы увидите следующее:

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Вообще, .uasset содержит оригинал вашего файла и пути ко всем связанным с этим ассетом ассеты. Т.е при при перемещении ассета того же оружия, путь к которому хранится в ассете персонажа, не используя движок, а перемещая это жестко из папки, то ассет персонажа потеряет оружие, а движок выведет кучу ошибок по поводу того, что по такому то пути нет ассета с таким то именем. Т.е. перемещение нужно делать используя движок в контент браузере.
В папке Config хранятся настройки проекта и движка для этого проекта. 
В папке Source хранятся исходники классов, написанных нами от нашего проекта.
Pikabu.uproject - это уже файл проекта, который хранит какие сторонние плагины и модули подключены для использования в проекте, требуемую версию движка, версию и т.д.

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


Ну стоит добавить, что собранный .exe файл проекта будет находиться по пути .../Saved/StagedBuilds. 

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

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

Миграция.
Для начала найдем нам модельку, которая будет в бесплатном доступе и за которую мне не настучат по голове :D Благо, как отмечали в комментариях, есть у эпиков человек, который рассказывает о движке и заливает примеры работы с движком.
Зайдите в EpicLauncher (который, кстати, на русский перевели) и перейдите во вкладку "Узнать/Learn", а там найдите проект "ContentExamples".
Кстати, в этом же разделе можно взять себе разные крутые и красивые демо-проекты движка, которые показывают уровень графики и вообще того, что можно сделать в движке.
P.S. некоторые из них требовательны к сильным железкам. Они все рендерятся в реальном времени. В общем, это мультики, демонстрирующие функционал движка. 

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Скачав этот проект, запускаем его и передаем привет компилятору шейдеров)
В этом проекте есть куча интересностей, к которым мы еще будем возвращаться, но позже. Считайте это отчасти сборником спойлеров.
В общем, сейчас нас интересует только модель человека, его материалы и пак анимаций к нему. Все из этого мы мигрируем в наш проект.
Что вообще такое миграция? Как я писал выше, в .uasset важно сохранять структуру проекта, чтобы связанные ассеты не потеряли друг друга. Например в одном анимационном ассете имеется путь к скелету, да и вообще, при импорте анимации в проект, вы должны указывать где у вас находится скелет от той модели, для которой она предназначена. В монтажной анимации вообще может быть несколько анимаций со звуками и системами частиц, в которых еще пути на материалы, текстуры и т.д. 
Открыв этот проект, вы же не знаете что с чем связано, а вот движок это все знает и может даже отобразить карту связей, если нажать правой кнопкой мыши по ассету и нажать на ReferenceViewer, после чего откроется вот такая вот штука.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

В общем, что делает миграция? Миграция просматривает все эти связи и выявляет все ассеты, которые любым образом связаны с тем, который вы хотите мигрировать себе в проект, а затем копирует их к вам. Мигрировать можно в любую папку, но для использования, ее содержимое обязательно нужно перенести в корень вашей папки content.
Стоит отметить, что персонажа из какого-то проекта, который был написан на C++, вы мигрировать так, чтобы оно сразу же заработало в другом проекте, не сможете, т.к. миграция может работать только с BP объектами, а если BP наследован от C++ класса, которого изначально нет в движке и в вашем проекте, тогда он и работать не будет.

Нам нужна моделька персонажа, находим ее по пути из скриншота, жмем правой кнопкой, asset actions -> Migrate

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование
Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

С этой моделькой в наш проект переедут еще и все материалы от нее, скелет и физический ассет. Но анимации по умолчанию с моделькой не связаны. Их мигрируем так же, но уже кликом по папке Animations -> Migrate.
Кстати, в той папке, где была модель персонажа, еще есть моделька автомата, можете ее тоже прихватить с собой. Пригодится.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Почему именно эта модель? У нее есть все анимации для построения адекватного locomotion (движение вперед, назад, влево, вправо) и позы смещения прицелов для построения BP для этого. Мы же хотим адекватно двигаться и целиться?) Жаль, что я такой себе моделлер, но ничего. 

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

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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Перейдя в настройки, мы увидим вот такое вот окошко, в котором сейчас нас интересует вкладка Maps & Modes.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Здесь настраиваются параметры проекта вроде стандартных карт и выбора классов персонажа игрока и прочего.
Game default map - первая карта, которая будет открываться при запуске игры.

Editor Startup map - карта, которая первой открывается в движке

Transition map - переходная карта, которая откроется во время закрывания старой и запуска новой карты. Вроде окна с надписью "загрузка".

Default game mode
- здесь задается игровой режим, который будет выбираться по стандарту, если на конкретном уровне не задан никакой другой.

В Game Mode выбирается Default pawn class - класс персонажа, которым будет управлять игрок.
HUD Class - то, что будет видеть игрок. Сюда лепятся всякие прицелы если делать их текстурой, текстуры каких то эффектов при низком хп и т.д.
Player controller class - класс контроллера игрока. Т.е. то, как будет он управляться. У нас, скорее всего, будет стандартный.
Кстати, ничего из этого не меняется, т.к. выбрал режим, который у нас в исходниках и нааписан на C++, где кодом прописаны эти параметры. В следующем уроке это все переделаем.

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

Чтобы посмотреть, как работает Game mode, можете удалить с карты персонажа, которым мы сейчас бегаем и запустить игру. Вы все-равно будете играть этим персонажем, т.к. он указан в game mode. Вместо персонажа на уровне появится точка Network player start, перемещая которую, вы выбираете место, в котором будет появляться игрок.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование
Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

Теперь поговорим о назначении управляющих кнопок.


В тех же настройках в разделе Engine, есть вкладка input.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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


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

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

На событие с именем "Fire", возникающем при нажатии кнопки, вызовется функция OnFire, где у нас пока сейчас прописан одиночный выстрел. Это же проворачивается и в BP.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование

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

Ну и по традиции ГУГЛОДИСКОССЫЛКА для тех кому лень мигрировать модельку. Ориентировочно на среду будет пост про персонажа.

Unreal Engine 4. Разработка 3D / VR Игр №2. Введение в UE4 ч.2. Состав проекта, полезные фитчи. Длиннопост, Длиннотекст, Ue4, Unreal Engine 4, Игры, Программирование
Показать полностью 24
[моё] Длиннопост Длиннотекст Ue4 Unreal Engine 4 Игры Программирование
15
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии