![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/356a0155222d416532318dfdf27014f0.jpeg)
Всем привет. Хотел бы поделиться с вами неким уроком-мэйкоффом по визуализации интерьера в Unreal Engine 4.
Почему тут, а не в уроках? Во первых это будет серия уроков. Эта тема своего рода блокнот, в котором я пишу этот урок. Отвечая на ваши вопросы или предложения я буду дополнять урок, где то более подробно расписывать, где то делать видео-вставки.
За основу решил взять интерьер, который лежит в свободном доступе. Вы можете скачать его по этой ссылке - http://www.mediafire.com/file/izw4ix4p739570k/Finale +bedroom+design.rar
Можете скачать и паралельно самим делать эту сцену.
Может это кому покажется минусом, но я работаю в Blender. Конечно же особой разницы, где работать нет. Все инструменты одинаковы. Никакими особыми плюшками блена я не пользуюсь в этом уроке.
Мой материал рассчитан на уверенных пользователей в 3Д моделинге, но которые хотят попробовать себя в реалтаймовой графике.
Начну.
Т.к. сцена идет в максовском формате, то мне все же приходится открывать макс и экспортировать оттуда геометрию. Делаю я это поэтапно. Первым этапом я всегда экспортирую коробку. Под коробкой я подразумеваю: стены, пол, потолок, карнизы, двери, окна, плинтуса, гипсокартон.
Вот такая у нас сцена и геометрия. Выбираю все элементы относящиеся к "коробке" и переношу в блен. Максонщики могут просто перенести в отдельный слой. Не поленитесь, это полезно
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/68f91061c10f5bda25dc9af22e39442e.png)
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/a5d256a82f550419bcec5df6d55debe6.png)
Далее я смотрю на геометрию, очень тщательно. В данном случае я вижу, что нужно перемоделить стены, пол и потолок.
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/0eb885fa0e121c7228b30cbbd681f87b.png)
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/1c85afc93a7bf6549a2f95a3d8d664f6.png)
Такая геометрия не пригодна для работы. Основной критерий допуска это - не входящие друг в друга полигоны. Это важно. Все должно быть стык в стык. Так же у меня есть своя методика создания стен. Она очень простая и очень эффективная.
Для начала я выделяю все вутрение полигоны стен и удаляю все, кроме них
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/420023b28d832d5a787cee04bf3ee9c9.png)
Далее немного моделинга
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/1c178ca728daed6e978e9f9a5551bf9b.png)
И мы получаем вот такую простую одностенную геометрию.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/938e346f3db1ed06450e13440c597762.png)
Выделяем все нижнее ребра и образуем из них плоскость для пола.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/e9cfe8203a98b8e9b69e60720aa13616.png)
И этот же пол клонируем и делаем из него потолок.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/d6319e01c4c3ae590676cf52de044c1a.png)
Не забудьте вывернуть нормали. (Направление нормалей очень важно. Иначе в движке вы просто не увидите вывернутые полигоны)
Далее я делаю внешние стены. Это просто. Я обвожу по внешнему периметру с отступом геометрию или сплайны в случае макса. Потом экструдирую вверх, опускаю нижние ребра чуть ниже пола и закрываю верхние и нижние дырки полигонами.
Получается вот такая коробка
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/0f8a557e15fa7c76342d9e3609cff4b6.png)
В этой коробке я делаю отверстия для окон ровно там, где окна в наших внутренних стенах.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/6266848e28b28b4c7353a5912dff5a14.png)
Теперь я выделяю внутренние стены и делаю откосы между внутренними и внешними стенами. Но заметьте, что это два разных объекта. Я их не сливаю в один.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/e4441e25d5b31e8fabf575e6627fab6c.png)
Все, на этом этапе мы закончили со стенами, полами, потолком. Теперь приступим к их разверткам. Как вы можете знать нам понадобятся две развертки на разные каналы. Первая для текстур, вторая для запекания света. Развертки эти отличаются. Обычно для текстурных разверток я оставляю все, как было, но в данном случае мы перемоделили полностью стены и нужно заново их сделать. Я пользуюсь обычным Box - маппингом. Применяю его к нашим новым стенам.
Теперь развертка на второй канал. Выделяю внешние стены и назначаю автоматическую развертку аналогичную Smart UV - аналог Flatten mapping в максе.
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/113eca893157d6167dfde02ccf220954.png)
Расстояние между шелами я делаю большое. Т.к. это внешние стены и мы их не будем видеть, то размер текселя в движке мы сделаем 128 пикселей, соответственно расстояние между шелами должно быть большое.
Для внутренних стен все тоже самое, но расстояние между шелами я делаю уже маленькое. Планирую сделать размер теселя в 1024 пикселя.
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/f34f0e8f274b626c64f442aa771a4fb5.png)
Готово. Далее приступим к остальным элементам коробки. У нас это: гипсокартонный потоолок, стена из камня, дверь, плинтус.
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/ce693cac40acc54dd1b5c353717e2b95.png)
Обратите внимание, что гипсовый потолок вылазиет за наш потолок. Нужно от этого избавиться.
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/12ee66967edecd3dfdb1282e89c9466f.png)
И стена у нас изначально вылезла за пределы. Ее мы тоже поправляем, обрезаем, или же, как я просто отскейлил ее до нужных размеров стены.
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/53fab3697b25b637811dc3e927d783e6.png)
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/be91466933f6a4cfbaef54e364244d91.png)
Теперь приступаю к подготовке стены. Геометрия тут впорядке. Но я решил разбить ее на две части. Это было сделано для оптимизации разверток. Выделили все вертикальные полигоны и сделал им детач (по максовски)
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/e620b0b3dad9de95b3b987a2df9623a1.png)
Процесс разверток для каменной стены идентичен нашим стенам.
У плинтуса я удалил полигоны, которые мы не видим.
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/9bb2958bfc8f6b7b45054deea256b725.png)
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/c31dcce44772ae212f5c9d22a5a2a3bd.png)
Дверь я очень сильно оптимизировал. Изначально в ней было 37000 полигонов. Это не много, но очень не удобно для разверток.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/6d71e91a1627b13f16e05899dbde2cce.png)
После оптимизации кол-во полигонов стало около 4000. Что уже приемлемо.
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/93e5dfa5a278278bbdadbba806fc2de0.png)
Развертка света для двери. Тоже автоматом. (Совет максонщикам ставить в настройках flatten mapping'а - угол равным 66 градусам)
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/e8ba699ae5dc157522f5329378e7731c.png)
Ручку я сделал отдельным объектом. Вообще привыкнете разделять объекты по материалам. Это полезно.
![](https://b4.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/5527b65b72d1f0bf521b6ed351329c61.png)
На этом этапе у нас полностью готова коробка для экспорта в движок. Только не забудьте проверить и назначить материалы. На данном этапе без разницы что за материалы, хоть стандартные, без карт и прочего. Главное их логичные имена.
Также про пивоты - они должны быть в центре системных координат.
Настройки при импорте fbx в движок.
![](https://b5.3ddd.ru/media/images/tinymce_images/5805d2d8d8d5a82a0f8b1ae6a6d2f893.png)
Убрал галочку с автоматической генерации коллизий. Убрал галочку с автоматической развертки для света на втором канале. А так же убрал импорт текстур на всякий случай.
Переносим наши объекты на сцену. Выставляем положение в 0 по всем осям. На сцене оставляю прямой источник света, скайлайт, скайсферу, рефлекшн сферу. Остальное удаляю. На этом этапе я выставляю каждому объекту свое разрешение для лайтмапы. У меня это такие значения:
-Внутренние стены: 1024
-Внешние: 128
-Пол: 512
-Потолок: 256
-Дверь: 512
-Плинтус: 512
![](https://b5.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/07d34ed4cf993a8bad838235d63f4ad6.png)
Вот так размещаю ReflectionSphere
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/227e137239c1148b954f0de32488d84f.png)
Добавляю на сцену LightmassVolume. Делаю ему размеры чуть больше нашей комнаты. Это нужно для того, что бы все фотоны которые будут испускаться из нашего скайлайта притягивались только в область нашего LightmassVolume.Еще я добавляю PostProcessVolume. В нем я выключаю AO. И делаю экспозицию постоянной. Не забудьте про галочку Unbound в его настройках.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/13656401956658dff705d627ada6b1af.png)
Настройки света у меня простые. Все, что изменил от стандартных вы можете видеть. Это не финальные настройки.
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/4f3b9b7ca29d55125ef1af333c02b8d3.png)
Особо важный момент - я выставляю направленный источник света (Light Source) в тип Movable. Т.е. от него я свет не запекаю. Но он все равно светит. В финале я буду использовать HDRI для запекания, по этому запекать еще и солнце мне не нужно. Вот, что получилось
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/dc07834940fb5a90ffa25b615c24ea06.png)
![](https://b6.3ddd.ru/media/cache/sky_image_forum/images/tinymce_images/57f403fb2e7a7a54a991e52e214a18ff.png)
Особых косяков пока не вижу. А значит с текстурами и материалами их вообще не будет видно. Время запекания 3 минуты. Железо i7 7700 16 ram Надеюсь такая длинная простыня читаема) Задавайте вопросы и пишите предложения. Продолжение следует. Следующим этапом буду переносить крупную мебель. Спасибо