Подготовка моделей для метавселенной на движке Unreal для подачи на АГР в МКА.

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

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

mail: alexnikz@gmail.com , тел.: +79099177843 (лучше через мессенджеры)

Статья по подготовке низкополигональной модели по старым правилам тут: https://3ddd.ru/blog/post/podgotovka_3d_modeli_k_sdache_materialov_na_agr_v_sootvetstvii_s_novymi_pravilami 

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

Вкратце пройдёмся по пунктам.

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

Тут всё понятно, используем Reset XForm для сброса масштаба в единицу и делаем прозрачные стекла.

2.     Модели предоставляются в двух форматах: FBX версии не позднее 2014, и GLTF версии не позднее 2.0. Текстуры квадратные, в форматах TGA или PNG, размер кратный степени двойки и не более 4K.

В оба формата есть экспорт из 3dsmax

3.     Файлы подаются архивом ZIP, который включает в себя модели в форматах FBX и GLTF  и текстуры. Название архива должно формироваться по принципу SM_NazvanieUlici_NomerDoma_Korpus_Stroenie. Если в адресе нет номера корпуса или строения, то они пропускаются.

4.     Файлы внутри архива также именуются по тому же принципу.

Модели с префиксом SM_, текстуры с префиксом T_ и т.д.

5.     Системные единицы – метры.

Не путайте системные единицы сцены и единицы отображения в максе. Системные настраиваются через меню Customize – Units Setup… – System Unit Setup.

6.     Чистая геометрия модели. Отсутствие дублирующихся вершин и фейсов, отсутствие лишних точек на ребрах, правильное направление нормалей, отсутствие дыр и т.д. Удаляем невидимые снаружи полигоны.

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

7.     Материалы не должны быть созданы при помощи сторонних движков (VRay, Corona, Octane и т.д.)

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

8.     Обязательна настройка развертки с использованием UDIM.

Развертка по UDIM используется для минимизации количества материалов в движке.

9.     Размер файла – не более 500 Mb на одну модель здания.

10.  Количество полигонов ­– ­не более 2 млн. полигонов на модель

11.  Количество материалов – не более 7 шт. на модель

Абстрактные пункты, которые напрямую зависят от масштаба и размера модели. Особо не обращаем на них внимания.

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

Всякие русты и небольшие детали, всякую лепнину и т.д., выносим в текстуры и не моделим.

13.  Стекло и прочие материалы с прозрачностью выносим в отдельный объект

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

Далее вкратце покажу, как готовим модель. Детально в инструменты углубляться не буду, только общие принципы.

Сначала готовим модель здания. По принципам моделирования я уже писал две статьи, изучите, если есть необходимость.

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

- Не делаем всю невидимую снаружи геометрию. В интерьерах делаем только то, что видно снаружи через стекло.

- Металлические ограждения и прочие рельефные поверхности делаем текстурой, не геометрией.

- Все объекты с прозрачностью (в примере это стекло и металлические ограждения) делаем отдельными объектами от основной геометрии дома.

Составляем список материалов, которые будут использоваться. Это нужно продумать заранее, чтобы сразу правильно настраивать UDIMы. В примере получилось 6 материалов (точнее наборов текстур): кирпич плоский, кирпич рельефный, фиброцемент для фасадных элементов, крыша, полы и шестая текстура с разными цветами для материалов без фактуры – рамы окон, интерьеры и т.д.

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

Для развёрток я использую RizomUV. Можно и стандартным анврапом Макса, но в Ризоме быстрее и удобнее.

После настройки всех UDIM общая развертка модели получилась такой. Использовались 6 тайлов UDIM, для каждого тайла – отдельный набор текстур.

Именуем текстуры в соответствии с требованиями. Сначала префикс T_, затем адрес архитектурного проекта, затем название объекта, к которому применяется материал, и далее стандартный префикс типа текстуры – Basecolor, Normal, ORM  и т.д. ORM – это совмещённые в трёх каналах одной текстуры карты Ambient Occlusion (красный канал), Roughness (зеленый канал) и Metalness (синий канал). В конце через точку добавляем номер UDIM, для которого предназначена эта текстура.

Набор текстур для модели из примера:

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

Далее совмещаем пивоты всех объектов и ставим их на нулевую отметку здания. После чего на всякий случай делаем Reset XForm и экспортируем модель в формат FBX, проверяя, чтобы при экспорте не вылезло никаких ошибок.

В общем-то всё. Собираем FBX файл и все текстуры в архив zip, и готово.

Попробуем загрузить сделанную модель в Unreal.

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

Настроим наши материалы. На стекло можно наложить дефотное стекло. Для настройки основного материала модели нужно в проект Unreal загрузить наши текстуры. Для того, чтобы они объединились вместе для распределения по UDIM, нужно закинуть в Content Browser только текстуру с номером первого UDIM, остальные подцепятся автоматически.

Если все текстуры были квадратные и правильного формата, то они автоматом объединятся по типам текстуры. Буквы VT в углу превьюшки текстуры означают Virtual Texture. Если они у вас появились, значит текстуры импортировались корректно.

Далее цепляем все эти текстуры на материал здания. Каналы карты ORM соединяем с соответствующими параметрами материала (Occlusion, Reflection, Metalness). Точно также настраиваем материал ограждений с прозрачностью.

Крутим модель, проверяем, всё ли ок с материалами, при необходимости дорабатываем карты в фотошопе.

Как-то так. По мере развития темы буду дополнять и возможно корректировать статью.

Обращайтесь с любыми вопросами или предложениями.

Комментарии (60)

+3
ck_petya
Что такое "метавселенная" ? 2ГИС можно подогнать под этот термин?
+27
Spark
Модное слово, под которое выделен бюджет, который надо распилить. Разбираться потом будут.
0
Uraken
100%
+6
.Kin
ну, помнишь там.. халк, челопук и прочие с трусами похерш штанов и в плащах?
+3
sorter
метавселенная состоящая из моделек одного города)) организация мета у нас запрещена, но слово пришлось по вкусу, его оставим. Если уж на то пошло, то Microsoft flight simulator под понятие метавселенной больше подходит))
+1
Earanak
Цельные меши зданий, большие Card-ы для Lumen-а под Surface Cache = унылый GI.
Разве им не нужно нарезать здания под Lumen, хотя бы по отдельным этажам ?
Или они планируют что то другое для GI использовать ?


И нафига Наниты использовать на уже оптимизированных зданиях ))
Наниты вообще на зданиях использовать идея сомнительная.
Модель должна подходить под саму суть работы Нанитов.
Что бы он не усекал то что не нужно усекать.
И еще если здание с нанитами стоит за камерой, используется Mesh Fallback.
Который на самом нижнем уровне Нанитов может давать дикие кривые тени от здания.
То есть если здание в кадре - с тенями все ок. Если оно за камерой - тени отбрасываются косячно.

Вот например на здании Наниты убивают окна (сверху вдалеке) https://i.imgur.com/1G8PFo0.jpg 
+1
Spark
К сожалению, на данный момент ответы на половину технических вопросов разработчики лезут искать в гугле.

Так что, думаю, ещё не раз правила будут уточняться и изменяться.
+2
Spark
Сейчас общение идёт вот на таком уровне (мой вопрос и их ответ):

- Допускается ли использование нескольких объектов с отдельными материалами, или необходимо объединять всю геометрию, за исключением стекла, в один объект с одним общим Multisub-материалом?

- Вопрос общий и в проработке, т.к. появляется необходимость иметь подложку, а так же вопрос окружения тоже актуален
0
Earanak
Комментарий удален
+1
ck_petya
А унифицированные вещи не требуют использовать? Водосточные трубы, ограждения на пандусы для инвалидов, сине-белые боксы для адресов?
+3
Uraken
Жуть. Как сказать архитекторам знакомым, кондрашка хватит.. Но люди, готовящие модели, как автор поста, станут миллионерами
+6
если на господряде, то ещё и должны останутся
0
madYuppie
озолотится тот, кто сделает приблуду, конвертящую из Ревита в Анрил :)
0
a.timofeev
приблуду можно сделать, когда родят стабильные правила подачи, а их-то как раз и нет
0
так а DataSmith то чем не угодил?
0
kykykis
они это сформулировали так:

- Отсутствие контроля текстур
- Большое количество материалов
- Большое количество мешей
- Отсутствие корректного наименования
- Применимо для рендера видеоконтента
- Неприменимо для реалтайм использовая

Это выдержка из ответа.
+5
vk3d
Это уже вымогательство какое-то в открытом виде. На этом цензурные слова закончились.
0
buyman
нэйминг еще делать,пусть сами рисуют свои домики))))
+2
buyman
Spark дрессируй себе моделеров внутри компании,не нужно лезть на ддд
+3
Spark
Ну а вдруг когда-нибудь захочешь ко мне в команду, но не достаточно дрессирован окажешься.

Так что лучше поглощай информацию, чем глупые комментарии писать.
0
buyman
твои коллеги в пик ищут) у них перемани) там зарплаты как раз 2020 года)
0
eugene132003
ЖК "Coldy"?
0
salat
Странно что еще не просят делать interior maping в окна и текстуры к ним....
0
Uraken
тихо, не подсказывай
0
madYuppie
следующий шаг :) вообще учитывая размеры окон и возможные ракурсы, значительная часть геометрии внутренних помещений должна оставаться в модели
0
rareman
Nanite создан для того, чтобы не было гемора с оптимизацией моделей. Смысла нет отделять стекла, в следующей версии, скорее всего, прозрачность допилят. Уже начинает коробить от упоминания версии 2014. Скоро 10 лет исполнится этому старью.
0
Parik
А почему на буржуйско-вражеском двигле все это? Почему не на Unigine или там ВК - двигатель?)
+3
AnareA
С 19 апреля 2023 года утвердили новые технические требования к моделям для МЕТЫ , они добавили много новых непонятных требований, такое ощущение, что все должны стать игроделами, чтобы утвердить модель здания в МКА.
Если будет дополнение к этому разбору по новым требованиям, будем рады почитать)
0
plukhin
да. уже на 27 страницах письмо) три разных модели хотят. что дальше? ))
0
Spark
Две модели, не три.

Но в целом да, аппетит приходит во время еды. Со времени публикации статьи хотелки ещё разрослись.
+1
plukhin
Ну как, лоуполи, хайполи и меш коллизии как они это называют
+1
Mad_AD
в агр стоит в обсуждении отказ принимать высокополигональные модели, возможно будет прием только лоу
0
plukhin
О, благая весть) Хорошо бы это случилось
0
EA_Design
Привет, есть вопрос по TD в ризом, в требованиях сказано что TD держать в диапазоне 512-1706 tx/м, но сама текстура должны быть 4096 или 2048, в ризоме я ставлю Map Size 4096 что логично (получается сторона квадратов 4096 пикселей) разворачиваю на этот квадрат фасад здания например 50 метров в высоту, и что получаем 4096/50=81,92 TD а если шелам задать пипеткой TD 512 то они получаются гигантские и конечная текстура в огромном разрешении, я что то не понимаю или где то ошибка, на сколько я знаю обычно текстуру ставят к примеру 4096 но чтобы она была не мыльная и достигалось значение TD 512 она тайлится и все гуд, но у нас же условие что фасад был одной текстурой без тайла?
0
Spark
Привет
У тебя немного путаница возникла, видимо.

Для низкополигональной модели, где всё здание разворачивается на одну текстуру, TD не применяется.
А для высокополигональной модели не делается развёртка всей модели на одну текстуру. Поэтому развертка 50-метрового здания в одну текстуру неправильна.
0
V.S.O.P.
Задолбался методичку их читать, косячная она. На халяву, не набивая шишек можно пояснить правила для 2-й модели, которая высокополигональная? Они же явно отличаются.
0
Russel6662
Привет, он имеет в виду момент когда есть фасад в котором большая часть из кирпича например, и под этот кирпич идет свой Юдим квадратик, и дальше мы делаем его развертку и допустим попадаются полигоны площадь которых ну не позволяет выдержать TD ( нам надо просто порезать их на нужный размер чтобы они запихивались в UDIM? ) и вот мы имеет ситуацию когда весь кирпич мы подогнали под TD, он лежит в нужном UDIM, НО его рисунок не стыкуется с соседними полигонами а их сотни, все вручную двинать?
0
Spark
Да, резать на куски, умещающиеся в тайл UDIM по плотности текстуры, и вручную подгонять.
Возможно есть автоматический способ, но я его не нашёл.
0
Kulakov_Alex
Спасибо большое за разбор.

А вы используете текстуру ORM и только?

А то в правилах к подготовке одновременно фигурируют текстуры ERM и ORM.

Как я понял из текста первый канал E - (emission) отвечает за светимость.
Да и в эталонной модели есть именно файлы в .ERM

Просто если использовать только ORM, то где будет находиться информация о местах светимости?
+2
Spark
ORM была в предварительной редакции правил. Но в итоге от АО отказались, заменив его на Emission, так что теперь только ERM
0
felix97
Не подскажете, как правильно подготовить текстуру ERM ? если материал не будет светиться, то в каналах RGB, красный канал выставить "черным" ?
0
Spark
Да, если не светится, то чёрный.
0
felix97
Благодарю вас за ответ!)
0
pDim
в требованиях ORM упоминается один раз, в пункте, где говориться о свечении (emission), это явно опечатка. Поразительно, что все это подхватили, везде ORM. Спрашивается, что должно быть в этом канале? Как правило, там или белый или 128й, но зачем и почему? Как люди себе это объясняют? И как быть с оверлапингом в таком случаи. В прочем, требования позволяют на один объект до семи матов в каждом до 100 юдимов по 4к. Наверное, можно и без оверлапинга обойтись. Нормально так может получиться: 2млн поликов, 700 юдимов по 4к. Можно поэкспериментировать
0
Roman_U
Добрый день! Спасибо за статью! Есть насущная потребность разобраться в теме.
Вопрос: "Не делаем всю невидимую снаружи геометрию. В интерьерах делаем только то, что видно снаружи через стекло" - это не противоречие? В требованиях сказано, что внутреннюю геометрию не делаем. С другой стороны, здание с витражным остеклением без внутренних перегородок и колонн выглядит странно.
+1
demon_sera
Добрый день! Сколько берут за одну подготовленную модель? Или еще зависит от сложности объекта?
0
AnareA
Тоже интересно) Но, действительно, это зависит от сложности здания. Главное, что даже панели металлические приходится делать геометрией, чтобы не морочиться с текстурами ( чтобы швы совпадали)...пока рынок по этой теме не заполнен, можно говорить любую цену в пределах разумного)
0
Spark
Как и в любой работе стоимость зависит от сложности и объема.

Плюс от материалов отделки, т.к. тайлящиеся материалы типа кирпича и разного рода панелей дольше разворачивать.
0
VirtualCGD
А можно хотя бы диапазон? Или что-то среднее? Спасибо!
+1
NORM_BUREAU
В требованиях присутствует файл формата Geojson, вы заполняете его по шаблону, данному в примере в любом текстовом редакторе а потом просто меняете формат на geojson или там какой-то более сложный процесс, подскажите, пожалуйста
+1
plukhin
если сумеете заполнить без ошибок, со всеми скобками и запятыми, то можно хоть в блокноте. есть так же софт специальный https://webkyrs.info/post/kak-sozdat-json-fail 
здесь рассказано
0
NORM_BUREAU
Подскажите, пожалуйста, нужно ли соблюдать правила топологии и делать правильную сетку(второй скрин) или можно оставить как на есть (1 скрин).
https://disk.yandex.ru/d/qO_sMd4Ji2kAFA 
0
Mad_AD
материал стекла может кто-то порекомендовать??
0
gridnevde
Всем привет! Подскажите, а где взять Координаты точки вставки модели
в MCK77?
0
LexxDaniloff
"размер кратный степени двойки и не более 4K".
С 4К всё понятно, а что значит кратный размер степени двойки?
0
LexxDaniloff
Больше всего интересуют такие проекты, где много классической лепнины и колонн, как с ними поступать? Перемоделливать и правильно разворачивать?
+4
AnareA
Ребята, на этот год уже все отменили!)
Так что до 1 января 2024 года есть время подготовиться:)
См. распоряжение Департамента информационных технологий г. Москвы и Москомархитектуры от 22.06.2023 № 64-16-288/23/1209
0
mnogonojka
Комментарий удален
0
GeorgiyS
по сегодняшнему семинару может кто-нибудь видос выложить?
+1
GeorgiyS
https://mkacloud.ru/nextcloud/s/NZcG77gcLWkCoGo