BR102018017046A2 - Método para controle de execução do processo de animação em dispositivos eletrônicos - Google Patents

Método para controle de execução do processo de animação em dispositivos eletrônicos Download PDF

Info

Publication number
BR102018017046A2
BR102018017046A2 BR102018017046-5A BR102018017046A BR102018017046A2 BR 102018017046 A2 BR102018017046 A2 BR 102018017046A2 BR 102018017046 A BR102018017046 A BR 102018017046A BR 102018017046 A2 BR102018017046 A2 BR 102018017046A2
Authority
BR
Brazil
Prior art keywords
speed
animation
gui
fact
routine
Prior art date
Application number
BR102018017046-5A
Other languages
English (en)
Inventor
Taynah DE ARAÚJO MIYAGAWA
Alvaro Augusto Braga Lourenço
Adriano MENDES GIL
Original Assignee
Samsung Eletrônica da Amazônia Ltda.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Eletrônica da Amazônia Ltda. filed Critical Samsung Eletrônica da Amazônia Ltda.
Priority to BR102018017046-5A priority Critical patent/BR102018017046A2/pt
Priority to US16/376,591 priority patent/US11093117B2/en
Publication of BR102018017046A2 publication Critical patent/BR102018017046A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

método para controle de execução do processo de animação em dispositivos eletrônicos. a presente invenção se refere a um método para controlar o processo de animação executado em dispositivos eletrônicos que têm um processador adaptado para executar instruções armazenadas em uma memória, o método compreendendo as etapas de: interpretar um método de entrada para gerar uma velocidade inicial (21) por meio de valores de eventos; executar uma rotina de projeção (22) usando a velocidade inicial (21) e uma posição atual da gui para gerar um fator; executar uma rotina adaptativa (23) usando o fator para calcular um novo valor modulado de posição/velocidade; executar uma iteração de modelo físico (24) usando o valor de posição/velocidade modulado para gerar um valor de posição/velocidade atualizado (25); atualizar a interface gráfica do usuário com o valor atualizado de posição/velocidade (25); executar os métodos de controle a partir do novo conjunto de valores de posição/velocidade (25), em que os métodos de controle compreendem: um método de previsão progressiva opera com uma rotina de projeção mais simples (22), como uma simplificação linear da iteração do modelo físico (24); ou um método de modulação preciso que é executado apenas uma vez para cada entrada recebida usando uma rotina de projeção (22) com um modelo invertido altamente preciso que calcula, através da rotina adaptativa (23), desvios mínimos para a iteração modelo físico (24) de escolha no início de cada animação.

Description

"MÉTODO PARA CONTROLE DE EXECUÇÃO DO PROCESSO DE ANIMAÇÃO EM DISPOSITIVOS ELETRÔNICOS" Campo da Invenção [0001] A presente invenção se refere a um método de controle para feedbacks de Interface Gráfica de Usuário (em inglês, GUI) em implementações com precisão variável (Progressive Forecasting) ou precisão absoluta (Accurate Modulation).
Antecedentes da Invenção [0002] Os sistemas Mainstream Virtual Reality (em inglês, VR) consistem em experiências digitais que expõem, a cada olho humano, imagens que são colocadas dentro de um ambiente 3D artificial. Como o principal agente da ilusão declarada de presença, esta estereoscopia visual é comumente complementada por saídas sonoras e táteis a fim de alcançar uma imersão sensorial mais ampla. A Realidade Aumentada (em inglês, AR) sincroniza mundos virtual e real para sobrepor o conteúdo gerado por computador no ambiente do usuário de maneira aditiva, de modo que o usuário possa ver as realidades virtual e aumentada juntas. Enquanto que a principal distinção entre realidade virtual e realidade aumentada é, respectivamente, a de substituir versus realçar a realidade com conteúdo digital 3D, a realidade mista (em inglês, MR) combina estas abordagens para gerar um ambiente completamente artificial que considera os contornos do mundo real.
[0003] VR, AR e MR são partes de tecnologias emergentes reunidas em discussões e desenvolvimentos recentes em torno de Ambientes Virtuais (em inglês, VEs), um tópico que se tornou dominante após o protótipo de crowdsourcing da Oculus Rift em 2012, após sua posterior aquisição pelo Facebook. Desde então, os dispositivos de VR têm sido comercializados de forma integral por várias marcas, alcançando milhões de unidades vendidas a partir de 2017 -antes de tudo isso, a realidade virtual era inacessivelmente cara para acesso pelo consumidor.
[0004] Após dois anos de intensa colaboração no mercado para identificar, testar e distribuir novos padrões de interatividade para ambientes virtuais, este ainda é um esforço contínuo para que empresas como estúdios de jogos, laboratórios de pesquisa e grandes empresas realizem. Até agora, este desafio incluía não apenas a nova habilidade necessária para construir ambientes 3D interativos, mas também a heurística de design para transpor e sustentar a interatividade legada da Interface Gráfica de Usuário (GUI) 2D dentro do espaço virtual.
[0005] Na perspectiva do design de informação, os desenvolvimentos recentes de desktops, smartphones, televisões e relógios destacam que a simplicidade e as apresentações de baixa densidade são mais propensas a fornecer um fluxo equilibrado de informações e interação. Rotulado como "Flat Design" (FD), e baseado em escolas de design modernistas dos anos noventa e vinte, esta tendência sustenta que "a forma segue a função" e faz uso arrojado de tamanhos de fontes, espaços em branco e imagens de pôsteres para comunicar valores subjetivos - a maioria das interfaces atualmente se refere àquele axioma plano, o qual é amplamente experimentado em toda a indústria de softwares.
[0006] No entanto, em uma tentativa de cumprir estes princípios de FD, os ambientes virtuais precisam primeiro trabalhar em torno de seu problema específico de resolução de exibição. Monitores virtuais são obrigados a estar mais próximo do olho do usuário, independentemente de seu nível de mobilidade. Além disso, o olho humano opera com limitações de campo de visão angular que restringem o espaço de tela legível, muitas vezes cortando a tela disponível até um quarto. Isto significa que, para fornecer uma resolução detalhada, uma exibição do Ambiente Virtual deve ter uma densidade maior de pixels por polegada (em inglês, PPI) do que as telas 2D principais (flagship). Tudo isso acontece porque variáveis como distância de exibição e densidade de pixels têm uma correlação negativa - quanto mais próximo um monitor estiver do olho (menos distância), mais denso deverá ser um monitor (mais pixels) para manter um mesmo padrão de qualidade de resolução de exibição. Então, em essência, é possível transpor estruturas de FD para ambientes virtuais, mas haverá uma troca séria entre o tamanho da tela e a resolução.
[0007] Uma pessoa pode facilmente superestimar a mídia do Ambiente Virtual 360 ao acreditar que ele oferece uma tela mais ampla para projetar, por exemplo. Quando na verdade, esta tela mais ampla terá áreas mais estreitas e focáveis para a interface, qualidade de resolução muito menor e maior consumo de recursos. Esta é uma questão especialmente delicada para campos de pesquisa em andamento, como a realidade aumentada, que enfrenta várias limitações de hardware para associar o design de óculos de menor peso a telas mais amplas e nítidas. Ao considerar os padrões atuais de legibilidade e familiaridade, a maioria dos dispositivos atuais do Ambiente Virtual oferece o equilíbrio mínimo de espaço na tela e resolução, geralmente abaixo de menos de metade do que os flagships padrão podem fazer.
[0008] Com uma tela e resolução de tela menores, os métodos atuais de design são forçados a refazer o equilíbrio de informações e interação para fornecer uma experiência racional e agradável. Isto pode ser feito ao reduzir as informações nas telas e/ou aplicar outros métodos de GUI (por exemplo, menus, painéis de rolagem e viradas de página) para organizar e controlar os volumes de informações. Historicamente, estes métodos de controle introduziram recursos e gestos essenciais que alavancaram telas móveis menores em computadores desktops, desde o iPhone em 2007. Métodos como a rolagem de painéis com gestos dos dedos se tornaram um recurso comum de muitos aplicativos que agora atendem a bilhões de usuários.
[0009] Em vista das preocupações mencionadas acima, a presente invenção introduz um novo conjunto de métodos de controle para feedbacks de animação de GUI que funciona em nuances sutis para otimizar a visualização e os controles para vistas de tamanho menor. Eles permitem feedbacks de GUI que atuam de acordo com a restrição de exibição previsível de ambientes virtuais, ao mesmo tempo em que maximiza a familiaridade com a experiência atual do usuário. Estes métodos também aprimorarão o encaminhamento de muitos gestos e métodos móveis para ambientes virtuais, preservando as principais vantagens da visualização de exibição ideal, controle de conteúdo e experiência de leitura para tecnologias de realidade virtual, realidade aumentada e realidade mista.
[0010] No atual estado da técnica, as seguintes tecnologias podem ser encontradas, permitindo a implementação (viabilidade técnica) do assunto descrito: 1. O dispositivo de entrada é definido como qualquer dispositivo que insira informações em um computador a partir de uma fonte externa (por exemplo, teclados, telas sensíveis ao toque, mouse, microfones, scanners). Um dispositivo de entrada envia dados para outro dispositivo o qual é, em geral, uma unidade de processamento central (em inglês, CPU). 2. No outro lado da Entrada-Processo-Saída (em inglês, IPO) está a interface gráfica de usuário (GUI). Quase todas as interfaces digitais hoje em dia são GUIs. Uma interface é um conjunto de dados, comandos/controles e/ou menus/navegação exibidos em uma tela, através dos quais um usuário se comunica com um programa - em outras palavras, GUI é a parte de um sistema através do qual o usuário irá interagir. A primeira GUI comercialmente disponível foi lançada em 1981 e, desde então, evoluiu para se adaptar às novas tecnologias e tipos de dispositivos digitais disponíveis no mercado. 3. O visor montado na cabeça (Head-Mounted Display -HMD) é um dispositivo usado sobre a cabeça que inclui um monitor na frente de um ou ambos os olhos do usuário. Este monitor transmite dados, imagens e outros tipos de informações. Basicamente, o HMD é um hardware de exibição de conteúdo. Inicialmente criado para a indústria da aviação, o HMD é usado como o hardware flagship na indústria de VR/AR.
[0011] A maioria dos HMDs atuais que usam o modelo IPO fornece um controlador multiuso que mistura a ergonomia dos controles remotos de TV, a funcionalidade dos botões do joystick e as interações baseadas em gestos dos touchpads. Estes dispositivos de entrada são usados para controlar cenários e GUIs do Ambiente Virtual.
[0012] Alguns tipos de HMD incluem: Slide-on HMD (base móvel, usa um smartphone como monitor, para processamento e rastreamento), Tethered HMD (com base em PC, fornece tudo o que é necessário além de processamento, o qual é feito pelo PC) e Integrated HMD (dispositivo totalmente independente, contém tudo para fornecer uma experiência imersiva).
[0013] A seguir, são descritas algumas soluções que têm similaridades com a presente invenção, mas que são tecnicamente diferentes ou apresentam objetivos/finalidades diferentes.
[0014] O pedido de patente US 2012/0062604 A1, intitulado "FLEXIBLE TOUCH-BASED SCROLLING", de Lobo Philomena et al., depositado em 15 de setembro de 2010, propõe métodos para identificar se a velocidade do gesto em uma tela sensível ao toque está abaixo ou acima de um determinado limite, respondendo com uma rolagem suave se a velocidade for baixa e uma virada de página quando a velocidade for alta o suficiente. Esta solução difere da presente invenção por natureza: ela foca na definição de dois casos de uso com base em gestos que rolam o conteúdo da interface, mas não especifica como estes feedbacks resultantes devem ser animados de maneira similar ao método da presente invenção, nem fornece ou usa os controles usados na presente invenção.
[0015] O pedido de patente US 2012/0272181 A1, intitulado "METHOD AND APPARATUS FOR INTUITIVE WRAPPING OF LISTS IN A USER INTERFACE", por ROGERS SEAN S. et al., depositado em 22 de abril de 2011, define limites para rolagem após limites superior e inferior de uma lista, portanto, quando o gesto de toque atinge estes limites, ele fornece o feedback do ciclo em direção à extremidade oposta da lista a qual é, então, animada novamente para caber no lado oposto da tela. O mesmo difere do método da presente invenção, uma vez que ele funciona para definir um único caso e gesto de uso específico, enquanto que o método da presente invenção se concentra em especificar novas alternativas para controlar animações em GUIs, ao mesmo tempo em que fornece a camada extra de controle da janela de visualização para melhorar a visibilidade, legibilidade e experiência geral do usuário.
[0016] A Patente dos Estados Unidos N° 9.003.332 B2 intitulada "PREDICTIVE SCROLLING", da MELLMO INC., concedida em 05 de junho de 2014, calcula a posição final das animações de rolagem antecipadamente, então, extrai registros do banco de dados para preencher a GUI antes que a animação finalize em um esforço para garantir uma resposta do sistema e tempos de visualização mais rápidos. Uma vez que as reivindicações para esta patente são orientadas para a tarefa de gerenciar registros de banco de dados, ela se afasta do escopo proposto da presente invenção, que foca em novos métodos de controle de animação para fornecer níveis variáveis de precisão para conformar a GUI em espaços da janela de visualização de uma maneira sutil ainda familiar (uma que seja compatível com os métodos reconhecidos e gestos atualmente executados na indústria de dispositivos móveis).
[0017] A Patente dos Estados Unidos N° 8.624.925 B2 intitulada "CONTENT BOUNDARY SIGNALING TECHNIQUES", pela QUALCOMM INCORPORATED, depositada em 16 de outubro de 2009, se refere a métodos e dispositivos que fornecem uma interface de usuário que fornece indicações visuais quando uma panorâmica ou rolagem de documento atingiu um fim ou limite ao distorcer a imagem do documento em resposta a outras entradas do usuário. A velocidade dos gestos do usuário na tela é usada para calcular as posições finais para a lista. Quando esta posição fica fora da lista, um efeito de limite é aplicado para informar o usuário. Tal cálculo não considera o controle da animação da maneira que o método da presente invenção propõe. O método da presente invenção assegura [1] estados/posições finais arbitrárias, ao mesmo tempo em que [2] preserva a aparência do modelo físico como uma opção de escolha ao longo de execução da animação. Em palavras mais simples, a presente invenção controla as animações, ao mesmo tempo em que seu método está apenas provocando efeitos quando uma posição "fora do limite" é calculada. Deve-se considerar que a natureza do método da presente invenção - ele controla a animação durante seu desempenho - oferece níveis flexíveis e variados de precisão para atender a muitos efeitos pretendidos. Embora expressando esta flexibilidade, Previsão Progressiva e Modulação Precisa não são suficientes para atingir os resultados da presente invenção: as rotinas Projection e Adaptive são centrais neste sentido, uma vez que elas são usadas para modular continuamente a velocidade e as posições enquanto a animação está acontecendo, de modo que elas podem convergir para o estado arbitrário estático sem interromper a animação do modelo físico escolhido, nem com as expectativas dos usuários em relação ao que deve seguir após seu gesto.
[0018] A Patente dos Estados Unidos N° 5.495.566 A intitulada "SCROLLING CONTENTS OF A WINDOW", da Microsoft Corp., depositada em 22 de novembro de 1994, oferece três aspectos para a rolagem além dos limites com velocidades variáveis. O primeiro calcula diferentes velocidades de acordo com a aceleração do cursor do mouse; o segundo define que a velocidade variável deve ser inversamente proporcional ao número de vezes que a rolagem foi acionada; e, finalmente, o terceiro aspecto examina a quantidade de vezes que uma entrada de chave foi acionada para executar uma rolagem, portanto, quando este intervalo não é alcançado em um determinado tempo, ele fornece uma simples animação de rolagem como saída, porém, quando é atingido, executa uma rolagem de salto. Apesar de usar diferentes métodos de entrada como o método da presente invenção, estes métodos do estado da técnica se focam na tarefa de rolagem além dos limites. Isto é diferente do propósito agnóstico de nossos métodos de controle, os quais se concentram em controlar animações de feedback de qualquer tipo, em vez de lidar com casos de exceção específicos para rolagens limítrofes.
Sumário da Invenção [0019] Diante dos desafios enfrentados em ambientes virtuais - especialmente em lidar com monitores limitados ao mesmo tempo em que usa estruturas de design comprovadas e gestos/controles familiares do já amadurecido campo da computação móvel -, o método da presente invenção se concentra na criação de uma camada adicional de controles para animações de GUI.
[0020] Quando aplicado, o método da presente invenção oferece a oportunidade de coordenação aprimorada de elementos de GUI enquanto ela é manipulada pelos usuários. Ele assegura desempenho visual ideal da tela de interface sem interromper os feedbacks esperados, nem exigir tarefas e métodos secundários para corrigir problemas de composição.
[0021] O método de controle proposto para animações de GUI se baseia em uma arquitetura de software única com dois comportamentos opcionais para suportar vários tipos de implementações: Previsão Progressiva e Modulação Precisa. Estes métodos podem ser usados com vários tipos de entrada, estando em conformidade com muitos dos dispositivos existentes (por exemplo, controles remotos, touchpads, telas), ao mesmo tempo em que também funciona efetivamente com muitos dos padrões de animação modernos.
[0022] Previsão Progressiva e Modulação Precisa se referem ao amplo espectro de implementações de métodos possíveis que usam modelos inversos com precisão variável para antecipar a posição final das animações antes que elas sejam concluídas. O primeiro é executado ao longo do ciclo de animação, ficando mais preciso à medida que a animação acontece; e o segundo é executado apenas uma vez no início da animação em virtude de seu modelo altamente preciso.
[0023] Além disso, a arquitetura consiste em um par de rotinas codependentes que alternam entre os métodos de saída - como ciclos de animação com base em física - para garantir que as posições finais sejam atingidas até o final das animações, sem alterar os feedbacks esperados pelo usuário e requisitos de funcionalidade.
[0024] A presente invenção supera as desvantagens do estado da técnica ao resolver problemas frequentes de design (relacionados ao gerenciamento da janela de visualização) encontrados em desenvolvimentos de realidade virtual, realidade aumentada e realidade mista, ao mesmo tempo em que implementa uma arquitetura desacoplada que pode ser usada em várias situações relacionadas à GUI. Usando este método, um aplicativo pode fornecer controles aprimorados para composições manipuladas pelo usuário.
[0025] O método de controle de animação proposto melhora o desempenho de gestos fundamentais que os ambientes virtuais e outras telas pequenas herdaram da computação móvel ao aumentar a eficácia e precisão durante os gestos. Este método é capaz de reequilibrar a incapacidade natural de telas menores para fornecer uma apresentação confortável do conteúdo e boa experiência de leitura, eliminar a necessidade de intervenção manual do usuário e/ou implementações de métodos secundários para corrigir áreas de GUI ruins e mau alinhamento de elementos.
[0026] O aumento de desempenho e familiaridade do método de saída proposto beneficia a experiência geral do usuário e o valor percebido pelos muitos aplicativos que usam interfaces (especialmente em ambientes virtuais), adicionando uma camada de controle extra que preserva a visualização de conteúdo sem interromper a interface esperada comportamentos.
[0027] Além disso, a solução é completamente dissociada dos métodos de entrada, preservando-os para integrações com outros subsistemas e funciona em uma ampla variedade de hardware da indústria, desde periféricos até dispositivos de ponta com requisitos mínimos.
Breve Descrição dos Desenhos [0028] Os objetivos e vantagens da presente invenção se tornarão mais evidentes através da descrição detalhada a seguir das imagens não limitativas apresentadas no final deste documento: A Figura 1 mostra a correlação negativa entre PPI e a distância da tela. A Figura 2 descreve como a distância de exibição limita o espaço da tela em dispositivos de realidade virtual. A Figura 3 descreve as proporções de conteúdos da janela de visualização em um smartphone com realidade virtual habilitada. A Figura 4 compara o espaço de janelas de visualização virtuais e telas flagships comuns. A Figura 5 ilustra efeitos de perspectiva indesejados sobre vistas de planos distantes em ambientes virtuais. A Figura 6 descreve como o gerenciamento ruim de janelas de visualização gera áreas de GUI ruins. A Figura 7 exemplifica ciclos do método de controle de animação tradicional e comportamentos resultantes. A Figura 8 exemplifica os ciclos do método de controle de animação e comportamentos resultantes de acordo com uma concretização da presente invenção. A Figura 9 descreve como um aplicativo de realidade virtual (VR) usa métodos secundários para ajustar os elementos de janela de visualização. A Figura 10 exemplifica os possíveis resultados da presente invenção na aplicação de realidade virtual (VR). A Figura 11 descreve como o aplicativo Bubble Interface requer que os usuários ajustem manualmente os elementos da janela de visualização. A Figura 12 exemplifica os possíveis resultados da presente invenção no aplicativo de Bubble Interface. A Figura 13 descreve como o foco de um usuário muda e múltiplas entradas não afetam os métodos de controle de animação. A Figura 14 exemplifica algumas animações com base em física comumente usadas empregando gráficos.
Descrição Detalhada da Invenção VISÃO GERAL
[0029] Conforme explicado acima, a presente invenção introduz um novo conjunto de métodos de controle de animação que fornecem controles aprimorados para Interfaces Gráficas de Usuário (GUI) em Ambientes Virtuais (em inglês, VEs). Eles funcionam em nuances finas para melhorar o controle do usuário sobre o design da informação sem, no entanto, ser perceptível ou adicionar métodos secundários para corrigir o conteúdo na tela. Usando essas animações, os desenvolvedores podem transportar métodos legados de dispositivos móveis para controlar telas 2D em ambientes virtuais com impactos mínimos sobre as eficiências do usuário e o sistema, mantendo a familiaridade dos comportamentos móveis no ambiente 3D.
[0030] Na descrição a seguir, ficará mais claro por que o contexto dos ambientes virtuais carece destes métodos especiais e como eles podem ser incorporados/ aplicados/ usados em uma pluralidade de experiências.
[0031] O Pixel Per Inch (em inglês, PPI), uma medida comum para a qualidade de tela na indústria eletrônica moderna, é essencial para entender alguns desafios que afetam atualmente as produções em ambientes virtuais. Colocando de forma simples, o PPI é uma medida de qualidade que deve ser aumentada de acordo com a proximidade de uma tela ao observador. Esta é uma configuração aceitável em virtude das capacidades oculares limitadas de capturar detalhes da imagem e quando o objeto de observação está colocado mais distante - dada uma distância fixa, os usuários tendem a ver imagens pixelizadas e menos detalhadas se o PPI não for alto o suficiente para suportar a qualidade padrão. A Figura 1 descreve alguns dos mais recentes dispositivos de exibição, tais como televisão (01), tablet (02) e smartphone (03), ilustrando como o PPI aumenta à medida que a distância para o olho diminui (04).
[0032] Com relação aos smartphones atuais que têm a Realidade Virtual (VR) habilitada, mesmo o PPI mais alto disponível não pode fornecer pixels suficientes para que as experiências virtuais tenham a mesma qualidade que um aplicativo móvel padrão pode ter. Isto se deve à natureza inerente dos dispositivos de VR, os quais são posicionados próximos ao olho humano, até um ponto em que o olho fica limitado não pelo espaço de exibição, mas pelo próprio campo de visão (em inglês, FOV). A Figura 2 ilustra isto ao mostrar que uma tela comum de Ambiente Virtual (06) com cerca de 100 graus de FOV pode fornecer quase o dobro do FOV (08) que o olho humano (07), o qual é de aproximadamente 55 graus.
[0033] Por esta razão, uma tela de smartphone habilitada para VR (09) precisa ser dividida ao meio primeiro - um lado para cada olho - e, então, ser dividida novamente em menos da metade (10) para se ajustar ao núcleo do olho (11) e visões periféricas (12), conforme ilustrado pela Figura 3. Em outras palavras, os dispositivos de VR frequentemente usam apenas uma fração da tela virtual disponível, em que a janela de visualização chamada mostra informações sobre o aplicativo central. O número de pixels restantes após duas operações de divisão, no entanto, é insuficiente para dar suporte ao padrão de qualidade móvel.
[0034] Menos PPI e menor resolução derivada adicionam novos desafios para o design de informação (ID) em ambientes virtuais, adicionando complexidade ao processo de migração de padrões de interação móvel para ambientes virtuais: a tela disponível é menor - suportando menos conteúdo - e muito limitada para fornecer detalhes. Conforme mencionado acima, isto também traz novas complicações para o paradigma de design digital maínstream dito como Flat Design (em inglês, FD), impactando em seu uso arrojado de tamanhos de fonte, espaços em branco e imagens de cartaz.
[0035] A única desvantagem adicional de trazer estruturas de design móveis sólidas e experimentadas para ambientes virtuais é que elas também podem ser ineficientes ao abordar tarefas como leitura de texto. Isto acontece em virtude da incompatibilidade natural dos intrincados glifos do texto em telas de menor densidade ao tentar construir a significação por meio de concatenação fina. Enquanto que a qualidade inferior tem um impacto sobre as tarefas de leitura, os possíveis volumes de conteúdo também diminuem em mais de metade quando se comparam ambientes virtuais com mobilidade padrão, um problema menos importante para composições de imagens, mas que ainda pode ser bastante complexo ao lidar com linhas de interfaces, caixas, preenchimentos e iconografia.
[0036] Os aplicativos de VR modernos geralmente operam com essa queda acentuada na quantidade e na qualidade de conteúdo, ampliando e dividindo elementos em várias janelas de visualização. Conforme exemplificado pela Figura 4, mesmo com um PPI alto, uma galeria padrão de imagens para realidade virtual (13) mostra apenas um quarto do total de imagens exibidas por um aplicativo móvel comum (14), com uma resolução de imagem que é reduzida até 8 vezes. Assim, ao reduzir volumes ou limitar detalhes, as exibições atuais para ambientes virtuais enfatizam importantes pontos de conflito que precisam ser resolvidos: um gerenciamento racional do espaço da janela de visualização, uma alta necessidade de agência do usuário quando de navegação e bons métodos de suporte para controle da GUI.
[0037] Deve ser notado que FOV e janela de visualização são conceitos diferentes para áreas de visualização do usuário na presente invenção: enquanto que o primeiro se refere à "câmeras do usuário", o último representa a porção do espaço virtual na qual os elementos da GUI estão colocados. Assim, enquanto o primeiro se move quando o usuário gira sua cabeça, o último permanece fixo no espaço até que o estado do sistema mude de outra forma.
[0038] Uma vez que muitos dispositivos do Ambiente Virtual fornecem um touchpad habilitado para gesto (através do fone de ouvido ou do controlador), provavelmente as áreas mais interessantes para migração estarão relacionadas a gestos de toque e métodos tais como tocar, arrastar, mover e deslizar através do controlador de jogo. No entanto, a maioria das operações de panorâmica geram áreas na interface nas quais as informações são cortadas ou parcialmente apresentadas em virtude de um efeito de mascaramento padrão nos limites da janela de visualização. Conforme demonstrado pela Figura 5, isto acontece naturalmente nos limites da tela de dispositivos móveis, porém, se não for mascarado para se ajustar ao FOV do olho (15) em ambientes virtuais, tendem a gerar uma perspectiva aguda (16) que dificulta a leitura do conteúdo.
[0039] A Figura 6 demonstra que, apesar de ser um método conhecido para telefones móveis, o mascaramento de áreas excedidas em um ambiente virtual reduzido (17) pode comprometer até um terço de seu conteúdo na janela de visualização em virtude de sua natureza limitada (18). Neste cenário, mesmo embora existam fortes padrões para sistemas móveis interativos, os gestos mencionados são menos eficientes para controlar as interfaces dentro das restrições de exibição de ambientes virtuais, requerendo constantemente a interferência manual do usuário ou métodos de controle adicionais para ajustar e evitar as áreas de GUI ruins. A busca de pesquisas relacionadas ao Ambiente Virtual para dispositivos mais leves, utilizáveis e modernos cria um obstáculo sólido a este desequilíbrio de exibição.
[0040] Este é precisamente o contexto no qual o método da presente invenção se refere: ele adiciona novas oportunidades de controle às animações de saída padrão das GUIs tradicionais, trabalhando em níveis sutis para apelar como não diferentes para o usuário final, ao mesmo tempo em que resolve completamente as áreas ruins através das janelas de visualização dos aplicativos VR/AR/MR. Por isso, tanto a familiaridade quanto a maturidade dos métodos de mobilidade são ativadas imediatamente para ambientes virtuais, lançando oportunidades de aprimoramentos para todas as aplicações virtuais existentes e futuras.
MÉTODOS
[0041] Para funcionar corretamente, o método da presente invenção pressupõe a disponibilidade de alguns componentes do sistema: • Método de entrada: gestos do usuário expressos por meio de uma sequência de eventos que levam a alterações de valor ao longo do tempo; • Métodos de saída: animações de GUI derivadas dos valores coletados através de entrada que comunicam as alterações no estado atual do sistema; • Ciclo de animação: funções matemáticas que atualizam a velocidade/posição atual em novos valores de velocidade/posição ao longo do tempo; • Modelo físico: ciclo de animação específico que abstrai conceitos (por exemplo, atrito, amortecimento, tensão, elasticidade, peso) que mudam a velocidade/posição ao longo do tempo para simular movimentos naturais.
[0042] O método da presente invenção compreende rotinas para controlar os ciclos de animação de saída que são desencadeados seguindo métodos de entrada reconhecidos pela indústria (por exemplo, gestos de toque, apertar botões). Estas animações geralmente usam um modelo com base em física que compreende um ciclo contínuo para emular comportamentos físicos e melhorar o desempenho do usuário. Quando o método de entrada comunica pelo menos dois valores distintos em um dado espaço de tempo, estes valores são enviados para o sistema por meio de uma abstração denominada eventos, a qual é a última manifestação do processo de entrada do usuário. A partir deste momento, o método da presente invenção opera usando os valores do método de entrada para modular uma animação de saída empregada pela GUI.
[0043] Após receber uma nova velocidade a partir da entrada do usuário, o comportamento tradicional dos ciclos de física é aplicar tal velocidade à interface de usuário usando uma iteração, de modo que o resultado da iteração atual seja aplicado ao próximo até convergir para um valor de velocidade estável. Um exemplo de comportamento com base em física é uma GUI que desacelera a velocidade atual de seus elementos para imitar um atrito estático ao aplicar uma função de amortecimento para suavizar as alterações de velocidade e criar um movimento mais intuitivo. A Figura 7 demonstra este modelo tradicional para animar interfaces de acordo com as entradas do usuário. A informação sobre evento (19) é, tipicamente, enviada para um sistema que usa um modelo físico (20) para gerar a animação de contrapartida que é executada até que o ciclo de feedback termine.
[0044] Em tal exemplo, um fator de desaceleração Df e uma função de amortecimento Fd(x) podem compor o que é considerado como um modelo com base em física tradicional de movimentação de GUI. Isto significa que, para cada ciclo, uma velocidade inicial Vi é transformada pela seguinte equação V(i+1) = Fd (Df * Vi). A implementação mais conhecida deste tipo de comportamento é uma função similar a um amortecedor de mola que altera gradualmente o valor atual da velocidade para o próximo valor resultante do fator de desaceleração. Esta função suaviza a variação na velocidade para evitar mudanças abruptas.
[0045] Muitas estruturas têm este tipo de GUI com base em física. Para ilustrar um possível cenário para nossos novos métodos de controle, podemos usar o Unity 5.6 UI System - uma implementação de GUI com base em física de código aberto - que fornece um componente ScrollRect (uma janela de visualização geral para rolagem de itens da interface do usuário). Ele permite a configuração de parâmetros tais como sensibilidade, inércia, elasticidade, dentre outros. Estes parâmetros permitem a execução de movimentos similares aos disponíveis em smartphones hoje em dia, o que está de acordo com as leis da física até certo ponto. Tal situação exemplificativa permite que a questão da presente invenção estenda o movimento padrão para o comportamento da interface do usuário, sem a necessidade de substituir os ciclos de animação da interface do sistema ou da interface gráfica integrada. Neste exemplo, mesmo quando se usa o sistema Unity UI externo, a velocidade dos itens em um ScrollRect pode ser ajustada por meio do método da presente invenção através de um script anexado ao objeto alvo.
[0046] Quando sincronizados com os valores do método de entrada, os ciclos de animação de saída comuns, tal como aqueles do Unity, definirão uma alteração equivalente na GUI de sistema a qual, muitas vezes, não estará de acordo com a organização de janela de visualização perfeita. Este fenômeno comum gera áreas mal utilizadas na interface que o método da presente invenção pode controlar. Para isto, a implementação atual precisa receber uma função externa CF(x) - daqui em diante dita como função de correção (CF) - para corrigir as posições ruins as quais, uma vez fornecida uma posição x, sugerirá um Δχ que conserte a posição atual x para próxima posição x + Δχ, onde a situação de área ruim não ocorre. Um exemplo de função de correção pode ser usado para encaixar linhas de uma lista dentro dos limites da janela de visualização por um módulo de posição atual por tamanho de linha S, definido por CF(x)= x- [x/S]*S. Com este cenário em mãos (GUI + função de correção), o método da presente invenção adquire os recursos necessários para funcionar.
[0047] Em geral, o método da presente invenção opera ao adaptar um ciclo de animação externo para alterar seus valores de velocidade/posição antes de ser chamado e/ou chamado novamente para realizar as alterações durante o tempo da animação. Para fazer isto, o método da presente invenção antecipa a posição final da animação quando a velocidade se torna zero e, então, calcula uma força corretiva a ser aplicada durante toda a animação de saída, a fim de definir a posição final para aquela definida pelo CF - isto é feito enquanto se preserva a aparência da animação do modelo físico de escolha ao longo do processo.
[0048] Para conseguir isto, o método de controle da presente invenção define duas rotinas auxiliares codependentes: • Rotina de projeção, a qual faz uso de um modelo invertido criado especificamente para antecipar posições finais e gerar fatores de mudança para a animação usada através dos estados atual de velocidade e posição; • Rotina adaptativa: a qual pega o fator resultante da rotina de projeção para modular a nova velocidade/posição que usa o modelo físico de escolha para garantir a posição desejada após o término do ciclo de animação.
[0049] O método de controle começa a partir de uma rotina de projeção que prevê posições futuras. Ao prever uma posição futura Xf, é obtido um Axf da nossa função de correção CF(Xf), isto é, é definida qual diferença na posição fixa o resultado do movimento atual. A partir do Axf se obtém um Mf: um fator de modulação que pode alterar a entrada atual e fazer com que o sistema de GUI venha a convergir para uma posição mais desejável, assim, evitando as áreas ruins.
[0050] A seguinte rotina adaptativa pode ser implementada pelo cálculo da posição de gradiente, a qual é a diferença entre as posições desejada e atual. Isto significa que a presente rotina adaptativa é um fator de correção Mf que move a GUI para longe de áreas ruins. Então, no início do ciclo atual (também conhecido como iteração de ciclo de GUI atual), a velocidade Vi é modulada para se tornar Mf * Vi, uma alteração aquele desloca o movimento GUI para a posição ajustada pelo CF.
[0051] Na Figura 8, o ciclo é acionado por um método de entrada que é interpretado para gerar uma velocidade inicial (21). Esta velocidade é, então, combinada com a posição atual da GUI através da rotina de Projeção (22) a qual, então, estima a posição final projetada (quando a velocidade chegará a zero) e gera um fator que é enviado para a rotina Adaptativa (23) para calcular a nova posição modulada/valores de velocidade que serão finalmente passados para a iteração do modelo físico (24) para continuar a animação. A iteração do modelo físico altera o estado atual do sistema gerando um novo conjunto de valores de posição/velocidade (25), a partir do qual o método de controle da presente invenção define dois comportamentos distintos para continuar: Previsão Progressiva (26) e Modulação Precisa (27).
[0052] O método de Previsão Progressiva opera com uma rotina de Projeção mais simples, tal como uma simplificação linear do modelo físico que é executado em cada etapa da animação, ficando cada vez mais precisa conforme o ciclo de animação se aproxima de sua posição final. Por outro lado, a Modulação Precisa é executada apenas uma vez para cada iteração de animação, usando uma rotina de projeção com um modelo invertido altamente preciso que calcula desvios mínimos para o modelo físico de escolha no início de cada animação.
[0053] Para prever a posição futura, estes métodos fornecem um modelo inverso do comportamento de movimento da GUI. Enquanto que a implementação incorporada no sistema do ciclo de GUI com base em física atualiza continuamente a velocidade inicial Vi gerada pela interação do usuário -assim, fornecendo uma velocidade com base na física V± +1 para cada quadro sucessivo -, o modelo inverso do método da y? ν'- presente invenção prevê a soma das velocidades :_± 1 que seriam geradas pelo sistema da GUI durante K iterações que fornece uma entrada de velocidade V±. Como um exemplo, dado um modelo de GUI com base em física externa composto por atrito Df e função de amortecimento Fd(x), é definido um modelo inverso simplificado que lineariza o modelo atual da GUI, considerando apenas o fator de atrito Df. Neste modelo simplificado, cada iteração geraria uma V1+1= Df * V±. Dado um K grande o suficiente (considerando K como o número de iterações) e como estamos desacelerando, podemos obter uma velocidade próxima de zero, isto é, a velocidade de convergência. A mudança de posição deste sistema de GUI pode ser considerada como a soma de uma progressão geométrica, em que o fator D é a taxa de progressão e Vo é a velocidade gerada pela interação do usuário: [0054] A Previsão Progressiva e Modulação Precisa podem permitir controles de animação que funcionam de modo silencioso e eficaz para aprimorar o gerenciamento da janela de visualização, ao mesmo tempo em que sustenta uma interatividade intensa com o usuário e conformidade total com os métodos móveis maduros para controle da GUI. A experiência aprimorada é tão sutil que é possível que muitos usuários não consigam notar que o sistema está realmente reagindo de maneira diferente para repetições de um mesmo gesto ou entrada.
[0055] A Figura 9 demonstra o caso de uso de um aplicativo Gallery (VR), o qual é um exemplo de boa aplicabilidade do método da presente invenção. O aplicativo tradicionalmente ajusta as imagens apresentadas à janela de visualização ao final de cada entrada de toque - depois que a primeira animação de feedback termina em resposta ao gesto do usuário (28), uma segunda animação é automaticamente acionada (29) para fazer as correções necessárias na janela de visualização. Embora tenha sucesso em melhorar a legibilidade quando termina, ele faz isto às custas de uma animação adicional e involuntária que frequentemente acontece na direção oposta aos comandos do usuário, deste modo, comprometendo a funcionalidade, intuição e continuidade de leitura, design de informação e conforto visual. Esta segunda animação contra intuitiva se torna necessária em virtude da ineficiência dos padrões móveis de fornecer as exibições de VE restritas. O método da presente invenção - conforme ilustrado na Figura 10 - conseguiu controlar desde a primeira animação e contornar a necessidade daquela segunda corretiva, assegurando um único movimento para o destino final (30) sem romper com o modelo físico escolhido, funcionalidade da GUI ou expectativa do usuário.
[0056] Ajustar o conteúdo à visualização não é apenas uma questão de layouts de grade, como o aplicativo Gallery. A Figura 11 mostra outro exemplo - o aplicativo Bubble Interface - o qual usa uma abordagem diferente para um problema similar: ao deslizar, os usuários podem se mover (ou a câmera) de volta para "bolhas de imagem" que estão flutuando no espaço. O problema acontece quando o gesto de deslizar é muito forte (31) e os usuários acabam ficando muito próximos das bolhas (32), até um ponto em que terão que deslizar para trás (33) para fixar sua posição e adaptar as bolhas desejadas ao FOV limitado da VR. Esta é precisamente a situação na qual o método da presente invenção pode ajudar novamente: conforme ilustrado na Figura 12, ele é flexível o bastante para fornecer aos desenvolvedores os controles necessários para evitar a aproximação excessiva nas bolhas, modelando silenciosamente o destino final do usuário até uma distância ideal (34) em uma animação de saída única e natural (35), e também elimina a necessidade de tarefas secundárias, gestos ou animações para corrigir os resultados da animação e chegar a um bom ponto de visualização.
[0057] É importante enfatizar o design por trás do método da presente invenção: ele é proposto como uma camada extra de controles de animação desanexados que oferecem flexibilidade completa para uma variedade de animações e sistemas de ambiente virtual. Sempre que o objetivo é aprimorar a eficiência das entradas do usuário com melhor gerenciamento de itens da janela de visualização, nossos métodos podem ser usados para controlar animações de grades para imagens, layouts, movimentos de câmera, elementos virtuais, efeitos e muito mais. Quando aplicado a entradas e gestos frequentes do usuário, o método da presente invenção confere aprimoramentos significativos à experiência do usuário como um todo.
[0058] O método de controle da presente invenção para gerar animações é independente do método de entrada que está sendo usado, até o nível de feedback de evento: 1. Um dispositivo pode ter vários métodos de entrada (por exemplo, posição do joystick/fone de ouvido, rotação, pads e botões); 2. Um método de entrada pode gerar vários fluxos de eventos (por exemplo, deslizes, arrastes, compressão longa); 3. Cada fluxo de eventos pode acionar um ou mais feedbacks de GUIs (por exemplo, animação de grade e movimento de câmera); 4. Qualquer animação de feedback da GUI pode ser um alvo individual dos métodos de controle.
[0059] Essa flexibilidade granular permite que os desenvolvedores direcionem qualquer objeto em movimento com nossos métodos para obter efeitos controlados, tais como as animações de grade do aplicativo Gallery (VR), conforme ilustrado nas Figuras 9 e 10, ou os movimentos de câmera do Bubble Interface, conforme ilustrado nas Figuras 11 e 12, ou ainda outra implementação para melhorar as animações de feedback e a experiência geral do usuário. A independência do nível de feedback significa, em outras palavras, que eventos simultâneos de diferentes fontes de entrada podem ser capturados e controlados individualmente ao mesmo tempo, sem que um interfira com o outro. Como um exemplo, a Figura 13 ilustra que, enquanto uma animação de grade está sendo controlada através do método (36) da presente invenção, um usuário pode buscar um menu lateral (37) e mesmo deslizar através da lista de menu sem interromper o comportamento de grade anterior. A lista de menus pode até receber outra instância de nossos controles de animação, sendo executada com total independência da grade. Cada controle de animação pode funcionar de acordo com diferentes modelos físicos para suportar saídas de GUI padrão (como as equações de atenuação comumente usadas ilustradas na Figura 14), bem como modelos físicos mais avançados, como o Spring/RK4.
[0060] Com esta implementação desacoplada, o método da presente invenção pode fornecer múltiplas camadas de controle para evitar áreas de GUI ruins sem interromper ar animações, gestos e funcionalidades de grau industrial agora padronizados por dispositivos móveis. Eles fazem isto ao mesmo tempo em que evitam a necessidade de métodos complementares para ajustar ainda mais os elementos da janela de visualização e/ou corrigir o aumento excessivo (overshootíng) indesejado nas últimas fases da animação, fornecendo uma resposta de saída direta e discreta.
[0061] Este método de controle é especialmente importante ao usar gestos para comandar o comportamento da GUI em ambientes virtuais, mas também pode ser útil em outras telas/situações restritas. Além disso, em virtude de sua implementação agnóstica, a presente invenção também pode ser aplicada a outros métodos de controle em telas maiores se um desenvolvedor encontrar um caso de cenário de uso adequado.
[0062] Embora a presente descrição tenha sido descrita em relação a determinadas concretizações preferidas, deve se pretende limitar a descrição a tais concretizações particulares. Pelo contrário, pretende-se abranger todas as alternativas, modificações e equivalências possíveis dentro do espírito e escopo da descrição, conforme definido pelas reivindicações anexas.
REIVINDICAÇÕES

Claims (10)

1. Processo para controlar o processo de animação em execução em dispositivos eletrônicos que têm um processador adaptado para executar instruções armazenadas em uma memória, o método caracterizado pelo fato de que compreender as etapas de: interpretar um método de entrada para gerar uma velocidade inicial (21) por meio de valores de eventos; executar uma rotina de projeção (22) usando a velocidade inicial (21) e uma posição atual da GUI para gerar um fator; executar uma rotina adaptativa (23) usando o fator para calcular um novo valor modulado de posição/velocidade; executar uma iteração de modelo físico (24) usando o valor de posição/velocidade modulado para gerar um valor de posição/velocidade atualizado (25); atualizar a interface gráfica do usuário com o valor atualizado de posição/velocidade (25); executar os métodos de controle a partir do novo conjunto de valores de posição/velocidade (25), em que os métodos de controle compreendem: um método de previsão progressiva opera com uma rotina de projeção mais simples (22), como uma simplificação linear da iteração do modelo físico (24); ou um método de modulação preciso que é executado apenas uma vez para cada entrada recebida usando uma rotina de projeção (22) com um modelo invertido altamente preciso que calcula, através da rotina adaptativa (23), desvios mínimos para a iteração modelo físico (24) de escolha no início de cada animação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que fornecer um modelo inverso do comportamento de movimento da GUI.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o modelo inverso prever a Σ^- E soma das velocidades 1_ que seriam geradas pelo sistema GUI durante as iterações K, dada uma velocidade na entrada V±.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a mudança de posição de tal sistema de GUI pode ser considerada como a soma de uma progressão geométrica, em que o fator Df é a velocidade de progressão e Vo é a velocidade gerada pela interação do usuário:
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que assegura um único movimento até o destino final (30) sem romper o modelo físico escolhido, a funcionalidade da GUI ou a expectativa do usuário.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que, considerando a forma e o estado do aplicativo, modelar a posição final de um elemento interativo para uma distância ideal (34), realizando uma animação de saída única e natural (35) .
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um dispositivo pode ter múltiplos métodos de entrada.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o método de entrada pode gerar múltiplos fluxos de eventos.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que cada fluxo de eventos poder desencadear um ou mais feedbacks da GUI.
10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que qualquer animação de feedback da GUI poder ser visada individualmente pelos métodos de controle.
BR102018017046-5A 2018-08-20 2018-08-20 Método para controle de execução do processo de animação em dispositivos eletrônicos BR102018017046A2 (pt)

Priority Applications (2)

Application Number Priority Date Filing Date Title
BR102018017046-5A BR102018017046A2 (pt) 2018-08-20 2018-08-20 Método para controle de execução do processo de animação em dispositivos eletrônicos
US16/376,591 US11093117B2 (en) 2018-08-20 2019-04-05 Method for controlling animation's process running on electronic devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BR102018017046-5A BR102018017046A2 (pt) 2018-08-20 2018-08-20 Método para controle de execução do processo de animação em dispositivos eletrônicos

Publications (1)

Publication Number Publication Date
BR102018017046A2 true BR102018017046A2 (pt) 2020-03-10

Family

ID=69523987

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102018017046-5A BR102018017046A2 (pt) 2018-08-20 2018-08-20 Método para controle de execução do processo de animação em dispositivos eletrônicos

Country Status (2)

Country Link
US (1) US11093117B2 (pt)
BR (1) BR102018017046A2 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD1008309S1 (en) * 2021-06-25 2023-12-19 Hes Ip Holdings, Llc Display panel or portion thereof with a mixed reality graphical user interface
USD1008308S1 (en) * 2021-06-25 2023-12-19 Hes Ip Holdings, Llc Display panel or portion thereof with a mixed reality graphical user interface

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495566A (en) 1994-11-22 1996-02-27 Microsoft Corporation Scrolling contents of a window
US8271898B1 (en) 2009-06-04 2012-09-18 Mellmo Inc. Predictive scrolling
US8624925B2 (en) 2009-10-16 2014-01-07 Qualcomm Incorporated Content boundary signaling techniques
US9164670B2 (en) 2010-09-15 2015-10-20 Microsoft Technology Licensing, Llc Flexible touch-based scrolling
US9182897B2 (en) 2011-04-22 2015-11-10 Qualcomm Incorporated Method and apparatus for intuitive wrapping of lists in a user interface

Also Published As

Publication number Publication date
US20200057540A1 (en) 2020-02-20
US11093117B2 (en) 2021-08-17

Similar Documents

Publication Publication Date Title
US11520477B2 (en) Augmented reality scrollbar
TWI827633B (zh) 具有廣泛使用性的三維圖形使用者介面的系統及方法與對應的可讀式媒體
Jota et al. How fast is fast enough? a study of the effects of latency in direct-touch pointing tasks
CN109643212B (zh) 3d文档编辑系统
Liu et al. Gunslinger: Subtle arms-down mid-air interaction
Ng et al. Designing for low-latency direct-touch input
JP6659644B2 (ja) 応用素子の代替的グラフィック表示の事前の生成による入力に対する低レイテンシの視覚的応答およびグラフィック処理ユニットの入力処理
AU2017200358A1 (en) Multiplatform based experience generation
US20170263033A1 (en) Contextual Virtual Reality Interaction
Shah et al. A survey on human computer interaction mechanism using finger tracking
KR102138412B1 (ko) 증강현실 및 가상현실 내 투영기하를 사용한 3d 윈도우 관리 기법
WO2022218146A1 (en) Devices, methods, systems, and media for an extended screen distributed user interface in augmented reality
BR102018017046A2 (pt) Método para controle de execução do processo de animação em dispositivos eletrônicos
CN111684402A (zh) 触摸输入表面上的触觉效果
Kim et al. AR Lamp: interactions on projection-based augmented reality for interactive learning
AU2014286961A1 (en) Reducing control response latency with defined cross-control behavior
JP7252252B2 (ja) 手の位置に基づいたモーダル制御の開始
Xing et al. User interface research in web extended reality
Hartmann Challenges in Developing User-Adaptive Intelligent User Interfaces.
Gerhard et al. Virtual reality usability design
Casiez et al. Towards VE that are more closely related to the real world
Shen et al. Immersive haptic eye tele-surgery training simulation
Walker Improving everyday computing tasks with head-mounted displays
WO2019080870A1 (zh) 交互界面的显示方法和装置、存储介质、电子装置
Van de Broek et al. Perspective Chapter: Evolution of User Interface and User Experience in Mobile Augmented and Virtual Reality Applications

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]