AnyLogic
Развернуть
Размер шрифта

Шаг 2. Создание анимации модели

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

Поскольку в нашем случае нас не интересует конкретное расположение объектов в пространстве, то мы можем просто добавить чисто схематическую анимацию интересующих нас объектов — в нашем случае мы хотим видеть на анимации банкомат и ведущую к нему очередь клиентов.

Анимация модели рисуется в той же диаграмме (в графическом редакторе), в которой задается и диаграмма моделируемого процесса.

Добавление фигур разметки пространства

Задайте фигуру анимации банкомата

  1. Нарисуем точечный узел, обозначающий банкомат. Вначале откройте палитру Разметка пространства панели Палитра.
  2. Перетащите элемент Точечный узел из палитры Разметка пространства в графический редактор и поместите его под блок-схемой процесса.

  3. Выделите щелчком точечный узел в графическом редакторе, чтобы открыть для него панель Свойства. Мы с вами хотим, чтобы во время моделирования менялся цвет нашей фигуры, поэтому введите выражение, которое будет постоянно вычисляться заново при выполнении модели, в поле Цвет:
    ATM.size() > 0 ? red : green

    Здесь ATM – это имя нашего блока Delay. Функция size() возвращает число человек, обслуживаемых в данный момент времени. Если банкомат занят, то цвет кружка будет красным, в противном случае - зеленым.

  4. Выделите щелчком блок delay, названный нами ATM, в диаграмме процесса, чтобы открыть его свойства.
  5. Выберите точечный узел point, который мы только нарисовали в параметре Место агентов. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены).

Задайте фигуру анимации очереди к банкомату

  1. Нарисуем путь, обозначающий очередь к банкомату. Вначале откройте палитру Разметка пространства панели Палитра.
  2. Двойным щелчком выделите элемент Путь палитры Разметка пространства, чтобы перейти в режим рисования.
  3. Теперь вы можете рисовать путь точка за точкой, последовательно щелкая мышью в тех точках диаграммы, куда вы хотите поместить вершины линии. Чтобы завершить рисование, добавьте последнюю точку пути двойным щелчком мыши.

  4. Выделите щелчком блок queue в диаграмме процесса, чтобы открыть для него панель Свойства.
  5. Выберите путь path, который мы только нарисовали в параметре Место агентов. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены).

Теперь вы можете запустить модель и изучить ее поведение. Для ускорения работы модели, переключитесь в режим виртуального времени, щелкнув мышью по кнопке панели инструментов Реальное/виртуальное время. В режиме виртуального времени модель будет выполняться максимально быстро, без привязки модельного времени к реальному.

Запустите модель. Вы увидите, что у нашей модели теперь есть простейшая анимация - банкомат и ведущая к нему очередь клиентов. Цвет фигуры банкомата будет меняться в зависимости от того, обслуживается ли клиент в данный момент времени.

Добавление 3D анимации

Первым делом нам будет нужно добавить на диаграмму типа агента 3D Окно.

3D Окно используется для задания на диаграмме агента области, в которой во время запуска модели будет отображаться трехмерная анимация этой модели.

Добавьте 3D окно

  1. Перетащите элемент 3D Окно из секции 3D палитры Презентация в графический редактор.
  2. Вы увидите в графическом редакторе закрашенную серым область. Поместите ее туда, где вы хотите видеть 3D анимацию во время запуска модели:

Перемещение в 3D анимации

Теперь вы можете запустить модель и наблюдать простую 3D анимацию.

  1. При создании 3D окна, AnyLogic добавляет область просмотра, которая позволяет легко переключаться к сцене 3D анимации во время выполнения модели. Чтобы переключиться к 3D анимации в запущенной модели, откройте панель разработчика, щелкнув по кнопке Показать/скрыть панель разработчика в правом углу панели управления. В открывшейся панели разработчика раскройте список Выбрать область и показать и выберите опцию [window3d].

  2. Вы можете перемещаться по 3D сцене с помощью мыши и следующих клавиш:

    Чтобы Выполните следующие действия
    Переместить сцену 1. Нажмите левую кнопку мыши в области 3D окна и держите ее нажатой.
    2. Передвиньте мышь в направлении перемещения.
    Повернуть сцену 1. Нажмите клавишу Alt и держите ее нажатой.
    2. Нажмите левую кнопку мыши в области 3D окна и держите ее нажатой.
    3. Передвиньте мышь в направлении вращения.
    Приблизить/отдалить сцену 1. Покрутите колесо мыши от/на себя в области 3D окна.

Добавление 3D объектов

Теперь мы хотим задать фигуру клиента банка. По умолчанию клиенты в нашей модели обозначались цветными точками и отображались цветными цилиндрами в 3D анимации. Если мы хотим задать нестандартный тип клиента и выбрать для него красивую фигуру анимации, нам нужно создать новый тип агента.

Создайте новый тип агента

  1. Откройте Библиотеку моделирования процессов в панели Палитра.
  2. Перетащите элемент Тип агента в графический редактор.

  3. Откроется диалоговое окно Мастера создания агентов на шаге Создание нового типа агента. Введите Customer в поле Имя нового типа, оставьте опцию Создать новый тип агента "с нуля" выбранной. Нажмите Далее.

  4. Выберите опцию 3D для типа анимации и фигуру анимации Человек из списка 3D фигур.

  5. Щелкните Готово. Диаграмма нового агента Customer откроется автоматически. Вы можете найти 3D фигуру Человек в начале координат.

Настройте использование нового типа агентов в диаграмме процесса

  1. На диаграмме Main выделите блок source в графическом редакторе.
  2. Выберите тип агента Customer в выпадающем списке параметра Новый агент.

  3. Откройте панель Свойства точечного узла и переключите элемент управления Видимость в значение нет. Таким образом разметка пространства не будет видна на анимации во время выполнения модели. Повторите эти действия для элемента path.
  4. Запустите модель, чтобы увидеть анимацию клиентов в очереди.

Добавьте объект банкомата

  1. Откройте палитру 3D Объекты в панели Палитра.
  2. Перетащите 3D фигуру Банкомат из секции палитры Супермаркет в графический редактор и поместите ее на точечный узел. В диалоговом окне Автомасштабирование 3D объекта щелкните по кнопке Да.

  3. Если вы сейчас запустите модель и проверите 3D анимацию в режиме просмотра window3D, вы заметите, что банкомат стоит не той стороной по направлению к очереди клиентов, и нам необходимо развернуть его в правильную сторону.
  4. Выделите 3D объект банкомата atm в графическом редакторе и откройте секцию свойств Расположение.
  5. Выберите из выпадающего списка параметра Поворот Z: 0 градусов.
  6. Запустите модель, чтобы убедиться, что фигура банкомата стоит "лицом" к клиентам.

Демо-модель: Bank Office - Phase 2 Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.
Как мы можем улучшить эту статью?