Точки нахождения пути помогают персонажу перемещаться по сцене. Он способен перемещаться из одной точки в другую, если между ними не находится непроходимый регион. Если сцена содержит точки нахождения пути, то персонаж будет использовать их для нахождения кратчайшего пути из своего текущего местоположения в заданное.
Теперь мы научим нашего персонажа обходить стол.
Откройте нашу сцену для редактирования. В окне списка слоёв выберите пункт «Группы точек нахождения пути» («Waypoint groups») (эти точки объединяются в одну или несколько групп, отсюда название «группы»).
Содержание окна списка узлов теперь изменится. Теперь оно отображает группы точек нахождения пути. Нажмите кнопку «Добавить группу» («Add waypoint group»).
В списке появится группа «new waypoints». Измените её название, например, на «wpt_default». Теперь Вы можете добавить в группу новые точки или удалить существующие. Это осуществляется точно так же, как и добавление/удаление вершин регионов, то есть с помощью кнопок «Добавить точку» («Add point») и «Удалить точку» («Remove point»).
Мы добавили 4 точки - по одной на каждую вершину непроходимого региона:
Помните, что персонаж может перемещаться из одной точки в другую, только если их соединяет прямая неблокируемая линия.
Эти 4 точки позволяют персонажу обойти стол. Попробуйте. Если Вы щёлкните мышкой где-нибудь позади стола, персонаж обойдёт вокруг него.
Выйдите из игры и вернитесь к программе SceneEdit. Мы ещё немного поработаем над нашей сценой.
Мы не хотим, чтобы персонаж проходил сквозь шкаф. Для этого мы создадим ещё один непроходимый регион.
Выберите слой «main». Затем нажмите кнопку «Добавить регион». Задайте для нового региона имя «block_closet» и измените его тип с «Layout» на «Blocked». Теперь задайте ему следующую форму:
Три вершины региона лежат вне проходимой области, и лишь левая нижняя лежит внутри. Нам нужно добавить точку нахождения пути для того, чтобы персонаж мог обходить вокруг этой вершины.
Щёлкните мышью на пункте «Группы точек нахождения пути» в списке слоёв и выберите группу «wpt_default» в списке узлов. Нажмите кнопку «Добавить точку» и разместите её рядом с вершиной региона, как показано на изображении.
Теперь персонаж будет использовать эту точку, чтобы обогнуть край шкафа.
Есть ещё два остроконечных угла в сцене, с которыми у персонажа могут возникнуть проблемы. Они находятся рядом с дверью. Давайте добавим ещё две точки:
Давайте рассмотрим следующий пример, чтобы лучше понять как работают точки нахождения пути. Представьте себе такую ситуацию: персонаж находится в точке «A», пользователь делает щёлчок мышкой в точке «C»:
Между точками A и C нет прямого пути, т. к. если провести линию между ними, то она пересекает непроходимый регион. Если бы здесь не было точки нахождения пути, персонаж не смог бы перейти из A в C:
Когда же мы добавили точку нахождения пути, персонаж сначала перейдёт к ней, а затем из неё по прямой достигнет точки C:
Ну, вот и всё. Протестируйте сцену и Вы увидите, что у персонажа не возникает никаких проблем с перемещением по сцене. Он всегда будет находить кратчайший путь между двумя точками.
Но персонаж всё ещё проходит сквозь стул, а его масштаб далёк от истинного. Пора отправляться на Шаг 6: Прочие объекты, уровни масштабирования и декорации.