Здравствуйте, уважаемые разработчики. Я работаю над воссозданием графики Disco Elysium

по данному видео, которое раскрывает часть процесса.
Это изометрическая игра от третьего лица с комбинированной 2D\3D графикой. Разумеется, оригинал делался на Unity, но ZaUm планируют разработку следующей игры на UE5. У меня не возникло сложностей с созданием ассетов окружения (рендеры локаций), однако я столкнулся с трудностями, которые не были раскрыты в документации или в обучающих роликах на YouTube.
В частности, это сортировка по глубине (когда текстура глубины, предварительно созданная в стороннем 3D пакете накладывается на плоскость и делает меш персонажа невидимым в областях, где он стоит "за препятствием").
.
Задача заключается в том, чтобы создать материал, который будет сравнивать расстояние от камеры до глубины плоскости (А) и расстояние от камеры до персонажа (Б) и динамически прятать персонажа по пикселям, если А < Б.
Обыскал весь интернет несколько раз, и не нашёл готового решения или намёков на то, как решать этот вопрос.
Как следует подходить к этой задаче? Нужно ли писать шейдер на HLSL или всё можно сделать при помощи нод материалов UE?

Нужное время на видео: 9:16.
Благодарю за ответы.
https://www.youtube.com/watch?v=vp5mtj2tJMQ&ab_channel=BombsandLasers-%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0%D0%B8%D0%B3%D1%80

6 ответов

18 просмотров

Из видоса вообще не понятно используется там precomputed глубина или считается в рантайме. Он там тыкает по дроуколам, но по сути рассказывает просто обычную отрисовку глубины при рендере. В ue ты можешь использовать pixel depth offset для решения своей задачи

Leo-Mechnikov Автор вопроса
Илья Максимович
Из видоса вообще не понятно используется там preco...

Илья, спасибо за ответ! Да, там заготовленная карта глубины (чёрно белая bitmap) созданная отдельно в Blender, которая вставляется в материал.

Leo Mechnikov
Илья, спасибо за ответ! Да, там заготовленная карт...

Ок, просто из фрагмента это было не понятно. Ну ты можешь сделать так же, и пихать эту карту в pdo канал материала

Leo-Mechnikov Автор вопроса
Илья Максимович
Ок, просто из фрагмента это было не понятно. Ну т...

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

Leo Mechnikov
Благодарю, изучу это. Я уже что только не пробовал...

Тебе нужно сделать что-то типа такого. Но не смотри на мои ноды, я просто хотел проверить работоспособность подхода. Это просто концепт

Leo-Mechnikov Автор вопроса
Илья Максимович
screenshot Тебе нужно сделать что-то типа такого. Но не смотр...

Проведу испытания, кажется что это то, что нужно!!!

Похожие вопросы

Обсуждают сегодня

Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
А че SwiftUI for Web ещё нет?
Shagit Ziganshin
7
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
С той же поддержкой Android в тулчейне, если кому интересно. На Swift Forums шло убогое обсуждение всякой херни годами, но ничего годного так и не появлялось. Пришел vgorloff ...
iMike
1
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Всем привет! Напишите пожалуйста, кто мог бы оффлайн преподавать некоторые курсы по Odoo в Алматы в одном из ВУЗов? Мы сейчас вместе с Odoo запускаем университетскую программу...
Adil Dauletkhan
2
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
а чем лучше всего сделать глобальный лок, если много нодов, до сотни? ну то есть мне надо, чтобы некоторые операции с объектом не происходили одновременно. перемещение между н...
Д. П.
15
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Карта сайта