creator cover Дмитрий Назаров
Дмитрий Назаров

Дмитрий Назаров 

GameDev

20subscribers

169posts

Showcase and bundles

4
A bundle is a collection, compilation, playlist, or catalog of posts that saves you from searching through the blog and lets you buy the entire content series in a single click.
goals2
3 of 100 paid subscribers
Так я смогу понять, что канал кому-то интересен и у меня будет мотивация делаться контентом!
$0 of $6 438 raised
Смогу ГОД разрабатывать игру фултайм, стримить, записывать ролики без отвлечения на наемную работу.

About

Инди-разработчик на Unreal Engine.
Текущий проект:
Kingdom of Isrion: Efdora
RPG с элементами иммерсив-сима в открытом фентезийном средневековом мире.
Движок: Unreal Engine 5.
- В основу игры закладывается акцент на время и развитие мира.
- Герой - это часть мира, а не его Центр.
- Реальность развивается параллельно с действиями героя. Весь упор делается на совмещении генерируемых и запрограммированных событий.
Основные референсы: Dragon's Dogma 2, Dungeon Lords, Готика.
Стилистические референсы: Dragon's Dogma 2.
Источники вдохновения: Dragon's Dogma 2, Cyberpunk 2077, Heroes of Annihilated Empires, Joan of Arc.
Oct 16 21:09 · AI content

Нейронка может делать блюпринты - проверено

По простому промту за 6 минут:
Используя unreal-mcp создай в C:\UE\KingdomOfIsrion\Content\_GENERATED\mitis\BP_MCP_Test.uasset на бегин плей ноду задержки на 5 секунд и  далее ноду спавна эктора apple в месте распложения данного эктора.
Планирую в будущем делать с ее помощью материалы и niagara эффекты.

Нейро-помощь или помощь для нейро?

Сейчас каждый второй разработчик работает с нейросетями в своем проекте.
Я - не исключение.
Но я, правда, не в своем проекте работаю. В коммерческом.
Постоянно приходится разбираться в С++ коде и в чужих "паутинах".
Решил что буду просто подряжать агента помогать мне в задачах.
Я понимаю, как устроено большая часть процессов в игре: в каких сабсистемах, компонентах и экторах что работает и влияет на другие аспекты... Но у меня нет времени разбираться в чужом коде, кривых зависимостях, костылях...
Я ставлю нейросети задачу - она работает. Приходяти подталкивать, т.к. она в силу своей ограниченности (не топовая модель Claude и не GPT) во многом теряется. Особенно когда нужно идти в долгую.
Я направляю и указываю на блюпринты, а где-то добавляю нужные коллизии... Она не может в GUI что-то делать без MCP, поэтому приходится часть работы брать на себя.
В целом успешно. Мое понимание архитектуры проекта дает экономию и по деньгами (которых нет) и по времени.
Oct 05 23:39 · AI content

Плагин для создания и редактирования HISM

Работая в коммерческом проекте на версии 5.2 двигла навайбкодил сегодня плагин для генерации Hierarchical Instanced Static Mesh из Static Mesh с поддержкой World Partition и его ячеек.
Каждая группа HISM располагается на своей ячейке World Partition тем самым сохраняя его функционал и сеточную загрузку.
Фактически это альтернатива Packed Level Actors для работы с большим объемом сеток в мире, позволяющая обрабатывать их большими пачками и для группировки в HISM по ячейкам.
https://github.com/Mmitekk/HISMInstanceEditor

Рекомендация: Расписание, задачи и плановая рассылка от нейронки

Пару недель назад обнаружил и уже протестировал интересный функционал Gemini Spark (подписка Google Pro):
- расписания и задачи.

Gemini

Чтобы попасть в Gemini Spark переключите с вкладки "Начать чат" на вкладку "Spark".
Примечание: Gemini не доступен для российских IP.
В Gemini Spark вы можете создать задачу по поиску актуальной информации, задать параметры, условия и т.п. Нейронка будет действовать на основании вашего промта и высылать вам информацию в чат с той периодичностью что выпопросили.
Например, я сделал запрос по поиску игр в жанре РПГ вышедших за последнюю неделю в Steam и высылать мне его по пятницам в 12:00 дня:

Сабсистему вам в блюпринты

Написал тут с Gemini давеча Subsystem которая позволяет работать глобально подобно тому как мы работаем в Blueprint Library.
Ну то есть это такой Object который запускается в зависимости от принадлежности Subsystem: на каждого персонажа, при инициализации уровня, мира и т.п. В движке много С++ Subsystem которые Эпики уже включили в проект, но я сделал свой.
Хотя бы потому что я не "плюсовик" и работаю на блюпринтах.
Gemini сделал мне C++ класс для Subsystem game instance.
Это тоже самое что и Game Instance, тоже можно использовать граф, диспатчеры, интерфейсы - все, как обычных блюпринтах.
Game Instance у нас один, а Subsystem будет много.
 
Инициализируются низкоуровнево, работают также как Blueprint Library всегда и везде. Можно получать данные ИЗ ЛЮБОГО места. И это имба.
Переменные, функции, события, диспатчеры, интерфейсе - все тут.

Создал репозиторий где положил шаблонные документы .cpp и .h которые вам надо будет вставить в Unreal когда создадите С++ class.

А вы знали что...

Воспроизводя заспавненный звук, можно получить его callback через диспатчер?
Я - только несколько дней назад узнал.
Т.е. вызываем диспатчер On Audio Finished и на ивенте можем накинуть логику после окончания воспроизведения этого аудио-ассета.
Пара минут создания нейро-озвучки
Нашел большую базу LibriSpeech и делаю озвучку для диалогов и реплик.
Level required:
Разработчик
30 days free, then $3.3 per month

Создал систему сохранения

По итогу двух месяцев создал-таки систему сохранения.
Намучился, конечно, но в целом, не было непреодолимых трудностей. С построением StateTree местами сложней бывало...
В Телеграм уже ни раз писал и здесь напишу, что система у меня не стандартная и не базируется ни на одном из видео-уроков. 90% видео уроков что я видел в сети базируются на использовании UStruct, т.е. структур данных. А я нелюблю структуры. Они мне ни раз доставляли проблемы на ровном месте и поэтому я отказался от них и почти выпилил из проекта...
Я привык работать на Object (UObject). У меня Инвентарь на них построен, Память, Потребности и частично профессии AI персонажей.
Кто не в курсе, это по сути базовый класс для всех блюпринтов в Unreal. Но в отличие от actor (его дочерних классов) не создается в мире, а создается (Construct) в режиме реального времени (runtime).
Были большие проблемы с сохранением самих Object.
Не буду вдоваться в подробности, кому интересно, почитайте Telegram - там много об этом написано.
Здесь скажу лишь что я навайбкодил плагин JsonObjectSerializer, который позволяет сериализовать и десериализовать object в JSON туда и обратно. Т.е. это чуть ли не единственный легитимный способ сохранить Uobject со всеми его переменными в т.ч. другими Objects и воссоздать обратно при загрузке. Плагин имеет две ноды MakeJsonFromObject для создания json из Object и SpawnObjectFromJson - для воссоздания object из json строки. При спавне object можно указать Outer и тем самым закрепить object за нужным владельцем.

Плагин к UE для генерации анимаций

В как-то в Telegram писал про Kimodo - нейро-инструмент от Nvidia для генерации анимаций.
Потратил на него кучу времени: доработал плагин для Blander от Rokoko с целью преобразования BVH в FBX, научился ретаргетить анимации и импортировать их в Unreal Engine.
Не разобрался только можно ли генерировать root motion анимации.
В течение двух недель создавал решения для преобразования BVH в FBX с активной root motion: ни лпагин, ни программу, ни python скрипт создать не удалось.
И вот спустя, возможно, месяц на Reddit встречаю пост от каких-то умельцев из animotive.com. Это ребята занимаются виртуальным продакшеном и захватами движения для телевидения и сериалов (BBC, Netflix и т.п.). Эти несомненно профессионалы своего дела создали плагин для интеграции Kimodo инструментария в Unreal.
Плагин на Fab (бесплатно на момент публикации данного поста)
Сайт Animotive
У плагина есть три режима работы на данный момент:
- через Docker
Subscription levels2

Геймер

$1.29 per month
Подпишись и получай на 50% больше контента по разработке игры.

Разработчик

$3.3 per month
- Подпишись и получай на 100% больше информации и опыта разработчика.
- Детали из процесса разработки механик и дизайнерских решений.
- Полезные лайфхаки для разработчика
Go up