BRPI1012091B1 - método implementado por computador para combinar movimentos, meio de armazenamento legível por computador e sistema para combinar movimentos - Google Patents
método implementado por computador para combinar movimentos, meio de armazenamento legível por computador e sistema para combinar movimentos Download PDFInfo
- Publication number
- BRPI1012091B1 BRPI1012091B1 BRPI1012091-2A BRPI1012091A BRPI1012091B1 BR PI1012091 B1 BRPI1012091 B1 BR PI1012091B1 BR PI1012091 A BRPI1012091 A BR PI1012091A BR PI1012091 B1 BRPI1012091 B1 BR PI1012091B1
- Authority
- BR
- Brazil
- Prior art keywords
- user
- movement
- model
- virtual character
- recorded
- Prior art date
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
- A63F13/428—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—Three-dimensional [3D] animation
- G06T13/40—Three-dimensional [3D] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—Two-dimensional [2D] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/251—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/23—Recognition of whole body movements, e.g. for sport training
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/215—Input arrangements for video game devices characterised by their sensors, purposes or types comprising means for detecting acoustic signals, e.g. using a microphone
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/812—Ball games, e.g. soccer or baseball
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/816—Athletics, e.g. track-and-field sports
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/833—Hand-to-hand fighting, e.g. martial arts competition
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/1087—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5593—Details of game data or player data management involving scheduling aspects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/69—Involving elements of the real world in the game world, e.g. measurement in live races, real video
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8005—Athletics
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8011—Ball
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
método implementado por computador para combinar movimentos, meio de armazenamento legível por computador e sistema para combinar movimentos um personagem virtual, tal como um objeto na tela, um avatar, um personagem na tela, ou similar, pode ser animado usando um movimento em tempo real de um usuário e um movimento prégravado. por exemplo, um movimento em tempo real de um usuário pode ser capturado e um movimento pré-gravado, tal como um movimento pré-gravado gerado por um artista, um movimento pré-gravado do usuário, e/ou uma transformação programaticamente controlada pode ser recebido. o movimento em tempo real pode então ser aplicado a uma primeira parte de um personagem virtual e o movimento prégravado pode ser aplicado a uma segunda parte do personagem virtual, de modo que o personagem virtual possa ser animado com uma combinação dos movimentos em tempo real e pré-gravados.
Description
Relatório Descritivo da Patente de Invenção para “MÉTODO IMPLEMENTADO POR COMPUTADOR PARA COMBINAR MOVIMENTOS, MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR E SISTEMA PARA COMBINAR MOVIMENTOS” ANTECEDENTES DA INVENÇÃO
[0001] Muitos aplicativos de computação tais como jogos de computador, aplicativos multimídia, entre outros, incluem avatares ou personagens que são animados usando técnicas típicas de captura de movimento. Por exemplo, durante o desenvolvimento de um jogo de golfe, um golfista profissional pode ser levado a um estúdio que possui equipamento de captura de movimento incluindo, por exemplo, uma pluralidade de câmeras direcionadas a um ponto específico no estúdio. O golfista profissional pode então vestir um traje de captura de movimento que possui uma pluralidade de indicadores de ponto que podem ser configurados e rastreados por câmeras de modo que as câmeras possam capturar, por exemplo, os movimentos do golfista profissional. Os movimentos podem então ser aplicados a um avatar ou personagem durante o desenvolvimento do jogo de golfe. Após o término do jogo de golfe, o avatar ou personagem pode então ser animado com movimentos do golfista profissional durante a execução do jogo. Infelizmente, as técnicas convencionais de captura de movimento são caras, limitadas ao desenvolvimento de um aplicativo específico e não incluem movimentos associados a um jogador ou usuário real do aplicativo.
SUMÁRIO
[0002] São revelados aqui sistemas e métodos para combinar animações. Por exemplo, em uma concretização, um movimento em tempo real de um usuário pode ser capturado e um movimento pré-gravado, tal como um movimento pré-gravado gerado por um artista, um movimento pré-gravado do usuário, e/ou uma transformação pro-gramaticamente controlada pode ser recebido. O movimento em tempo real pode então ser aplicado a uma primeira parte de um personagem virtual e o movimento pré-gravado pode ser aplicado a uma segunda parte do personagem virtual, de modo que o personagem virtual possa ser animado com uma combinação dos movimentos em tempo real e pré-gravados. De acordo com uma concretização, o movimento em tempo real e/ou o movimento pré-gravado podem ser aplicados ao personagem virtual em resposta ao recebimento de um gesto do usuário que pode ser associado a um comando de animação. Além disso, o personagem virtual pode ter sido animado com uma combinação de movimentos pré-gravados, tal como um movimento pré-gravado do usuário e uma animação pré-gravada gerada por um artista, por exemplo, mediante a aplicação do movimento pré-gravado do usuário à primeira parte do personagem virtual e a aplicação da animação pré-gravada gerada por um artista à segunda parte do personagem virtual. [0003] Este Sumário é apresentado para introduzir uma seleção de conceitos em uma forma simplificada que são descritos em detalhes a seguir na Descrição Detalhada. O presente Sumário não tem a intenção de identificar aspectos cruciais ou essenciais da matéria reivindicada e não deve ser usado para limitar o âmbito da matéria reivindicada. Além do mais, a matéria reivindicada não se limita a implementações que resolvem parte ou todas as desvantagens mencionadas em qualquer parte desta revelação.
DESCRIÇÃO RESUMIDA DOS DESENHOS
[0004] As FIGs. 1A e 1B ilustram uma concretização exemplificati-va de um sistema de reconhecimento, análise e rastreamento de alvo com um usuário jogando um jogo.
[0005] A FIG. 2 ilustra uma concretização exemplificativa de um dispositivo de captura que pode ser usado em um sistema de reco- nhecimento, análise e rastreamento de alvo.
[0006] A FIG. 3 ilustra uma concretização exemplificativa de um ambiente de computação que pode ser usado para interpretar um ou mais gestos em um sistema de reconhecimento, análise e rastreamento de alvo e/ou animar personagem virtual exibido por um sistema de reconhecimento, análise e rastreamento de alvo.
[0007] A FIG. 4 ilustra outra concretização exemplificativa de um ambiente de computação que pode ser usado para interpretar um ou mais gestos em um sistema de reconhecimento, análise e rastreamen-to de alvo e/ou animar personagem virtual exibido por um sistema de reconhecimento, análise e rastreamento de alvo.
[0008] A FIG. 5 representa um fluxograma de um método ilustrativo para a geração e aplicação de um arquivo de captura de movimento de um usuário.
[0009] A FIG. 6 ilustra uma concretização exemplificativa de uma imagem que pode incluir um alvo humano associado a um usuário. [00010] A FIG. 7 ilustra uma concretização exemplificativa de um modelo que pode ser gerado para um alvo humano associado a um usuário.
[00011] As FIGs. 8A-8B ilustram uma concretização ilustrativa de um modelo associado a um usuário, que pode ser capturado em variados pontos no tempo em um arquivo de captura de movimento.
[00012] As FIGs. 9A-9B ilustram uma concretização ilustrativa de um modelo para um personagem virtual que pode ser animado com base no modelo em variados pontos no tempo.
[00013] As FIGs. 10A-10B ilustram uma concretização ilustrativa de um personagem virtual que pode ser animado.
[00014] As FIGs. 11A-11F ilustram outra concretização ilustrativa de um personagem virtual que pode ser animado.
[00015] As FIGs. 12A-12B ilustram outra concretização ilustrativa de um personagem de jogo virtual que pode ser animado. DESCRIÇÃO DETALHADA DAS CONCRETIZAÇÕES ILUSTRATIVAS [00016] Como será descrito neste documento, um usuário pode controlar um aplicativo sendo executado em um ambiente de computação, tal como um console de jogo, um computador, entre outros, e/ou pode animar um personagem virtual, tal como um avatar, um personagem na tela, um objeto na tela, ou similar, mediante a realização de um ou mais gestos e/ou movimentos. De acordo com uma concretização, os gestos e/ou movimentos podem ser recebidos, por exemplo, por um dispositivo de captura. Por exemplo, o dispositivo de captura pode capturar uma imagem com profundidade de uma cena. Em uma concretização, o dispositivo de captura pode determinar se um ou mais alvos ou objetos na cena correspondem a um alvo humano, tal como o usuário. Cada alvo ou objeto que corresponde a um alvo humano pode então ser varrido para gerar um modelo tal como um modelo esquelético, modelo de malha humano, ou similar, associado a ele. Em uma concretização ilustrativa, o modelo pode ser rastreado, um arquivo de captura de movimento do modelo rastreado pode ser gerado, um personagem ou objeto virtual associado ao modelo do usuário pode ser renderizado, um personagem ou objeto virtual pode ser animado com movimentos em tempo real associados ao modelo do usuário e/ou a movimentos pré-gravados, e/ou pode-se determinar quais controles serão realizados em um aplicativo em execução no ambiente de computador baseado, por exemplo, no modelo rastreado.
[00017] As FIGs. 1A e 1B ilustram uma concretização exemplificati-va de uma configuração de um sistema de reconhecimento, análise e rastreamento de alvo 10 com um usuário 18 jogando um jogo de boxe. Em uma concretização ilustrativa, o sistema de reconhecimento, análise e rastreamento de alvo 10 pode ser usado para reconhecer, analisar e/ou rastrear um alvo humano tal como o usuário 18.
[00018] Como ilustra a FIG. 1A, o sistema reconhecimento, análise e rastreamento de alvo 10 pode incluir um ambiente de computação 12. O ambiente de computação 12 pode ser um computador, um sistema de jogo ou similar. De acordo com a concretização ilustrativa, o ambiente de computação 12 pode incluir componentes de hardware e/ou componentes de software de modo que o ambiente de computação 12 possa ser usado para executar aplicações tais como aplicativos de jogos, outros aplicativos além de jogos ou similares. Em uma concretização, o ambiente de computação 12 pode incluir um processador tal como um processador padronizado, um processador especializado, um microprocessador, ou similar, que pode executar instruções que incluem, por exemplo, instruções para capturar um movimento em tempo real de um usuário, receber um movimento pré-gravado, aplicar o movimento em tempo real a uma primeira parte de um objeto virtual e o movimento pré-gravado a uma segunda parte do objeto virtual, ou qualquer outra instrução adequada, que será descrita em mais detalhes abaixo.
[00019] Como ilustra a FIG. 1A, o sistema de reconhecimento, análise e rastreamento de alvo 10 pode, além disso, incluir um dispositivo de captura 20. O dispositivo de captura 20 pode ser, por exemplo, uma câmera que pode ser usada para monitorar visualmente um ou mais usuários, tal como o usuário 18, de modo que os gestos e/ou movimentos realizados por um ou mais usuários possam ser capturados, analisados e rastreados para realizar um ou mais controles ou ações dentro de um aplicativo e/ou animar um personagem virtual, tal como um avatar, um personagem na tela, um objeto na tela, ou similar, como será descrito em mais detalhes abaixo.
[00020] De acordo com uma concretização, o sistema de reconhecimento, análise e rastreamento de alvo 10 pode ser conectado a um dispositivo audiovisual 16 tal como uma televisão, um monitor, uma televisão de alta definição (HDTV), ou similar, que pode fornecer gráficos visuais e/ou áudio do jogo ou aplicativo a um usuário, tal como o usuário 18. Por exemplo, o ambiente de computação 12 pode incluir um adaptador de vídeo, tal como uma placa de vídeo e/ou adaptador de áudio, tal como uma placa de som, que pode fornecer sinais audiovisuais associados ao aplicativo do jogo, a um outro aplicativo que não seja de jogo, ou similar. O dispositivo audiovisual 16 pode receber os sinais audiovisuais do ambiente de computação 12 e pode então emitir os gráficos e/ou áudio do jogo ou aplicativo associados aos sinais audiovisuais ao usuário 18. De acordo a uma concretização, o dispositivo audiovisual 16 pode ser conectado ao ambiente de computação 12 por meio, por exemplo, de um cabo S-Video, um cabo coaxial, um cabo HDMI, um cabo DVI, um cabo VGA ou similar.
[00021] Como ilustrado nas FIGs. 1A e 1B, o sistema de reconhecimento, análise e rastreamento de alvo 10 pode ser usado para reconhecer, analisar e/ou rastrear um alvo humano tal como o usuário 18. Por exemplo, o usuário 18 pode ser rastreado usando o dispositivo de captura 20, de modo que os gestos e/ou movimentos do usuário 18 possam ser capturados para animar um personagem virtual, tal como um avatar, um personagem na tela, um objeto na tela, ou similar, e/ou possam ser interpretados como controles que podem ser usados para afetar o aplicativo sendo executado pelo ambiente de computação 12. Assim, de acordo com uma concretização, o usuário 18 pode mover o corpo para controlar o aplicativo e/ou animar o objeto virtual.
[00022] Como ilustrado nas FIGs. 1A e 1B, em uma concretização ilustrativa, o aplicativo sendo executado no ambiente de computação 12 pode ser um jogo de boxe que o usuário 18 pode estar jogando. Por exemplo, o ambiente de computação 12 pode usar o dispositivo audiovisual 16 para fornecer uma representação visual de um boxeador adversário 38 ao usuário 18. O ambiente de computação 12 pode também usar o dispositivo audiovisual 16 para fornecer uma representação visual de um avatar do jogador 40 que o usuário 18 pode controlar com seus movimentos. Por exemplo, como ilustrado na FIG. 1B, o usuário 18 pode dar um soco no espaço físico para fazer com que o avatar do jogador 40 dê um soco no espaço do jogo. Assim, de acordo com a concretização ilustrativa, o ambiente de computação 12 e o dispositivo de captura 20 do sistema de reconhecimento, análise e ras-treamento de alvo 10 podem ser usados para reconhecer e analisar o soco do usuário 18 no espaço físico de modo que o soco seja interpretado como um controle de jogo do avatar do jogador 40 no espaço do jogo e/ou o movimento do soco possa ser usado para animar o avatar do jogador 40 no espaço do jogo.
[00023] Outros movimentos do usuário 18 podem também ser interpretados como outros controles ou ações e/ou usados para animar o avatar do jogador, como controles para balançar, pender para um lado, movimentar-se rapidamente, bloquear, dar um jab, ou desferir uma variedade de socos com diferentes forças. Além do mais, alguns movimentos podem ser interpretados em controles que servem para outras finalidades além de controlar o avatar do jogador 40. Por exemplo, o jogador pode usar movimentos para terminar, pausar ou salvar um jogo, escolher um nível, ver recordes, se comunicar com um amigo, etc. Adicionalmente, uma amplitude de movimento total do usuário 18 pode estar disponível e ser usada e analisada de qualquer forma ou maneira adequada para interagir com o aplicativo.
[00024] Nas concretizações ilustrativas, o alvo humano, tal como o usuário 18, pode ter um objeto. Em tais concretizações, o usuário de um jogo eletrônico pode estar segurando um objeto, de modo que os movimentos do jogador e do objeto possam ser usados para ajustar e/ou controlar parâmetros do jogo. Por exemplo, o movimento de um jogador segurando uma raquete pode ser rastreado e utilizado para controlar uma raquete mostrada na tela em um jogo de esportes eletrônico. Em outra concretização ilustrativa, o movimento de um jogador segurando um objeto pode ser rastreado e utilizado para controlar uma arma mostrada na tela em um jogo de combate eletrônico.
[00025] De acordo com outras concretizações ilustrativas, o sistema de reconhecimento, análise e rastreamento de alvo 10, pode, além disso, ser usado para interpretar os movimentos do alvo como controles do sistema operacional e/ou do aplicativo que estão fora do âmbito do jogo. Por exemplo, praticamente qualquer aspecto controlável de um sistema operacional e/ou aplicativo pode ser controlado pelos movimentos do alvo, tal como o usuário 18.
[00026] A FIG. 2 ilustra uma concretização exemplificativa do dispositivo de captura 20 que pode ser usado no sistema de reconhecimento, análise e rastreamento de alvo 10. De acordo com uma concretização ilustrativa, o dispositivo de captura 20 pode ser configurado para capturar vídeo com informações de profundidade, incluindo uma imagem com profundidade que pode incluir valores de profundidade por meio de qualquer técnica adequada, incluindo, por exemplo, “tempo de vôo”, luz estruturada, imagem estéreo, ou técnicas similares. De acordo com uma concretização, o dispositivo de captura 20 pode organizar as informações de profundidade em “camadas Z”, ou camadas que podem ser perpendiculares a um eixo Z estendendo-se a partir da câmera com sensor de profundidade ao longo da sua linha de visão. [00027] Como ilustrado na FIG. 2, o dispositivo de captura 20 pode incluir um componente de câmera de imagem 22. De acordo com uma concretização ilustrativa, o componente de câmera de imagem 22 pode ser uma câmera de profundidade que pode capturar a imagem com profundidade de uma cena. A imagem com profundidade pode incluir uma área de pixels bidimensional (2-D) da cena capturada onde cada pixel na área de pixel 2-D pode representar um valor de profundidade, tal como um comprimento ou distância, por exemplo, em centímetros, milímetros, ou similar de um objeto na cena capturada pela câmera. [00028] Como ilustrado na FIG. 2, de acordo com uma concretização ilustrativa, o componente de câmera de imagem 22 pode incluir um componente de luz IR 24, uma câmera tridimensional (3-D) 26, e uma câmera RGB 28 que pode ser usada para capturar a imagem com profundidade de uma cena. Por exemplo, na análise de tempo de vôo, o componente de luz IR 24 do dispositivo de captura 20 pode emitir uma luz infravermelha na cena e pode então usar sensores (não ilustrados) para detectar a luz retroespalhada da superfície de um ou mais alvos e objetos na cena usando, por exemplo, a câmera 3-D 26 e/ou a câmera RGB 28. Em algumas concretizações, pode-se usar luz infravermelha pulsada, em que o tempo entre um pulso de luz de saída e um pulso de luz de entrada correspondente pode ser medido e usado para determinar uma distância física do dispositivo de captura 20 para uma localização particular nos alvos ou objetos na cena. Adicionalmente, em outra concretização ilustrativa, a fase da onda de luz de saída pode ser comparada com a fase da onda de luz de entrada para determinar um desvio de fase. O desvio de fase pode então ser usado para determinar a distância física do dispositivo de captura para uma localização específica nos alvos ou objetos.
[00029] De acordo com outra concretização ilustrativa, a análise de tempo de vôo pode ser usada para determinar indiretamente a distância física do dispositivo de captura 20 para uma localização específica nos alvos ou objetos mediante a análise da intensidade do feixe de luz refletido ao longo do tempo, por meio de várias técnicas, incluindo, por exemplo, geração de imagem por pulso de luz obturado.
[00030] Em outra concretização ilustrativa, o dispositivo de captura 20 pode usar uma luz estruturada para capturar informações de profundidade. Em tal análise, uma luz padronizada (isto é, uma luz exibida em um padrão conhecido, tal como um padrão de grade ou padrão de faixas) pode ser projetada na cena, por exemplo, por meio do componente de luz IR 24. Ao atingir a superfície de um ou mais alvos ou objetos na cena, em resposta, o padrão pode se tornar deformado. Tal deformação do padrão pode ser capturada, por exemplo, pela câmera 3-D 26 e/ou pela câmera RGB 28 e pode então ser analisada para determinar uma distância física do dispositivo de captura para uma localização específica nos alvos ou objetos.
[00031] De acordo com outra concretização, o dispositivo de captura 20 pode incluir duas ou mais câmeras fisicamente separadas que podem visualizar uma cena de diferentes ângulos para obter dados visuais estéreo que podem ser resolvidos para gerar informações de profundidade.
[00032] O dispositivo de captura 20 pode incluir ainda um microfone 30. O microfone 30 pode incluir um transdutor ou sensor que pode receber e converter o som em um sinal elétrico. De acordo uma concretização, o microfone 30 pode ser usado para reduzir a realimentação entre o dispositivo de captura 20 e o ambiente de computação 12 no sistema de reconhecimento, análise e rastreamento do alvo 10. Adicionalmente, o microfone 30 pode ser usado para receber sinais de áudio que podem também ser fornecidos pelo usuário para controlar aplicativos, tais como aplicativos de jogos, outros aplicativos além de jogos, ou similares, que podem ser executados pelo ambiente de computação 12.
[00033] Em uma concretização ilustrativa, o dispositivo de captura 20 pode adicionalmente incluir um processador 32 que pode estar em comunicação operativa com o componente de câmera de imagem 22. O processador 32 pode incluir um processador padronizado, um processador especializado, um microprocessador, ou similar, que seja capaz de executar instruções que incluem, por exemplo, instruções para capturar um movimento em tempo real de um usuário, receber um movimento pré-gravado, aplicar o movimento em tempo real a uma primeira parte de um objeto virtual e o movimento pré-gravado a uma segunda parte do objeto virtual, ou qualquer outra instrução adequada, que será descrita em mais detalhes abaixo.
[00034] O dispositivo de captura 20 pode ainda incluir um componente de memória 34 que pode armazenar as instruções que podem ser executadas pelo processador 32, imagens ou quadros capturados de imagens pela câmera 3-D ou pela câmera RGB, ou qualquer outra informação adequada, imagens ou similar. De acordo com uma concretização ilustrativa, o componente de memória 34 pode incluir memória de acesso aleatório (RAM), memória somente para leitura (ROM), memória cache, memória Flash, um disco rígido, ou qualquer outro componente de armazenamento adequado. Como ilustrado na FIG. 2, em uma concretização, o componente de memória 34 pode ser um componente separado em comunicação com o componente de captura de imagem 22 e com o processador 32. De acordo com outra concretização, o componente de memória 34 pode ser integrado ao processador 32 e/ou ao componente de captura de imagem 22.
[00035] Como ilustrado na FIG. 2, o dispositivo de captura 20 pode estar em comunicação com o ambiente de computação 12 por meio de uma ligação de comunicação 36. A ligação de comunicação 36 pode ser uma conexão com fio incluindo, por exemplo, uma conexão USB, uma conexão Firewire, uma conexão Ethernet com fio, ou similar e/ou uma conexão sem fio, tal como uma conexão sem fio 802.11 b, g, a, ou n. De acordo com uma concretização, o ambiente de computação 12 pode fornecer um relógio para o dispositivo de captura 20 que pode ser usado para determinar quando capturar, por exemplo, uma cena por meio da ligação de comunicação 36.
[00036] Adicionalmente, o dispositivo 20 pode fornecer a informa- ção e imagens de profundidade capturadas, por exemplo, pela câmera 3-D 26 e/ou pela câmera RGB 28, e/ou um modelo esquelético que pode ser gerado pelo dispositivo de captura 20 para o ambiente de computação 12 por meio da ligação de comunicação 36. O ambiente de computação 12 pode então usar o modelo, as informações de profundidade e as imagens capturadas para, por exemplo, controlar um aplicativo, tal como um jogo ou processador de texto e/ou animar um personagem virtual, tal como um personagem na tela, um avatar, um objeto na tela, ou similares. Por exemplo, como ilustrado FIG. 2, o ambiente de computação 12 pode incluir uma biblioteca de gestos 190. A biblioteca de gestos 190 pode incluir uma coleção de filtros de gestos, cada um compreendendo informações relativas a um gesto que pode ser realizado pelo modelo esquelético (como os movimentos do usuário). Os dados capturados pelas câmeras 26, 28 e o dispositivo de captura 20, na forma do modelo esquelético e dos movimentos associados a ele, podem ser comparados aos filtros de gestos na biblioteca de gestos 190 para identificar quando um usuário (como representado pelo modelo esquelético) realizou um ou mais gestos. Esses gestos podem ser associados a vários controles de um aplicativo. Assim, o ambiente de computação 12 pode usar a biblioteca de gestos 190 para interpretar movimentos do modelo esquelético e controlar um aplicativo baseado nos movimentos.
[00037] A FIG. 3 ilustra uma concretização exemplificativa de um ambiente de computação que pode ser usado para interpretar um ou mais gestos em um sistema de reconhecimento, análise e rastreamen-to de alvo e/ou animar um personagem virtual, tal como um avatar, um personagem na tela, um objeto na tela, ou similar, exibido pelo sistema de reconhecimento, análise e rastreamento de alvo. O ambiente de computação, tal como o ambiente de computação 12 descrito acima em relação às FIGs. 1A-2, pode ser um console multimídia 100, tal como um console de jogo. Como ilustrado na FIG. 3, o console multimídia 100 tem uma unidade central de processamento (CPU) 101 com um cache nível 1 102, um cache nível 2 104 e uma ROM (Memória Somente para Leitura) flash 106. O cache de nível 1 102 e o cache de nível 2 104 armazenam dados temporariamente e, portanto, reduzem o número de ciclos de acesso à memória, melhorando assim a velocidade de processamento e a taxa de transferência. A CPU 101 pode ser proporcionada com um ou mais núcleos, e portanto, caches de nível 1 e nível 2 adicionais 102 e 104. A ROM flash 106 pode armazenar código executável que é carregado durante uma fase inicial de um processo de inicialização quando o console de multimídia 100 é ligado. [00038] Uma unidade de processamento gráfico (GPU) 108 e um codificador de vídeo/codec de vídeo (codificador/codificador) 114 formam um canal de processamento de vídeo para processamento de gráficos em alta velocidade e alta resolução. Os dados são transmitidos da unidade de processamento gráfico 108 para o codificador de vídeo/codec de vídeo 114 via um barramento. O canal de processamento de vídeo envia dados a uma porta de A/V (áudio/vídeo) 140 para transmissão para uma televisão ou outro meio de exibição. Um controlador de memória 110 é conectado à GPU 108 e à GPU 108 para facilitar o acesso do processador a vários tipos de memória 112, tal como, sem restrição, a uma RAM (Memória de Acesso Aleatório). [00039] O console de multimídia 100 inclui um controlador E/S 120, um controlador de gerenciamento do sistema 122, uma unidade de processamento de áudio 123, um controlador de interface de rede 124, um primeiro controlador USB do host 126, um segundo controlador USB 128 e um subconjunto de E/S do painel frontal 130 que, de preferência, são implementados em módulos 118. Os controladores USB 126 e 128 funcionam como hosts para controladores periféricos 142(1)-142(2), um adaptador sem fio 148 e um dispositivo de memória externa 146 (por exemplo, memória flash, unidade de CD/DVD ROM externa, mídia removível etc.). A interface de rede 124 e/ou o adaptador sem fio 148 fornecem acesso a uma rede (por exemplo, a Internet, rede doméstica etc.) e pode ser qualquer uma dentre diversos componentes de interface com ou sem fio, incluindo uma placa Ethernet, um modem, um módulo Bluetooth, um modem a cabo, entre outros.
[00040] A memória do sistema 143 é empregada para armazenar dados de aplicativos que são carregados durante o processo de inicialização. Uma unidade de mídia 144 é proporcionada e pode compreender uma unidade de DVD/CD, unidade de disco rígido ou outra unidade de mídia removível etc. A unidade de mídia 144 pode ser interna ou externa ao console multimídia 100. Os dados de aplicação podem ser acessados via a unidade de mídia 144 para execução, reprodução etc. pelo console multimídia 100. A unidade de mídia 144 é conectada ao controlador E/S 120 via um barramento, tal como um barramento Serial ATA ou outra conexão de alta velocidade (por exemplo, IEEE 1394).
[00041] O controlador de gerenciamento do sistema 122 oferece uma variedade de funções de serviço para assegurar a disponibilidade do console de multimídia 100. A unidade de processamento de áudio 123 e um codec de áudio 132 formam um canal de processamento de áudio correspondente com alta fidelidade e processamento estéreo. Os dados de áudio são transmitidos entre a unidade de processamento de áudio 123 e o codec de áudio 132 via uma ligação de comunicação. O canal de processamento de áudio transmite dados para a porta A/V 140 para reprodução por um reprodutor de áudio externo ou dispositivo com recursos de áudio.
[00042] O subconjunto de E/S do painel frontal 130 dá suporte à funcionalidade do botão de ligar/desligar 150 e ao botão ejetar 152, bem como a quaisquer LEDs (diodos emissores de luz) ou outros indi- cadores visíveis na superfície externa do console de multimídia 100. Um módulo de alimentação de energia do sistema 136 alimenta energia aos componentes do console de multimídia 100. Uma ventoinha 138 resfria o sistema de circuitos dentro do console de multimídia 100. [00043] A CPU 101, a GPU 108, o controlador de memória 110 e vários outros componentes dentro do console de multimídia 100 são interconectados via um ou mais barramentos, inclusive barramentos paralelos e em série, um barramento de memória, um barramento periférico e um processador ou barramento local usando qualquer uma dentre uma variedade de arquiteturas de barramento. A título de exemplo, tais arquiteturas podem incluir um barramento de Intercone-xão de Componentes Periféricos (PCI), um barramento PCI-Express, etc.
[00044] Quando o console de multimídia 100 é ligado, os dados de aplicação podem ser carregados da memória do sistema 143 na memória 112 e/ou nas memórias cache 102, 104 e executados na CPU 101. A aplicação pode apresentar uma interface gráfica do usuário que oferece um nível de consistência ao usuário enquanto navega pelos diferentes tipos de mídia disponíveis no console de multimídia 100. Em operação, as aplicações e/ou outros meios contidos dentro da unidade de mídia 144 podem ser inicializados ou reproduzidos a partir da unidade de mídia 144 para oferecer funcionalidades adicionais ao console de multimídia 100.
[00045] O console de multimídia 100 pode ser operado como um sistema independente simplesmente conectando o sistema a uma televisão ou outro meio de exibição. Neste modo independente, o console de multimídia 100 permite que um ou mais usuários interajam com o sistema, assistam filmes ou escutem música. No entanto, com a integração de uma conectividade de banda larga disponibilizada através da interface de rede 124 ou do adaptador sem fio 148, o console de multimídia 100 pode também ser operado como um participante em uma comunidade de rede maior.
[00046] Quando o console multimídia 100 é ligado, uma quantidade estabelecida de recursos de hardware é reservada para uso pelo sistema operacional do console multimídia. Esses recursos podem incluir uma reserva de memória (por exemplo, 16 MB), ciclos da CPU e da GPU (por exemplo, 5%), largura de banda de rede (por exemplo, 8 kbps), etc. Uma vez que esses recursos são reservados no momento da inicialização do sistema, os recursos reservados não existem do ponto de vista da aplicação.
[00047] Em particular, a reserva de memória é, de preferência, grande o bastante para conter o núcleo de inicialização, aplicações simultâneas do sistema e controladores. A reserva de CPU é, de preferência, constante, de modo que, se o uso de CPU reservado não for usado pelos aplicativos do sistema, uma linha de execução inativa consuma quaisquer ciclos não utilizados.
[00048] Com relação à reserva da GPU, mensagens leves geradas pelas aplicações do sistema (por exemplo, janelas pop-up) são exibidas usando uma interrupção GPU para programar um código para renderizar popups em sobreposição. A quantidade de memória necessária para uma sobreposição depende do tamanho da área de sobreposição e a sobreposição de preferência ajusta-se proporcionalmente à resolução da tela. Quando uma interface de usuário em tela cheia é usada pela aplicação concorrente do sistema, é preferível usar uma resolução independente da resolução do aplicativo. Pode-se utilizar um redimensionador para definir esta resolução, de modo a eliminar a necessidade de alterar a frequência e causar uma ressincronização de TV.
[00049] Após a inicialização do console multimídia 100 e a reserva dos recursos do sistema, aplicações concorrentes do sistema são exe- cutadas para oferecer funcionalidades do sistema. As funcionalidades do sistema são encapsuladas em um conjunto de aplicações do sistema que são executadas dentro dos recursos reservados do sistema descritos acima. O núcleo do sistema operacional identifica linhas de execução que são linhas de execução de aplicações do sistema em contraste com linhas de execução de aplicativos de jogo. As aplicações do sistema são, de preferência, programadas para ser executadas na CPU 101 em momentos e intervalos predeterminados de modo a fornecer uma visão consistente dos recursos do sistema à aplicação. A programação serve para minimizar problemas de memória cache para a aplicativo de jogo sendo executado no console.
[00050] Quando uma aplicação concorrente do sistema requer áudio, o processamento de áudio é programado de maneira assíncrona ao aplicativo de jogo devido à sensibilidade temporal. Um gerenciador de aplicação de console multimídia (descrito abaixo) controla o nível de áudio do aplicativo de jogo (por exemplo, silêncio, atenuação) quando os aplicativos do sistema estão ativos.
[00051] Os dispositivos de entrada (por exemplo, controladores 142(1) e 142(2)) são compartilhados por aplicativos de jogo e aplicativos do sistema e aplicações do sistema. Os dispositivos de entrada não são recursos reservados, devendo ser comutados entre os aplicativos do sistema e o aplicativo do jogo, de modo que cada um tenha um foco do dispositivo. O gerenciador de aplicação de preferência controla a comutação do fluxo de entrada, sem o conhecimento do aplicativo do jogo, e um controlador mantém informações de estado relativas às mudanças de foco. As câmeras 26, 28 e o dispositivo de captura 20 podem definir dispositivos de entrada adicionais para o console 100. [00052] A FIG. 4 ilustra outra concretização exemplificativa de um ambiente de computação 220 que pode ser o ambiente de computação 12 ilustrado nas FIGs. 1A-2 usado para interpretar um ou mais gestos em um sistema de reconhecimento, análise e rastreamento de alvo e/ou animar um personagem virtual, tal como um avatar, um personagem na tela, um objeto na tela, ou similar, exibido por um sistema de reconhecimento, análise e rastreamento de alvo. O ambiente de sistema de computação 220 é apenas um exemplo de um ambiente de computação adequado e não tem a intenção de implicar em qualquer limitação ao âmbito de uso ou à funcionalidade da matéria reivindicada. Tampouco se deve interpretar o ambiente de computação 220 como tendo qualquer dependência ou exigência com relação a qualquer um dos componentes ilustrados, ou combinação desses, no ambiente operacional exemplificativo 220. Em algumas concretizações, os vários elementos de computação representados podem incluir sistemas de circuitos configurados para criar instanciar aspectos específicos da presente revelação. Por exemplo, o termo sistema de circuitos usado nessa revelação pode incluir componentes de hardware especializados configurados para desempenhar uma ou mais funções por meio do firmware ou por chaves elétricas. Em outras concretizações ilustrativas, o termo sistema de circuitos pode incluir uma unidade de processamento de uso geral, uma memória, etc., configurada por instruções de software que incorporam lógica operável para desempenhar uma ou mais funções. Em concretizações ilustrativas, onde sistemas de circuitos incluem uma combinação de hardware e software, um im-plementador pode gravar um código fonte incorporando lógica e o código fonte pode ser compilado em código de máquina legível que pode ser processada por uma unidade de processamento de uso geral. Uma vez que qualquer pessoa com conhecimentos na área pode apreciar que o estado da técnica evoluiu para um ponto em que há pouca diferença entre hardware, software, ou uma combinação de hardwa-re/software, a seleção dentre hardware versus software para efetuar funções específicas é uma escolha de projeto deixada ao implementa- dor. Mais especificamente, qualquer pessoa com conhecimentos na área pode apreciar que o processo de software pode ser transformado em uma estrutura de hardware equivalente, e uma estrutura de hardware pode ser transformada em um processo de software equivalente. Assim, a seleção de uma implementação de hardware versus uma implementação de software é uma escolha de projeto deixada ao implementador.
[00053] Na FIG. 4, o ambiente de computação 220 compreende um computador 241, que tipicamente inclui uma variedade de mídias de computador legíveis. Meios legíveis por computador podem ser qualquer meio disponível que pode ser acessado por computador 241 e que inclui tanto meios voláteis e não-voláteis quanto meios removíveis e não-removíveis. A memória do sistema 222 inclui meios de armazenamento de computador na forma de memória volátil e/ou não-volátil, tal como memória somente para leitura (ROM) 223 e memória de acesso aleatório (RAM) 260. Um sistema básico de entrada/saída 224 (BIOS), contendo as rotinas básicas para ajudar a transferir informações entre os elementos dentro do computador 241, tal como durante a inicialização, é geralmente armazenado na ROM 223. A RAM 260 geralmente contém dados e/ou módulos de programa que podem ser acessados a qualquer momento e/ou que estão sendo operados pela unidade de processamento 259. A título exemplificativo, e sem limitação, a FIG. 4 ilustra o sistema operacional 225, programas aplicativos 226, outros módulos de programa 227, e dados de programa 228. [00054] O computador 241 também inclui outros meios de armazenamento de computador removíveis/não-removíveis e voláteis/não-voláteis. A título meramente exemplificativo, a FIG. 4 ilustra uma unidade de disco rígido 238 que lê ou grava em meios magnéticos não-removíveis e não-voláteis, uma unidade de disco magnético 239 que lê ou grava em um disco magnético removível e não-volátil 254, e uma unidade de disco óptica 240 que lê ou escreve em um disco óptico removível e não-volátil 253, tal como um CD-ROM ou outros meios ópticos. Outros meios de armazenamento de computador removíveis/não-removíveis e voláteis/não-voláteis que podem ser usados no ambiente operacional exemplificativo incluem, mas sem a isto se restringir, cassetes de fita magnética, cartões de memória flash, discos versáteis digitais, fitas de vídeo digital, RAM de estado sólido, ROM de estado sólido, entre outros. A unidade de disco rígido 238 é geralmente conectada ao barramento do sistema 221 por meio de uma interface de memória não-removível, tal como a interface 234, e a unidade de disco magnético 239 e a unidade de disco óptico 240 são geralmente conectadas ao barramento de sistema 221 por uma interface de memória removível, tal como a interface 235.
[00055] As unidades e seus meios de armazenamento de computador associados, discutidos acima na FIG. 4, fornecem o armazenamento de instruções legíveis por computador, estruturas de dados, módulos de programa e outros dados para o computador 241. Na FIG. 4, por exemplo, a unidade de disco rígido 238 é ilustrada armazenando o sistema operacional 258, os programas aplicativos 257, outros módulos de programa 256, e dados de programa 255. Observe que esses componentes podem ou ser os mesmos ou ser diferentes do sistema operacional 225, dos programas aplicativos 226, dos outros módulos de programa 227 e dos dados de programa 228. O sistema operacional 258, os programas aplicativos 257, os outros módulos de programa 256 e os dados de programa 255 recebem números diferentes neste documento para mostrar que se tratam, no mínimo, de cópias diferentes. Um usuário pode entrar com comandos e informações no computador 241 por meio de dispositivos de entrada, tais como um teclado 251 e o dispositivo de apontamento 252, normalmente chamado de mouse, trackball ou superfície de toque. Outros dispositivos de entrada (não ilustrados) podem incluir um microfone, joystick, controle de jogo, antena de satélite, scanner, entre outros. Esses e outros dispositivos de entrada são geralmente conectados à unidade de processamento 259 por meio de uma interface de entrada do usuário 236 que é acoplada ao barramento do sistema, mas que pode ser conectada por outra interface e estruturas de barramento, tais como uma porta paralela, porta de jogo ou um barramento serial universal (USB). As câmeras 26, 28 e o dispositivo de captura 20 podem definir dispositivos de entrada adicionais para o console 100. Um monitor 242, ou outro tipo de dispositivo de exibição, também é conectado ao barramento de sistema 221 por meio de uma interface, tal como uma interface de vídeo 232. Além do monitor, os computadores também podem incluir outros periféricos de saída, tais como alto-falantes 244 e impressora 243, que podem ser conectados por meio de uma interface periférica de saída 233.
[00056] O computador 241 pode operar em um ambiente em rede usando conexões lógicas com um ou mais computadores remotos, tal como o computador remoto 246. O computador remoto 246 pode ser um computador pessoal, um servidor, um roteador, um PC de rede, um dispositivo não hierarquizado ou outro nó comum da rede, e geralmente inclui muitos ou todos os elementos supramencionados com relação ao computador 241, apesar de apenas um dispositivo de armazenamento em memória 247 ter sido ilustrado na FIG 4. As conexões lógicas ilustradas na FIG. 2 incluem uma rede local (LAN) 245 e uma rede de longa distância (WAN) 249, mas também pode incluir outras redes. Tais ambientes de rede são comuns em escritórios, redes de computador a nível empresarial, intranets e a Internet.
[00057] Quando usado em um ambiente em rede LAN, o computador 241 é conectado à LAN 245 por meio de uma interface de rede ou adaptador 237. Quando usado em um ambiente em rede WAN, o computador 241 geralmente inclui um modem 250 ou outros meios para estabelecer comunicações pela WAN 249, tal como a Internet. O modem 250, que pode ser interno ou externo, pode ser conectado ao barramento do sistema 221 por meio da interface de entrada do usuário 236, ou por outro mecanismo apropriado. Em um ambiente em rede, os módulos de programa representados com relação ao computador 241, ou partes deles, podem ser armazenados no dispositivo de armazenamento em memória remoto. A título exemplificativo, e sem limitação, a FIG. 4 ilustra programas aplicativos remotos 248 como residentes no dispositivo de memória 247. Apreciar-se-á que as conexões de rede ilustradas são exemplificativas e que outros meios para estabelecer uma ligação de comunicações entre os computadores podem ser usados.
[00058] A FIG. 5 representa um fluxograma de um método 300 ilustrativo para combinar animações. O método 300 ilustrativo pode ser implementado usando, por exemplo, o dispositivo de captura 20 e/ou o ambiente de computação 12 do sistema de reconhecimento, análise e rastreamento de alvo 10 descrito em resposta as FIGs. 1A-4. Em uma concretização ilustrativa, o método 300 ilustrativo pode levar a forma do código de programa (isto é, instruções) que pode ser executado, por exemplo, pelo dispositivo de captura 20 e/ou pelo ambiente de computação 12 do sistema de reconhecimento, análise e rastreamento de alvo 10 descrito em resposta as FIGs. 1A-4.
[00059] De acordo com uma concretização, em 305, uma imagem pode ser recebida. Por exemplo, o sistema de reconhecimento, análise e rastreamento de alvo pode incluir um dispositivo de captura tal como o dispositivo de captura 20 descrito acima em relação às FIGs. 1A-2. O dispositivo de captura pode capturar ou observar uma cena que pode incluir um ou mais alvos. Em uma concretização ilustrativa, o dispositivo de captura pode ser uma câmera de profundidade configurada para obter uma imagem tal como uma imagem RGB, uma imagem com profundidade, ou similar da cena usando qualquer técnica adequada tal como análise de tempo de vôo, análise de luz estruturada, análise de visão estéreo, ou similar.
[00060] Por exemplo, em uma concretização, a imagem pode incluir uma imagem com profundidade. A imagem com profundidade pode ser uma pluralidade de pixels observados, onde cada pixel observado tem um valor de profundidade observado. Por exemplo, a imagem com profundidade pode incluir uma área de pixels bidimensional (2-D) da cena capturada onde cada pixel na área de pixel 2-D pode representar um valor de profundidade, tal como um comprimento ou distância, por exemplo, em centímetros, milímetros, ou similar de um objeto na cena capturada pelo dispositivo de captura.
[00061] A FIG. 6 ilustra uma concretização ilustrativa de uma imagem com profundidade 400 que pode ser recebida em 305. De acordo com uma concretização ilustrativa, a imagem com profundidade 400 pode ser uma imagem ou quadro da cena capturada, por exemplo, pela câmera 3-D 26 e/ou pela câmera RGB 28 do dispositivo de captura 20 descrito acima em reposta a FIG. 2. Como ilustrado na FIG. 6, a imagem com profundidade 400 pode incluir um alvo humano 402 correspondendo a, por exemplo, um usuário, tal como o usuário 18 descrito acima em resposta as FIGs. 1A e 1B e um ou mais alvos não-humanos 404 tal como uma parede, uma mesa, um monitor, ou similar na cena capturada. Como descrito acima, a imagem com profundidade 400 pode incluir uma pluralidade de pixels observados, em que cada pixel observado tem um valor de profundidade observado associado a ele. Por exemplo, a imagem com profundidade pode incluir uma área de pixels bidimensional (2-D) da cena capturada onde cada pixel na área de pixel 2-D pode representar um valor de profundidade, tal como um comprimento ou distância, por exemplo, em centímetros, milíme- tros, ou similar de um alvo ou objeto na cena capturada pelo dispositivo de captura. Na concretização, a imagem com profundidade 400 pode ser colorida de modo que cores diferentes dos pixels da imagem com profundidade correspondam a e/ou representem visualmente diferentes distâncias do alvo humano 402 e do alvo não-humano 404 do dispositivo de captura. Por exemplo, de acordo com uma concretização, os pixels associados a um alvo mais próximo do dispositivo de captura podem ser coloridos com tons de vermelho e/ou laranja na imagem com profundidade, ao passo que os pixels associados a um alvo mais distante podem ser coloridos com tons de verde e/ou azul na imagem com profundidade.
[00062] Referindo-se novamente à FIG. 5, em uma concretização, após receber a imagem, em 305, a imagem pode ter sua qualidade reduzida a uma resolução de processamento inferior, de modo que a imagem com profundidade possa ser usada mais facilmente e/ou processada mais rapidamente com menos sobrecarga de computação. Adicionalmente, um ou mais valores de profundidade de alta variância e/ou ruidosos podem ser removidos e/ou suavizados da imagem com profundidade; partes das informações de profundidade ausentes e/ou removidas podem ser preenchidas e/ou reconstruídas; e/ou qualquer outro processamento adequado pode ser executado nas informações de profundidade recebida de modo que as informações com profundidade possam ser usadas para gerar um modelo tal como um modelo esquelético, que será descrito em mais detalhes abaixo.
[00063] Em 310, um modelo de um usuário na imagem pode ser gerado. Por exemplo, após receber a imagem, o sistema de reconhecimento, análise e rastreamento de alvo pode determinar se a imagem com profundidade inclui um alvo humano, tal como o alvo humano 402 descrito acima em relação à FIG. 6 correspondendo, por exemplo, a um usuário, tal como o usuário 18, descrito acima em relação às FIGs. 1A e 1B, mediante o preenchimento de cada alvo ou objeto na imagem com profundidade e comparando cada alvo ou objeto preenchido a um padrão associado com um modelo corporal de um humano em várias posições ou poses. O alvo ou objeto preenchido que corresponde ao padrão pode então ser isolado e varrido para determinar valores incluindo, por exemplo, medidas de várias partes do corpo. De acordo com uma concretização ilustrativa, um modelo, tal como um modelo esquelético, um modelo de malha, ou similar, pode então ser gerado baseado na varredura. Por exemplo, de acordo com uma concretização, valores de medida que podem ser determinados pela varredura podem ser armazenados em uma ou mais estruturas de dados que podem ser usadas para definir uma ou mais juntas em um modelo. Uma ou mais articulações podem ser usadas para definir um ou mais ossos que podem corresponder a uma parte do corpo de um humano.
[00064] A FIG. 7 ilustra uma concretização exemplificativa de um modelo 500 que pode ser gerado para um usuário em 310. De acordo com uma concretização ilustrativa, o modelo 500 pode incluir uma ou mais estruturas de dados que podem representar, por exemplo, um modelo tridimensional de um alvo humano associado a um usuário em uma imagem com profundidade, tal como o alvo humano 402 na imagem com profundidade 400 descrita em relação à FIG. 6. Em uma concretização, cada parte corporal do alvo humano associado ao usuário pode ser caracterizada como um vetor matemático definindo articulações e ossos do modelo 500.
[00065] Como ilustrado na FIG. 7, o modelo 500 pode incluir uma ou mais articulações j1-j18. De acordo com uma concretização ilustrativa, cada uma das articulações j1-j18 pode permitir que uma ou mais partes corporais definidas entre as mesmas se movam em relação a uma ou mais partes corporais diferentes. Por exemplo, um modelo representando um alvo humano pode incluir uma pluralidade de partes corporais rígidas e/ou deformáveis que podem ser definidas por um ou mais membros estruturais, tal como “ossos” com as articulações j1-j18 localizadas na interseção dos ossos adjacentes. As articulações j1-j18 podem permitir que várias partes corporais associadas aos ossos e articulações j1-j18 se movam independentemente umas das outras. Por exemplo, o osso definido entre as articulações j7 e j11, ilustrado na FIG. 7, pode corresponder a um antebraço que pode ser movido independente, por exemplo, do osso definido entre as articulações j15 e j17 que pode corresponder a uma panturrilha.
[00066] Como descrito acima, cada uma das partes do corpo pode ser caracterizada como um vetor matemático tendo um valor X, um valor Y, e um valor Z definindo as articulações e ossos ilustrados na FIG. 7. Em uma concretização ilustrativa, a interseção dos vetores associados aos ossos, ilustradas na FIG. 7, pode definir o respectivo ponto associado às articulações j1-j18.
[00067] Referindo-se novamente à FIG. 5, em 315, um movimento em tempo real ou ao vivo do modelo associado ao usuário pode ser capturado. Por exemplo, o modelo pode ser rastreado de modo que o modelo possa ser ajustado ou movido para imitar um movimento feito pelo usuário. Tais ajustes ou movimentos do modelo associado ao usuário podem ser capturados em tempo real. Além disso, tais ajustes ou movimentos podem ser aplicados a um personagem virtual, tal como um avatar, um personagem na tela, um objeto na tela, ou similar, que será descrito em mais detalhes adiante.
[00068] De acordo com uma concretização, o modelo, tal como o modelo 500, descrito acima em relação a FIG. 7 pode ser uma representação de um usuário, tal como o usuário 18, descrito acima em relação às FIGs. 1A e 1B. O sistema de reconhecimento, análise e ras-treamento de alvo pode observar ou capturar os movimentos do usuário 18 que podem ser usados para ajustar ou mover o modelo 500, de modo que os ajustes ou movimentos do modelo 500 possam ser capturados em 315.
[00069] Por exemplo, um dispositivo de captura, tal como o dispositivo de captura 20 descrito acima em relação às FIGs. 1A-2 pode observar ou capturar imagens múltiplas, tal como imagens com profundidade, imagens RGB, ou similar, de uma cena que pode ser usada para ajustar o modelo. De acordo com uma ilustração, cada uma das imagens pode ser observada ou capturada com base em uma frequência definida. Por exemplo, o dispositivo de captura pode observar ou capturar uma imagem nova de uma cena a cada milissegundo, microsse-gundo ou similar.
[00070] Ao receber cada uma das imagens, as informações associadas a uma imagem específica podem ser comparadas às informações associadas com o modelo para determinar se um movimento foi realizado pelo usuário. Por exemplo, em uma concretização, o modelo pode ser rasterizado em uma imagem sintetizada tal como uma imagem com profundidade sintetizada. Os pixels na imagem sintetizada podem ser comparados aos pixels associados ao alvo humano em cada uma das imagens recebidas para determinar se o alvo humano em uma imagem recebida se moveu.
[00071] De acordo com uma concretização ilustrativa, um ou mais vetores de força podem ser calculados com base nos pixels comparados entre a imagem sintetizada e uma imagem recebida. A uma ou mais forças podem então ser aplicadas ou mapeadas a um ou mais aspectos de recepção de força, tais como articulações do modelo, para ajustar o modelo para uma pose que corresponda mais precisamente à pose do alvo humano ou usuário no espaço físico.
[00072] Os ajustes ou movimentos do modelo rastreado podem então ser capturados em 315. Em uma concretização, os ajustes ou movimentos do modelo rastreado podem ser gravados em um arquivo de captura de movimento. Por exemplo, o sistema de reconhecimento, análise e rastreamento do alvo pode renderizar e armazenar um arquivo de captura de movimento que pode incluir um ou mais movimentos, tal como um movimento de aceno, um movimento de balanço, tal como uma tacada de golfe, um movimento de soco, um movimento de andar, um movimento de correr, ou similar, específico ao usuário, tal como o usuário 18, descrito acima em relação às FIGs. 1A e 1B. De acordo com uma concretização, o arquivo de captura de movimento pode ser gerado em tempo real baseado em informações como os vetores incluindo os valores X, Y e Z associados ao modelo rastreado, e pode incluir um ou mais quadros dos movimentos realizados pelo usuário que podem ser aplicados ao modelo. Os movimentos do modelo no arquivo de captura de movimento podem adicionalmente ser aplicados a um personagem virtual, tal como um avatar, um objeto na tela, um personagem na tela, ou similar, em tempo real, ou ao vivo. Além disso, os movimentos do modelo no arquivo de captura de movimento podem ser armazenados ou pré-gravados, de modo que o arquivo de captura de movimento possa ser aplicado a um objeto ou personagem virtual em um ponto futuro no tempo, o que será descrito em mais detalhes adiante.
[00073] As FIGs. 8A-8B ilustram uma concretização ilustrativa do modelo 500 associado a um usuário, tal como o usuário 18 descrito acima em relação às FIGs. 1A e 1B, que pode ser capturado em vários pontos no tempo em um arquivo de captura de movimento. Como mostram as FIGs. 8A-8B, o modelo 500 descrito acima em relação à FIG. 7 pode ser ajustado ou movido com base nos movimentos do usuário em vários pontos no tempo, conforme descrito acima. Por exemplo, como mostra a FIG. 8A, as articulações j3, j7 e j11 e os ossos definidos entre as mesmas do modelo 500 podem ser ajustados ou movidos para representar a pose 502 quando o usuário ergue o an- tebraço direito mediante, por exemplo, a aplicação de um ou mais vetores de força às articulações j3, j7 e j11, como descrito acima. Após o usuário erguer o antebraço direito, como mostra a FIG. 8A, o usuário, tal como o usuário 18, pode então erguer o antebraço esquerdo. Como mostra a FIG. 8B, o modelo 500 pode então ser ajustado da pose 502 para uma pose 54, de modo que as articulações j4, j8 e j12 e os ossos definidos entre elas do modelo possam ser ajustados ou movidos quando o usuário ergue o antebraço esquerdo mediante, por exemplo, a aplicação de um ou mais vetores de força às articulações j4, j8 e j12, como descrito acima. Os ajustes ou movimentos que podem ser aplicados ao modelo 500, como ilustrado pelas poses 502 e 504 nas FIGs. 8A e 8B, podem ser capturados em 315 nos respectivos quadros do arquivo de captura de movimento, como descrito acima.
[00074] Referindo-se novamente à FIG. 5, um movimento pré-gravado pode ser recebido em 320. Por exemplo, o sistema de reconhecimento, análise e rastreamento de alvo pode receber um movimento pré-gravado para um personagem virtual, tal como um personagem de jogo na tela, um avatar, um objeto na tela ou similar. Em uma concretização, o movimento pré-gravado pode ser uma animação desenvolvida por um artista ou arquivo de captura de movimento para um personagem ou objeto virtual desenvolvido por um desenvolvedor de aplicativos e/ou uma transformação programaticamente controlada, tal como uma animação ou movimento controlado por um dispositivo de entrada, uma animação ou movimento feito por um boneco, ou similar, desenvolvido por um desenvolvedor de aplicativos. De acordo com outra concretização, o movimento pré-gravado pode ser o arquivo de captura de movimento do modelo associado ao usuário do sistema de reconhecimento, análise e rastreamento de alvo que pode ser armazenado para uso futuro, como descrito acima.
[00075] As FIGs. 9A-9B ilustram uma concretização ilustrativa de um modelo de personagem 600 para um objeto ou personagem virtual, tal como um centauro, em variados pontos no tempo ou em vários quadros que podem ser recebidos como um movimento pré-gravado desenvolvido por um artista em 320. Como mostram as FIGs. 9A-9B, o modelo de personagem 600 pode incluir uma ou mais articulações j1’-j20’. Em uma concretização, cada uma das articulações j1’-j20’ pode definir uma ou mais partes corporais que podem se mover em relação a, ou de forma independente de uma ou mais outras partes corporais nas articulações j1’-j20’ para animar um objeto ou personagem virtual, que será descrito em mais detalhes posteriormente.
[00076] Além disso, de acordo com uma concretização ilustrativa, cada uma das articulações j1’-j20’ do modelo de personagem 600 pode ter uma trilha de animação correspondente na animação pré-gravada desenvolvida por um artista ou no arquivo de captura de movimento em variados pontos no tempo ou em um respectivo quadro da animação pré-gravada gerada por um artista ou do arquivo de captura de movimento. Por exemplo, como mostra a FIG. 9A, cada uma das articulações j16’, j18’ e j20’ e as partes corporais definidas entre elas do modelo de personagem 600 pode ter uma trilha de animação que pode resultar em uma pose 602 do modelo de personagem 600 na animação pré-gravada desenvolvida pelo artista ou arquivo de movimento em um primeiro ponto no tempo ou em um primeiro quadro na animação pré-gravada gerada pelo artista ou no arquivo de movimento As articulações j16’, j18’ e j20’ podem então ser ajustadas para representar uma pose 604 para cada uma das trilhas de animação para as articulações j16’, j18’ e j20’ do modelo de personagem 600 na animação pré-gravada desenvolvida pelo artista ou arquivo de movimento um segundo ponto no tempo, ou ponto de tempo subsequente, ou um segundo quadro, ou quadro subsequente.
[00077] Referindo-se novamente à FIG. 5, em 325, o movimento do modelo e/ou o movimento pré-gravado podem ser aplicados a um objeto ou personagem virtual. Por exemplo, o sistema de reconhecimento, análise e rastreamento de alvo pode mapear um ou mais movimentos em tempo real ou ao vivo e/ou movimentos pré-gravados do usuário a pelo menos uma parte de um objeto ou personagem virtual, de modo que o objeto ou personagem virtual possa ser animado para imitar os movimentos realizados pelo usuário, tal como o usuário 18 descrito acima em relação às FIGs. 1A e 1B. Além disso, o sistema de reconhecimento, análise e rastreamento de alvo pode mapear uma ou mais animações ou movimentos pré-gravados desenvolvidos por um artista e/ou uma ou mais transformações pré-gravadas controladas programaticamente a pelo menos uma parte de um objeto ou personagem virtual, de modo que o objeto ou personagem virtual possa ser animado para imitar os movimentos pré-gravados desenvolvidos pelo artista e/ou as transformações pré-gravadas controladas programati-camente.
[00078] As FIGs. 10A-10B ilustram uma concretização ilustrativa de um personagem virtual 700 que pode ter um movimento ao vivo de um usuário e/ou um movimento pré-gravado aplicado ao mesmo em 325. Como mostram as FIGs. 10A-10B, o personagem 700 pode incluir um centauro, que pode ser um personagem em um aplicativo de jogo, por exemplo. De acordo com uma concretização, o personagem virtual 700 pode ser animado com um movimento ao vivo do modelo rastrea-do associado ao usuário e a um movimento pré-gravado, tal como um movimento pré-gravado desenvolvido pelo artista em 325. Por exemplo, uma primeira parte A do personagem virtual 700 pode ser animada com o movimento em tempo real realizado pelo usuário, tal como o usuário 18 descrito acima em relação às FIGs. 1A e 1B e uma segunda parte B pode ser animada com o movimento pré-gravado desenvolvido pelo artista.
[00079] De acordo com uma concretização ilustrativa, as articulações j1-j12 do modelo 500 associado ao usuário, como descrito acima em relação às FIGs. 7-8B, podem ser mapeadas para a primeira parte A do personagem virtual 700 e as articulações j9’-j20’ do modelo de personagem 600 como descrito acima em relação à FIG. 9A-9B podem ser mapeadas para a segunda parte B do personagem virtual 700, de modo que a primeira parte A possa ser animada para imitar os movimentos em tempo real que podem ser realizados pelo usuário e a segunda parte B pode ser animada para imitar as animações de um modelo de personagem, tal como o modelo de personagem 600 associado ao personagem virtual 700. Por exemplo, as articulações j4, j8 e j12 e os ossos definidos entre elas do modelo 500 ilustrado nas FIGs. 8A-8B podem ser mapeadas para um ombro esquerdo, um cotovelo esquerdo e um punho esquerdo, e as partes corporais correspondentes definidas entre elas do personagem virtual 700, de modo que a primeira parte A do personagem virtual 700 ilustrado nas FIGs. 10A-10B possa imitar as poses 502 e 504 das articulações j4, j8 e j12 ilustradas nas FIGs. 8A-8B associadas ao usuário movendo o braço esquerdo. Além disso, as articulações j16’, j18’ e j20’ e as partes corporais definidas entre elas do modelo de personagem 600 ilustrado nas FIGs. 9A-9B podem ser mapeadas para um quadril frontal esquerdo, um joelho frontal esquerdo e um tornozelo frontal esquerdo e as partes corporais correspondentes definidas entre elas do personagem virtual 700 de modo que a segunda parte B do personagem virtual 700 ilustrado nas FIGs. 10A-10B possam imitar as poses 602 e 604 das articulações j16’, j18’ e j20’ ilustradas nas FIGs. 9A-9B de um modelo de um centauro estendendo sua perna frontal esquerda. Assim, de acordo com uma concretização ilustrativa, o personagem virtual 700 pode incluir movimentos ao vivo do modelo 500 associado ao usuário combinados com os movimentos pré-gravados do modelo de personagem 600 associado ao personagem ou objeto virtual.
[00080] Em uma concretização, para animar o personagem virtual 700 com os movimentos em tempo real e os movimentos pré-gravados, o sistema de reconhecimento, análise e rastreamento de alvo pode desativar rastros de animação ou movimento associados às articulações e/ou partes corporais do modelo de personagem 600 que corresponde à primeira parte A do personagem virtual 700. Além disso, o sistema de reconhecimento, análise e rastreamento de alvo pode desativar as animações ou movimentos associados às articulações do modelo 500 no arquivo de captura de movimento que correspondem à segunda parte B do personagem virtual 700. O sistema de reconhecimento, análise e rastreamento de alvo pode então combinar as animações ou movimentos do modelo 500 associado ao usuário no arquivo de captura de movimento com as animações ou rastros de movimento do modelo de personagem 600, de modo que a primeira parte A possa ser animada com os movimentos do modelo 500 associado ao usuário e a segunda parte possa ser animada com animações ou movimentos do modelo de personagem 500 associado ao personagem virtual 700. [00081] Por exemplo, o sistema de reconhecimento, análise e ras-treamento de alvo pode desativar a animação ou rastros de movimento das articulações j1’-j8’ do modelo de personagem 600 e as animações ou movimentos das articulações j13-j18 do modelo 500 associado ao usuário. O sistema de reconhecimento, análise e rastreamento de alvo pode então combinar as animações e movimentos do modelo de personagem 600 e o modelo 500 associado ao usuário, de modo que a primeira parte A do personagem virtual 700 possa imitar os movimentos do usuário e a segunda parte B do personagem virtual 700 possa imitar as animações ou movimentos pré-gravados de um modelo de personagem como ilustrado nas FIGs. 10A-10B.
[00082] As FIGs. 10A-11F ilustram outra concretização ilustrativa de um personagem virtual 800 que pode ter um movimento ao vivo de um usuário e/ou um movimento pré-gravado aplicado ao mesmo em 325. Como mostram as FIGs. 11A-11F, o personagem virtual 800 pode incluir um robô que pode ser um personagem em um aplicativo de jogo, por exemplo. De acordo com uma concretização, o personagem virtual 800 pode ser animado com um movimento ao vivo do modelo rastrea-do associado ao usuário e/ou a um movimento pré-gravado, tal como um movimento armazenado de um modelo associado ao usuário ou um movimento pré-gravado desenvolvido por um artista em 325. Por exemplo, uma primeira parte A' do personagem virtual 800 pode ser animada com o movimento em tempo real realizado pelo usuário, tal como o usuário 18 descrito acima em relação às FIGs. 1A e 1B e/ou uma segunda parte B' pode ser animada com o movimento pré-gravado do usuário no arquivo de captura de movimento ou um movimento pré-gravado desenvolvido pelo artista.
[00083] De acordo com uma concretização, os movimentos ou animações ao vivo e/ou pré-gravados podem ser aplicados ao personagem virtual 800 em resposta a um gesto recebido de um usuário. Por exemplo, um dos movimentos em tempo real, ou ao vivo, do modelo associado ao usuário que pode ser capturado em 315, pode incluir um gesto que pode ser usado para controlar o movimento ou animação do personagem virtual 800 em 325.
[00084] Em uma concretização ilustrativa, um usuário pode erguer o braço esquerdo de modo que o modelo associado ao usuário possa ser ajustado para imitar o usuário erguendo o braço esquerdo e possa ser capturado em 315. Por exemplo, as articulações j4, j8 e j12 do modelo 500 descrito acima em relação às FIGs. 7-8B podem ser ajustadas para refletir o usuário erguendo o braço esquerdo. O sistema de reconhecimento, análise e rastreamento de alvo pode então interpretar o gesto associado ao braço esquerdo sendo erguido de modo que o sistema de reconhecimento, análise e rastreamento de alvo possa aplicar um movimento pré-gravado ou ao vivo a pelo menos uma parte, tal como a primeira parte A' do personagem virtual 800, possa alternar de um movimento pré-gravado ou um movimento em tempo real sendo aplicado a pelo menos uma parte, tal como a primeira parte A' do personagem virtual 800, ou similar, em resposta ao gesto associado ao braço esquerdo sendo erguido pelo usuário.
[00085] Por exemplo, de acordo com uma concretização, em resposta ao usuário erguer o braço esquerdo, o personagem virtual 800 pode ser animado com base nos ajustes feitos, por exemplo, no modelo 500 associado ao usuário, de modo que o movimento em tempo real do usuário erguendo o braço esquerdo possa ser aplicado, por exemplo, à primeira parte A' do personagem virtual 800, como ilustra a FIG. 1B. Isto é, em resposta ao usuário erguer o braço esquerdo, as articulações j4, j8 e j12 do modelo 500 associado ao usuário podem ser mapeadas para um braço esquerdo do personagem virtual 800, de modo que a primeira parte A' do personagem virtual 800 possa ser animada pelos movimentos em tempo real realizados pelo usuário com a parte superior do corpo. Além disso, o movimento subsequente pelo usuário com a parte superior do corpo pode adicionalmente ser aplicado ao personagem virtual 800. Por exemplo, à medida que o usuário ergue o antebraço direito, os movimentos em tempo real do usuário erguendo o antebraço direito podem ser aplicados às articulações j7 e j11 do modelo 500. Os movimentos em tempo real podem então ser aplicados ao personagem virtual 800 como descrito acima, de modo que o personagem virtual 800 possa ser animado ou movido para erguer o antebraço esquerdo, como mostra a FIG. 11C. Assim, de acordo com uma concretização, em resposta ao recebimento de um gesto, pelo menos uma parte do personagem virtual 800 pode ser animada para imitar os movimentos do usuário que podem ser aplicados ao modelo 500 associado ao usuário.
[00086] De modo similar, um usuário pode levantar a perna esquerda, de modo que o modelo associado ao usuário possa ser ajustado para imitar o usuário levantando a perna esquerda e possa ser capturado em 315. Por exemplo, as articulações j14, j16 e j18 do modelo 500 descrito acima em relação às FIGs. 7-8B podem ser ajustadas para refletir o usuário levantando a perna esquerda. O sistema de reconhecimento, análise e rastreamento de alvo pode então interpretar o gesto associado à perna esquerda sendo levantada de modo que o sistema de reconhecimento, análise e rastreamento de alvo possa aplicar um movimento pré-gravado ou ao vivo a pelo menos uma parte, tal como a segunda parte B' do personagem virtual 800, possa alternar de um movimento pré-gravado ou um movimento em tempo real sendo aplicado a pelo menos uma parte, tal como a segunda parte B' do personagem virtual 800, ou similar, em resposta ao gesto associado à perna esquerda sendo levantada pelo usuário.
[00087] Por exemplo, de acordo com uma concretização, em resposta ao usuário levantando a perna esquerda, a segunda parte B' do personagem virtual 800 pode ser animada com um movimento de andar pré-gravado, tal como o movimento de andar pré-gravado do modelo 500 associado ao usuário capturado em um arquivo de captura de movimento ou uma animação de andar desenvolvida por um artista, como mostra a FIG. 11D-11F. Isto é, em resposta ao usuário levantando a perna esquerda, as articulações j13-j18 do modelo 500 no arquivo de captura de movimento armazenado podem ser mapeadas para uma respectiva perna direita e esquerda do personagem virtual 800, de modo que a segunda parte B' do personagem virtual 800 possa ser animada por um movimento de andar pré-gravado realizado pelo usuário. Como alternativa, em resposta ao usuário levantando a perna esquerda, as articulações e/ou partes corporais de um modelo de personagem podem ser mapeadas para uma respectiva perna direita e esquerda do personagem virtual 800, de modo que a segunda parte B' do personagem virtual 800 possa ser animada por um movimento de andar pré-gravado desenvolvido por um artista.
[00088] Em uma concretização, os movimentos em tempo real do usuário e/ou os movimentos pré-gravados podem ser aplicados, por exemplo, a primeira e segunda partes A' e B' do personagem virtual 800 até que um gesto subsequente que pode controlar as animações sendo aplicadas ao personagem virtual 800 possa ser recebido. Por exemplo, os movimentos em tempo real do usuário podem ser aplicados, por exemplo, à primeira parte A' do personagem virtual 800 até que um gesto subsequente, tal como o usuário erguendo os braços direito e esquerdo, possa ser recebido. Ao receber o gesto subsequente, a primeira parte A' do personagem virtual 800 pode estar em repouso ou ser trocada para ser animada com, por exemplo, um movimento pré-gravado, tal como um movimento pré-gravado do usuário no arquivo de captura de movimento descrito acima ou uma animação pré-gravada gerada por um artista.
[00089] De acordo com uma concretização ilustrativa, para animar a primeira parte A' do personagem virtual 800 em resposta ao usuário erguendo a mão esquerda com os movimentos em tempo real realizados pelo usuário com a parte superior do corpo, o sistema de reconhecimento, análise e rastreamento de alvo pode desativar as animações ou movimentos das articulações e/ou das partes corporais, tais como as articulações j13-j18 do modelo 500 associado à parte inferior do corpo do usuário. Além disso, para animar a segunda parte B' do personagem virtual 800 em resposta ao usuário levantando a perna esquerda com os movimentos de andar pré-gravados, o sistema de reconhecimento, análise e rastreamento de alvo pode desativar as animações ou movimentos das articulações e/ou partes corporais de um modelo de personagem ou do modelo 500 associado à parte superior do corpo do modelo de personagem associado ao personagem virtual 800 ou usuário. O sistema de reconhecimento, análise e rastreamento de alvo pode então combinar as animações ou movimentos ao vivo possibilitados da parte superior do corpo do usuário com os movimentos de andar pré-gravados possibilitados do modelo de personagem 600, de modo que a primeira parte A' possa ser animada com o movimento em tempo real da parte superior do corpo do usuário em resposta ao usuário erguendo o braço esquerdo com os movimentos de andar pré-gravados, como mostram as FIGs. 11D-11F.
[00090] Além disso, em uma concretização, em resposta ao recebimento de um gesto subsequente, tal como o usuário erguendo ambos os braços, que podem trocar, por exemplo, um movimento em tempo real do usuário sendo aplicado à primeira parte A' do personagem virtual 800 por um movimento pré-gravado, o sistema de reconhecimento, análise e rastreamento de alvo pode combinar a transição ao longo, por exemplo, de um número predeterminado de quadros, tais como 15-20 quadros, de modo que a primeira parte A' do personagem virtual possa realizar uma transição suave entre o movimento em tempo real e o movimento pré-gravado. Por exemplo, cada uma das articulações e/ou partes corporais do modelo 500 nos movimentos em tempo real pode ser combinada com articulações e/ou partes corporais correspondentes nos movimentos pré-gravados em 15-20 quadros. Assim, cada articulação associada à parte superior do corpo do modelo 500 em um primeiro quadro dos movimentos em tempo real no arquivo de captura de movimento pode ser combinada com cada articulação e/ou parte corporal correspondente de um modelo de personagem em um primeiro quadro dos movimentos ou animações pré-gravadas. Os movimentos em tempo real podem então ser desativados após o número predeterminado de quadros, de modo que a pri- meira parte A' do personagem virtual 800 possa ser animada com o movimento ou animações pré-gravadas.
[00091] As FIGs. 12A-12B ilustram uma concretização ilustrativa de um personagem de jogo 900 que pode ter um movimento ao vivo de um usuário e/ou uma transformação programaticamente controlada aplicada ao mesmo em 325. Como mostram as FIGs. 12A-12B, o personagem de jogo 900 pode incluir um jogador de futebol americano, que pode ser um personagem em um aplicativo de jogo de futebol americano, por exemplo. De acordo com uma concretização, o personagem de jogo 900 pode ser animado com um movimento em tempo real do modelo rastreado associado ao usuário e uma transformação programaticamente controlada, tal como uma animação ou movimento controlado pelo dispositivo de entrada, uma animação ou movimento de boneco, ou similar, em 325. Por exemplo, uma primeira parte, tal como os braços 906a e 906b, do personagem de jogo 900, pode ser controlada ou animada por um movimento em tempo real realizado pelo usuário, tal como o usuário 18 descrito acima em relação às FIGs. 1A e 1B com os braços. De acordo com uma concretização ilustrativa, uma segunda parte, tal como cada uma das partes restantes do corpo do personagem do jogo 900 ilustrado nas FIGs. 12A-12B, pode ter uma transformação pré-gravada controlada programaticamente aplicada à mesma.
[00092] Em uma concretização, a transformação controlada pro-gramaticamente pré-gravada pode incluir uma animação ou movimento baseado em objetivo que pode usar física para permitir que um personagem do jogo, como o personagem do jogo 900, atinja seu objetivo em um aplicativo. Por exemplo, o personagem do jogo 900 pode ser um receptor amplo que pode ter um objetivo de atingir uma localização específica em um campo de futebol americano disposto no aplicativo de jogo de futebol americano para interceptar um passe. A transforma- ção pré-gravada controlada programaticamente pode incluir uma animação ou movimento usando, por exemplo, propriedades físicas que podem fazer com que o personagem do jogo 900 automaticamente atinja esta localização.
[00093] Além disso, de acordo com outra concretização ilustrativa, o personagem do jogo 900 pode receber um tackle de um personagem do jogo no time adversário, como mostram as FIGs. 12A-12B. A transformação programaticamente controlada pode incluir um movimento pré-gravado ou uma animação baseada em um boneco que pode ser posicionado para realizar um tackle no personagem do jogo 900 em uma dada posição no aplicativo de jogo de futebol americano. Por exemplo, o movimento de transformação ou animação controlado pro-gramaticamente pode incluir uma animação ou movimento de boneco que pode ser gerado baseado em um cálculo físico baseado em uma reação do personagem de jogo 900 à medida que o personagem de jogo 900 pode receber um tackle de um boneco associado à localização do jogador adversário.
[00094] Assim, em uma concretização, os braços 906a e 906b podem ter um movimento em tempo real dos braços do usuário sendo aplicado aos mesmos e as partes restantes do corpo do personagem do jogo 900 podem ser animadas com a transformação programatica-mente controlada da animação ou movimento do boneco associado ao jogador adversário atacando o personagem do jogo 900 de modo que o usuário possa permanecer sob controle dos braços 906a e 906b para realizar a interceptação, como mostram as FIGs. 12A-12B, e a parte restante do corpo pode reagir de maneira similar ao jogador recebendo um tackle na vida real por um jogador adversário.
[00095] Assim, em uma concretização ilustrativa, a aparência visual de um personagem na tela pode ser alterada em 325, ilustrado na FIG. 5, em resposta a um ou mais movimentos em tempo real ou pré- gravados no arquivo de captura de movimento. Por exemplo, um jogador do jogo, tal como o usuário 18, descrito acima em relação às FIGs. 1A-1B jogando um jogo eletrônico em um console de jogo, pode ser rastreado pelo console de jogo como descrito neste documento. À medida que o jogador do jogo balança um braço, o console de jogo pode rastrear esse movimento, e então, em resposta ao movimento rastrea-do, pode ajustar o modelo associado ao usuário. Como descrito acima, o modelo rastreado pode, além disso, ser capturado no arquivo de captura de movimento. O arquivo de captura de movimento pode então ser aplicado, por exemplo, a uma parte superior do corpo de um personagem na tela de modo que o personagem na tela possa ser animado para imitar o movimento real do usuário balançando o braço. Além disso, um movimento pré-gravado gerado por um artista ou uma transformação controlada pragmaticamente podem ser combinados com movimentos em tempo real ou pré-gravados no arquivo de captura de movimento. Por exemplo, de acordo com as concretizações ilustrativas, o personagem na tela pode ser animado para realizar uma tacada, por exemplo, com um taco de golfe, ou dar um soco em um jogo exatamente como o usuário balança o braço em tempo real, ou ao vivo, e pode ser animado para andar, correr, ou pedalar como um atleta profissional, que pode ser capturado em um movimento ou animação de corrida, caminhada ou pedalada gravado anteriormente. [00096] Deve-se compreender que as configurações e / ou abordagens aqui descritas são de natureza exemplificativa, e que essas concretizações ou exemplos específicos não devem ser considerados limi-tativos. As rotinas ou métodos específicos descritos aqui podem representar um ou mais de qualquer número de estratégias de processamento. Como tal, várias etapas ilustradas podem ser realizadas na seqüência ilustrada, em outras seqüências, em paralelo, ou similar. Da mesma forma, a ordem dos processos descritos acima pode ser alte- rada.
[00097] A matéria da presente revelação inclui todas as combinações e subcombinações novas e não óbvias e dos vários processos, sistemas e configurações, e outras características, funções, etapas e / ou propriedades reveladas na presente invenção, bem como todo e qualquer equivalente dos mesmos.
REIVINDICAÇÕES
Claims (11)
1. Método (300) implementado por computador para combinar movimentos, o método (300) implementado por computador sendo caracterizado pelo fato de que compreende as etapas de: receber (305) uma imagem, em que a imagem inclui um alvo humano associado a um usuário (18); gerar (310) um modelo (500) do usuário (18) baseado no alvo humano na imagem recebida; capturar (315) um movimento em tempo real do usuário (18); receber (320) um movimento pré-gravado; e aplicar (325) o movimento em tempo real a uma primeira parte (A) de um personagem virtual (700, 800) e o movimento pré-gravado a uma segunda parte (B) do personagem virtual (700, 800), onde aplicar (325) compreende: mapear uma ou mais partes corporais do personagem virtual (700, 800) para uma ou mais articulações (j1-j12) no modelo (500) do usuário (18); mapear uma ou mais partes corporais do personagem virtual (700, 800) para uma ou mais articulações (j9’-j20’) de um modelo de personagem (600) associado ao movimento pré-gravado; desativar uma ou mais articulações (j13-j18) no modelo (500) do usuário (18) que correspondem às uma ou mais partes corporais na segunda parte (B) do personagem virtual (700, 800); desativar uma ou mais articulações (j1’-j8’) no modelo de personagem (600) associado ao movimento pré-gravado que corresponde às uma ou mais partes corporais na primeira parte (A) do personagem virtual (700, 800); combinar o movimento em tempo real associado ao modelo (500) ajustado do usuário (18) com o movimento pré-gravado associa- do ao modelo de personagem (600) em resposta à desativação das uma ou mais articulações (j13-j18) no modelo (500) do usuário (18) e das uma ou mais articulações (j1’-j8’) no modelo de personagem (600); e animar a primeira parte (A) e a segunda parte (B) do personagem virtual (700, 800) com o movimento em tempo real e o movimento pré-gravado combinados.
2. Método (300) implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende receber (315) um gesto do usuário (18), em que o gesto está associado a um comando para aplicar uma animação ao personagem virtual (700, 800).
3. Método (300) implementado por computador, de acordo com a reivindicação 2, caracterizado pelo fato de que pelo menos um dentre o movimento em tempo real e o movimento pré-gravado é aplicado (325) às respectivas primeira (A) e segunda (B) partes do personagem virtual (700, 800) em resposta ao recebimento do gesto do usuário (18).
4. Método (300) implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: receber um primeiro gesto do usuário (18), em que o movimento em tempo real é aplicado à primeira parte (A) do personagem virtual (700, 800) em resposta ao recebimento do gesto.
5. Método (300) implementado por computador, de acordo com a reivindicação 4, caracterizado pelo fato de que ainda compreende: receber um segundo gesto do usuário (18), em que o movimento em pré-gravado é aplicado à segunda parte (B) do personagem virtual (700, 800) em resposta ao recebimento do segundo gesto.
6. Método (300) implementado por computador, de acordo com a reivindicação 5, caracterizado pelo fato de que aplicar o movimento pré-gravado à segunda parte (B) do personagem virtual (700, 800) em resposta ao recebimento do segundo gesto compreende: combinar o movimento em tempo real do usuário (18) com o movimento pré-gravado durante um número predeterminado de quadros; animar o personagem virtual (700, 800) com a combinação do movimento em tempo real e do movimento pré-gravado durante o número predeterminado de quadros; e animar o personagem virtual (700, 800) com o movimento pré-gravado após o número predeterminado de quadros.
7. Meio de armazenamento legível por computador (34, 110, 143, 222, 253, 254) caracterizado pelo fato de que compreende um método (300) armazenado no mesmo, o qual, quando executado por um processador (32, 101, 259), faz com que o processador (32, 101, 259) execute as etapas do método (300) conforme definido em qualquer uma das reivindicações 1 a 6.
8. Sistema (10) para combinar movimentos, o sistema (10) caracterizado pelo fato de que compreende: um processador (32, 101, 259), em que o processador (32, 101, 259) executa um método (300), e em que o método (300) compreende as etapas de: receber um movimento pré-gravado e um movimento em tempo real de um usuário (18); gerar um primeiro modelo (500) do usuário (18) baseado em uma imagem recebida incluindo o usuário (18); aplicar (325) o movimento em tempo real a uma primeira parte (A) de um personagem virtual (700, 800) e o movimento pré-gravado a uma segunda parte (B) do personagem virtual (700, 800), onde aplicar (325) compreende: mapear uma ou mais partes corporais do personagem virtual (700, 800) para uma ou mais articulações (j1-j12) no primeiro modelo (500) do usuário (18) associado com o movimento em tempo real; mapear uma ou mais partes corporais do personagem virtual (700, 800) para uma ou mais articulações (j9’-j20’) de um segundo modelo (600) associado ao movimento pré-gravado; desativar uma ou mais articulações (j13-j18) no primeiro modelo (500) do usuário (18) que correspondem a uma ou mais partes corporais na segunda parte (B) do personagem virtual (700, 800); desativar uma ou mais articulações (j1’-j8’) no segundo modelo (600) associado ao movimento pré-gravado que corresponde a uma ou mais partes corporais na primeira parte (A) do personagem virtual (700, 800); combinar o movimento em tempo real associado ao primeiro modelo (500) do usuário (18) com o movimento pré-gravado associado ao segundo modelo (600) em resposta à desativação das uma ou mais articulações (j13-j18) no primeiro modelo (500) do usuário (18) e das uma ou mais articulações (j1’-j8’) no segundo modelo (600); e animar a primeira parte (A) e a segunda parte (B) do personagem virtual (700, 800) com o movimento em tempo real e o movimento pré-gravado combinados.
9. Sistema (10), de acordo com a reivindicação 8, caracterizado pelo fato de que o movimento pré-gravado compreende pelo menos um dentre os seguintes: um movimento pré-gravado do usuário (18); um movimento desenvolvido por um artista; e uma transformação controlada programaticamente.
10. Sistema (10), de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que ainda compreende a etapa de receber um gesto do usuário (18), em que o gesto está associado a um comando para aplicar uma animação ao personagem virtual (700, 800).
11. Sistema (10), de acordo com a reivindicação 10, caracterizado pelo fato de que o personagem virtual (700, 800) é animado com o movimento em tempo real e o movimento pré-gravado em resposta ao recebimento do gesto do usuário (18).
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/475,422 US8803889B2 (en) | 2009-05-29 | 2009-05-29 | Systems and methods for applying animations or motions to a character |
| US12/475.422 | 2009-05-29 | ||
| US12/475,422 | 2009-05-29 | ||
| PCT/US2010/035885 WO2010138428A2 (en) | 2009-05-29 | 2010-05-22 | Systems and methods for applying animations or motions to a character |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI1012091A2 BRPI1012091A2 (pt) | 2018-03-13 |
| BRPI1012091B1 true BRPI1012091B1 (pt) | 2019-12-03 |
Family
ID=43219712
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI1012091-2A BRPI1012091B1 (pt) | 2009-05-29 | 2010-05-22 | método implementado por computador para combinar movimentos, meio de armazenamento legível por computador e sistema para combinar movimentos |
Country Status (9)
| Country | Link |
|---|---|
| US (2) | US8803889B2 (pt) |
| EP (1) | EP2435146B1 (pt) |
| JP (1) | JP5576932B2 (pt) |
| KR (1) | KR101751078B1 (pt) |
| CN (1) | CN102596340B (pt) |
| BR (1) | BRPI1012091B1 (pt) |
| CA (1) | CA2760210C (pt) |
| RU (1) | RU2544770C2 (pt) |
| WO (1) | WO2010138428A2 (pt) |
Families Citing this family (94)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7459624B2 (en) | 2006-03-29 | 2008-12-02 | Harmonix Music Systems, Inc. | Game controller simulating a musical instrument |
| US20090088249A1 (en) | 2007-06-14 | 2009-04-02 | Robert Kay | Systems and methods for altering a video game experience based on a controller type |
| US8678896B2 (en) | 2007-06-14 | 2014-03-25 | Harmonix Music Systems, Inc. | Systems and methods for asynchronous band interaction in a rhythm action game |
| US8588465B2 (en) * | 2009-01-30 | 2013-11-19 | Microsoft Corporation | Visual target tracking |
| US8465366B2 (en) | 2009-05-29 | 2013-06-18 | Harmonix Music Systems, Inc. | Biasing a musical performance input to a part |
| US8803889B2 (en) * | 2009-05-29 | 2014-08-12 | Microsoft Corporation | Systems and methods for applying animations or motions to a character |
| US8449360B2 (en) | 2009-05-29 | 2013-05-28 | Harmonix Music Systems, Inc. | Displaying song lyrics and vocal cues |
| US8719714B2 (en) | 2009-07-08 | 2014-05-06 | Steelseries Aps | Apparatus and method for managing operations of accessories |
| US8202161B2 (en) * | 2009-10-23 | 2012-06-19 | Disney Enterprises, Inc. | Virtual game instructor |
| US9981193B2 (en) | 2009-10-27 | 2018-05-29 | Harmonix Music Systems, Inc. | Movement based recognition and evaluation |
| WO2011056657A2 (en) | 2009-10-27 | 2011-05-12 | Harmonix Music Systems, Inc. | Gesture-based user interface |
| US8874243B2 (en) | 2010-03-16 | 2014-10-28 | Harmonix Music Systems, Inc. | Simulating musical instruments |
| US20110306397A1 (en) | 2010-06-11 | 2011-12-15 | Harmonix Music Systems, Inc. | Audio and animation blending |
| US8562403B2 (en) | 2010-06-11 | 2013-10-22 | Harmonix Music Systems, Inc. | Prompting a player of a dance game |
| US9358456B1 (en) | 2010-06-11 | 2016-06-07 | Harmonix Music Systems, Inc. | Dance competition game |
| US9024166B2 (en) | 2010-09-09 | 2015-05-05 | Harmonix Music Systems, Inc. | Preventing subtractive track separation |
| US8831794B2 (en) * | 2011-05-04 | 2014-09-09 | Qualcomm Incorporated | Gesture recognition via an ad-hoc proximity sensor mesh for remotely controlling objects |
| US9628843B2 (en) * | 2011-11-21 | 2017-04-18 | Microsoft Technology Licensing, Llc | Methods for controlling electronic devices using gestures |
| US20140018169A1 (en) * | 2012-07-16 | 2014-01-16 | Zhong Yuan Ran | Self as Avatar Gaming with Video Projecting Device |
| US9266020B2 (en) | 2012-09-27 | 2016-02-23 | Empire Technology Development Llc | Character model animation using stored recordings of player movement interface data |
| US10033943B1 (en) | 2012-10-15 | 2018-07-24 | Tangible Play, Inc. | Activity surface detection, display and enhancement |
| US10657694B2 (en) * | 2012-10-15 | 2020-05-19 | Tangible Play, Inc. | Activity surface detection, display and enhancement of a virtual scene |
| US9158389B1 (en) * | 2012-10-15 | 2015-10-13 | Tangible Play, Inc. | Virtualization of tangible interface objects |
| US9687730B2 (en) | 2013-03-15 | 2017-06-27 | Steelseries Aps | Gaming device with independent gesture-sensitive areas |
| US9423874B2 (en) | 2013-03-15 | 2016-08-23 | Steelseries Aps | Gaming accessory with sensory feedback device |
| US10245505B2 (en) * | 2013-03-15 | 2019-04-02 | Sony Interactive Entertainment Inc. | Generating custom recordings of skeletal animations |
| US10825220B1 (en) * | 2013-10-03 | 2020-11-03 | Pixar | Copy pose |
| CN103543830B (zh) * | 2013-10-28 | 2017-02-15 | 四川大学 | 一种人体骨骼点映射至立体显示中虚拟三维空间点的方法 |
| US20160262685A1 (en) | 2013-11-12 | 2016-09-15 | Highland Instruments, Inc. | Motion analysis systemsand methods of use thereof |
| WO2016013893A1 (en) | 2014-07-25 | 2016-01-28 | Samsung Electronics Co., Ltd. | Displaying method, animation image generating method, and electronic device configured to execute the same |
| US9940583B1 (en) | 2014-09-26 | 2018-04-10 | Amazon Technologies, Inc. | Transmitting content to kiosk after determining future location of user |
| US20160092034A1 (en) * | 2014-09-26 | 2016-03-31 | Amazon Technologies, Inc. | Kiosk Providing High Speed Data Transfer |
| US10237329B1 (en) | 2014-09-26 | 2019-03-19 | Amazon Technologies, Inc. | Wirelessly preparing device for high speed data transfer |
| US10973440B1 (en) * | 2014-10-26 | 2021-04-13 | David Martin | Mobile control using gait velocity |
| KR101687484B1 (ko) * | 2015-05-07 | 2016-12-16 | 한국과학기술원 | 이형 공간간의 인간형 객체 모션 리타게팅 방법 및 시스템 |
| US10489956B2 (en) * | 2015-07-27 | 2019-11-26 | Autodesk, Inc. | Robust attribute transfer for character animation |
| US9786032B2 (en) * | 2015-07-28 | 2017-10-10 | Google Inc. | System for parametric generation of custom scalable animated characters on the web |
| US10543429B2 (en) * | 2015-12-09 | 2020-01-28 | Capcom Co., Ltd. | Recording medium whereupon game program is recorded, effect control method, and game device |
| US9919217B2 (en) | 2016-03-08 | 2018-03-20 | Electronic Arts Inc. | Dynamic difficulty adjustment |
| CN107180446B (zh) * | 2016-03-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 人物面部模型的表情动画生成方法及装置 |
| EP4050464A1 (en) * | 2016-03-25 | 2022-08-31 | Tangible Play, Inc. | Activity surface detection, display and enhancement of a virtual scene |
| JP2017176673A (ja) * | 2016-03-31 | 2017-10-05 | ブラザー工業株式会社 | 表示制御装置およびプログラム |
| US10384133B1 (en) | 2016-12-30 | 2019-08-20 | Electronic Arts Inc. | Systems and methods for automatically measuring a video game difficulty |
| US10357718B2 (en) | 2017-02-28 | 2019-07-23 | Electronic Arts Inc. | Realtime dynamic modification and optimization of gameplay parameters within a video game application |
| CN107469355A (zh) * | 2017-07-31 | 2017-12-15 | 广东欧珀移动通信有限公司 | 游戏人物形象创建方法及装置、终端设备 |
| CN110637324B (zh) * | 2017-09-08 | 2021-04-16 | 株式会社威亚视 | 三维数据系统以及三维数据处理方法 |
| US10777006B2 (en) * | 2017-10-23 | 2020-09-15 | Sony Interactive Entertainment Inc. | VR body tracking without external sensors |
| KR102040130B1 (ko) | 2017-11-15 | 2019-11-04 | 동서대학교 산학협력단 | 3d 그래픽 툴에서의 모션 스컬팅 장치 및 그 방법 |
| US10916059B2 (en) * | 2017-12-06 | 2021-02-09 | Universal City Studios Llc | Interactive video game system having an augmented virtual representation |
| CN108375958B (zh) * | 2018-01-15 | 2020-06-19 | 珠海格力电器股份有限公司 | 一种电器系统 |
| US10380803B1 (en) * | 2018-03-26 | 2019-08-13 | Verizon Patent And Licensing Inc. | Methods and systems for virtualizing a target object within a mixed reality presentation |
| CN114915827A (zh) | 2018-05-08 | 2022-08-16 | 日本聚逸株式会社 | 动态图像分发系统及其方法和记录介质 |
| KR102585051B1 (ko) | 2018-05-08 | 2023-10-04 | 그리 가부시키가이샤 | 액터의 움직임에 기초하여 생성되는 캐릭터 오브젝트의 애니메이션을 포함하는 동화상을 배신하는 동화상 배신 시스템, 동화상 배신 방법 및 동화상 배신 프로그램 |
| US11128932B2 (en) | 2018-05-09 | 2021-09-21 | Gree, Inc. | Video distribution system for live distributing video containing animation of character object generated based on motion of actors |
| CN108734774B (zh) * | 2018-05-18 | 2022-05-31 | 网易(杭州)网络有限公司 | 虚拟肢体构建方法及装置、人机交互方法 |
| CN110647780A (zh) * | 2018-06-07 | 2020-01-03 | 东方联合动画有限公司 | 一种数据处理方法、系统 |
| US10713543B1 (en) | 2018-06-13 | 2020-07-14 | Electronic Arts Inc. | Enhanced training of machine learning systems based on automatically generated realistic gameplay information |
| CN111316203B (zh) * | 2018-07-10 | 2022-05-31 | 微软技术许可有限责任公司 | 自动生成形象的动作 |
| US11044535B2 (en) | 2018-08-28 | 2021-06-22 | Gree, Inc. | Video distribution system for live distributing video containing animation of character object generated based on motion of distributor user, distribution method, and storage medium storing video distribution program |
| CN109407825A (zh) * | 2018-08-30 | 2019-03-01 | 百度在线网络技术(北京)有限公司 | 基于虚拟物品的互动方法与装置 |
| WO2020061111A1 (en) | 2018-09-17 | 2020-03-26 | Tangible Play, Inc. | Display positioning system |
| US10636218B2 (en) * | 2018-09-24 | 2020-04-28 | Universal City Studios Llc | Augmented reality for an amusement ride |
| US10953334B2 (en) | 2019-03-27 | 2021-03-23 | Electronic Arts Inc. | Virtual character generation from image or video data |
| US11276216B2 (en) | 2019-03-27 | 2022-03-15 | Electronic Arts Inc. | Virtual animal character generation from image or video data |
| US11110353B2 (en) | 2019-07-10 | 2021-09-07 | Electronic Arts Inc. | Distributed training for machine learning of AI controlled virtual entities on video game clients |
| DE112020003344T5 (de) * | 2019-07-11 | 2022-04-28 | Sony Group Corporation | Datenverarbeitungsvorrichtung, datenverarbeitungsverfahren unddatenverarbeitungsprogramm |
| KR102899636B1 (ko) * | 2019-07-25 | 2025-12-15 | 삼성전자주식회사 | 아바타를 제공하는 전자 장치 및 그의 동작 방법 |
| WO2021034211A1 (ru) * | 2019-08-16 | 2021-02-25 | Станислав Игоревич АШМАНОВ | Способ и система передачи движения субъекта из видео на анимированного персонажа |
| CN110531860B (zh) | 2019-09-02 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 一种基于人工智能的动画形象驱动方法和装置 |
| US11972353B2 (en) | 2020-01-22 | 2024-04-30 | Electronic Arts Inc. | Character controllers using motion variational autoencoders (MVAEs) |
| US11648480B2 (en) | 2020-04-06 | 2023-05-16 | Electronic Arts Inc. | Enhanced pose generation based on generative modeling |
| WO2022251671A1 (en) * | 2021-05-27 | 2022-12-01 | Ai Thinktank Llc | 3d avatar generation and robotic limbs using biomechanical analysis |
| US12008839B2 (en) | 2021-05-28 | 2024-06-11 | Sportsbox.ai Inc. | Golf club and other object fitting using quantitative biomechanical-based analysis |
| US11615648B2 (en) | 2021-05-28 | 2023-03-28 | Sportsbox.ai Inc. | Practice drill-related features using quantitative, biomechanical-based analysis |
| US12169889B2 (en) | 2021-06-10 | 2024-12-17 | Electronic Arts Inc. | Enhanced system for generation of facial models and animation |
| US12236510B2 (en) | 2021-06-10 | 2025-02-25 | Electronic Arts Inc. | Enhanced system for generation of facial models and animation |
| US11734868B2 (en) | 2021-07-19 | 2023-08-22 | Sony Group Corporation | Motion retargeting based on differentiable rendering |
| US11875445B2 (en) | 2021-10-12 | 2024-01-16 | Electronic Arts Inc. | Seamless image processing of a tiled image region |
| KR102364728B1 (ko) | 2021-10-20 | 2022-02-18 | 주식회사 행복한다람쥐단 | 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치 |
| US11816772B2 (en) * | 2021-12-13 | 2023-11-14 | Electronic Arts Inc. | System for customizing in-game character animations by players |
| KR102725271B1 (ko) * | 2022-01-06 | 2024-11-04 | 트라이콤텍 주식회사 | 5g 기반의 이동형 디지털휴먼 트윈 교육시스템 및 이를 이용한 교육방법 |
| USD1035721S1 (en) | 2022-04-20 | 2024-07-16 | Sportsbox.ai Inc. | Display screen with transitional graphical user interface |
| USD1036464S1 (en) | 2022-04-20 | 2024-07-23 | Sportsbox.ai Inc. | Display screen with transitional graphical user interface |
| USD1107052S1 (en) | 2022-04-20 | 2025-12-23 | Sportsbox.ai Inc. | Display screen with transitional graphical user interface |
| USD1035720S1 (en) | 2022-04-20 | 2024-07-16 | Sportsbox.ai Inc. | Display screen with transitional graphical user interface |
| JP7755858B2 (ja) * | 2022-05-08 | 2025-10-17 | 株式会社Tedi | 情報処理方法、情報処理システム及びプログラム |
| US12387409B2 (en) | 2022-10-21 | 2025-08-12 | Electronic Arts Inc. | Automated system for generation of facial animation rigs |
| CN115811623B (zh) * | 2022-11-18 | 2025-06-03 | 上海哔哩哔哩科技有限公司 | 基于虚拟形象的直播方法和系统 |
| KR102589194B1 (ko) | 2023-02-07 | 2023-10-13 | (주)로코모스튜디오 | 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 방법, 장치 및 시스템 |
| US12551795B2 (en) | 2023-03-30 | 2026-02-17 | Electronic Arts Inc. | Automated personalized video game guidance system |
| US12569761B2 (en) | 2023-06-01 | 2026-03-10 | Electronic Arts Inc. | System for generating visual content within a game application environment |
| US12456245B2 (en) | 2023-09-29 | 2025-10-28 | Electronic Arts Inc. | Enhanced system for generation and optimization of facial models and animation |
| CN117032618B (zh) * | 2023-10-07 | 2024-02-02 | 启迪数字科技(深圳)有限公司 | 基于多屏幕的动画旋转方法、设备及介质 |
| KR102896898B1 (ko) * | 2024-09-30 | 2025-12-11 | 주식회사 오르빗엔터테인먼트 | 모션 캡처 데이터 생성 방법 및 시스템 |
Family Cites Families (76)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2552427B2 (ja) * | 1993-12-28 | 1996-11-13 | コナミ株式会社 | テレビ遊戯システム |
| IL114278A (en) * | 1995-06-22 | 2010-06-16 | Microsoft Internat Holdings B | Camera and method |
| US6057909A (en) * | 1995-06-22 | 2000-05-02 | 3Dv Systems Ltd. | Optical ranging camera |
| JP3745802B2 (ja) | 1995-10-13 | 2006-02-15 | 株式会社日立製作所 | 画像生成/表示装置 |
| JP3368739B2 (ja) | 1996-01-22 | 2003-01-20 | 三菱電機株式会社 | アニメーション制作システム |
| US6088042A (en) * | 1997-03-31 | 2000-07-11 | Katrix, Inc. | Interactive motion data animation system |
| JP2001517782A (ja) | 1997-09-24 | 2001-10-09 | スリーディーヴィー システムズ リミテッド | 音響画像形成システム |
| US6072494A (en) * | 1997-10-15 | 2000-06-06 | Electric Planet, Inc. | Method and apparatus for real-time gesture recognition |
| US6115052A (en) * | 1998-02-12 | 2000-09-05 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | System for reconstructing the 3-dimensional motions of a human figure from a monocularly-viewed image sequence |
| US6950534B2 (en) * | 1998-08-10 | 2005-09-27 | Cybernet Systems Corporation | Gesture-controlled interfaces for self-service machines and other applications |
| US6501515B1 (en) * | 1998-10-13 | 2002-12-31 | Sony Corporation | Remote control system |
| JP2000163178A (ja) | 1998-11-26 | 2000-06-16 | Hitachi Ltd | 仮想キャラクタとのインタラクション装置、及び仮想キャラクタの映像を生成するプログラムを記憶した記憶媒体 |
| US6552729B1 (en) * | 1999-01-08 | 2003-04-22 | California Institute Of Technology | Automatic generation of animation of synthetic characters |
| US6614422B1 (en) | 1999-11-04 | 2003-09-02 | Canesta, Inc. | Method and apparatus for entering data using a virtual input device |
| US6738065B1 (en) * | 1999-08-10 | 2004-05-18 | Oshri Even-Zohar | Customizable animation system |
| US7224384B1 (en) * | 1999-09-08 | 2007-05-29 | 3Dv Systems Ltd. | 3D imaging system |
| US6512838B1 (en) * | 1999-09-22 | 2003-01-28 | Canesta, Inc. | Methods for enhancing performance and data acquired from three-dimensional image systems |
| US20030021032A1 (en) | 2001-06-22 | 2003-01-30 | Cyrus Bamji | Method and system to display a virtual input device |
| US6690618B2 (en) | 2001-04-03 | 2004-02-10 | Canesta, Inc. | Method and apparatus for approximating a source position of a sound-causing event for determining an input used in operating an electronic device |
| US7006236B2 (en) * | 2002-05-22 | 2006-02-28 | Canesta, Inc. | Method and apparatus for approximating depth of an object's placement onto a monitored region with applications to virtual interface devices |
| US20030132950A1 (en) | 2001-11-27 | 2003-07-17 | Fahri Surucu | Detecting, classifying, and interpreting input events based on stimuli in multiple sensory domains |
| US7050177B2 (en) * | 2002-05-22 | 2006-05-23 | Canesta, Inc. | Method and apparatus for approximating depth of an object's placement onto a monitored region with applications to virtual interface devices |
| DE19960180B4 (de) * | 1999-12-14 | 2006-03-09 | Rheinmetall W & M Gmbh | Verfahren zur Herstellung eines Sprenggeschosses |
| US6674877B1 (en) * | 2000-02-03 | 2004-01-06 | Microsoft Corporation | System and method for visually tracking occluded objects in real time |
| TW522732B (en) * | 2000-02-15 | 2003-03-01 | Sorceron Inc | Method and system for distributing captured motion data over a network |
| US6663491B2 (en) * | 2000-02-18 | 2003-12-16 | Namco Ltd. | Game apparatus, storage medium and computer program that adjust tempo of sound |
| US6554706B2 (en) * | 2000-05-31 | 2003-04-29 | Gerard Jounghyun Kim | Methods and apparatus of displaying and evaluating motion data in a motion game apparatus |
| JP2002058045A (ja) | 2000-08-08 | 2002-02-22 | Komatsu Ltd | 現実の物体をバーチャル3次元空間に登場させるためのシステム及び方法 |
| US20020024517A1 (en) * | 2000-07-14 | 2002-02-28 | Komatsu Ltd. | Apparatus and method for three-dimensional image production and presenting real objects in virtual three-dimensional space |
| US7227526B2 (en) * | 2000-07-24 | 2007-06-05 | Gesturetek, Inc. | Video-based image control system |
| JP3725460B2 (ja) * | 2000-10-06 | 2005-12-14 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス |
| US6539931B2 (en) * | 2001-04-16 | 2003-04-01 | Koninklijke Philips Electronics N.V. | Ball throwing assistant |
| AU2002362085A1 (en) | 2001-12-07 | 2003-07-09 | Canesta Inc. | User interface for electronic devices |
| US7340077B2 (en) * | 2002-02-15 | 2008-03-04 | Canesta, Inc. | Gesture recognition system using depth perceptive sensors |
| AU2003219926A1 (en) | 2002-02-26 | 2003-09-09 | Canesta, Inc. | Method and apparatus for recognizing objects |
| US7310431B2 (en) * | 2002-04-10 | 2007-12-18 | Canesta, Inc. | Optical methods for remotely measuring objects |
| US7623115B2 (en) * | 2002-07-27 | 2009-11-24 | Sony Computer Entertainment Inc. | Method and apparatus for light input device |
| US7883415B2 (en) * | 2003-09-15 | 2011-02-08 | Sony Computer Entertainment Inc. | Method and apparatus for adjusting a view of a scene being displayed according to tracked head motion |
| US7646372B2 (en) * | 2003-09-15 | 2010-01-12 | Sony Computer Entertainment Inc. | Methods and systems for enabling direction detection when interfacing with a computer program |
| US7151530B2 (en) * | 2002-08-20 | 2006-12-19 | Canesta, Inc. | System and method for determining an input selected by a user through a virtual interface |
| RU2344483C9 (ru) * | 2002-09-30 | 2009-07-20 | АйДжиТи | Трехмерный текст в игровой машине |
| US9177387B2 (en) * | 2003-02-11 | 2015-11-03 | Sony Computer Entertainment Inc. | Method and apparatus for real time motion capture |
| JP4355341B2 (ja) * | 2003-05-29 | 2009-10-28 | 本田技研工業株式会社 | 深度データを用いたビジュアルトラッキング |
| US7874917B2 (en) * | 2003-09-15 | 2011-01-25 | Sony Computer Entertainment Inc. | Methods and systems for enabling depth and direction detection when interfacing with a computer program |
| JP3847753B2 (ja) * | 2004-01-30 | 2006-11-22 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス |
| US20050255434A1 (en) * | 2004-02-27 | 2005-11-17 | University Of Florida Research Foundation, Inc. | Interactive virtual characters for training including medical diagnosis training |
| US7308112B2 (en) * | 2004-05-14 | 2007-12-11 | Honda Motor Co., Ltd. | Sign based human-machine interaction |
| EP1789928A4 (en) * | 2004-07-30 | 2011-03-16 | Extreme Reality Ltd | SYSTEM AND METHOD FOR PICTURE PROCESSING BASED ON THE 3D ROOM DIMENSION |
| US7991220B2 (en) * | 2004-09-01 | 2011-08-02 | Sony Computer Entertainment Inc. | Augmented reality game system using identification information to display a virtual object in association with a position of a real object |
| EP1645944B1 (en) * | 2004-10-05 | 2012-08-15 | Sony France S.A. | A content-management interface |
| JP4449723B2 (ja) * | 2004-12-08 | 2010-04-14 | ソニー株式会社 | 画像処理装置、画像処理方法、およびプログラム |
| US8009871B2 (en) * | 2005-02-08 | 2011-08-30 | Microsoft Corporation | Method and system to segment depth images and to detect shapes in three-dimensionally acquired data |
| KR100688743B1 (ko) * | 2005-03-11 | 2007-03-02 | 삼성전기주식회사 | 멀티 레이어 커패시터 내장형의 인쇄회로기판의 제조방법 |
| US7317836B2 (en) * | 2005-03-17 | 2008-01-08 | Honda Motor Co., Ltd. | Pose estimation based on critical point analysis |
| US7403202B1 (en) * | 2005-07-12 | 2008-07-22 | Electronic Arts, Inc. | Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models |
| US20080026838A1 (en) * | 2005-08-22 | 2008-01-31 | Dunstan James E | Multi-player non-role-playing virtual world games: method for two-way interaction between participants and multi-player virtual world games |
| GB2431717A (en) * | 2005-10-31 | 2007-05-02 | Sony Uk Ltd | Scene analysis |
| CN101336441B (zh) * | 2005-12-22 | 2014-01-08 | Pkr有限公司 | 在线游戏的改进 |
| CN101496032B (zh) * | 2006-02-27 | 2011-08-17 | 普莱姆传感有限公司 | 使用斑纹解相关的距离映射的方法及设备 |
| WO2007130693A2 (en) * | 2006-05-07 | 2007-11-15 | Sony Computer Entertainment Inc. | Methods and systems for processing an interchange of real time effects during video communication |
| US7721207B2 (en) * | 2006-05-31 | 2010-05-18 | Sony Ericsson Mobile Communications Ab | Camera based control |
| WO2008011353A2 (en) * | 2006-07-16 | 2008-01-24 | The Jim Henson Company | System and method of producing an animated performance utilizing multiple cameras |
| US8395658B2 (en) * | 2006-09-07 | 2013-03-12 | Sony Computer Entertainment Inc. | Touch screen-like user interface that does not require actual touching |
| US20080134102A1 (en) * | 2006-12-05 | 2008-06-05 | Sony Ericsson Mobile Communications Ab | Method and system for detecting movement of an object |
| US8351646B2 (en) * | 2006-12-21 | 2013-01-08 | Honda Motor Co., Ltd. | Human pose estimation and tracking using label assignment |
| US8199152B2 (en) * | 2007-01-16 | 2012-06-12 | Lucasfilm Entertainment Company Ltd. | Combining multiple session content for animation libraries |
| GB0703974D0 (en) * | 2007-03-01 | 2007-04-11 | Sony Comp Entertainment Europe | Entertainment device |
| US20100271368A1 (en) | 2007-05-31 | 2010-10-28 | Depth Analysis Pty Ltd | Systems and methods for applying a 3d scan of a physical target object to a virtual environment |
| US7970176B2 (en) * | 2007-10-02 | 2011-06-28 | Omek Interactive, Inc. | Method and system for gesture classification |
| TWI372645B (en) * | 2007-10-17 | 2012-09-21 | Cywee Group Ltd | An electronic game controller with motion-sensing capability |
| US9292092B2 (en) | 2007-10-30 | 2016-03-22 | Hewlett-Packard Development Company, L.P. | Interactive display system with collaborative gesture detection |
| US20090221368A1 (en) | 2007-11-28 | 2009-09-03 | Ailive Inc., | Method and system for creating a shared game space for a networked game |
| GB2455316B (en) * | 2007-12-04 | 2012-08-15 | Sony Corp | Image processing apparatus and method |
| US8149210B2 (en) * | 2007-12-31 | 2012-04-03 | Microsoft International Holdings B.V. | Pointing device and method |
| US8803889B2 (en) * | 2009-05-29 | 2014-08-12 | Microsoft Corporation | Systems and methods for applying animations or motions to a character |
| CN102810367A (zh) * | 2012-08-02 | 2012-12-05 | 泰州市双宇电子有限公司 | 可重复使用电子元件 |
-
2009
- 2009-05-29 US US12/475,422 patent/US8803889B2/en active Active
-
2010
- 2010-05-22 CA CA2760210A patent/CA2760210C/en active Active
- 2010-05-22 WO PCT/US2010/035885 patent/WO2010138428A2/en not_active Ceased
- 2010-05-22 CN CN201080024686.8A patent/CN102596340B/zh active Active
- 2010-05-22 KR KR1020117028425A patent/KR101751078B1/ko active Active
- 2010-05-22 RU RU2011148395/08A patent/RU2544770C2/ru active
- 2010-05-22 JP JP2012513147A patent/JP5576932B2/ja active Active
- 2010-05-22 BR BRPI1012091-2A patent/BRPI1012091B1/pt not_active IP Right Cessation
- 2010-05-22 EP EP10781049.1A patent/EP2435146B1/en active Active
-
2014
- 2014-07-14 US US14/331,063 patent/US9861886B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR20120020137A (ko) | 2012-03-07 |
| JP2012528390A (ja) | 2012-11-12 |
| RU2544770C2 (ru) | 2015-03-20 |
| CN102596340A (zh) | 2012-07-18 |
| WO2010138428A3 (en) | 2011-02-24 |
| WO2010138428A2 (en) | 2010-12-02 |
| KR101751078B1 (ko) | 2017-07-03 |
| JP5576932B2 (ja) | 2014-08-20 |
| RU2011148395A (ru) | 2013-06-10 |
| CN102596340B (zh) | 2014-10-29 |
| BRPI1012091A2 (pt) | 2018-03-13 |
| EP2435146B1 (en) | 2019-05-15 |
| EP2435146A4 (en) | 2017-06-28 |
| CA2760210A1 (en) | 2010-12-02 |
| CA2760210C (en) | 2018-11-06 |
| US20140320508A1 (en) | 2014-10-30 |
| US8803889B2 (en) | 2014-08-12 |
| US20100302257A1 (en) | 2010-12-02 |
| US9861886B2 (en) | 2018-01-09 |
| EP2435146A2 (en) | 2012-04-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI1012091B1 (pt) | método implementado por computador para combinar movimentos, meio de armazenamento legível por computador e sistema para combinar movimentos | |
| CA2757173C (en) | Systems and methods for applying model tracking to motion capture | |
| US10048747B2 (en) | Methods and systems for determining and tracking extremities of a target | |
| JP5635069B2 (ja) | 連鎖アニメーション | |
| US8294767B2 (en) | Body scan | |
| US8253746B2 (en) | Determine intended motions | |
| US8542252B2 (en) | Target digitization, extraction, and tracking | |
| BRPI1011193B1 (pt) | método e sistema para prover ajuda com relação a um gesto realizado por usuário | |
| BR112012000698B1 (pt) | Método para aplicar uma animação em uma representação visual de um usuário e memória legível por computador | |
| JP2012528398A (ja) | スケルトン・データーのゲーム・アバターへのリアル・タイム・リターゲティング | |
| WO2011062757A2 (en) | Systems and methods for tracking a model | |
| HK1166961A (en) | Systems and methods for applying animations or motions to a character | |
| HK1166961B (en) | Systems and methods for applying animations or motions to a character |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B25A | Requested transfer of rights approved |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
|
| B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
| B06T | Formal requirements before examination [chapter 6.20 patent gazette] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 22/05/2010, OBSERVADAS AS CONDICOES LEGAIS. (CO) 20 (VINTE) ANOS CONTADOS A PARTIR DE 22/05/2010, OBSERVADAS AS CONDICOES LEGAIS |
|
| B21F | Lapse acc. art. 78, item iv - on non-payment of the annual fees in time |
Free format text: REFERENTE A 16A ANUIDADE. |