Isomap

Материал из wiki.appsalutecreator.com
Версия от 09:28, 30 ноября 2015; Denisov (обсуждение | вклад) (Как работать с объектом)
Перейти к: навигация, поиск

Isomap - объект с помощью которого, появилась возможность создать траекторию движения для объекта типа isomover. Например, можно создать движение машин по дорогам, людей по тротуарам, птиц в небе. Каждому объекту можно задать свою уникальную траекторию, учитывать столкновения объектов и запускать их взаимодействие (разговор, бой, погоня). Объекты типа isomap и isomover часто используются с economics и items.

Как работать с объектом

Setup.jpg

Объект isomap имеет чрезвычайно мало параметров в своих свойствах и не имеет добавляемых параметров. Основная работа с ним происходит в окне isomap setup, где создаются точки и ребра по которым и будет происходить движение isomap-объектов. В свойствах объекта, нажатием на троеточие, открываем isomap setup.

В открывшемся окне, выбираем build graph

Build graph.jpg

Line.jpg Все необходимое для дальнейшей работы находим в, открывшейся сверху, строке объекта isomap. Пункты появившегося меню сгруппированы по настройкам точек, ребер, добавлению вспомогательных точек и сохранению результатов.

  • Первая группа кнопок:
    • Hide all edges - скрыть все ребра, на карте остаются лишь точки
    • Добавить - добавление новой точки
    • Выбрать - если кнопка включена, то можно выбрать точку на карте
    • Удалить - удаление выбранной точки
    • Delete all nodes - удаление всех точек

Между кнопками находятся три поля. Первое для заполнения имени точки. Можно добавить несколько точек с одинаковым именем, однако это будет весьма неправильно, ведь приведет к путанице при настройке движения объектов. Желательно давать осмысленные названия каждой точке (как и всем другим объектам). Главное, чтобы названия были уникальными и максимально информативными. Остальные два поля помогут определить местоположение выбранной точки и изменить его. Т.е. эти поля активны только для уже созданных точек. Координаты можно менять через них либо перетаскиванием точки по карте с помощью мышки. Сначала проставляем точки: нажимаем добавить вводим название точки и проставляем её на карте, что бы передвинуть сначала нажимаем выбрать потом перемещаем точку по карте, соответственно для удаления одной точки нажимаем удалить, затем на точку. Кнопка Delete all nodes - удаляет сразу все точки. Точки целесообразно ставить на перекрестках траектории и в местах где предполагаемый объект будет изменять направление движения(например остановка для машины).

Isomap setup1.png

После того как проставлены нужные точки можно приступать к формированию ребер.

  • Переходим ко второй группе кнопок:
    • Добавить - добавить новое ребро
    • Выбрать - выбрать ребро
    • Удалить - удалить ребро
    • Delete all edges - удалить сразу все ребра

Нам необходимо создать путь для движения изомувера. Выбираем точку (например, Т1)- она будет началом траектории, затем нажимаем Добавить (вторая кнопка, отвечающая за ребра)и кликаем на второй точке (например, Т2) - это будет конец траектории. Именно в таком направлении будет двигаться объект от Т1 до Т2. Для того что бы объект через эти же две точки проходил в обратном направлении, необходимо проложить еще одно ребро, выбрав точки в обратном порядке. Для двустороннего движения понадобится два односторонних ребра. По середине созданного ребра размещена точка, в редакторе она окрашена таким же цветом что и ребро. С её помощью можно менять кривизну ребра. Для этого нажимаем "Выбрать" (ребро) кликаем на нужное ребро (оно должно окраситься красным цветом)и нажимаем пиктограмму Select graph edge knot теперь можно взяться за точку и установить нужную форму ребра. Для предания более изощренных форм, на ребра можно добавлять дополнительные точки кнопками Insert before и Insert after.

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

  • Последняя группа кнопок:
    • Save graph - сохранить все внесенные изменения
    • Exit without saving - выйти без сохранения

Чтобы сохранить все результаты настройки точек и ребер, нажимаем Save graph либо Exit without saving, если хочется выйти без сохранения.

Особенности расположения

В группу объекта isomap вводят объект isomover и "заплатки" для карты. Объект родитель сам установит по координате z необходимое размещение объектов, согласно их типу. Объект isomover будет двигаться за элементами карты.

Isomap setup2.png

Isomap setup3.png

Как видно со скринов, объект isomover (оранжевый шарик) в проекте находится ниже, чем объект 009_theater (изображение театра). В обычной ситуации отрисовка идет сверху вниз по дереву проекта и, если бы оба объекта были рисунками, то isomover должен был бы перекрыть собой все изображения по оси z. Тем не менее, они оба принадлежат объекту isomap, который различает типы объектов между собой. При отрисовке isomap помещает все изомуверы ниже остальных своих подобъектов. Этим создается псевдо-3D, будто наш шарик проходит сзади театра.

Почему же тогда изомувер находится выше фона, а не рисуется под ним? Фон задан объектом ground_12, который не является дочерним объектом для isomap. Поэтому isomap ничего не знает о фоне и учитывает только свои подобъекты.