🔍Поиск по всей документации — мгновенный поиск по 87 страницам

Экспортировать 3D модели необходимо из 3D Studio MAX 2021 или более новым с установленным VRay 5.

1. Подготовка геометрии и оптимизация сетки

1.1. Геометрия

Количество полигонов должно быть максимально оптимизировано без ущерба форме объекта. Складки, швы и другая мелкая фактура имитируется картами.

Модель при необходимости или в целях оптимизации может быть поделена на отдельные объекты. В этом случае при экспорте создается dummy, объединяющий модели связью с опорной точкой в этом dummy.

Разделение модели на объекты возможно в следующих случаях:

◉ Отделяются части модели, которые можно будет скрывать в Interior Craft.

К примеру, у кровати Eric_Lavsit01 предполагается скрытие изголовья и покрывала по отдельности. Тогда модель кровати делится на 3 части:

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

◉ Для экономии места на развертке могут быть отделены элементы, на которых предполагается назначить не запекаемый (Real time) материал (зеркало, стекло, металлы). В object properties не запекаемых элементов в этом случае прописывается размер для Light map равный 0.

{
  "LightmapSize": 0
}

Обратите внимание, если на объекте предполагается смена материалов, то все материалы из списка должны быть не запекаемыми.

Если не запекаемы элемент небольшой или его сложно отделить от родительского объекта, можно максимально уменьшить его масштаб на развертке 2ого канала.

◉ Стеклянные объекты, которые должны скрываться при запекании, чтобы пропустить свет или не отбрасывать теней. При запекании отключается Refract у всех объектов, и они запекаются и отбрасывают тени, как непрозрачные.

К примеру, оконное стекло должно пропускать свет от солнца. Для этого стекло выделяется в отдельный объект и ему прописываются следующие свойства в object properties:

{
  "HiddenDuringBaking": true,
  "CastShadows": false
}

Материал назначенный на стекло должен быть не запекаемым.

1.2. Группы сглаживания

Все полигоны на модели должны иметь группы сглаживания, иначе она не будет импортироваться. Назначить группы сглаживания можно через модификатор Smooth или на панели Editable Poly в стеке Polygon: Soothing Groops. Чаще всего достаточно использовать функцию Auto Smooth с разными углами сглаживания, однако, иногда необходимо назначать группы сглаживания вручную. Ошибки групп сглаживания можно увидеть при проверке объекта в движке.

Особое внимание следует уделять плоским отражающим поверхностям (металл, зеркало, глянцевый пластик), они не должны быть выпуклыми.

1.3. Нейминг

Подробнее: Нейминг

2. Расположение модели в пространстве

Чтобы модель корректно позиционировалась в программе Interior Craft, она должна быть расположена определенным образом относительно начала координат.

Если модель - напольный элемент, то она должна находиться в полупространстве Z >= 0, Y <= 0 и по центру оси X.

Если модель - настенный элемент, то он должен находиться в полупространстве Y <=0 по центру осей X и Z.

Если модель - потолочный элемент, то она должна находиться в полупространстве Y <=0 по центру осей X и Z.

Расположением объектов относительно начала координат можно контролировать направление растяжения, если такое предусмотрено для модели. Растяжение идет по направлению от начала координат.

Если модель или зона растяжения расположена по центру оси X, то она будет растягиваться равномерно в обоих направлениях по оси X, так как будет находиться и в полупространстве X < 0 и в X > 0

Если модель или зона растяжения расположена в полупространстве Х < 0 или X > 0 , то она будет растягиваться в соответствующем направлении начиная от 0.

Это справедливо для всех осей.

Pivot Point

От поворота опорной точки зависит, в каком направлении будет скрываться объект. Традиционной осью для скрытия объеков является ось Y. Любой объект потенциально может скрываться.

При правильном положении объекта относительно начала координат, оси опорной точки совпадают с осями Мировой системы координат.

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

Если модель состоит из нескольких объектов, при экспорте создается dummy с опорной точкой. Оси опорной точки совпадают с осями мировой системы координат. Опорные точки самих объектов игнорируются.

3. Вспомогательные объекты

Чтобы модель в программе понимала расширенную систему позиционирования и умного масштабирования, ее необходимо оснастить различными вспомогательными объектами. Для этого используются Point Helpers и Box-ы.

3.1. Начало координат (Origin)

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

Для этого создается один или несколько объектов с именем Origin_001, Origin_002 и т.д. Тип объекта - Point Helper. Параметр Display удобнее всего устанавливать в значение Axis Tripod.

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

При наличии хотя бы одного Origin хелпера, параметр “Right Click Rotation Angle” в настройках модели теряет смысл и игнорируется. Этот параметр автоматически создает хелперы данного типа с разным углом поворота в точке [0;0;0], если таковые отсутствуют в модели.

3.2. Точка захвата модели (Drag)

Точка, за которую пользователь курсором мыши перетаскивает модель в помещении, назовем точкой захвата или Drag точкой.

По умолчанию, точка захвата - начало координат. В большинстве случаев это не очень удобно.

Чтобы изменить точку захвата, необходимо создать один или несколько объектов с именем Drag_001, Drag_002 и т.д. Тип объекта - Point Helper. Параметр Display удобнее всего устанавливать в значение Box.

Если в модели присутствуют хелперы данного типа, то она, когда переносится из “Библиотеки Элементов”, будет тащиться курсором не за начало координат, а за вспомогательную Drag точку. Переключение между Drag точками осуществляется правым кликом мыши во время перетаскивания модели в помещении.

Drag точки работают в паре с Origin точками. Изначально модель тащится за точку Drag_001, а Origin_001 является началом координат. При клике правой кнопкой мыши начало координат переключается на Origin_002, а точка захвата на Drag_002 и т.д. по кругу.

Если Drag точек больше Origin точек, то используется начало координат вместо недостающих точек. Если Origin точек нет вообще, то в качестве них могут использоваться автоматически сгенерированные Origin точки при заданном в настройках модели параметре “Right Click Rotation Angle”.

Очень часто в модели создается всего одна точка захвата Drag_001, расположенная в геометрическом центре модели. Параметр “Right Click Rotation Angle” устанавливается в значение 90 градусов. Таким образом модель таскается мышкой за ее центр, а по правому клику происходит разворот на 90 градусов.

Если модель очень длинная, например “штанга для вешалок”, то точки захвата удобно поставить на левом конце, в середине и на правом конце.

При наличии хотя бы одной Drag точки в модели, параметр “Drag Point Location” в настройках модели теряет смысл и игнорируется.

3.3. Проем (ConBox)

Чтобы модель могла встраиваться в проем, ей необходимо добавить Box с названием ConBox_001. Грани ConBox-а представляет собой будущий проем. Врезание происходит по оси Y. Все элементы модели размещенные внутри ConBox-а будут встраиваться в проем любого размера и деформироваться вместе с ним, если в модели не предусмотрены дополнительные зоны растяжения.

В одной модели может быть только один ConBox.

3.4. Зона растяжения (BoxVolume_XYZ)

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

Числовой суффикс (_001, _002, _003 и.т.д.) в названии определяет порядковый номер зоны растяжения. Присутствует всегда. К примеру, если в модели одна зона растяжения то ее название будет: BoxVolume_XYZ_001.

Суффикс _XYZ определяет оси, по которым будет растягиваться модель с помощью данного BoxVolume-а. Чтобы зона растяжения не влияла на одну из осей, эту ось надо удалить в суффиксе. К примеру: BoxVolume_XZ_001, BoxVolume_Y_001.

К примеру, у окна, чтобы исключить из растяжения центральный импост и при этом оставить возможность растяжения у нижней фрамуги по высоте, в названии нижней зоны растяжения убирается ось X (BoxVolume_YZ_003).

3.5. Точка притяжения

3.6. Источники света

В модель можно добавить источники света VRayLight.

Параметры VRayLight, переносящиеся в ICraft:

  • Тип ИС: Plane, Sphere, Disk.

  • Mode: Color/Temperature

  • Color

  • Temperature

  • Multiplier

  • Directional

  • Cast shadows

  • Double-sided

  • Invisible

  • Affect diffuse

  • Affect specular

  • Affect reflections

4. Свойства объекта

Некоторые свойства у модели можно прописать в object properties до экспорта. Они имеют приоритет над теми, что назначаются в настройках модели в ICraft. К примеру, если в object properties прописано разрешение light map равное 512*512, а в настройках в ICraft 1024*1024, то модель будет запекаться с разрешением 512*512.

Таким способом можно задать разные параметры разным частям одной модели. К примеру, стеклу у окна можно добавить параметр скрытия во время запекания, чтобы оно пропускало солнце и параметр разрешения текстуры light map равной 0, чтобы light map не запекалась, тем самым не тратя ресурсы фермы.

Свойства могут применяться как по отдельности, так и вместе.

4.1. Разрешение текстуры

{
  "LightmapSize": 128
}

Разрешение должно быть кратно 8 : 0, 8, 64, 128, 256, 512, 1024, 2048 и.т.д. Параметр имеет приоритет над настройками модели в ICraft, однако, на него действует понижающий коэффициент в скрипте Bake Light. К примеру, если в object properties прописано разрешение 512, то при понижающем коэффициенте 2, текстура запечется в разрешении 256.

Если параметр отсутствует, каждая часть модели будет запекаться с разрешением, указанным в настройках модели в ICraft.

Пример использования:

Оконные ручки запекаются с разрешением 128, оконная рама при этом запекается с разрешением 1024, указанным в настройках модели ICraft.

Металлические дверные ручки и петли имеют параметр = 0, так как материал хрома не нуждается в light map. Дверное полотно при этом запекается с разрешением указанным в настройках модели ICraft.

4.2. Растяжение модели

{
  "ScaleEnabled": "false"
}

Если значение false, то модель не будет подвергаться растяжению, несмотря на зоны растяжения и настройку растяжения в ICraft. Если значение true, на модель будут действовать настройки растяжения.

К примеру, оконные/дверные ручки.

4.3. Скрытие во время рендера

{
  "HiddenDuringBaking": true
}

Параметр отвечает за скрытие объекта во время запекания текстур.

true - скрывается

false - не скрывается

К примеру, стекло в стеклянных экранах для ванны.

4.4. Отбрасывание тени

{
  "CastShadows": false
}

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

true - отбрасывает

false - не отбрасывает

5. Развертка

В программе используются два текстурных канала (Map Channel):

1 - для тайлиных текстур (Base Color, Roughness, Diffuse, Opacity, Metalness,Normal)

2 - для уникальных (Ambient Occlusion, Normal) и запекаемых текстур (Light map).

Все текстурные карты кроме LM могут быть как тайлиными, так и уникальными и размещаться на одном из двух каналов.

5.1. Развертка по 1 каналу

Способ развертки по 1ому каналу зависит от того планируется ли использование на модели библиотечных материалов или создание уникальных материалов. Если на модели будут использованы оба варианта материалов, то модель следует разворачивать способом под библиотечные материалы, а уникальные материалы подгонять под развертку путем масштабирования текстур.

5.1.1. Развертка под библиотечные материалы

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

Последовательность действий:

1. Загрузите необходимую библиотеку материалов.

Библиотеки расположены:

  • Камни: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Stone\Stone.mat

  • Ткани: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Fabric\Material_Library_Fabric.mat

  • Ткани просвечивающие: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Fabric\Material_Library_Fabric_Translucent.mat

  • Однотонное постельное белье: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Fabric\Material_Library_PlainBedLinen.mat

  • Детское постельное белье:.\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Fabric\Material_Library_ChildrenBedLinen.mat

  • Взрослое постельное белье:

  • Кожа: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Leather\Leather.mat

  • Дерево: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Wood\Wood.mat

  • Металл: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Metal\Metal.mat

  • Пластик: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Plastic\Material_Library_Plastic.mat

  • Пластик прозрачный: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Plastic\Material_Library_Plastic_Transparent.mat

  • Пластик светопропускающий: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Plastic\Material_Library_Plastic_2sided.mat

  • Покрывала: .\Interior Craft - Apartment Editor\pikruntimecontent\Materials\Fabric\Material_Library_Cover.mat

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

2. Разверните модель на первом канале. Задайте необходимый поворот полигонам.

3. Настройте масштаб текстуры на объекте, так чтобы она соответствовала всем другим элементам в библиотеке моделей. Для этого откройте скрипт Advanced uv normalizer. Выделив на развертке полигоны элемента, который будет совместим с библиотекой материалов, задайте в скрипте параметры:

A. Texel Density (geometry/pixels). Таблица параметров для каждой текстуры: Таблица размеров текстур Texel Density подобран так, чтобы масштаб развертки подходил под все текстуры в библиотеке. Сведения в таблице приведены для справки.

B. Разрешение используемой текстуры Base Color. Таблица параметров для каждой текстуры: Таблица размеров текстур . Возьмите из таблицы разрешение текстуры соответствующие вашему Texel Density.

C. Нажмите Normalize Selected UV Shells. Скрипт приведет развертку в соответствии с заданными значениями.

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

5.1.1. Развертка под уникальные материалы

Масштаб и положение развертки по первому каналу в этом случае не ограничены и выбираются исходя из масштаба текстур.

Если на объект будет накладываться несколько материалов их текстуры должны быть сомасштабными.

5.2. Развертка по 2 каналу

Канал служит для уникальных (Ambient Occlusion, Normal) и запекаемых текстур (Light map).

На этом канале развертка должна быть запакована максимально плотно в один UDIM, без наложений, с padding больше 8 пикселей.

Развертка должна быть поделена на логичные читаемые участки с минимальным количеством швов, по возможности проходящим через реальные швы или находящихся в незаметных местах.

Стоит избегать узких обособленных участков на развертке, так как это приводит к артефактам при denoise на краях Light map.

6. Текстуры

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

К примеру, на кресле используется тайлиные текстуры diffuse и roughess, для передачи мелкой фактуры ткани, вместе с уникальными запеченными текстурами Normal и AO, для передачи складок и затемнений.

Тайлиные текстуры размещаются на первом канале, уникальные на втором.

Тайлиные текстуры должны быть бесшовными.

Движок не может объединить две текстуры одного типа в одну. К примеру, тайлиную текстуру Normal рельефа ткани и уникальную текстуру Normal складок кресла. В этом случае стоит выбрать ту текстуру, которая лучше подчеркивает визуальную составляющую объекта и читается в движке.

Разрешение:

Разрешение текстур должно быть кратно 8: 64, 128, 256, 512, 1024, 2048 и.т.д.

Разрешение для запеченных текстур выбирается минимально возможное при сохранении качества отображения на модели в движке после сжатия.

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

Нейминг:

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

Подробнее: Нейминг

Diffuse

Запеченная текстура используется для небольших объектов декора (книги, статуэтки, вазы и.т.д.) со сложным рисунком.

Если рисунок мелкий или повторяющийся стоит использовать тайлиный вариант для диффузной текстуры. Это сэкономит разрешение текстуры, при этом увеличив качество ее отображения в движке.

Не применяется в комбинации с библиотечными материалами.

Normal

Текстура используется для имитации мелкого рельефа: швов, складок, шлифовки, надписей и.т.д.

Чтобы модель с применённой картой нормалей освещалась правильно необходимо учитывать красный (X) и зеленый (Y) каналы. Иногда один из них необходимо инвертировать перед или после запекания. При запекании в Marmoset Toolbag карту необходимо инвертировать по оси Y.

В движке работает при наличии отражений на поверхности.

Запеченная текстура доступна для использования со всеми библиотечными материалами кроме Покрывал (Cover)

Аmbient Occlusion

Состоит из смеси двух карт: Curvature и Аmbient Occlusion. Карты запекаются в программе Marmoset Toolbag, что позволяет добиться одинакового результата для разных объектов. После чего объединяются в единую карту АО (Пункт 6.1). Получившаяся карта придает объекту большего объема, затемняя впадины и высветляя выступающие части.

Чаще всего используется для мягкой мебели в комбинации с запеченной картой Normal.

Доступна для использования со всеми библиотечными материалами.

Roughness

Чаще используется тайлиный вариант для карты отражений, но также может применяться и уникальная карта.

Не применяется с библиотечными материалами

Opacity

Чаще используется тайлиный вариант, но также может применяться и уникальная карта.

При использовании карты в материале должен стоять параметр double sided.

Не применяется с библиотечными материалами.

Metallic, Emissive

Не применяются

6.1. Создание карты АО

Карта ОА создается путем объединения карт Curvature и Аmbient Occlusion в Photoshop.

Последовательность действий:

2. Запеките карты Curvature и Аmbient Occlusion в Marmoset Toolbag.

2. Соберите финальную карту AO в Potoshop, используя следующую схему:

Если необходимо усилить затемнение складок, то уменьшите непрозрачность слоя 1

Если необходимо ослабить высветление складок, то добавьте еще один слой по схеме ниже:

Если необходимо усилить высветление складок, то добавьте еще один слой по схеме ниже:

7. Материалы

Каждый материал представленный на модели существует в двух версиях:

  • 1 версия - до Replace materials (далее в тексте: заменяемый материал). Таким материал будет при импорте модели в 3ds Max, на рендере Топов, при запекании карт Light Map. Этот материал создается из расчета корректного отображения на рендерах и правильного запекания текстур.

  • 2 версия - после Replace materials (далее в тексте: замененный материал). Таким материал будет отображаться в движке. После замены в материал добавляется карта Light Map, а также могут меняться параметры и карты, при необходимости. Материал создается из расчета корректного отображения в движке.

Подробнее про нейминг материалов: Нейминг

Материалы одной модели могут быть объединены в единый MultiMat материал. Слотов в материале должно быть ровно по количеству подматериалов.

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

Существует несколько алгоритмов создания материалов для ICraft:

На модели может примяться как один способ, так и комбинация из нескольких для разных материалов.

1. В 3ds Max создаются боланки (VrayMtl) материалов без текстур и настроек с нужными названиями и иерархией.

Далее в ICraft на эти материалы назначается смена цветов из библиотечных материалов. При необходимости создается накладывающийся материал Override содержащий индивидуальные карты Normal и АО.

Такой способ больше подходит для объектов с библиотечными материалами, так как их не надо настраивать.

2. В 3ds Max создаются полноценные Vray материалы с назначением текстур и подбором настроек.

После чего модель экспортируется с этими материалами и текстурами в ICraft

В ICraft, используя функцию переопределения материалов, импортированным материалам во вкладке Default добавляются/меняются настройки/текстуры необходимые для правильного отображения материала в движке после Replace materials.

Обратите внимание, что при изменении настроек во вкладке Default идентично меняются настройки во вкладке VRay. Чтобы вернуть измененные параметры, зайдите во вкладку Vray после настройки Default и подправьте их.

Такой способ подходит для моделей с индивидуальными материалами.

3. В 3ds Max создаются полноценные Vray материалы с назначением текстур и подбором настроек.

Далее MultiMat или каждый материал по отдельности экспортируются скриптом Export Mat в формате mat. Экспортируется модель, и переносятся текстуры.

В ICraft в той же директории создаются дублирующие материалы с идентичными названиями в формате mtl. В них настраивается, как будет отображаться материал после Replace materials. Вкладку Vray в этом случае трогать и переключать не стоит. Созданные mtl материалы применяются к модели.

В дальнейшем при импорте модели в 3ds Max заменяемый материал будет браться из файла mat, а замененный материал из файла mtl.

Такой способ применяется для сложных материалов, которые невозможно воспроизвести средствами ICraft. К примеру, просвечивающие материалы.

8. Экспорт

Перед экспортом сделайте Reset XForm, чтобы модель в дальнейшем корректно масштабировалась в ICraft.

Модель экспортируется скриптом Export ICraft в соответствующую папку в репозиторий:

.\Interior Craft - Apartment Editor\pikruntimecontent\Models

Папки соответствует разделам и подразделу мебели.

К примеру, настольную лампу Anso_ikea следует экспортировать в папку:

.\Interior Craft - Apartment Editor\pikruntimecontent\Models\Light\Table Lamps

Исходники модели должны находиться в репозитории interiorcraft-piklibrary в дублирующей папке.

К примеру, для той же лампы Anso_ikea исходники будут храниться в папке:

.\interiorcraft-piklibrary\Свет\Настольные\Anso_ikea

Настройки скрипта:

Export Materials Library - по умолчанию выключен, позволяет экспортировать материалы модели в формате mat. Применяется точечно для сложных материалов.

Export Textures - экспортирует текстуры назначенные на материалы вместе с моделью.

Имя файла экспортируемого FBX должно соответствовать имени модели в 3ds Max либо носить объединяющий характер, для модели состоящей из нескольких объектов.

К примеру, кровать на скриншоте ниже будет экспортироваться с именем файла Eric_Lavsit01.fbx