Isomap — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Управление объектом)
Строка 2: Строка 2:
 
''Isomap'' - [[Object|объект]] с помощью которого, появилась возможность создать траекторию движения для объекта типа ''[[isomover]]''. Например, установить движение машин по дорогам, людей по тротуарам, птиц в небе. Каждому объекту можно задать свою уникальную траекторию, учитывать столкновения объектов и запускать их взаимодействие (разговор, бой, погоня). Объекты типа isomap и isomover часто используются с economics и items. Особенность isomap в том, что положение дочерних объектов по оси z пересчитывается, как для y. Строится набор нод (точек старта и финиша) и ребер, которые их соединяют. Движение объектов происходит между нодами вдоль ребер. Каждое ребро имеет только одно направление.<br><br>
 
''Isomap'' - [[Object|объект]] с помощью которого, появилась возможность создать траекторию движения для объекта типа ''[[isomover]]''. Например, установить движение машин по дорогам, людей по тротуарам, птиц в небе. Каждому объекту можно задать свою уникальную траекторию, учитывать столкновения объектов и запускать их взаимодействие (разговор, бой, погоня). Объекты типа isomap и isomover часто используются с economics и items. Особенность isomap в том, что положение дочерних объектов по оси z пересчитывается, как для y. Строится набор нод (точек старта и финиша) и ребер, которые их соединяют. Движение объектов происходит между нодами вдоль ребер. Каждое ребро имеет только одно направление.<br><br>
 
= Управление объектом =
 
= Управление объектом =
Основная работа с ним происходит в окне ''isomap setup'', где создаются точки и ребра по которым и будет происходить движение isomap-объектов. В свойствах объекта, нажатием на троеточие, открываем ''isomap setup''. В открывшемся окне, выбираем ''build graph''
+
Основная работа с ним происходит в окне ''isomap setup'', где создаются ноды и ребра по которым и будет происходить движение isomap-объектов. В свойствах объекта, нажатием на троеточие, открываем ''isomap setup''. В открывшемся окне нажимаем''build graph''
  
 
[[Файл:Line.jpg|800px]]<br><br>Все необходимое для дальнейшей работы находим в, открывшейся сверху, строке объекта isomap. Пункты появившегося меню сгруппированы по настройкам точек, ребер, добавлению вспомогательных точек и сохранению результатов.
 
[[Файл:Line.jpg|800px]]<br><br>Все необходимое для дальнейшей работы находим в, открывшейся сверху, строке объекта isomap. Пункты появившегося меню сгруппированы по настройкам точек, ребер, добавлению вспомогательных точек и сохранению результатов.
  
 
*Кнопки настройки нод:
 
*Кнопки настройки нод:
**'''Hide all edges''' - скрыть все ребра, на карте остаются лишь точки
 
 
**'''Добавить''' - добавление новой точки
 
**'''Добавить''' - добавление новой точки
 
**'''Выбрать''' - если кнопка включена, то можно выбрать точку на карте
 
**'''Выбрать''' - если кнопка включена, то можно выбрать точку на карте
Строка 30: Строка 29:
  
 
*Последняя группа кнопок:
 
*Последняя группа кнопок:
 +
**'''Hide all edges''' - скрыть все ребра, на карте остаются лишь точки
 
**'''Save graph''' - сохранить все внесенные изменения
 
**'''Save graph''' - сохранить все внесенные изменения
 
**'''Exit without saving''' - выйти без сохранения
 
**'''Exit without saving''' - выйти без сохранения

Версия 14:32, 30 ноября 2015

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

Управление объектом

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

Line.jpg

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

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

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

Isomap setup1.png

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

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

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

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

  • Последняя группа кнопок:
    • Hide all edges - скрыть все ребра, на карте остаются лишь точки
    • 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 ничего не знает о фоне и учитывает только свои подобъекты.