Редактор уровней
Некоторые функции, описанные в настоящем документе, более не поддерживаются, либо начнут поддерживаться в будущем.
Общее описание
LevelEditor – редактор уровней движка SkyXEngine. Редактор работает с файлом в текстовом формате .lvl
который содержит информацию об уровне, дополнительная информация может загружаться из внешних файлов. Данный файл должен находится по относительному пути
/gamesource/level/name_level/name_level.lvl
при этом имя директории и имя файла .lvl
должны быть идентичными.
Редактор уровней имеет диалог выбора файлов/директорий.
Окно редактора уровней |
Редактор уровней может работать с объектами уровней:
- Загружать статические модели и расставлять их как статическую геометрию (основу уровня), применяя к ним возможные трансформации (перемещение, повороты, масштабирование);
- Создавать/редактировать/удалять растительность, используя при этом статические модели, возможна генерация по маске и/или ручная расстановка (создание/перемещение)/удаление;
- Создавать/редактировать/удалять игровые объекты, загружая в них статические или анимационные модели если позволяет класс объекта;
- Создавать/редактировать/удалять связи между игровыми объектами, образуя тем самым логику и интерактивность уровня;
- Создавать/редактировать/удалять AI сетку, по которой осуществляют перемещение живые игровые объекты.
Так же редактор уровней позволяет просматривать итоговое изображение в различных режимах. Например, для проверки правильности настройки групп сглаживания в 3d редакторе, в редакторе уровней можно включить режим "отрисовки нормалей".
Смена режимов итогового изображения |
Редактор позволяет выделять и подсвечивать выбранные объекты:
- Объекты статической геометрии - подсветка рисуется по модели;
- Растительность - подсветка всего вида (например "деревья тополь") вместе с его объектами по объектно, выделение объекта растительности (например конкретного "дерева") происходит по модели объекта;
- Игровые объекты - подсветка рисуется по кубу;
- AI сетка - подсветка рисуется по квадратам.
Подсветка объектов имеет несколько режимов:
- Использование Z-test;
- Заливка модели;
- Отсечение задних граней.
Режимы выделения объектов |
Структура окна
Окно состоит из структурных элементов (сверху вниз):
- Заголовок окна, содержащий имя редактора и имя уровня;
- Меню;
- Панель инструментов, где расположены основные управляющие кнопки;
- Содержимое окна:
- Окно рендера;
- Список объектов с вкладками;
- Раздел настроек выделенного объекта;
- Строка состояния.
Меню
Меню программы состоит из следующих элементов:
- File:
- New – очистить сцену и создать новый уровень;
- Open – открыть файл уровня;
- Save – сохранить уровень;
- Save as ... – сохранить уровень как;
- Exit – выход из программы;
- View (редакторные настройки вида):
- Grid – сетка разметки (оси xz);
- Axes – линии по направлению осей;
- Final image (выводимое изображение в окно рендера):
- Color – цвет;
- Normals – нормали;
- Parameters – параметры освещения;
- Ambient - фоновое и диффузное освещение;
- Specular – отраженный свет;
- Lighting scene – освещенная сцена;
- Selection settings (настройки выделения):
- Selection - надо ли выделять объект;
- Z Test - использовать ли z test при рендере выделения;
- Mesh - показывать сетку или модель целиком при выделении;
- Cull backfaces - показывать задние грани выделения;
- Weather (погода), выбор погоды для просмотра уровня в условиях погоды. Выбор погоды сделан только для демонстрации и не сохраняется в файл уровня:
- none - без погоды;
- Список доступных конфигов погоды.
Некоторые элементы меню повторяют функционал элементов панели инструментов.
Панель инструментов
Панель инструментов |
Панель инструментов состоит из нескольких областей:
- Очистка/загрузка/сохранение:
- Очистка уровня - удаление всех данных об уровне;
- Загрузка - загрузить уровень из файла;
- Сохранить - сохранить уровень в файл, если уровень был открыт из файла, то при нажатии не будет диалога выбора директории - сохранение произойдет в ту же директорию;
- Сохранить как - сохранить уровень в файл в обязательным вызовом диалога выбора директории;
- Режим выбора/трансформации:
- Выбор объектов выбранной группы;
- Перемещение объекта;
- Поворот объекта;
- Масштабирование объекта (работает только для статической геометрии);
- Рендер вспомогательных редакторных элементов:
- Рендер сетки в центре координат на плоскости XZ;
- Рендер направления осей в центре координат;
- Итоговое изображение - вывод в окно рендера итогового изображения:
- Цвета текстур (albedo);
- Нормали (включая карты нормалей);
- Параметры освещения;
- Текстура с ambient и diffuse составляющей (заметен только ambient);
- Текстура с specular (блик/блеск);
- Освещенная сцена;
- Режим выделения объектов:
- Рисовать ли выделение;
- Использовать Z-test;
- Использовать выделение граней;
- Использовать отсечение задних граней;
- Режим выделения AI сетки:
- Рисовать ограничивающий объем всей AI сетки;
- Рисовать квадраты AI сетки;
- Рисовать graph points;
- Настройка типа уровня:
- in - уровень закрытый, out - уровень открытый (значит будет небо, глобальный источник света и прочие открытые элементы);
- Включить/выключить глобальный источник света;
- Обнуление данных локальных источников света, сделано для случаев когда в сцене имеются локальные источники света со статическими тенями, которые надо обнулить после расстановки объектов по сцене чтобы увидеть тени.
Список объектов с вкладками
Список объектов с вкладками |
Данный список содержит все элементы выбранной группы. При клике по элементу списка, будет выделен соответствующий объект в сцене и раздел содержимого настроек примет настройки объекта для манипуляции ими.
Вкладки представлены кнопками:
- Geometry - статическая геометрия;
- Green - растительность;
- Game - игровые объекты;
- AI Grid - AI сетка.
При клике по вкладке, будут выведены все объекты выбранной подгруппы, выделение объекта будет сброшено, раздел содержимого настроек примет статус создания нового элемента.
Кнопка Delete удаляет выбранный объект.
Раздел настроек выделенного объекта
Данный раздел находится внизу окна, под окном рендера и списком объектов. Интерфейс данного раздела зависит от группы выбранного объекта.
Статическая геометрия
Интерфейс создания объекта статической геометрии |
Интерфейс создания объекта статической геометрии содержит следующие элементы:
- Name - имя объекта, произвольная форма, сделана для удобства распределения моделей для пользователя;
- Model - путь до статической модели (относительно директории со статическими моделями);
- Lod1 - путь до лода статической модели (относительно директории со статическими моделями);
- Physics - путь до физической модели (относительно директории со статическими моделями);
- Segmentation - функция деления модели, надо использовать в случае если модель является большой по объему и количеству полигонов, эта опция активна только на момент создания объекта, после этого этапа отменить деление либо установить его невозможно.
Для создания объекта статической геометрии, необходимо лишь указать путь до модели, при помощи ручной записи либо при помощи диалога. Затем:
- Нажать кнопку Finish, объект будет создан в центре координат;
- В окне рендера нажать СКМ (подробнее Дополнительные способы создания объектов).
После создания объекта, он будет автоматически выделен и его свойства будут доступны для редактирования.
Остальные элементы являются опциональными, однако, хорошим тоном дизайна уровней является:
- Осознанная установка имен объектов;
- Использование лодов и физических моделей для высокополигональных объектов;
- Сегме нтация объемных (по габаритам и полигонам) моделей.
Интерфейс редактирования объекта статической геометрии |
Интерфейс редактирования объекта статической геометрии, помимо перечисленного, содержит следующие элементы:
- Position - позиция;
- Rotation - вращение (в радианах);
- Scale - масштабирование.
Позицию объекта можно задавать написанием точных координат, либо установкой переключателя на одну из осей и RShift + ЛКМ
и движение мыши.
Растительность
В отладке