Документация/Уроки/Создание простой карты
From NeoAxis Engine Wiki
| Language: | Status: | Approved |
Contents |
Введение
В движке NeoAxis карта - это пространство, на котором разворачивается игровой процесс. Огромные ландшафты с горами, равнинами, озерами и островами, или же комната, ограниченная четырьмя стенами - всё это может быть картой. Местность, окружение, небо, здания, растительность, животные, техника и персонажи являются объектами карты. Объектом карты может быть что угодно, если это можно увидеть или с этим можно взаимодействовать. Карта, в свою очередь, это совокупность расположенных на ней объектов.
В этом уроке мы познакомимся с созданием простейшей карты, узнаем как добавить на нее ландшафт, источники света и другие объекты.
Для создания и редактирования карт в движке используется NeoAxis Map Editor. Редактор карт предназначен для создания и редактирования игровых карт, для расстановки и настройки объектов. При помощи редактора карт, используя встроенные в него средства, можно создавать уровни практически любой сложности.
Создание новой карты
Создание карты начнем с того, что запустим редактор карт (MapEditor.exe) из папки Game\Bin в директории с движком.
Теперь создадим новый файл карты. Для этого в меню File выберем пункт New.
В появившемся окне, укажем путь к директории, где будет располагаться новая карта. Путь указывается относительно папки Data. Пусть наша новая карта будет располагаться в директории Maps\SimpleMap.
Карта создана. Теперь нам предстоит наполнить ее объектами.
Для перемещения по карте используйте клавиши W,A,S,D (перемещение в плоскости) и Q, E (перемещение по вертикали). Также, удерживая правую кнопку мыши, можно вращать камеру. Читайте полное описание редактора карт.
Добавление ландшафта
Для начала, добавим на карту ландшафт.
Движок имеет встроенную поддержу ландшафта, основанного на картах высот: HeightmapTerrain.
Для создания новых объектов нужно использовать окно Entity Types. В нем показан список всех типов объктов, которые можно разместить на карте. О том, что такое тип объекта можно узнать на странице введения в систему игровых объектов.
В окне Entity Types выберем тип Types -> Base -> HeightmapTerrain и щелкнем по рабочей области окна.
Созданный ландшафт представляет собой плоскую поверхность с текстурой травы.
Встроенный редактор позволяет изменять геометрию ландшафта и раскрашивать его. Для редактирования ландшафта выделим только что созданный HeightmapTerrain в окне Map Entities.
В окне Properties имеются различные настройки ландшафта. Для того, чтобы перейти в режим редактирования ландшафта, нужно нажать кнопку Edit, которая находится под списком свойств.
После нажатия кнопки Edit мы увидим окно Heightmap Terrain, которое позволяет редактировать геометрию и изменять тайлинг ландшафта ("раскрашивать" поверхность текстурой травы, земли, песка и т.п.) Полное описание работы редактора ландшафта находится в описании HeightmapTerrain.type.
Получившийся результат редактирования:
Добавление неба
Небо используется в большинстве карт. В движке имеется несколько способов создания неба, которые описаны в уроке создания неба. Простейшими из видов неба является SkyBox и SkyDome. SkyBox представляет собой куб, на внутренние грани которого наносится 6 текстур, а SkyDome - это полусфера с текстурой на внутренней поверхности.
Попробуем добавить на нашу карту SkyBox. Для этого в окне Entity Types выберем Types -> Base -> SkyBox и щелкнем по рабочей области.
О том, как настраивать SkyBox, а также узнать о других типах неба, можно прочитать в уроке по созданию неба.
Добавление источника света
Источники света в движке выполняет ровно те же функции, что источники света в реальной жизни - они освещают объекты. Тип, соответствующий источнику света, называется Light.type. Помимо обычного источника света, в движке есть тип Sun.type, реализующий солнце. Он отличается от обычного источника рядом параметров, а также тем, что дополнительно отображается в игре как биллборд (плоская картинка, обращенная к камере, изображающая солнце). Если в игре необходимо создать именно солнце, а не просто источник света (например, лампочку), то логичнее использовать тип Sun.type.
Добавим на карту солнце. Для этого кликнем по типу Sun в списке Types -> Base.
Разместим солнце в любом месте карты и нажмем левую клавишу мыши. После создания одного объекта, можно создать еще один такого же типа, просто нажав кнопку мыши повторно. Нажатие кнопки Escape или Space, остановит режим создания объектов.
Поднимем наше солнце выше над картой. Для этого выделим его в окне Map Entities.
Перейдем в режим перемещения объекта, нажав на кнопку Move на главной панели. В режим перемещения объекта также можно перейти с помощью главного меню (Edit -> Move) или просто нажав клавишу T.
Теперь, чтобы поднять солнце выше, нужно нажать левой кнопкой мыши на ось, направленную вверх, и, удерживая кнопку нажатой, потянуть за ось.
Помимо прочего можно изменить направление, в котором светит солнце. Для этого перейдем в режим поворота объекта, нажав на кнопку Rotate в главной панели. В режим поворота объекта также можно перейти с помощью главного меню (Edit -> Rotate) или просто нажав клавишу Y.
Чтобы повернуть объект, нужно зажать левую кнопку мыши на сфере поворота и потянуть за нее. Положение биллборда солнца зависит от направления источника, но не от позиции.
Подробнее c источниками света вы можете ознакомиться в статьях о типе Light.type и Sun.type.
Добавление объектов
Итак, наша карта уже содержит ландшафт, небо и солнце. Пора разместить на ней несколько объектов поменьше.
Если вы хотите разместить на карте трехмерную модель, то важно знать о том, что сделать это можно двумя способами. Первый способ - это размещение статичной трехмерной модели с помощью типа StaticMesh.type. Второй способ подразумевает создание типа объекта в редакторе ресурсов, и последующее его размещение на карте. Такой способ нужен для создания комплексных и интерактивных объектов. Читайте больше о различиях в способах создания объектов.
Начнем с добавления обычного камня с помощью типа StaticMesh.type. В списке Types -> Base выберем тип StaticMesh.
В появившемся окне выберем меш (трехмерную модель) камня - RockBig.mesh, который находится в папке Models -> RockBig.
Разместим камень на карте и нажмем левую кнопку мыши. Чтобы создать еще один камень, достаточно нажать левую кнопку мыши еще раз. Чтобы прекратить создание камней, нужно нажать клавишу Escape или Space.
Камень создан. Теперь попробуем добавить на карту ящик, который представляет собой подготовленный ранее тип объекта. Для этого выберем в списке Types -> Dynamic тип Box.
Привычным образом разместим ящик на карте.
Подробно про редактирование созданных объектов можно прочитать в обзоре редактора карт.
Добавление стартовой точки
Настало время добавить на карту стартовую точку - то место, в котором появится персонаж игрока после загрузки карты.
Чтобы создать стартовую точку, выберем тип SpawnPoint в списке Types -> Special.
Затем разместим стартовую точку на карте.
Готово.
Подробнее о стартовой точке можно узнать в описании SpawnPoint.type.
Запуск карты
Самый быстрый способ протестировать только что созданную карту - это запустить ее прямо из редактора. Для этого нажмем кнопку Run Simulation в главной панели.
Запустив карту, можно пробежаться по ней и оценить результат проделанной работы.
Более полную информацию о редакторе карт можно получить в обзоре редактора карт.















