Criando movimentos
Curso basAR
Christopher Shneider Cerqueira – christophercerqueira@gmail.com
Claudio Kirner – ckirner@gmail.com
https://sites.google.com/site/christophercerqueira/projetos/ear/basar
http://www.ckirner.com/basar
1
Requisitos
• Windows
• basAR
– Download:
• https://sites.google.com/site/christophercerqueira/proj
etos/ear/basar
• http://www.ckirner.com/basar
• Alguns modelos 3D em VRML
• Editor de texto simples, como o Bloco de
Notas.
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
2
Roteiro
• Introdução: Metas
• basAR
• Criando infraestrutura, estrutura e conteúdo
• Criando comportamento de movimentação.
– Conceitos:
• Arrasto
• Atração / Repulsão / Depósito
– Comandos
– Alterando comandos
– Atividade
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
3
Introdução
• Criar um cenário de Realidade Aumentada.
– Duas peças móveis e 1 ponto de encaixe.
• Utilizar o software basAR.
• Entender a construção do cenário.
• Entender os conceitos de movimentação.
4
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
basAR
5
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
basAR: Behavioral Authoring System for Augmented Reality
• Meta-ferramenta de
autoria de ambientes
inteligentes de realidade
aumentada .
– Estrutura de
comportamento baseada
em pontos de ação
– Cross-Reality
• COMPORTAMENTO DINÂMICO
entre PONTOS DE AÇÃO
Comportamento
Pontos de
ação
Hardware
Externo
basAR
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
6
• Infraestrutura: especificar a
área de trabalho (workspace)
da aplicação
• Estrutura: os posicionamentos
dos pontos de ação sobre a
infraestrutura.
• Contexto: modelos, sons e
outros objetos definidos na
estrutura.
• Atuação: método de interação
com a estrutura.
• Comportamento: regras de
interação entre os atuadores e
a estrutura.
Aplicação em camadas
7
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Hierarquia de objetos
basAR
Behavior
Base
Actuator
point1 ... pointK
app_pointM1
m1.dat
m1.wrl
...
...
...
Feedback
Feedback
Feedback
Click1.mp3
Error.mp3
Turn real motor ON
...
app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
8
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Hierarquia de arquivos
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
9
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
INFRAESTRUTURA, ESTRUTURA,
CONTEÚDO E ATUAÇÃO
Criando
10
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Sistema
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
11
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Configura:
– a primeira interligação
dos objetos;
– modo de exibição da
janela;
– objetos padrões.
• Arquivo:
{basAR}/Data/config_basAR
Sistema
12
#config_basAR
basAR
WINDOWED
VRML wrl/action/ballBlue.dat
VRML Wrl/Action/ballGreen.dat
VRML Wrl/Action/ballRED.dat
VRML Wrl/action/tampa.dat
Audio/explosion.wav 0.5
Audio/backTrack.mp3 LOOP 0.3
Audio/bell.wav ONCE 0.5
Data/config_behavior # Rule Machine
# Bases
1
Data/config_base1
# Actuators
1
ARTKSM Data/config_transport
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Infraestrutura
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
13
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• correlação entre o
mundo real e o mundo
virtual
• Definição de base
• Arquivo:
{basAR}/Data/config_base
Infraestrutura
#config_base1
# This file contains the setup for a workspace
BASE1
# Single ARToolKit Marker configuration
ARTKSM
Data/Markers/base.patt
53.0
0.0 0.0
USE_DEFAULT
# Workspace Sounds
Audio/bell.wav ONCE 0.5 # Visible Sound
Audio/explosion.wav 0.5 # Error sound
wrl/action/status.dat
14
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Estrutura
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
15
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Pontos do espaço virtual
com esferas de ação,
modelos associados e
comportamento.
• Localização, orientação e
escala dos objetos virtuais.
• Arquivo:
{basAR}/Data/config_base
…
Pen # Point Name
DEFAULT_IPOINT # Action Model File
Data/app_pen # OBJECT Model File
20.0 20.0 0.0 # Translation
0.0 0.0 0.0 # Rotation
1.0 1.0 1.0 # Scale
900.0 # Action radius
…
Estrutura
16
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Exemplo com 3 pontos
…
3
Quadrado
DEFAULT_IPOINT
Data/app_quad
200.0 200.0 0.0
0.0 0.0 0.0
1.0 1.0 1.0
900.0
Triangulo
DEFAULT_IPOINT
Data/app_triang
200.0 -200.0 0.0
0.0 0.0 0.0
1.0 1.0 1.0
900.0
pontoColisao
DEFAULT_IPOINT
NO_OBJECT
-200.0 0.0 0.0
0.0 0.0 0.0
1.0 1.0 1.0
900.0
{basAR}/Data/config_base
17
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Arquivo config_base completo _p1
BASE1
ARTKSM
Data/Markers/base.patt
53.0
0.0 0.0
USE_DEFAULT
Audio/bell.wav ONCE 0.5
Audio/explosion.wav 0.5
wrl/action/status.dat
3
Quadrado
DEFAULT_IPOINT
Data/app_quad
200.0 200.0 0.0
0.0 0.0 0.0
1.0 1.0 1.0
900.0
18
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Arquivo config_base completo _p2
Triangulo
DEFAULT_IPOINT
Data/app_triang
200.0 -200.0 0.0
0.0 0.0 0.0
1.0 1.0 1.0
900.0
pontoColisao
DEFAULT_IPOINT
NO_OBJECT
-200.0 0.0 0.0
0.0 0.0 0.0
1.0 1.0 1.0
900.0
19
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Conteúdo
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
20
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• objetos 3D e áudios que são
utilizados.
• Arquivos:
{basAR}/Data/App/app_quad
{basAR}/Data/App/app_triang
{basAR}/Wrl/quad.dat
{basAR}/Wrl/triang.dat
{basAR}/Wrl/quad.wrl
{basAR}/Wrl/triang.wrl
1
MODEL3D VRML Wrl/quad.dat
Conteúdo
quad.wrl
0 0 0
0 90 0
0 0 0
21
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Exemplo do conteúdo dos 2 pontos
1
MODEL3D VRML Wrl/quad.dat
1
MODEL3D VRML Wrl/triang.dat
quad.wrl
0 0 0
0 90 0
0 0 0
triang.wrl
0 0 0
0 90 0
0 0 0
{basAR}/Data/App/app_quad {basAR}/Data/App/app_triang
{basAR}/Wrl/quad.dat {basAR}/Wrl/triang.dat
22
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Atuação
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
23
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Interação do usuário com
o sistema
#config_tranport
ARTKSM1
# Single ARToolKit Marker configuration
Data/Markers/shovell.patt # Marker
37.0 # Width(mm)
0.0 0.0 # Central
USE_DEFAULT # Marker cover
VRML wrl/Action/ssd.dat # Symbolic
model
# Collision point
DEFAULT_IPOINT # Point model
20.0 0.0 0.0 # Translation (x,y,z) (mm)
400.0 # Action radius of the point
Atuação
24
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
COMPORTAMENTO DE
MOVIMENTAÇÃO
Criando
25
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comportamento?
• Controle do feedback do sistema ao receber
estimulo do usuário.
• Baseado em máquina de estados (grafo de
cena).
• Ações  Comandos
• Estados  Blocos de comandos
26
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Exemplo de estado
• Inicia estado
• Ponto 1 estático, exibe tudo
• Ponto 2 estático, exibe tudo
• Ponto 3 estático, exibe tudo
• Finaliza estado
• Outros comandos vide manual do basAR!
BEGIN_STATE 1
1 STAT BOTH
2 STAT BOTH
3 STAT BOTH
END_STATE
27
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
O que é movimentação?
• Seleção  Ação  Liberação
• Selecionar um ponto e deslocá-lo, na liberação
do ponto deve-se decidir a atitude a tomar
dependendo dos pontos que caracterizam a
região.
28
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Mapa de atitudes:
• Movendo um ponto:
– Zonas reativas:
• Atraem
• Repelem
• Permitem depósito.
– Zonas neutras:
• Permitem depósito.
29
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/Collision between actuator
and action point
Move action
point
System
Controlled
User controlled
Release point
Test relseaseAttract point
Repels point
Reactive zone: collision of the moving point with others
action points
SelectionManipulationRelease
Point selected
If selectable
Configure
System
Release point
Movimento
• Comandos de movimentação estabelecem
que o ponto seja selecionado pelo atuador e
movimentado no espaço virtual.
• A liberação depende dos outros pontos que
formam ou nao uma zona reativa.
• 2 comandos (DRGF e DRGRP)
30
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que permitem movimento
• Arrastar livremente (Drag Freely)
– DRGF
• 1 DRGF BOTH
• 13 DRGF ONLY_OBJECT
• 5 DRFG BOTH Audio/click.mp3
31
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Point ID DRGF Audio OverplayShowMode
Comandos que permitem movimento
• Arrastar livremente, mas quando estatico e
houver colisão, repele (Drag and Repels)
– DRGRP
• 1 DRGRP FLASH_BALL
• 6 DRGRP ONLY_BALL 3
• 2 DRGRP BOTH 7 Audio/click.mp3
32
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Point ID DRGRP Audio OverplayNextStateShowMode
Zonas reativas a movimentação
• Existencia de pontos que definem uma zona
com uma propriedade de liberação:
– Atração
– Repulsão
– Depósito
• A inexistencia de uma zona reativa permite
que a liberação seja realizada livremente.
33
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Atração
• Atração é uma forma de liberar o ponto em
movimento controlada pelo basAR.
• Quando o ponto em movimento entra numa
zona reativa de atração ele é atraído para a
posição do ponto de atração.
• Copia para o ponto atraído as características
de translação, rotação e escala do ponto de
atração
34
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam atração
• Atrair apenas um (Attract one specific)
– ATTO
• 4 ATTO 3 BOTH 7 Audio/congrat.mp3
• 2 ATTO 1 ONLY_MODEL 4
• 5 ATTO 1 SENSE_PROX 15
35
Point ID ATTO Audio OverplayNextStatePointWaited ShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam atração
• Atrai apenas um e repele os outros (Attract
one specific and repels others)
– ATTRP
• 5 ATTRP 2 ONLY_BALL 20
36
Point ID ATTRP Audio OverplayNextStatePointWaited ShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam atração
• Atrai todos os pontos (Attract all)
– ATTA
• 2 ATTA FLASH_BALL 8
37
Point ID ATTA Audio OverplayNextStateShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Repulsão
• Repulsão é uma forma de liberar o ponto em
movimento controlada pelo basAR.
• Quando o ponto em movimento entra na zona
reativa de repulsão ele é repelido para a
posição inicial.
• Retorna para a configuração inicial do ponto.
38
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam repulsão
• Repele apenas um (Repels only specific)
– RPLO
• 3 RPLO 4 BOTH 9
39
Point ID RPLO Audio OverplayNextStatePointWaited ShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam repulsão
• Repele todos os pontos (Repels all)
– RPLA
• 2 RPLA FLASH_BALL 8
40
Point ID RPLA Audio OverplayNextStateShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Depósito
• Depósito é uma forma de liberação do ponto
em movimento controlado pelo usuário.
• Quando o ponto em movimento entra na zona
reativa de depósito, o usuário ao tampar o
marcador de atuação decide pelo depósito.
• Caso o depósito não seja permitido o ponto é
repelido para a posição inicial.
41
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam depósito
• Deposita apenas um (Drop one specific)
– DRP0
• 1 DRPO 3 SENSE_PROX 35
42
Point ID DRPO Audio OverplayNextStatePointWaited ShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comandos que habilitam depósito
• Deposita todos os pontos (Drop all)
– DRPA
• 5 DRPA SENSE_PROX 3 Audio/drop.mp3
43
Point ID DRPA Audio OverplayNextStateShowMode
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comportamento
config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
44
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comportamento de atração
• Exemplo 1. Criar 2 pontos móveis (quadrado e
triângulo), e 1 ponto estático com
comportamento de atração.
• Arquivo de comportamento:
{basAR}/Data/config_behavior
45
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Arquivo de Comportamento
BEGIN_STATE 1
1 DRGF ONLY_OBJECT
2 DRGF ONLY_OBJECT
3 ATTO 1 ONLY_BALL 2
END_STATE 1
BEGIN_STATE 2
1 STAT ONLY_OBJECT
2 STAT ONLY_OBJECT
END_STATE 2
46
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Atração
• Mudar o comportamento do ponto 3 para
atrair o ponto 2 e repelir outros pontos.
– 3 ATTRP 2 ONLY_BALL 2
• Mudar o comportamento do ponto 3 para
atrair qualquer ponto
– 3 ATTA ONLY_BALL 2
47
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Repulsão
• Mudar o comportamento do ponto 3 para
repelir o ponto 1.
– 3 RPLO 1 ONLY_BALL 2
• Mudar o comportamento do ponto 3 para
repelir qualquer ponto.
– 3 RPLA ONLY_BALL 2
48
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Depósito
• Mudar o comportamento do ponto 3 para
depositar o ponto 1.
– 3 DRPO 1 ONLY_BALL 2
• Mudar o comportamento do ponto 3 para
depositar qualquer ponto.
– 3 DRPA ONLY_BALL 2
49
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
RESUMO
50
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Resumo comandos utilizados
–STAT: [PointID] STAT [ShowMode] <AUDIO> <OVER?>
–DRGF: [PointID] DRGF [ShowMode] <AUDIO> <OVER?>
–DRGRP: [PointID] DRGRP [ShowMode] [NextState] <AUDIO> <OVER?>
–ATTO: [PointID] ATTO [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?>
–ATTRP: [PointID] ATTRP [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?>
–ATTA: [PointID] ATTA [ShowMode] [NextState] <AUDIO> <OVER?>
–RPLO: [PointID] RPLO [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?>
–RPLA: [PointID] RPLA [ShowMode] [NextState] <AUDIO> <OVER?>
–DRPO: [PointID] DRPO [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?>
–DRPA: [PointID] DRPA [ShowMode] [NextState] <AUDIO> <OVER?>
51
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Ajuda online
• Videos exemplificando cada comportamento
disponível em e os arquivos utilizados neste
tutorial estão disponíveis em:
• https://sites.google.com/site/christophercerq
ueira/projetos/ear/basar/cursos
52
basAR: Criando movimento
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Criando movimentos
Curso basAR
Christopher Shneider Cerqueira – christophercerqueira@gmail.com
Claudio Kirner – ckirner@gmail.com
https://sites.google.com/site/christophercerqueira/projetos/ear/basar
http://www.ckirner.com/basar
53

Curso basAR e Movimento

  • 1.
    Criando movimentos Curso basAR ChristopherShneider Cerqueira – christophercerqueira@gmail.com Claudio Kirner – ckirner@gmail.com https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar 1
  • 2.
    Requisitos • Windows • basAR –Download: • https://sites.google.com/site/christophercerqueira/proj etos/ear/basar • http://www.ckirner.com/basar • Alguns modelos 3D em VRML • Editor de texto simples, como o Bloco de Notas. basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ 2
  • 3.
    Roteiro • Introdução: Metas •basAR • Criando infraestrutura, estrutura e conteúdo • Criando comportamento de movimentação. – Conceitos: • Arrasto • Atração / Repulsão / Depósito – Comandos – Alterando comandos – Atividade basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ 3
  • 4.
    Introdução • Criar umcenário de Realidade Aumentada. – Duas peças móveis e 1 ponto de encaixe. • Utilizar o software basAR. • Entender a construção do cenário. • Entender os conceitos de movimentação. 4 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 5.
  • 6.
    basAR: Behavioral AuthoringSystem for Augmented Reality • Meta-ferramenta de autoria de ambientes inteligentes de realidade aumentada . – Estrutura de comportamento baseada em pontos de ação – Cross-Reality • COMPORTAMENTO DINÂMICO entre PONTOS DE AÇÃO Comportamento Pontos de ação Hardware Externo basAR basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ 6
  • 7.
    • Infraestrutura: especificara área de trabalho (workspace) da aplicação • Estrutura: os posicionamentos dos pontos de ação sobre a infraestrutura. • Contexto: modelos, sons e outros objetos definidos na estrutura. • Atuação: método de interação com a estrutura. • Comportamento: regras de interação entre os atuadores e a estrutura. Aplicação em camadas 7 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 8.
    Hierarquia de objetos basAR Behavior Base Actuator point1... pointK app_pointM1 m1.dat m1.wrl ... ... ... Feedback Feedback Feedback Click1.mp3 Error.mp3 Turn real motor ON ... app_pointK m1.dat m1.wrl m2.dat M2.wrl 8 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 9.
    Hierarquia de arquivos config_basAR config_behavior config_base config_actuator app_pointM1 m1.dat m1.wrl app_arduinoapp_pointK m1.dat m1.wrl m2.dat M2.wrl 9 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 10.
    INFRAESTRUTURA, ESTRUTURA, CONTEÚDO EATUAÇÃO Criando 10 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 11.
  • 12.
    • Configura: – aprimeira interligação dos objetos; – modo de exibição da janela; – objetos padrões. • Arquivo: {basAR}/Data/config_basAR Sistema 12 #config_basAR basAR WINDOWED VRML wrl/action/ballBlue.dat VRML Wrl/Action/ballGreen.dat VRML Wrl/Action/ballRED.dat VRML Wrl/action/tampa.dat Audio/explosion.wav 0.5 Audio/backTrack.mp3 LOOP 0.3 Audio/bell.wav ONCE 0.5 Data/config_behavior # Rule Machine # Bases 1 Data/config_base1 # Actuators 1 ARTKSM Data/config_transport basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 13.
  • 14.
    • correlação entreo mundo real e o mundo virtual • Definição de base • Arquivo: {basAR}/Data/config_base Infraestrutura #config_base1 # This file contains the setup for a workspace BASE1 # Single ARToolKit Marker configuration ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT # Workspace Sounds Audio/bell.wav ONCE 0.5 # Visible Sound Audio/explosion.wav 0.5 # Error sound wrl/action/status.dat 14 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 15.
  • 16.
    • Pontos doespaço virtual com esferas de ação, modelos associados e comportamento. • Localização, orientação e escala dos objetos virtuais. • Arquivo: {basAR}/Data/config_base … Pen # Point Name DEFAULT_IPOINT # Action Model File Data/app_pen # OBJECT Model File 20.0 20.0 0.0 # Translation 0.0 0.0 0.0 # Rotation 1.0 1.0 1.0 # Scale 900.0 # Action radius … Estrutura 16 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 17.
    Exemplo com 3pontos … 3 Quadrado DEFAULT_IPOINT Data/app_quad 200.0 200.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 900.0 Triangulo DEFAULT_IPOINT Data/app_triang 200.0 -200.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 900.0 pontoColisao DEFAULT_IPOINT NO_OBJECT -200.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 900.0 {basAR}/Data/config_base 17 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 18.
    Arquivo config_base completo_p1 BASE1 ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT Audio/bell.wav ONCE 0.5 Audio/explosion.wav 0.5 wrl/action/status.dat 3 Quadrado DEFAULT_IPOINT Data/app_quad 200.0 200.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 900.0 18 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 19.
    Arquivo config_base completo_p2 Triangulo DEFAULT_IPOINT Data/app_triang 200.0 -200.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 900.0 pontoColisao DEFAULT_IPOINT NO_OBJECT -200.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 900.0 19 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 20.
  • 21.
    • objetos 3De áudios que são utilizados. • Arquivos: {basAR}/Data/App/app_quad {basAR}/Data/App/app_triang {basAR}/Wrl/quad.dat {basAR}/Wrl/triang.dat {basAR}/Wrl/quad.wrl {basAR}/Wrl/triang.wrl 1 MODEL3D VRML Wrl/quad.dat Conteúdo quad.wrl 0 0 0 0 90 0 0 0 0 21 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 22.
    Exemplo do conteúdodos 2 pontos 1 MODEL3D VRML Wrl/quad.dat 1 MODEL3D VRML Wrl/triang.dat quad.wrl 0 0 0 0 90 0 0 0 0 triang.wrl 0 0 0 0 90 0 0 0 0 {basAR}/Data/App/app_quad {basAR}/Data/App/app_triang {basAR}/Wrl/quad.dat {basAR}/Wrl/triang.dat 22 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 23.
  • 24.
    • Interação dousuário com o sistema #config_tranport ARTKSM1 # Single ARToolKit Marker configuration Data/Markers/shovell.patt # Marker 37.0 # Width(mm) 0.0 0.0 # Central USE_DEFAULT # Marker cover VRML wrl/Action/ssd.dat # Symbolic model # Collision point DEFAULT_IPOINT # Point model 20.0 0.0 0.0 # Translation (x,y,z) (mm) 400.0 # Action radius of the point Atuação 24 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 25.
    COMPORTAMENTO DE MOVIMENTAÇÃO Criando 25 basAR: Criandomovimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 26.
    Comportamento? • Controle dofeedback do sistema ao receber estimulo do usuário. • Baseado em máquina de estados (grafo de cena). • Ações  Comandos • Estados  Blocos de comandos 26 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 27.
    Exemplo de estado •Inicia estado • Ponto 1 estático, exibe tudo • Ponto 2 estático, exibe tudo • Ponto 3 estático, exibe tudo • Finaliza estado • Outros comandos vide manual do basAR! BEGIN_STATE 1 1 STAT BOTH 2 STAT BOTH 3 STAT BOTH END_STATE 27 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 28.
    O que émovimentação? • Seleção  Ação  Liberação • Selecionar um ponto e deslocá-lo, na liberação do ponto deve-se decidir a atitude a tomar dependendo dos pontos que caracterizam a região. 28 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 29.
    Mapa de atitudes: •Movendo um ponto: – Zonas reativas: • Atraem • Repelem • Permitem depósito. – Zonas neutras: • Permitem depósito. 29 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/Collision between actuator and action point Move action point System Controlled User controlled Release point Test relseaseAttract point Repels point Reactive zone: collision of the moving point with others action points SelectionManipulationRelease Point selected If selectable Configure System Release point
  • 30.
    Movimento • Comandos demovimentação estabelecem que o ponto seja selecionado pelo atuador e movimentado no espaço virtual. • A liberação depende dos outros pontos que formam ou nao uma zona reativa. • 2 comandos (DRGF e DRGRP) 30 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 31.
    Comandos que permitemmovimento • Arrastar livremente (Drag Freely) – DRGF • 1 DRGF BOTH • 13 DRGF ONLY_OBJECT • 5 DRFG BOTH Audio/click.mp3 31 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ Point ID DRGF Audio OverplayShowMode
  • 32.
    Comandos que permitemmovimento • Arrastar livremente, mas quando estatico e houver colisão, repele (Drag and Repels) – DRGRP • 1 DRGRP FLASH_BALL • 6 DRGRP ONLY_BALL 3 • 2 DRGRP BOTH 7 Audio/click.mp3 32 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ Point ID DRGRP Audio OverplayNextStateShowMode
  • 33.
    Zonas reativas amovimentação • Existencia de pontos que definem uma zona com uma propriedade de liberação: – Atração – Repulsão – Depósito • A inexistencia de uma zona reativa permite que a liberação seja realizada livremente. 33 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 34.
    Atração • Atração éuma forma de liberar o ponto em movimento controlada pelo basAR. • Quando o ponto em movimento entra numa zona reativa de atração ele é atraído para a posição do ponto de atração. • Copia para o ponto atraído as características de translação, rotação e escala do ponto de atração 34 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 35.
    Comandos que habilitamatração • Atrair apenas um (Attract one specific) – ATTO • 4 ATTO 3 BOTH 7 Audio/congrat.mp3 • 2 ATTO 1 ONLY_MODEL 4 • 5 ATTO 1 SENSE_PROX 15 35 Point ID ATTO Audio OverplayNextStatePointWaited ShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 36.
    Comandos que habilitamatração • Atrai apenas um e repele os outros (Attract one specific and repels others) – ATTRP • 5 ATTRP 2 ONLY_BALL 20 36 Point ID ATTRP Audio OverplayNextStatePointWaited ShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 37.
    Comandos que habilitamatração • Atrai todos os pontos (Attract all) – ATTA • 2 ATTA FLASH_BALL 8 37 Point ID ATTA Audio OverplayNextStateShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 38.
    Repulsão • Repulsão éuma forma de liberar o ponto em movimento controlada pelo basAR. • Quando o ponto em movimento entra na zona reativa de repulsão ele é repelido para a posição inicial. • Retorna para a configuração inicial do ponto. 38 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 39.
    Comandos que habilitamrepulsão • Repele apenas um (Repels only specific) – RPLO • 3 RPLO 4 BOTH 9 39 Point ID RPLO Audio OverplayNextStatePointWaited ShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 40.
    Comandos que habilitamrepulsão • Repele todos os pontos (Repels all) – RPLA • 2 RPLA FLASH_BALL 8 40 Point ID RPLA Audio OverplayNextStateShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 41.
    Depósito • Depósito éuma forma de liberação do ponto em movimento controlado pelo usuário. • Quando o ponto em movimento entra na zona reativa de depósito, o usuário ao tampar o marcador de atuação decide pelo depósito. • Caso o depósito não seja permitido o ponto é repelido para a posição inicial. 41 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 42.
    Comandos que habilitamdepósito • Deposita apenas um (Drop one specific) – DRP0 • 1 DRPO 3 SENSE_PROX 35 42 Point ID DRPO Audio OverplayNextStatePointWaited ShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 43.
    Comandos que habilitamdepósito • Deposita todos os pontos (Drop all) – DRPA • 5 DRPA SENSE_PROX 3 Audio/drop.mp3 43 Point ID DRPA Audio OverplayNextStateShowMode basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 44.
  • 45.
    Comportamento de atração •Exemplo 1. Criar 2 pontos móveis (quadrado e triângulo), e 1 ponto estático com comportamento de atração. • Arquivo de comportamento: {basAR}/Data/config_behavior 45 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 46.
    Arquivo de Comportamento BEGIN_STATE1 1 DRGF ONLY_OBJECT 2 DRGF ONLY_OBJECT 3 ATTO 1 ONLY_BALL 2 END_STATE 1 BEGIN_STATE 2 1 STAT ONLY_OBJECT 2 STAT ONLY_OBJECT END_STATE 2 46 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 47.
    Atração • Mudar ocomportamento do ponto 3 para atrair o ponto 2 e repelir outros pontos. – 3 ATTRP 2 ONLY_BALL 2 • Mudar o comportamento do ponto 3 para atrair qualquer ponto – 3 ATTA ONLY_BALL 2 47 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 48.
    Repulsão • Mudar ocomportamento do ponto 3 para repelir o ponto 1. – 3 RPLO 1 ONLY_BALL 2 • Mudar o comportamento do ponto 3 para repelir qualquer ponto. – 3 RPLA ONLY_BALL 2 48 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 49.
    Depósito • Mudar ocomportamento do ponto 3 para depositar o ponto 1. – 3 DRPO 1 ONLY_BALL 2 • Mudar o comportamento do ponto 3 para depositar qualquer ponto. – 3 DRPA ONLY_BALL 2 49 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 50.
  • 51.
    Resumo comandos utilizados –STAT:[PointID] STAT [ShowMode] <AUDIO> <OVER?> –DRGF: [PointID] DRGF [ShowMode] <AUDIO> <OVER?> –DRGRP: [PointID] DRGRP [ShowMode] [NextState] <AUDIO> <OVER?> –ATTO: [PointID] ATTO [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?> –ATTRP: [PointID] ATTRP [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?> –ATTA: [PointID] ATTA [ShowMode] [NextState] <AUDIO> <OVER?> –RPLO: [PointID] RPLO [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?> –RPLA: [PointID] RPLA [ShowMode] [NextState] <AUDIO> <OVER?> –DRPO: [PointID] DRPO [PointWaited] [ShowMode] [NextState] <AUDIO> <OVER?> –DRPA: [PointID] DRPA [ShowMode] [NextState] <AUDIO> <OVER?> 51 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 52.
    Ajuda online • Videosexemplificando cada comportamento disponível em e os arquivos utilizados neste tutorial estão disponíveis em: • https://sites.google.com/site/christophercerq ueira/projetos/ear/basar/cursos 52 basAR: Criando movimento sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 53.
    Criando movimentos Curso basAR ChristopherShneider Cerqueira – christophercerqueira@gmail.com Claudio Kirner – ckirner@gmail.com https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar 53