Требования к 3D-моделям импортируемым в Planoplan™

Ревизия: конец марта 2018













Самое важное!

Для простой и быстрой работы с загрузкой моделей в Планоплан нужно запомнить три простых последовательных правила:
Проверь размеры объекта
Проверь оси объекта
Проверь расположение объекта


1. Размеры объекта


Тут надо помнить о двух моментах:
Все объекты в Планоплан существуют в метрах
В 95% случаев видимый размер объектов в 3D программах - неверен.

В первом случае надо помнить, что 1 (один) миллиметр = 0,001 метра, а 1 (один) сантиметр = 0,01 метра. Это значит, что если объект создан в миллиметрах, то при загрузке в Планоплан - миллиметры станут метрами. Поэтому, перед загрузкой, все объекты нужно перевести в метры.
В 3ds Max перевести объект из одной системы измерения в другую очень просто. Создается новая пустая сцена 3ds Max вот с такими параметрами:











Далее переносим свою модель в эту сцену через Merge:




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




Момент второй:
“В 95% случаяев видимый размер объектов в 3D программах - неверен.

Почти во всех 3D программах, простое масштабирование НЕ меняет истинные размеры объекта, а меняет только его отображение. Как результат - истинные размеры объекта искажаются и становятся неверными.
В 3ds Max размеры легко проверить запустив одновременно утилиту Measure и Object Properties. Вот типичный пример неверных размеров. У объекта одно, а по измерениям другое:



Для того, чтобы привести отображение и размеры к единому знаменателю, существует утилита:


Нажимая Reset XForm - мы сбрасываем все трансформации объекта включая масштабирование.
Также сбрасываются и направления осей.

Если удалось перевести объект в метры и сделан Reset XForm, то можно идти дальше.


2. Оси объекта


Необходимо запомнить, что НАПРАВЛЕНИЕ осей в Планоплане (Unity3D) и 3ds Max - НЕ СОВПАДАЕТ!

Вот так выглядят оси в программах по умолчанию (Unity3D и 3ds Max):



Для корректного импорта моделей в Планоплан, нужно, чтобы ось Y (зеленая) была направленна вверх, а ось Z (синяя) - направлена на лицевую сторону.
Для того, чтобы увидеть истинные направления осей в 3ds Max, необходимо переключится на локальные координаты объекта:



Для изменения направления осей нужно зайти во вкладку Hierarchy и нажать на Affect Pivot Only


И повернуть оси так, чтобы они начали выглядеть как на картинке:




Другим важным моментом является расположение осей относительно объекта.
У всех объектов, Pivot Point по осям X и Z должен находится строго центре объекта. От этого в будущем будет зависеть точность расположения 2D-превью объекта.
Высота напротив, должна быть:
- строго внизу объекта - если объект напольный, настольный и пр.
- строго наверху объекта - если это потолочный объект, например светильник или люстра.
- в геометрическом центре - только для окон и дверей


3. Расположение объекта


Как только оси правильно выставлены и сориентированы, объект нужно переместить в нулевые координаты.

ЗАПОМНИТЕ И НЕ ЗАБЫВАЙТЕ, как нужно ориентировать и располагать оси!




Подготовка 3D-моделей

Общие требования к моделям


Если глава Самое важное! освоена и не вызывает вопросов, то можно переходить к новым, более детальным требованиям:

Сцена, в которой подготавливаете модель, Gamma/LUT всегда должно быть равно 1.0 или просто отключено. Вот так это выглядит в 3ds max:


Обязательно, все подготавливаемыем модели должны быть оптимизирована по полигонажу. Недопускается использовать модели с полигонажем выше 50 000 треугольниуков. Тут действует принцип разумности. Большинство моделей корпусной мебели легко укладывается в полигонаж до 10 000 треугольников. Это стулья, столы, двери, шкафы и пр. Если объект диван или кровать, т.е. объект большой и содержит много плавных линий, то полигонаж может достигать и 30 000 треугольников. А всё, что превышает эти рамки, будет приводить к нестабильной работе Планоплана
Большая экономия полигонов достигается отключением/убиранием фасок (сhamfer) или использованием их только в одной итерации. Если фаска (chamfer) меньше 1-2мм, то ей можно лекго пренебречь.
Все объекты должны иметь замкнутый меш (mesh). Наличие “дыр” можно проверить через Cap Holes. Если полигонаж изменился, значить “дыры” есть. Если полигонаж тот же, то меш замкнут. Единственное исключение из правила - растения.
Обязательно проверяем направление нормалей. Для этого включаем Backface cull (см. скриншот). Если объект замкнут, то все нормали должны смотреть наружу.



Модели составленные из разных объектов Нельзя Группировать. Если модель состоит из нескольких объектов, то объекты нужно соединять (аттачить) в один меш. Должно выполняться правило - один материал равен одному объекту. Более подробно данное правило будет рассмотрено далее.
Если модель составная, то все его составляющие объекты надо помещать в иерархию. Важно помнить, что у корневого объекта в иерархии (“главного родителя”) оси должны отвечать правилу из Самое важное! Для остальных, дочерних объектов, оси должны быть расположены в «разумных местах». Например у двери - в точке вращения посредине высоты. У дверной ручки - в ее геометрическом центре.
Не забываем лишний раз проверить истинный размер объекта (scale) и направление осей






Наименование объектов


Во ВСЕХ названиях объектов, материалов, текстур и пр. СТРОГО ЗАПРЕЩАЕТСЯ:
использовать кириллицу (русские буквы)
использовать пробел и следующие знаки и символы:
~ ! @ “ ” # № $ % ^ : ; & ? * ( ) / \ | > < + - = ‘ . ,
ВСЕ названия объектов, материалов и пр. должны быть понятными, написаны латинскими буквами и на английском языке.
ВСЕ слова и цифры разделять нижним подчеркиванием “_”
Если названия объектов сотостоят из нескольких частей с одинаковой основной частью, то эти названия должны быть уникальными:
Правильно chair_seat, chair_legs, chair_hands
Неправильно: chair, chair_legs, chair_hands
Неправильно: chair, chairLegs, chairHands

Подготовка материалов

Общие требования


Использовать только стандартные материалы 3ds max.
На каждый объект должен быть только 1 (один) материал и только 1 (один) материал.
Количество материалов строго отслеживать и по возможности минимизировать! Любой дополнительный материал порождает дополнительный drawcalls - это тормозит отрисовку в реалтайме.
Раскрашиваемые элементы (части корпуса, фурнитура и т.д.) необходимо делать отдельными объектами с одним раскрашиваемым материалом.
Названия материалам даются по формуле:

“возможность раскраски”_“тип поверхности”_“имя материала”

например: colored_matte_wood, colored_matte_tkan, noncolored_satin_legs

Где “возможность раскраски”:
colored - пользователи смогут перекрашивать и назначать текстуру в Планоплане. В этом случае цвет Diffuse всегда выставлять как чистый белый RGB 255,255,255
noncolored - пользователи не смогут менять материал. В этом случае будет использоваться тот цвет Diffuse, который выставите.
нет префикса (напр. chrome_furniture) - это ошибочное наименование. В этом случае текстуры не учитываются, материал сбрасывается до серого, ему не присваивается лот, пользователи не могут менять материал. В редакторе будет одно, а на рендере другое.

Где “тип поверхности” берется из таблицы Типы поверхностей. Это необходимо для автоматического назначения нужного материала при визуализации.

Где “имя материала” - простое название для понимания и для выделения материала среди прочих подобных.

Не оставляем никаких текстур (проверяем все каналы). Все текстуры (материалы) назначаются не в Максе и Юнити, а в админке из БД материалов Планоплана. Исключение - уникальные noncolored объекты. Например единичные текстуры вроде экранов и цифровых панелей на различной технике, кора и листва у растений и деревьев, и т.д.
ВСЕ текстуры сохранять в формате .png (с альфа-каналом) или .jpg (без альфа-канала, в 100% качестве). PNG-текстура должна сжиматься в Photoshop-е (Alt+Shift+Ctl+S → файл формат: PNG-24 → transparency - по необходимости).
Разрешение текстуры является степенью 2 (8,16,32,64,128,256,512,1024,2048). Использование текстур разрешением больше 1К не желательно. Если размер текстуры по одной стороне не кратна степени 2, то она рендерится в нужном разрешении, а потом растягивается/ужимается до ближайшего значения из разрешенного ряда.
Следим за маппингом и каналами маппинга. Маппинг обязательно должен быть у всех объектов! Объекты без маппинга НЕ импортируются! Если объект с материалом noncolored, то можно использовать любой маппинг, включая развертки (unwrap UVW). Но если мы устанавливаем colored, то рекомендуется назначать “боксовый” маппинг (UVW Mapping - Box) размера 1х1х1метра по первому каналу. В этом случае, все текстуры из каталога Планоплан будут корректно накладыватся согласно своих размеров.
Правильно ориентируем UVW Mapping - Box для задания направления и ориентации текстуры. Даже для тех объектов, на которых сейчас нет материала. Например настраиваем правильное направление волокон дерева для объектов, где оно может быть материалом. Если объект наклонен, то и гизмо UVW Mapping - Box наклоняем так же.

Типы поверхностей

matte
лот 1090
(матовая)
матовая краска, матовое дерево, ткань, штукатурка
satin
лот 1181
(полуматовая)
матовая кожа, паркет, отдельные части мебели, пластик
semigloss
лот 1609
(полуглянцевая)
пластик, дерево
glossy
лот 1067
(глянцевая)
металлы, полированное дерево, лакированное покрытие, пластики










reflective
(отражающая)
тонированное стекло
brushed
(шлифованная)
шлифованные элементы мебели(дверные ручки, фурнитура и т.п.)
polished
лот 1128
(полированная)
шлифованные элементы мебели(дверные ручки, фурнитура и т.п.)
chrome
лот 1068
(хромированная)
хром и металлы, хромированные элементы мебели(дверные ручки, фурнитура и т.п.)
Не поддерживает текстуры










mirrored
(зеркальная)
зеркало

Не поддерживает текстуры
glass
лот 4037
(стеклянная)
стекло
steklo_blur
(стеклянная матовая)
стекло
mattet
(матовая прозрачная)
тюль
transpmat (матовый + альфа)
данный тип, поддерживает прозрачные текстуры (PNG) Подходит для растенй






Х



Экспорт в FBX

Когда модель готова и отвечает всем вышеописанным требованиям, можно переходит к экспорту. Планоплан поддерживает только формат FBX.

Перед экспортом в FBX необходимо проверить, что экспортируется только те объекты, которые нужны, а не вся сцена:



Параметры экспорта остаются по умолчанию, но лучше проверить, что в настройках экспортера стоит Up Axis: ось Y → up


Если у вас есть noncolored объекты с текстурами, то также необходимо поставить галочку “Embed Media”. Это фукция запишет текстуры внутрь FBX



Управление каталогом и импорт моделей в Планоплан



Вход в систему управления каталогом


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

Получив необходимую учетную запись, авторизуемся на сайте  www.planoplan.com  и далее идем по ссылке  http://planoplan.com/manager 

В случае успеха, вы увидите:










Загрузка 3D-модели


В среде Планоплан, все загружаемые объекты, будь то текстура или 3D-модель, называются Лоты. Лот - это единица каталога Планоплан. Она содержит в себе всю информацию об объекте: наименование, описание, размеры и пр. пр.

Для создания нового лота, необходимо выбрать раздел “Лоты” и нажать “Добавить объект”:



В появившемся окне необходимо сразу задать имя объекту, который будете добавлять. Без наименования Лот не будет сохранен, т.к. имя - основной элемент в поиске. Когда Лотов станет очень много, только имя поможет отыскать то, что нужно. Заполнив поле, можно нажимать “сохранить”.







Вот так выглядит вновь созданный лот:




Всем создаваемым Лотам присваивается уникальный идентификатор LOT ID (см. п. 2 на изображении), а сам лот появляется в списке лотов (см. п. 1 на изображении). Так же, только после создания Лота, появляются дополнительные действия (см. п. 3 на изображении)

Для загрузки в Лот подготовленной модели в формате FBX, необходимо прокрутить список в самый низ и нажать “выбрать” у поля “Файл SOURCE”.
После появления пути к файлу, нужно обязательно нажать “Сохранить” и тогда начнется загрузка файла на сервер.









Как только завершится загрузка, можно приступать непосредственно к импорту модели. Для этого достаточно нажать на кнопку “Импорт” внизу экрана. Появится окно:




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






Только после того, как появится готовая модель, можно нажимать на “Текстура на 2D плане” и “Превью”. Эти действия также поставят задачи на сервер, результатом которых будут 2 картинки:





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

Если в модели есть раскрашиваемые элементы - то на превью они будут белыми - цвет по умолчанию. Чтобы назначался нужный вам цвет, его необходимо установить. После импорта модели в таблице “Компоненты” появятся записи о раскрашиваемых элементах. Двойной клик на записи и мы попадаем в ее редактирование.


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


Если с моделью что-то не так…


Рассмотрим самые распространенные проблемы.

Проблема
Решение
Модель долго не импортируется (ожидание больше четырех часов)
Значит в модели допущены ошибки. Рекомендуем обратится к разработчику с четким указанием LOT ID, у которого возникли проблемы.
Модель на превью и в Планоплане лежит на боку
Необходимо исправить направление осей, см. Самое важное!



Как работает каталог


Весь каталог Планоплана основан на трех понятиях: Лот, Библиотека и Фильтр.

Как было сказано ранее, Лот - это единичный элемент каталога. Все лоты, независимо от своего содержания и типа (модель, материал и пр.) хранятся в одном месте - в разделе “Лоты”. Можно сказать, что это общий список всех созданных элементов каталога.

Второе понятие, Библиотека - это раздел, где мы определяем структуру нашего каталога. Именно эта структура и выводится в редакторе Планоплан. Вы можете создать любую свою структуру каталога, но пока не определим Фильтры, она будет без содержания, т.е. без Лотов.

Фильтр - это любые дополнительные характеристики, которые можно добавить Лоту, чтобы описать его более подробно. Эти характеристики могут определять или описывать любые свойства у объекта. Предположим, что у нас есть 2 лота: красный деревянный куб и зеленый пластиковый конус. Особенности этих лотов можно разделить на 3 группы фильтров - цвет, материал, форма. Далее, через эти же группы фильтров мы определим, какие Лоты должны попасть в ту или иную категорию Библиотеки.

Рассмотрим пример.
Пусть у нас имеется 5 лотов, которые мы хотим распределить по категориям:




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




Так же как и с Лотом, первым делом даем название категории. Например “Растения”. И обязательно нажимаем “сохранить”.

Создадим еще одну категорию, например “Мебель”. В результате должно быть как на примере ниже:




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

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




Надо заметить, что группа, еще не сам фильтр. Это обобщающее имя для нескольких фильтров. Например, мы хотим разделить лоты на Растения и Мебель (см. ранее созданную структуру). Растения и Мебель - это фильтры, а их общим наименованием (группой) может быть “Тип товара”. Создадим “Тип товара” и далее добавим 2 фильтра. В итоге должно получится так:






Теперь обратим внимание, как изменились параметры у Лотов и Категорий. После создания группы и фильтров, у всех появился новый параметр, фильтр “Тип товара”.







Теперь настала очередь определить, чем является тот или иной Лот. Выберите лот и укажите в фильтрах, чем он является. Не забываем нажимать “сохранить” после каждого изменения.
Если всё сделали верно, то теперь Диван “знает”, что он Мебель, а Куст “знает”, что он Растение.
Перейдем в библиотеку и определим, в какую категорию им нужно попасть. Для этого в категории “Растения” выставим тип товара на “Растения” и нажмем сохранить. В результате категория наполнится всеми лотами с такими параметрами и будет выглядеть вот так:



Категорию Мебель можете заполнить самостоятельно.

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



Настройка отображения каталога


Рассмотрим подробнее, как настроить сортировку и цветовую группировку категорий в Библиотеке.




Устанавливая галочку “Скрыть”, мы скрываем данную категорию от пользователей, но ее функциональность не нарушается. Это необходимо, когда категория еще формируется и она не готова для публичного показа или необходимо провести какие-то тесты, которые не должны быть публичны.
По умолчанию категории выводятся по алфавиту. Но порядок можно изменить введя число. Чем больше число, тем ниже расположится категория. Если числа совпадают, то используется вывод по алфавиту.
Это цветовая группировка категорий внутри Планоплана (см. второй рис). Цвет наследуется от корневого каталога к дочерним. Поэтому, указав цвет у основного, указывать цвет у вложенных не обязательно (если только не требуется дополнительное разделение)

Как увидеть изменения в Планоплане



Если вы изменили у Лота только 3D-модель или картинки, то достаточно сохранить изменения в админке и перезагрузить сам Планоплан. Если Лот уже был сохранен в проекте, может потребоватся нажать “reset” у объекта.

Но если вы изменили Имя Лота, изменили структуру Библиотеки, перенастроили Фильтры или еще что-то, что затрагивает структура каталога, то нужно обязательно “Обновить XML”:




Процедура обновления XML не быстрая, поэтому придется немного подождать. После обновления нужно снова перезагрузить Планоплан и изменения станут видны. Может так случится, что после всех обновлений изменений нет. В этом случае рекомендуем почистить КЕШ браузера и перегрузить Планоплан снова. Если и после этого нет изменений, то обратитесь к разработчику.