Документация/Уроки/Создание простого игрового объекта

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше
NewStaticObject 013.jpg

Contents

Введение

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

  • С помощью StaticMesh.type.
  • С помощью создания игрового объекта (.type файл) и размешения его на карте.

У каждого способа есть свои плюсы и минусы.

1. Нет необходимости в создании специального типа для размещаемого объекта. Вы просто размещаете модель (.mesh файл) на карте и настраиваете параметры для каждого размещенного объекта. Этот способ хорош для создания больших статичных объектов (здания, геометрия комнат и т.д.). Описание StaticMesh.type.

2. Во втором способе, необходимо сначала создать игровой объект (.type файл). Плюс данного способа в том, что вы можете настроить параметры объекта один раз и потом просто размещать объекты на карте. Необходимые свойства уже будут настроены. Также, если вы планируете добавить к этому объекту интерактивности (например менять какие-либо параметры в реальном времени), то лучше сразу использовать этот способ.

Здесь будет описан второй способ.

Описание

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

Для прохождения этого урока, нам необходимо подготовить ресурсы (модель камня, настроенный материал и текстура).

Подготовка ресурсов

Вы можете импортировать любую другую модель или использовать готовую. Для импорта моделей из 3dsMax читайте урок по экспорту моделей из Autodesk 3ds Max.

Мы возьмем готовую модель камня, которая уже есть в стандартной поставке NeoAxis Engine.

Запустим Resource Editor.

Для нашего нового типа нам будут нужны следующие файлы: MyStone.dds, MyStone.HighMaterial, и MyStone.mesh. Перейдем в папку Bin\Data\Types\StaticObjects\Stone\. Скопируем их в отдельную папку. Выделим (зажав кнопку Shift) и, не отпуская Shift копируем (правой кнопкой и выбрав в контекстном меню Copy) файлы Stone.dds, Stone.HighMaterial, и Stone.mesh.

Рисунок 1

Затем мы в папке StaticObjects создадим новую папку MyStone.

Рисунок 2
Рисунок 3

Для этого мы щелкнем по папке StaticObjects правой кнопкой мыши и выберем в контекстном меню NewDirectory. Назовем эту папку MyStone.

Перейдем в нее и поместим в нее выделенные объекты.

Рисунок 4
Рисунок 5

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

Затем мы переименуем файлы Stone.jpg, Stone.material, и Stone.mesh в MyStone.jpg, MyStone.material, и MyStone.mesh

Для этого мы кликнем на выбранном файле правой кнопкой мыши и выберем пункт Rename. Выбранное название станет доступно для редактирования.

Также вы увидите, что при редактировании материала (*.highMaterial) всплывает специальное окно, в котором отображается предлагаемое имя. Вы можете задать это или другое имя.

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

Создание нового типа

Далее мы перейдем непосредственно к созданию нового типа для нашего будущего объекта.

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

Щелкните правой кнопкой по папке MyStone. Появится меню выбора создания новых ресурсов. Среди них вы увидите и New Resource Выберите этот пункт.

Рисунок 6

Затем вы можете выбрать тип создаваемого ресурса. Выберите Entity Type.

Рисунок 7

Теперь вам нужно выбрать класс объекта. Выберите MapObject. Классы определяют поведение объектных типов. MapObject - это базовый класс для большинства простых объектов.

Назовем наш новый тип MyStone.

Рисунок 8

Итак, мы создали новый .type файл. Щелкните правой кнопкой MyStone.type, и выберите Edit. При этом активируется окно свойств справа, а также окно просмотра в центре, обозначенное зеленой границей.

Рисунок 9

Теперь нам нужно прикрепить модель (меш) к нашему объекту. Для этого нажмите правую кнопку мыши в окне просмотра (ограниченного зеленой линией) и выберите Attach Object → Mesh. В открытом диалоге необходимо выбрать созданную нами модель Data\Types\StaticObjects\MyStone\MyStone.mesh.

Рисунок 10

Теперь мы видим модель на экране. Мы также видим ее в списке прикрепленных объектов. Чтобы другие объекты (например наш персонаж) не проходил сквозь камень, нам необходимо настроить определение столкновений (Collision). Для этой цели нужно выбрать приложенную модель в списке. Далее установите у модели свойство Collision в true. Теперь физика столкновений будет просчитываться на основании геометричекой модели.

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

Если вы хотите использовать этот объект для размещения в редакторе карт, то вам необходимо настроить еще некоторые параметры:

  • Установите свойство AllowEditorCreate в true. Это разрешит данному объекту отображаться в списке создаваемых объектов в редакторе карт.
Рисунок 12

Теперь вам остается только сохранить сделанные изменения. Сделать это вы можете, нажав на кнопку Сохранить.

Примите поздравления! Создание игрового объекта завершено!

Размещение в редакторе карт

Теперь вы можете открыть редактор карт и разместить там объекты.

Рисунок 13