Документация/Статьи/Обзор редактора игровых объектов

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше
Редактор игровых объектов

Contents

Обзор

Редактор игровых объектов является частью редактора ресурсов и предназначен для создания и редактирования игровых объектов (.type файлов). В качестве игрового объекта может выступать, что угодно: персонаж игрока, автомобиль, здание, дерево. Игровой объект представляет собой объект определенного класса, с настроенными свойствами. Свойствами могут выступать такие настройки, как внешний вид, физическая модель, издаваемые звуки.

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

Узнайте больше о системе игровых объектов.

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

Настройка редактора

Для настройки редактора объектов нажмите кнопку Options в меню Tools, далее выберите Entity Type Editor в списке Editors.

Object editor2.jpg

Параметры редактора:

Параметр Описание
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 и в отдельном представлении не нуждаются. Подробно рассмотрим первые три элемента окна редактора игровых объектов.

Список прикрепленных объектов

Object editor9.jpg

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

Object editor12.jpg

Также у списка Objects имеется контекстное меню. Приведем описание команд этого контекстного меню.

  • Select. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим выбора объекта.
  • Move. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим перемещения объекта.
  • Rotate. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим поворота объекта.
  • Scale. Если объект выбран в списке прикрепленных объектов, переключает рабочее окно в режим масштабирования объекта.
  • Attach Object. Дает возможность прикрепить к игровому объекту новый ресурс. Подробнее о прикрепленных объектов речь пойдет в этом разделе.
  • Delete. Если объект выбран в списке прикрепленных объектов, удаляет его.

Окно свойств

Object editor10.jpg
Окно Properties или окно свойств предназначено для изменения параметров типа. Большая часть работы с игровым типом осуществляется именно в этом окне.

Нижняя панель

Object editor11.jpg

Нижняя панель предоставляет дополнительные возможности редактирования типа. Рассмотрим все ее функции.

Кнопка 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 Физическая модель игрового объекта.

Прикрепляемые объекты

Object editor6.jpg

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

За прикрепленные объекты отвечает список AttachedObjects в свитке параметров MapObject. Вы можете добавить или удалить прикрепленный объект редактируя этот список.

Object editor7.jpg

Кроме того, можно прикрепить объект к типу игрового объекта, нажав правой кнопкой в окно редактора, выбрать меню 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 (ленточный луч)

Object editor21.jpg

RibbonTrail - это ленточный луч. Примером использования RibbonTrail служит создание шлейфа от пуль.

Примером использования RibbonTrail является ShotgunGravityBullet.type, находящийся в директории "Data\Types\Bullets\ShotgunGravityBullet". С помощью ленточного луча реализуется шлейф от дополнительного (по правой кнопки мыши) выстрела ружья (Shotgun) в Game.exe.

Ленточный луч в действии

Свиток параметров RibbonTrail:

Параметр Описание
CastShadows Позволяет включить\выключить генерацию теней для объекта.
Chains Список звеньев, задающих форму луча.
LifeTimeAfterDestroy Время жизни луча после удаления.
MaterialName Материал, накладываемый на объект, задающий внешний вид ленточного луча.
MaxChainElements Максимальное число элементов ленточного луча (чем выше число, тем более плавным выглядит луч).
RenderingDistance Позволяет указать дистанцию, после которой луч не будет виден. При значении 0 будет прорисовываться всегда.
TrailLength Длина луча.

Отдельно коснемся параметра Chains, от которого зависит форма луча. Нажав на кнопку "..." этого параметра, перейдем к редактированию звеньев.

Object editor22.jpg

Кнопки 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 (масштабирование).

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

Object editor13.jpg

Прежде чем перемещать, поворачивать или масштабировать объект, его нужно выделить. Сделать это можно, кликнув по объекту в рабочем окне или выделив его в списке прикрепленных объектов.

Object editor14.jpg

Вот так выглядит рабочее окно редактора в режиме перемещения объекта:

Перемещение объекта

Режим поворота:

Поворот объекта

И режим масштабирования:

Масштабирование объекта

Прикрепление объектов к BoneSlot

Часто требуется присоединить какой-либо объект к кости скелета трехмерной модели. Наиболее распространенный пример: присоединение модели оружия к кости руки персонажа.

В редакторе объектов данная операция состоит из двух частей:

  • создание BoneSlot,
  • прикрепление объекта к BoneSlot.

BoneSlot - это точка в пространстве, связанная с одной из костей скелета. У каждого, прикрепленного к игровому объекту меша, имеется список слотов костей - BoneSlots. Таким образом, чтобы создать новый BoneSlot необходимо выделить меш, скелет которого будет использоваться, и нажать кнопку "..." параметра BoneSlots.

Добавление BoneSlot

Перед нами появится окно редактирования списка слотов костей.

Редактирование списка BoneSlots

Кнопки Add и Remove служат, соответственно, для добавления и удаления слота кости.

У каждого BoneSlot имеется 4 параметра:

Параметр Описание
BoneName Имя кости меша, которая используется в данном слоте. Выбирается из списка костей скелета данного прикрепленного меша.
Name Уникальное имя слота кости.
Position Смещение BoneSlot относительно кости.
Rotation Поворот BoneSlot относительно кости.

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

Прикрепление объекта к BoneSlot

Как видим, прикрепить объект к BoneSlot оказалось достаточно просто.

Создание нового типа игрового объекта

Чтобы создать новый тип игрового объекта, в редакторе ресурсов нажмите правой кнопкой на директории, в которой собираетесь разместить новый тип. В контекстном меню выберите кнопку New Resource.

Object editor3.jpg

Теперь выберите тип создаваемого ресурса: Enity Type. И нажмите кнопку Continue.

Object editor4.jpg

Наконец, в появившемся окне укажите имя нового типа игровых объектов и его класс. После чего нажмите кнопку Next.

Object editor5.jpg

Файл с типом игрового объекта создан и можно приступать к его редактированию.

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