Animação

Construir a animação de um modelo baseado na biblioteca de processos, como este da agência bancária, é uma tarefa fácil no AnyLogic. Na maioria dos seus modelos, você provavelmente preferirá construir a animação simultaneamente ao encaixe dos blocos de processo, por duas razões:

  • Qualquer modelo com animação fica mais fácil de entender, achar erros e, principalmente, vender a ideia para parceiros;

  • É fácil de fazer animação no AnyLogic e o resultado é muito bacana.

Você já sabe, mas não custa lembrar: no AnyLogic existem diversas maneiras de se construir a animação. Usaremos a maneira mais adequada para quem está começando. Quer evoluir suas animações? Então... já sabe, né? Estude os exemplos!

(Quase) todo bloco do AnyLogic possui um parâmetro Location ou algo similar. Por exemplo, encontre a região Location of arrival (localização de chegada) do bloco Source:

No parâmetro Location of arrival, existem as seguintes opções:

  • Not specified;

  • Network/Gis node: utilizaremos esta opção. Com ela, marcamos pontos na tela para o deslocamento dos clientes. Caso você pretenda trabalhar com georreferenciamento tem um vídeo explicativo aqui, mostrando que o AnyLogic pode baixar automaticamente da internet mapas, shapes, rotas etc.;

  • Attractor: serve para controlar o local que os agentes ficam quando você utiliza uma área como ponto de espera, por exemplo. Veja uma explicação mais detalhada no help.

  • (x, y, z): uma maneira de deslocamento bem sofisticada, com posicionamento por pixels, o que obriga o usuário estar atento à escala utilizada (atenção quando usar este método!);

  • (latitude, longitude): autoexplicativo, este tipo de localização é útil em modelos georreferenciados;

  • Geographic place: permite que você especifique o local exatamente como o faria no aplicativo de mapas do seu celular (i.e: “São Paulo” ou “São Paulo Av. Paulista” ou etc.) - também útil em modelos georreferenciados.

Com a prática, você vai notar que nem todas as opções de localização estão disponíveis em todo bloco, pois o AnyLogic já pré-define o que pode ou não ser utilizado em cada bloco.

Para começar, vamos marcar alguns pontos na tela, chamados de Nodes no AnyLogic, que representarão os locais da nossa agência. Precisamos dos seguintes nós:

  • Um nó para a porta de entrada/saída;

  • Um nó para o caixa eletrônico.

Toda locação de nós, caminhos etc. (seja georreferenciada ou não) é feita pela Paleta Space Markup:

Na parte de cima estão os comandos de marcação de espaço:

  • Path representa um caminho que os agentes podem circular ou mesmo uma fila (única) de espera;

  • Rectangular Node representa uma região retangular onde os agentes podem permanecer, como uma área de espera ou mesmo de atendimento. Este tipo de demarcação também interessa aos blocos de Resource Pool, para recursos que podem se deslocar, como uma empilhadeira, por exemplo;

  • Polygonal Node idem ao anterior, para uma área poligonal;

  • Attractor representa uma marcação colocada dentro do Node (Rectangular ou Polygonal) que atrai o agente quando ele está em espera ou atendimento na região, deixando os agentes organizados na área segundo algum padrão desejado como, por exemplo, cadeiras em uma área de espera, veículos em um estacionamento, operadores junto às suas estações de trabalho etc.;

  • Pallet Rack um rack pronto para colocação de pallets como num depósito.

Vamos começar construindo a animação da região do caixa eletrônico. Basicamente, precisamos apenas de dois elementos:

  • Um Point Node, que representará o local de atendimento do caixa;

  • Um Path que representará o local de espera da fila única do caixa.

A colocação elemento Node do caixa é direta:

Para o Path da fila, temos uma novidade: você deve ter notado esses ícones amarelinhos, em formato de lápis, ao lado dos elementos da paleta de marcação de espaço. Este ícone indica que, nestes elementos, se você der dois cliques, vai ativar o modo de desenho. Por exemplo, no caso da nossa fila de caixa:

  • Dê dois cliques no elemento Path para ativar o modo de desenho;

  • Clique em algum lugar da tela marcando o início da fila;

  • Dois cliques onde queremos o final da fila.

Dicas:

  • Se você quiser modificar o formato da fila (em forma de serpentina, por exemplo), basta dar um duplo clique em qualquer lugar do Path que ele divide em mais segmentos;

  • Clicando com o segundo botão do mouse por cima do Path, aparecem novos comandos de manipulação, inclusive a conversão do Path em arco. Se você tiver que desenhar segmentos curvos no AnyLogic, o melhor professor à disposição é este vídeo.

O segundo passo é conectar os elementos de marcação de espaço ao blocos de processos, como ilustrado a seguir:

Alternativa: existe um plano B para a marcação de espaço. Ao lado do menu de opções do Agent location existe um botão verde que permite selecionar diretamente o marcador de espaço na tela:

Agora, vamos representar a imagem do cliente. Se você criou o agente Cliente como explicado na seção “Entidades, agentes, atributos & variáveis”, navegue diretamente para o respectivo objeto:

O que você desenhar nesta aba servirá para representar o agente, ou seja, aparecerá na tela da simulação toda vez que um agente deste tipo for criado (i.e. vai substituir as pastilhas coloridas). Por exemplo, podemos colocar a representação de uma pessoa em 3D, existente na paleta 3D Objects:

  • Navegue para a paleta 3D Objects;

  • Selecione o elemento em 3D desejado e arraste para a posição 0,0 do agente ou onde os eixos se cruzam na tela;

  • Aceite a opção de ajuste de escala automática.

Se você clicar no 3D Object, poderá averiguar suas propriedades (note que, neste ponto do Tutorial, possivelmente você já compreende melhor um bloquinho apenas por uma leitura da sua aba Properties!):

Eu destaquei, em amarelo, um parâmetro interessante: ele determina quando o objeto vai aparecer em tela: 2D/3D ou ambos. Isto pode ser interessante quando você tem imagens que quer em 2D e não em 3D (por exemplo, esse ser humaninho não é lá muito estético em 2D. Uma imagem do R2D2, talvez, ficaria melhor🤓) ).

Se você simular o modelo, vai notar a fila se formar junto ao caixa e só isso.

Vamos melhorar as coisas:

  • Colocar um 3D Object representando caixa de eletrônico físico;

  • Criar uma janela em 3D para visualizar a agência.

O caixa eletrônico fica na paleta 3D Objects, no menu de Supermarket (a imagem é pequena, mas eu já sei e vou te contar que você deve girá-lo 90 graus, caso contrário o cliente vai olhar para o lado errado do caixa):

A janela de visualização 3D, 3D Window, é arrastada a partir da paleta Presentation:

Simule!

(e lembre-se do comando de mouse Alt+1º botão do mouse apertado para mudar o ponto de vista do observador.)

Algumas coisas você mesmo pode fazer para melhorar a qualidade da animação:

  • Nas propriedades dos elementos Path e Node, faça com que esses elementos não apareçam em 3D (vá em Advanced e depois escolha a opção 2D only);

  • Faça um chão para os clientes (desenhe um retângulo preenchido com a textura de floorWood. Modifique as propriedades de Position and size para que a altura do piso tenha Z igual a -1 pixel e o Z-Height igual a 1);

  • Nas propriedades da 3D Window, escolha uma cor mais clara.