Описание
Менеджер декоративных объектов предназначен для упрощения создания на карте большого количества декоративных объектов. Таких как трава, цветы, камни и прочее. С помощью менеджера можно "закрашивать" нужные участки сцены растительностью. Данный менеджер не поддерживает создание физических столкновений для созданных объектов.
Работа с менеджером
Используя данный менеджер, можно заполнить растительностью практически любую поверхность, будь то ландшафт или статичная модель. Чаще всего приходится добавлять растительность именно на ландшафт.
Для добавления менеджера на карту нужно выбрать тип DecorativeObjectManager.type в окне создания объектов редактора карт и нажать левой кнопкой мыши в рабочей области.
После того, как менеджер выбран в окне объектов, в нижней части окна свойств будет доступен ряд кнопок для работы с менеджером.
Настройка пересечений
Прежде чем приступить к рисованию, необходимо указать список объектов, на плоскости которых будут размещены декоративные объекты. Для этого требуется нажать на кнопку Collision под окном свойств.
Чтобы добавить объект карты в список объектов пересечения, нужно нажать на кнопку "Select / Deselect" и выбрать объект в рабочей области редактора. Повтор этих же действий приведет к удалению объекта из списка объектов пересечения.
Также в данном окне имеется кнопка "Add All Object On Map", которая служит для добавления в список пересечения всех поддерживаемых объектов.
Кнопка "Clear All" очищает список объектов пересечения.
Добавление декоративных объектов
Основная работа с менеджером декоративных объектов начинается с нажатия кнопки Edit под окном свойств.
Перед началом рисования необходимо в появившемся окне выбрать инструмент (Tool), установить радиус (Radius) и силу (Strength), а также выбрать тип декоративного объекта.
В SDK имеется 6 готовых декоративных объектов:
DecorativeStones — камни,
Ear — колосья,
FlowerWhite — белые цветы,
FlowerYellow — желтые цветы,
GrassGreen — зеленая трава,
GrassBrown — коричневая трава.
После того как кисть настроена, можно приступить непосредственно к рисованию. Для этого нужно зажать левую кнопку мыши и разместить декоративные объекты в рабочей области.
Удаление декоративных элементов
Чтобы удалить выбранный тип декоративных объектов, необходимо сменить инструмент с Paint на Clear в окне создания декоративных объектов. Следующие за этим действия аналогичны процессу созданию объектов. В рабочей области зажимается левая кнопка мыши и курсор перемещается по карте в тех местах, где необходимо удалить объекты. Инструмент очистки стирает только выбранный в данный момент тип объектов.
Совет: Для быстрого переключения между режимами рисования (Paint) и удаления (Clear) объектов можно воспользоваться клавишей Shift.
Список добавленных на карту декоративных объектов
В окне создания декоративных объектов, помимо вкладки Available (доступные), имеется вкладка Created (созданные), в которой находится список созданных объектов.
В этой вкладке отображается список всех декоративных объектов, размещенных на карте, и их количество. Все объекты сгруппированы по типам.
Выделив группу объектов и нажав на одну из кнопок, можно выполнить одно из следующих действий:
Update — случайным образом изменить размер, положение и угол поворота объектов выбранного типа,
Delete All — удалить все объекты выбранного типа.
Декоративные объекты
При рисовании на карте менеджер декоративных объектов использует заранее созданные объекты класса DecorativeObject. Как было сказано выше, в движке уже есть ряд готовых типов декоративных объектов — трава, камни и другие. Для создания новых и редактирования имеющихся типов декоративных объектов служит редактор ресурсов.
О том, как создавать собственные типы декоративных объектов, подробно рассказано в уроке ниже.
Все готовые декоративные объекты находятся в папке "Data\Types\DecorativeObjects".
Декоративные объекты включает в себя следующие ресурсы:
тип (.type) с настройками декоративного объекта,
трехмерные модели (.mesh),
материалы (.highMaterial),
текстуры.
По своей сути тип декоративного объекта — это набор трехмерных моделей. При рисовании случайным образом выбирается одна из трехмерных моделей и размещается на карте.
Свойства типа декоративного объекта
Декоративные объекты имеют следующие специальные свойства:
DecorativeObject
BatchSize - Размер группы генерируемых объектов. Параметр используется видеокартой.
CastShadows - Включить/выключить отбрасывание теней декоративным объектов. Если выбрано значение True, то модель будет отбрасывать тень.
Примечание: большое количество объектов, отбрасывающих тень, заметно снижает производительность. Данный параметр следует использовать с осторожностью.
DestroyBatchOnDistance - Включить/выключить удаление объектов расположенных на большом расстоянии от камеры. Если выбрано значение True, то группы объектов, невидимые в данный момент, будут выгружаться из памяти и создаваться только при попадании в область видимости. Использование данного параметра помогает экономить память.
DistanceBetweenObjects - Минимальное расстояние между соседними объектами, размещаемыми на карте.
Items - Набор трехмерных моделей. Подробнее элементы данного списка описаны ниже.
ScaleRange - Диапазон масштабирования. Позволяет задать диапазон для масштабирования объектов, помещаемых на карту. Если установить значения 1 1, то все объекты будут иметь размер как у исходной модели.
StoreObjectsPositionInVertices - Разрешить/запретить добавление в геометрию объектов канала с позициями декоративных объектов. Эти данные впоследствии используются для материала растительности (VegetationMaterial), чтобы реализовать эффект покачивания на ветру. Позиции сохраняются в канале вершин — Semantic: TextureCoordinates, Index: 4.
VisibilityDistance - Расстояние видимости. Объекты, находящиеся дальше указанного расстояния от камеры не будут прорисовываться. Если указано значение 0, то объект будет прорисовываться всегда.
Entity
AllowEmptyName - Разрешить или запретить использование пустого имени для объектов данного типа.
ClassInfo - Имя класса типа.
CreatebleInMapEditor - Разрешить или запретить создание типа в редакторе карт.
Name - Имя типа.
NetworkType - Тип сетевого взаимодействия. Предлагается выбрать одно их следующих значений: NotSynchronized (не синхронизирован), ClientOnly - (синхронизируется только на клиенте), ServerOnly (синхронизируется только на сервере), Synchonized (полностью синхронизирован).
Свойства трехмерной модели декоративного объекта
Трехмерные модели, связанные с данным типом декоративных объектов, должны быть перечислены в списке Items. Для его редактирования нужно нажать кнопку "..." рядом с данным полем.
Элементы в список добавляются с помощью кнопки Add и удаляются с помощью кнопки Remove.
Каждый элемент обладает следующими свойствами:
Misc
MeshName - Имя файла трехмерной модели.
Probability - Вероятность появления именно этой модели среди остальных, при добавлении декоративных объектов на карту. Значение по умолчанию — 1. Чем выше значение, тем выше вероятность генерации данной модели.
Урок — Создание новых типов декоративных объектов
В данном уроке мы научимся создавать новые типы декоративных объектов.
Прежде чем приступить к созданию нового типа, необходимо подготовить целую группу ресурсов, а именно:
трехмерные модели,
материалы,
текстуры.
В текущем уроке мы воспользуемся ресурсами уже имеющегося в движке декоративного объекта — камнями DecorativeStones, слегка скорректировав текстуру, придав ей красный оттенок. Таким образом, мы создадим тип красных декоративных камней, подходящих для фантастического пейзажа.
Заметим, что имеющиеся в движке типы декоративных объектов, а также их ресурсы, располагаются в папке "Data\Types\DecorativeObjects". В ней же рекомендуется размещать новые типы декоративных объектов. Для данного урока создадим поддиректорию RedStones.
Когда материал и трехмерные модели настроены, а все ресурсы расположены в одной папке, можно приступить непосредственно к созданию и настройке типа декоративного объекта.
Нажмем правой кнопкой мыши на папке с ресурсами и в появившемся контекстном меню выберем пункт New -> Entity Type.
В появившемся окне укажем имя нового типа — RedStones, а также класс — DecorativeObject. После этого нажмем кнопку Next.
Чтобы настроить наш тип, перейдем в режим редактирования. Для этого нажмем правой кнопкой на файле RedStones.type и в появившемся контекстном меню выберем пункт Edit. Другой способ перейти в режим редактирования — дважды нажать левой кнопкой мыши на файле.
Основной составляющей типа декоративного объекта являются трехмерные модели, поэтому настройку начнем именно с них. Выберем в окне свойств параметр Items и нажмем кнопку "..." справа от него.
В появившемся окне нажмем кнопку Add, чтобы добавить трехмерную модель.
В правой части окна выберем трехмерную модель, воспользовавшись кнопкой "..." напротив параметра MeshName. Параметр Probability (вероятность появления данной модели) оставим без изменения.
Таким же способом добавим остальные четыре трехмерные модели камней. После этого нажмем кнопку OK.
Теперь настроим оставшиеся параметры типа декоративного объекта. По аналогии с DecorativeStones укажем следующие свойства:
BatchSize — размер группы генерируемых объектов,
DistanceBetweenObjects — минимальное расстояние между объектами,
VisibilityDistance — расстояние видимости.
Сохраним созданный нами тип, нажав кнопку с изображением дискеты в главной панели.
Тип декоративного объекта готов к использованию. Теперь, если запустить редактор карт и добавить на карту менеджер декоративных объектов, то в списке доступных типов появится наш RedStones.
Разместим красные камни на ландшафте.
На этом урок подошел к концу.
В данном уроке мы научились создавать и настраивать типы декоративных объектов, чтобы использовать их при создании карт.