Документация/Статьи/Обзор редактора игровых объектов
From NeoAxis Engine Wiki
| Language: | Status: | Approved |
Обзор
Редактор игровых объектов является частью редактора ресурсов и предназначен для создания и редактирования игровых объектов (.type файлов). В качестве игрового объекта может выступать, что угодно: персонаж игрока, автомобиль, здание, дерево. Игровой объект представляет собой объект определенного класса, с настроенными свойствами. Свойствами могут выступать такие настройки, как внешний вид, физическая модель, издаваемые звуки.
Такие свойства, как например внешний вид, реализованы с помощью системы прикрепляемых объектов. Данная система позволяет присоединять различные ресурсы к объекту. Например, прикрепив заданный меш, объект будет выглядеть как этот меш. Также, например, можно прикрепить звук, и тогда объект будет издавать звук.
Узнайте больше о системе игровых объектов.
Также, вы можете ознакомиться со следующими уроками, касающихся создания типов игровых объектов:
Настройка редактора
Для настройки редактора объектов нажмите кнопку Options в меню Tools, далее выберите Entity Type Editor в списке Editors.
Параметры редактора:
| Параметр | Описание |
|---|---|
| Background Color | Позволяет задать цвет фона рабочего окна. Вы можете ввести значения цвета в формате RGBA (Красный, Зеленый, Синий, Прозрачность)(Каждый цвет в диапазоне 0-255) или воспользоваться инструментом для выбора цвета.
Примечание - Цвет фона виден в том случае, если не используется Sky Box. |
| Show Axes | Значение True позволяет включить отображение координатных осей. Может пригодится для позиционирования объектов в пространстве. |
| Show Grid | Значение True позволяет увидеть сетку. Размер одной клетки по умолчанию равен 1 метру, удобно использовать для масштабирования объектов. В случае редактора физической модели, сетка - это так-же своеобразный пол, предотвращающий падение объектов. |
| Sky Box | Используйте этот параметр, чтобы сменить skybox (небо), отображаемое на фоне редактора. |
По завершении настройки редактора нажмите кнопку OK, чтобы сохранить настройки, или Cancel, для отмены внесенных изменений.
Обзор окон редактора
Взглянем на окна редактора игровых объектов.
Цифрами отмечены следующие области:
- 1 - Список прикрепленных объектов.
- 2 - Окно свойств.
- 3 - Нижняя панель.
- 4 - Рабочее окно.
- 5 - Верхняя панель.
- 6 - Дерево файлов и директорий.
Рабочее окно, верхняя панель и дерево файлов - неотъемлемые части Resource Editor и в отдельном представлении не нуждаются. Подробно рассмотрим первые три элемента окна редактора игровых объектов.
Список прикрепленных объектов
Список прикрепленных объектов позволяет выделить объект, прикрепленный к данному игровому объекту, для последующего изменения параметров этого объекта.
Также у списка Objects имеется контекстное меню. Приведем описание команд этого контекстного меню.
- Select. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим выбора объекта.
- Move. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим перемещения объекта.
- Rotate. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим поворота объекта.
- Scale. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим масштабирования объекта.
- Attach Object. Дает возможность прикрепить к игровому объекту новый ресурс. Подробнее о прикрепленных объектов речь пойдет в этом разделе.
- Delete. Если объект выбран в списке прикрепленных объектов, удаляет его.
Окно свойств
Окно Properties или окно свойств предназначено для изменения параметров типа. Большая часть работы с игровым типом осуществляется именно в этом окне.Нижняя панель
Нижняя панель предоставляет дополнительные возможности редактирования типа. Рассмотрим все ее функции.
Кнопка Edit Physics Model. Если игровому объекту назначена физическая модель, открывает редактор физических моделей.
Флажок Show Physics. Если флажок выставлен, вместе с прикрепленными объектами отображается физическая модель игрового объекта.
Флажок Show Invisible Objects. Если флажок выставлен, то отображаются невидимые прикрепленные объекты. Невидимый объект - это объект с параметром Visible свитка General, установленным в значение False.
Поле со списком Filter Objects By Alias. Позволяет отображать в рабочем окне лишь объекты с указанным псевдонимом (параметр Alias в свитке General параметров прикрепленного объекта). В списке находятся псевдонимы всех объектов, а также пункты:
- No filter - показывать все объекты,
- Without alias only - показывать все объекты без псевдонимов.
Параметры игрового объекта
Тип игрового объекта представляет из себя набор свойств, к заполнению которых сводится создание типа игрового объекта. Набор доступных параметров объекта определяется классом объекта. Класс предоставляет набор свойств, которые настраиваются в данном редакторе.
Классы наследуются друг от друга и представляют собой дерево классов. Базовым для всех классом является класс Entity. Также, большинство игровых классов основаны на классе MapObject. Список всех классов игровых объектов с описаниями можно найти здесь.
Параметры класса Entity:
| Параметр | Описание |
|---|---|
| AllowEditorCreate | Если True, то объект данного типа можно будет создать в редакторе карт. |
| AllowEmptyName | Если True, то объект данного типа может иметь пустое имя. |
| NetworkType | Определяет способ функционирования объекта в сети. |
Параметры класса MapObject:
| Параметр | Описание |
|---|---|
| AttachedObjects | Список прикрепленных объектов. Один из главных параметров типа игрового объекта. Список присоединенных объектов составляет различные виды ресурсов, из которых строится игровой объект. О том какие бывают типы прикрепляемых объектов и какими параметрами они обладают, читайте в следующем разделе. |
| DieObjects | Список объектов, которые появятся после удаления объекта. К примеру, в качестве DieObject у танка может выступать система частиц, реализующая взрыв. Таким образом после подрыва танка произойдет взрыв. |
| PhysicsModel | Физическая модель игрового объекта. |
Прикрепляемые объекты
Такие свойства, как например внешний вид, реализованы с помощью системы прикрепляемых объектов. Данная система позволяет присоединять различные ресурсы к объекту. Например, прикрепив заданный меш, объект будет выглядеть как этот меш. Также, например, можно прикрепить звук, и тогда объект будет издавать звук.
За прикрепленные объекты отвечает список AttachedObjects в свитке параметров MapObject. Вы можете добавить или удалить прикрепленный объект редактируя этот список.
Кроме того, можно прикрепить объект к типу игрового объекта, нажав правой кнопкой в окно редактора, выбрать меню Attach Object и указать соответствующий тип прикрепляемого объекта. В этом случае, объект будет добавлен с параметрами по умолчанию. Для изменения параметров объекта нужно выделить прикрепленный объект курсором или перейти к редактированию списка AttachedObjects.
В качестве прикрепляемого объекта могут выступать:
- Mesh (трехмерная модель),
- Particle (система частиц),
- MapObject (игровой объект),
- Gui (пользовательский интерфейс),
- RibbonTrail (ленточный луч),
- Light (источник света),
- Billboard (плоский объект, обращенный к камере),
- Sound (звук),
- Helper (вспомогательный объект).
Ниже будут рассмотрены все типы прикрепляемых объектов.
Общие параметры прикрепляемых объектов
Параметры любого прикрепляемого объекта делятся на две группы: основные (General) и специализированные. Основные параметры одинаковы для всех типов объектов, специализированные - различаются, в зависимости от типа объекта.
Свиток основных параметров General:
| Параметр | Описание |
|---|---|
| Alias | "Псевдоним" объекта. Может использоваться для фильтрации объектов по данному признаку. |
| Body | Имя тела, к которому прикрепляется объект. |
| BoneSlot | Имя кости скелета, к которому прикрепляется объект. |
| OnlyForEditor | В значении True объект будет виден только в редакторах. В игре создан не будет. |
| Position | Смещение объекта относительно позиции игрового объекта. |
| Rotation | Поворот объекта относительно поворота игрового объекта. |
| Scale | Масштабирование объекта. |
| Visible | В значении True объект виден. |
Mesh (трехмерная модель)
Прикрепленная трехмерная модель. Определяет внешний вид объекта.
Свиток параметров Mesh:
| Параметр | Описание |
|---|---|
| BoneSlots | Список костей, к которым могут быть прикреплены другие объекты. |
| CastDynamicShadows | Позволяет включить/выключить генерацию динамических теней об этого объекта. |
| CastStaticShadows | Позволяет включить/выключить генерацию статических (лайтмап) теней об этого объекта. |
| ForceMaterials | Позволяет задать мешу другой материал. |
| LinkBonesToBodies | При значении True кости присоединяются к телам. |
| MeshName | Имя файла меша. |
| ReceiveStaticShadows | Позволяет рисовать тени на данном объекте. Если параметр включен, то тени, отбрасываемые другим объектами будут рисоваться на данном объекте. |
| RenderingDistance | Позволяет указать дистанцию, после которой объект будет не виден. При значении 0 будет прорисовываться всегда. |
| RenderingDistanceForShadows | Позволяет указать дистанцию, после которой тень объекта не будет видна. При значении 0 тень будут прорисовываться всегда. |
| UseOwnerScale | При значении True используется масштабирование владельца (игрового объекта). |
Свиток параметров Physics:
| Параметр | Описание |
|---|---|
| Collision | Позволяет включить\выключить учет объекта при расчете столкновений. |
| CollisionMaterialName | Физический материал. Позволяет выбрать из 4 значений - Metal (метал), Wood (дерево), Rubber (резина), Ice (лед). Данный параметр влияет на свойства взаимодействия физических тел. |
| CollisionSpecialMesh | Данный параметр позволяет заменить геометрию столкновений для данного объекта. Может использоваться для облегчения просчета сложных физических объектов. Если указать другой меш, то при столкновениях будет просчитываться именно он, а виден будет меш, указанный в параметре MeshName. |
Particle (система частиц)
Прикрепленная система частиц.
Свиток параметров Particle:
| Параметр | Описание |
|---|---|
| OwnerRotation | При значении True используется поворот владельца (игрового объекта). |
| ParticleName | Имя частицы. |
| RenderingDistance | Позволяет указать дистанцию, после которой частица не будет видна. При значении 0 будет прорисовываться всегда. |
| RenderingDistanceForShadows | Позволяет указать дистанцию, после которой тень частицы не будет видна. При значении 0 тень будут прорисовываться всегда. |
| StartTime | Момент активизации частицы после того, как она создана. |
| UpdateWhenItNotInView | При значении True частица обновляется, даже если невидна. |
MapObject (игровой объект)
Прикрепленный другой игровой объект.
Свиток параметров MapObject:
| Параметр | Описание |
|---|---|
| ChildBody | Название тела прикрепляемого объекта. |
| DetachOnOwnerDestroy | При значении True объект отсоединяется, если владелец разрушен. |
| Type | Тип прикрепляемого игрового объекта (Entity). |
Gui (пользовательский интерфейс)
Прикрепленный пользовательский интерфейс.
Свиток параметров Gui:
| Параметр | Описание |
|---|---|
| AspectRatio | Соотношение сторон отображаемого пользовательского интерфейса. |
| DrawFromBackSide | Виден ли пользовательский интерфейс с обратной стороны. |
| RenderingDistance | Позволяет указать дистанцию, после которой пользовательский интерфейс не будет виден. При значении 0 будет прорисовываться всегда. |
RibbonTrail (ленточный луч)
RibbonTrail - это ленточный луч. Примером использования RibbonTrail служит создание шлейфа от пуль.
Примером использования RibbonTrail является ShotgunGravityBullet.type, находящийся в директории "Data\Types\Bullets\ShotgunGravityBullet". С помощью ленточного луча реализуется шлейф от дополнительного (по правой кнопки мыши) выстрела ружья (Shotgun) в Game.exe.
Свиток параметров RibbonTrail:
| Параметр | Описание |
|---|---|
| CastShadows | Позволяет включить\выключить генерацию теней для объекта. |
| Chains | Список звеньев, задающих форму луча. |
| LifeTimeAfterDestroy | Время жизни луча после удаления. |
| MaterialName | Материал, накладываемый на объект, задающий внешний вид ленточного луча. |
| MaxChainElements | Максимальное число элементов ленточного луча (чем выше число, тем более плавным выглядит луч). |
| RenderingDistance | Позволяет указать дистанцию, после которой луч не будет виден. При значении 0 будет прорисовываться всегда. |
| TrailLength | Длина луча. |
Отдельно коснемся параметра Chains, от которого зависит форма луча. Нажав на кнопку "..." этого параметра, перейдем к редактированию звеньев.
Кнопки Add и Remove отвечают за, соответственно, добавление и удаление звеньев. Каждый Chain имеет четыре параметра:
| Параметр | Описание |
|---|---|
| ChangeColor | Конечный цвет ленточного луча. |
| ChangeWidth | Конечная ширина ленточного луча. |
| InitialColor | Начальный цвет ленточного луча. |
| InitialWidth | Начальная ширина ленточного луча. |
Цвет луча плавно меняется с InitialColor до ChangeColor, пока луч виден. То же самое происходит с шириной ленточного луча: она плавно меняется с InitialWidth до ChangeWidth.
Light (источник света)
Прикрепленный источник света.
Свиток параметров Light:
| Параметр | Описание |
|---|---|
| AllowStaticLighting | Используется для просчета статичного освещения (lightmaps). Значение True означает, что данный источник света будет использован при просчете статичного освещения. |
| AttenuationFar | Расстояние, после которого свет от источника затухает. |
| AttenuationNear | Расстояние, с которого начинается распространение света. |
| AttenuationPower | Коэффициент затухания света. |
| CastShadows | При значении True объекты, преграждающие данный свет, отбрасывают тени. |
| CustomShaderParameter | Специальный параметр шейдера. |
| DiffuseColor | Цвет источника в формате RGBA (значения 0..255 четырех компонент: красной, зеленой, синей и прозрачность). |
| DiffusePower | Яркость света. |
| FFPAttenuationConstant | Коэффициент затухания. Множитель, влияющий на остальные параметры затухания света. |
| FFPAttenuationLinear | Линейное затухание. Параметр определяет, насколько слабеет свет при увеличении расстояния до освещаемого объекта. Линейная функция (функция первого порядка). |
| FFPAttenuationQuadric | Квадратичное затухание. Параметр определяет, насколько слабеет свет при увеличении расстояния до освещаемого объекта. Квадратичная функция (функция второго порядка). |
| LightType | Тип источника света. Может принимать одно из трех значений: Point (точечный), Directional (направленный), Spot (конусообразный). |
| SpecularColor | Если в освещаемом объекте используется параметр цвета бликов (SpecularColor) или карта бликов (SpecularMap), этот параметр предопределит цвет бликов на поверхности такого объекта. Диапазон значений от 0 до 255 в цветовой модели RGBA. |
| SpecularPower | Параметр определяет интенсивность бликов на поверхности освещаемого объекта. Диапазон значений от 1 до 10. |
| SpotlightFallof | Параметр определяет затухание света от внутреннего к внешнему конусу. Чем выше значение, тем плавнее затухание, максимальное значение - 1. Параметр работает только для типа источника света Spot. |
| SpotlightInnerAngle | Параметр определяет ширину внутреннего конуса - насколько свет сконцентрирован у центра. Разница будет заметна, только, если параметр SpotlightFalloff установлен выше минимального значения. Если параметры SpotlightInnerAngle и SpotlightOuterAngle будут иметь одинаковые значения, эффект будет таким-же, как при минимальном значении SpotlightFalloff. |
| SpotlightOuterAngle | Параметр определяет ширину внутреннего конуса луча света. Значения от 0 до 180, где 180 это самый широкий пучок света. |
Billboard (плоский объект, обращенный к камере)
Прикрепленный билборд.
Свиток параметров Billboard:
| Параметр | Описание |
|---|---|
| BillboardType | Тип билборда. Можно выбирать из пяти значений: Point (точеный), OrientedCommon (направлен и вращается по вектору CommonDirection), OrientedSelf (направлен и вращается по собственному вектору), PerpendicularCommon (перпендикулярен вектору CommonDirection), PerpendicularSelf (перпендикулярен собственному вектору). |
| Color | Цвет билборда в формате RGBA. |
| CommonDirection | Вектор, по которому направлен билборд. Необходим только для типов OrientedCommon и PerpendicularCommon. |
| CommonUpVector | Вектор, характеризующий направление "вверх" билборда. Необходим только для типов PerpendicularCommon и PerpendicularSelf. |
| FadeVelocity | Скорость затухания билборда, когда объект невиден. |
| MaterialName | Название материала. |
| RenderingDistance | Позволяет указать дистанцию, после которой билборд не будет виден. При значении 0 будет прорисовываться всегда. |
| Size | Размер билборда. |
Свиток параметров Camera Visibility:
| Параметр | Описание |
|---|---|
| CameraVisibleCheck | При значении True осуществляется проверка видимости объекта. Если центр объекта невиден, то объект не отображается. |
| CameraVisibleStartOffset | Дистанция после которой объект становится видимым для камеры. |
Sound (звук)
Прикрепленный звук. Игровой объект будет издавать звук.
Свиток параметров Sound:
| Параметр | Описание |
|---|---|
| MinDistance | Минимальная дистанция, с которой слышно объект. |
| Pitch | Скорость проигрывания звука. 1 - нормальная скорость, 2 - в два раза быстрее. |
| Priority | Приоритет проигрывания звука. |
| SoundName | Имя файла со звуком. |
| Volume | Громкость звука. |
Helper (вспомогательный объект)
Прикрепленный вспомогательный объект. Данный объект используется по усмотрению разработчика. Такой объект можно использовать для указания положения чего-либо относительно положения игрового объекта.
Не имеет специальных параметров.
Перемещение, поворот и масштабирование прикрепленных объектов
Каждый прикрепленный объект обладает набором основных (General) параметров, среди которых можно особо выделить три:
- Position (позиция),
- Rotation (поворот),
- Scale (масштабирование).
Эти параметры можно задавать с помощью клавиатуры, а также с помощью инструментов рабочего окна (гизмо). Инструменты рабочего окна доступны из верхней панели окна редактора объектов.
Прежде чем перемещать, поворачивать или масштабировать объект, его нужно выделить. Сделать это можно, кликнув по объекту в рабочем окне или выделив его в списке прикрепленных объектов.
Вот так выглядит рабочее окно редактора в режиме перемещения объекта:
Режим поворота:
И режим масштабирования:
Прикрепление объектов к BoneSlot
Часто требуется присоединить какой-либо объект к кости скелета трехмерной модели. Наиболее распространенный пример: присоединение модели оружия к кости руки персонажа.
В редакторе объектов данная операция состоит из двух частей:
- создание BoneSlot,
- прикрепление объекта к BoneSlot.
BoneSlot - это точка в пространстве, связанная с одной из костей скелета. У каждого, прикрепленного к игровому объекту меша, имеется список слотов костей - BoneSlots. Таким образом, чтобы создать новый BoneSlot необходимо выделить меш, скелет которого будет использоваться, и нажать кнопку "..." параметра BoneSlots.
Перед нами появится окно редактирования списка слотов костей.
Кнопки Add и Remove служат, соответственно, для добавления и удаления слота кости.
У каждого BoneSlot имеется 4 параметра:
| Параметр | Описание |
|---|---|
| BoneName | Имя кости меша, которая используется в данном слоте. Выбирается из списка костей скелета данного прикрепленного меша. |
| Name | Уникальное имя слота кости. |
| Position | Смещение BoneSlot относительно кости. |
| Rotation | Поворот BoneSlot относительно кости. |
После того как BoneSlot добавлен, приступим ко второй части операции прикрепления объекта к кости. Любой прикрепленный объект можно закрепить за определенным BoneSlot. Для этого выделим прикрепленный объект и в параметре BoneSlot укажем необходимый слот кости.
Как видим, прикрепить объект к BoneSlot оказалось достаточно просто.
Создание нового типа игрового объекта
Чтобы создать новый тип игрового объекта, в редакторе ресурсов нажмите правой кнопкой на директории, в которой собираетесь разместить новый тип. В контекстном меню выберите кнопку New Resource.
Теперь выберите тип создаваемого ресурса: Enity Type. И нажмите кнопку Continue.
Наконец, в появившемся окне укажите имя нового типа игровых объектов и его класс. После чего нажмите кнопку Next.
Файл с типом игрового объекта создан и можно приступать к его редактированию.
Вы можете ознакомиться со следующими уроками, касающихся создания типов игровых объектов:
















