Инструменты картографирования (MappingTools)
Данный набор инструментов позволяет зафиксировать и сохранить в quester-профиле путь, по которому пользователь вручную в игре перемещает персонажа. В последствии при выполнении quester-профиля навигационная подсистема бота будет использовать данных путь для перемещения персонажа без участия пользователя.
Альтернативный способ задания путей - импортировать их из игры.
Пути задаются в виде множества путевых точек в трехмерном игровом пространстве (Waipoint), соединенных направленными ребрами (Edge), обозначающими допустимые направления перемещения персонажа между ними.
Такая структура называется граф или Meshes (меши) и обычно сохраняется в zip-архиве quester-профиля в файле с названием, совпадающим с идентификатором карты, и расширением bin
.
Например, путевой граф карты “Драконий источник” хранится в файле:
Az_Tod.bin
Пути бывают двух видов:
- Двунаправленные пути (Bidirectional) позволяют навигационной подсистеме перемещать персонажа в прямом и обратном направлении вдоль пути.
- Однонаправленные пути (Unidirectional) позволяют навигационной подсистеме перемещать персонажа только в одном направлении. Перемещение в обратном направлении по такому пути невозможно.
Панель картографирования
Режимы прокладывания пути (картографирования):
Bidirectional Mapping - прокладывания двунаправленного пути
После нажатия на кнопку будут добавляться новые путевые точки и соединяться двунаправленными ребрами с ближайшими соседними точками по одной на каждый из восьми секторов вокруг персонажа;
Перемещение по данному пути будет возможно в прямом и обратном направлении вдоль каждого ребра.
Unidirectional Mapping - прокладывания однонаправленного пути
После нажатия на кнопку будут добавляться путевые точки и соединяться однонаправленными ребрами с соседними точками. Перемещение по данному пути будет возможно только в направлении следования персонажа.
Stop - остановка картографирования.
Параметры связывания путевых точек:
Linear Path - параметр “Линейный путь”
Отключает поиск и связывания с соседними путевыми точками.
Если кнопка нажата, то при прокладывании пути новая путевая точка будет связываться только с последней добавленной точкой.
Force Linking - параметр “Принудительное связывание”.
По умолчанию при прокладывании пути ребрами связываются путевые точки расположенные в пределах WaypointDistance. Точки за пределами указанного расстояния не будут соединены с добавляемой.
Если кнопка нажата, то при прокладывании пути новая путевая точка всегда соединяется с путевой точкой, которая была добавлена последней, независимо от расстояния до неё.
Панель дополнительных параметров
Нажатие на кнопку открывает панель:
Waypoint Distance - расстояние (“шаг”) между путевыми точками. Точки, расстояние между которыми больше данной величины, не будут соединены. Оптимальное значение, установленное опытным путем, составляется 15 единиц.
Max Elevation Difference - максимальная допустимая разница высот между парой связываемых путевых точек. Точки, расстояние между которыми больше данной величины, не будут соединены.
Node Equivalence Distance - расстояние между путевыми точками, в пределах которого они считаются эквивалентны.
Иначе говоря, новая путевая точка не будет добавлена, если в пределах указанного расстояния от её предполагаемого местоположения есть другая точка. Путь будет проложен через существующую “эквивалентную” точку.
Значение не может превышать половины WaypointDistance.
Алгоритм картографирования
-
В игре переместите персонажа в начальную точку пути.
-
Активируйте нужный режим картографирования.
Переключение между режимами возможно “на лету” без остановки, равно как изменение любых параметров связывания или дополнительных параметров. -
Установите нужные параметры картографирования.
- Перемещайте в игре персонажа по пути, который вы хотите зафиксировать в графе.
После удаления персонажа от начальной или последней добавленной точки на расстояние WaypointDistance, Mapper:- добавит новую путевую точку, если рядом с персонажем нет точек, попадающих в радиус NodeEquivalenceDistance;
- соединит новую (или эквивалентную ей) путевую точку с ближайшими соседними точками по одной на каждый из восьми секторов вокруг персонажа, если не был активирован параметр Linear Path;
- если активирован параметр Force Linking, будет добавлена связь с ранее добавленной точкой.
- Отключите режим картографирования, нажав на кнопку Stop.
В режиме картографирования в окне Mapper’a вокруг персонажа, обозначенного , отображается окружность, радиус которой соответствует NodeEquivalenceDistance.
Желтым ромбом обозначена последняя добавленная путевая точка, или эквивалентная ей. Желтыми точкам помечены ближайшие к персонажу путевые точки, помещенные в кэш для оптимизации алгоритма картографирования.
Настройки кэширования доступны на панели плагина в разделе Mapper.
Преимущества перед штатным Mapper’ом
- В штатном Mapper’e расстояние между путевыми точками составляло всего 5 единиц, возможность его изменения отсутствовала.
Движение персонажа по пути с часто расположенными путевыми точками при высокой скорости перемещения или лагах приводило к циклическим танцам персонажа вокруг какой нибудь точки. - В штатном Mapper’e отсутствовала проверка на наличие эквивалентных точек, в результате чего путевой граф был перенасыщен лишними данными.
- Использование кэширования ближайших точек (помечаются желтым цветом) значительно уменьшило вычислительную сложность добавления новых путевых точек и ребер, что исключило разрывы пути, наблюдавшиеся на больших картах, например, в “Море движущегося льда”. Штатный Mapper при добавлении новых точке анализировал весь путевой граф.
- Штатный Mapper не имеет аналогов параметрам Force Linking и Linear Path.