KR20110139223A - 애니메이션을 체이닝하는 방법 및 애니메이션 블렌딩 장치 - Google Patents

애니메이션을 체이닝하는 방법 및 애니메이션 블렌딩 장치 Download PDF

Info

Publication number
KR20110139223A
KR20110139223A KR1020117021586A KR20117021586A KR20110139223A KR 20110139223 A KR20110139223 A KR 20110139223A KR 1020117021586 A KR1020117021586 A KR 1020117021586A KR 20117021586 A KR20117021586 A KR 20117021586A KR 20110139223 A KR20110139223 A KR 20110139223A
Authority
KR
South Korea
Prior art keywords
animation
user
prepared
animations
gesture
Prior art date
Application number
KR1020117021586A
Other languages
English (en)
Other versions
KR101643020B1 (ko
Inventor
케빈 가이스너
렐자 마르코빅
스티븐 길크리스트 라타
그레고리 넬슨 스누크
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20110139223A publication Critical patent/KR20110139223A/ko
Application granted granted Critical
Publication of KR101643020B1 publication Critical patent/KR101643020B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

사용자를 나타내는 것을 디스플레이하는 애플리케이션에서, 사용자의 캡쳐된 동작을 애니메이션하기 보다는 사전 준비된 애니메이션을 삽입하는 것이 적합하다. 예를 들면, 테니스 스윙 중 서비스 동작 시에 폴 토스 및 테이크백 동작은 사전 준비된 애니메이션이 될 수 있고, 실제의 포워드 스윙은 사용자의 제스처로부터 맵핑될 수 있다. 사용자의 제스처에 대한 애니메이션은 상기 사전 준비된 애니메이션과 순차적으로 체인될 수 있으며, 애니메이션 블렌딩 기술이 애니메이션 형식 간에 보다 더 부드러운 전환을 제공할 수 있다. 사전 준비된 애니메이션과 캡쳐된 동작에 기초한 애니메이션 간의 경계 및 전환점을 결정는 애니메이션을 블렌딩하는 기술은 애니메이션의 효율성을 향상시킬 수 있다. 관절 포지션, 속도 및 가속도를 포함하는 제스처 이력은 사용자의 의도, 차후의 애니메이션들과 게임 제어부의 매개변수의 기초 및 개시될 차후의 제스처들을 판단하는데 사용될 수 있다.

Description

애니메이션을 체이닝하는 방법 및 애니메이션 블렌딩 장치{CHAINING ANIMATIONS}
컴퓨터 게임, 멀티매체 애플리케이션들, 오피스 애플리케이션들 등과 같은 많은 컴퓨터 애플리케이션들은 사용자가 게임 캐릭터 또는 애플리케이션의 다른 측면들을 조작할 수 있도록 조종 장치(controls)를 사용한다. 일반적으로 이런 조종 장치들은 컨트롤러들, 리모트, 키보드들, 마우스들 등의 입력을 이용한다. 유감스럽게도 이들 조종 장치들은 조작법 학습이 어려울 수 있고, 이 때문에 조종 장치들은 사용자와 이들 게임, 애플리케이션들 사이에 걸림돌이 될 수 있다. 더 나아가, 이들 조종 장치들은 조종 장치가 사용되는 실제 게임 액션 또는 실제 애플리케이션 상의 액션들과 차이가 있을 수 있다. 예를 들면 야구배트를 휘두르는 게임의 조종 동작은 실제 야구 배트를 휘두르는 동작에 부합하지 않을 수도 있다.
일부 시스템들에서, 모니터는 시스템에 의해 캡처되고 있는 사용자의 동작에 맵핑되는 사용자 피드백을 디스플레이할 수 있다. 예를 들면, 사용자 피드백은 스크린상의 아바타로 디스플레이될 수 있고, 이때 아바타의 동작은 아바타의 동작에 사용자의 동작을 맵핑하는 방식으로 제어될 수 있다. 종종, 사용자는 애플리케이션 실행에 불펼요한 동작들을 취하는 경우가 있다. 일부 경우들에서, 특정 애플리케이션에 적용되는 사용자의 동작들은 중복적이거나 사용자들 사이에서 매우 유사할 수 있다.
일부 시나리오들에서는 실제 사용자 동작을 나타내는 것보다 사전 준비된 캐릭터 애니메이션을 삽입하는 것이 유용할 수 있다. 예를 들면, 테니스 스윙의 경우에, 서브 동작에서 볼 토스와 테이크백은 사전 준비된 애니메이션일 수 있고, 반면 포워드 스윙의 애니메이션은 사용자 동작에 맵핑될 수 있다. 여기서는 두 종류의 애니메이션을 블렌딩하는 기술들은 물론, 사전 준비된 애니메이션과 물리적 공간에서의 동작을 나타내는 애니메이션을 체이닝하는데 있어서의 경계들과 전환점을 결정하는 기술들을 제시한다. 이들 체이닝과 애니메이션 블렌딩 기술들은 애니메이션 효율성 측면에서 바람직하다.
애니메이션 체이닝(chaining)은 사전 준비된 애니메이션을 선택하는 단계와 사전 준비된 애니메이션에서 캡처된 동작의 애니메이션, 또는 그 반대의 순서로 애니메이션 간에 전환하는 단계로 구성될 수 있다. 예를 들면, 사용자 제스처의 애니메이션은 사전 준비된 애니메이션과 순차적으로 체인 될 수 있다. 애니메이션 블렌딩 기술들은 제스처의 애니메이션 사이의 보다 매끄러운 전환을 제공할 수 있다. 관절 포지션, 속도, 가속도 등의 제스처 이력은 사용자의 의도를 판단하는데 사용될 수 있고, 차후의 애니메이션들과 게임 조종 동작의 매개변수의 기초로 사용될 수 있고, 개시될 차후의 제스처들을 결정하는데 사용될 수 있다.
이 개요는 아래에서 상세한 설명에서 더 자세히 설명할 개념 중 선택된 것을 단순한 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 핵심 특징 또는 필수 특징을 식별하기 위한 것이 아니고, 청구된 주제의 범위를 제한하는데 사용되려는 것도 아니다.
본 명세서에 따른 제스처 인식 시스템 구조(gesture recognizer system architecture)를 위한 시스템, 방법, 및 컴퓨터 판독 가능 매체는 다음과 같은 사항을 도시하는 첨부된 도면을 참조하여 더 기술된다.
도 1a와 1b는 사용자가 게임을 할 때 목표물 인식, 분석, 파악 시스템의 예시적 실시예를 도시한다.
도 2는 목표물 인식, 분석, 파악 시스템 내에서 사용될 수 있고 체이닝과 애니메이션 블렌딩 기술들을 포함하는 캡쳐 장치의 예시적 실시예를 도시한다.
도 3은 여기 서술된 애니메이션 기술들이 구현될 수 있는 컴퓨터 환경의 예시적 실시예를 도시한다.
도 4는 여기 서술된 애니메이션 기술들이 구현될 수 있는 컴퓨터 환경의 다른 예시적 실시예를 도시한다.
도 5는 깊이 영상으로부터 생성된 사용자의 뼈대 맵핑을 도시한다.
도 6a-6f는 장면 내 사용자의 깊이 영상을 얻고 사용자가 취하는 제스처를 분석하는데 사용되고, 다양한 시점에서 사용자의 동작들을 캡쳐하는 예시적 프레임들을 도시한다.
도 7a와 7b는 연속적인 사용자 동작들과 체이닝과 애니메이션 블렌딩 기술들의 구현의 예시적 실시예를 도시한다.
도 8은 사전 준비된 애니메이션을 사용하는 것과 사전 준비된 애니메이션을 캡쳐된 동작의 애니메이션과 블렌딩하는 것에 대한 예시적 플로우 다이어그램을 도시한다.
컴퓨터 시스템은 아바타(avatar) 등의 형식으로 사용자를 나타내는 것을 디스플레이하고 모형화할 수 있다. 예를 들면, 카메라 제어 컴퓨터 시스템(camera-controlled computer system)은 사용자의 이미지 데이터를 캡처(capture)하고, 사용자의 제스처(gestures)로 맵핑되는 사용자 피드백을 디스플레이할 수 있다. 사용자 피드백은 화면상의 아바타의 형태로 디스플레이될 수 있고, 이때 아바타의 동작은 사용자의 제스처로 아바타의 동작을 맵핑하는 방식으로 직접 제어될 수 있다. 제스처는 달리기, 손가락의 동작, 정지 자세 등의 모든 사용자 동작을 포함한다. 사용자의 캡처된 동작 또는 사용자 제스처의 애니메이션은 캡처 장치 입력에 의해 움직일 수 있다.
일부 상황들에서는 캡처된 동작을 시각적으로 표현하기 위해 미리 준비된(pre-canned) 애니메이션을 사용하는 것이 실제 캡처된 동작에 맵핑하는 방식보다 바람직할 수 있다. 캡처된 동작은 물리적 공간 내에서 카메라 등의 캡처 장치에 의해서 캡처되는 어떠한 동작도 포함할 수 있다. 캡처된 동작은 물리적 공간 내에서 사용자 또는 사물 등의 특정 목표물의 동작을 포함할 수 있다. 캡처된 동작은 운영체제나 애플리케이션 안에서 조종 동작으로 해석되는 동작을 포함할 수 있다. 동작은 달리는 동작 등과 같이 동적일 수도 있고, 사용자가 거의 동작 없이 자세를 취하는 것과 같이 정적일 수도 있다.
미리 준비된 애니메이션(pre-canned animation)은 사전에 결정된 캐릭터 애니메이션 또는 미리 레코드된(pre-recorded) 제스처일 수 있다. 일부 시나리오에서는 실제 목표물 또는 사용자의 동작을 표현하는 것보다 미리 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다. 예를 들면 테니스 스윙 중 서비스 동작 시에 볼 토스 및 테이크백(take back) 동작을 나타내기 위해서 미리 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다. 서브가 이루어진 후에는 사용자의 실제 포핸드 스윙 동작을 위해서 사용자의 움직임에 맵핑하는 방식으로 되돌아가는 것처럼 사용자의 캡처된 동작을 사용하는 방식으로 되돌아가는 것이 바람직할 수 있다.
여기 제시된 기술들은 애니메이션 형식들(animation types)을 엮는 것에 대한 것으로, 다양한 추진 요인(driver)(예를 들면 카메라 입력에 따라 움직이는 애니메이션과 미리 준비된 애니메이션)에 의해 움직이는 애니메이션들 사이의 전환점(transition points)과 경계(boundaries)를 결정하는 단계를 포함한다. 애니메이션 형식들은 아무 적합한 방법을 통해서 체이닝될 수 있다. 체이닝(chaining) 방법은 체이닝 된 애니메이션들 사이에 부드러움(smoothing)의 정도를 어느 선까지 요구할 것인지에 따라 달라진다. 예를 들면, 컴퓨터 시스템은 미리 준비된 애니메이션과 사용자의 캡처된 동작의 애니메이션 사이의 전환에 있어서 가능한 한 매끄럽게 하는데 필요한 수만큼의 미리 준비된 애니메이션들을 체이닝 된 애니메이션 순서에 삽입할 수 있다. 다른 예시에서, 컴퓨터 시스템은 전환점(transition point)에서 사용자의 캡처된 동작의 변수들을 분석해서 그 전환점에서의 사용자의 캡처된 동작에 보다 가깝게 나타날 수 있도록 미리 준비된 애니메이션을 수정할 수 있다. 애니메이션들은 전환점에서 서로 충분히 유사해서 단순하게 애니메이션들을 배열해서 표현하는 방법으로 체이닝될 수도 있다. 또 다른 예시에서, 애니메이션 블렌딩 기술(animation blending techniques)이 다양한 애니메이션 형식들 사이에서 부드러운 전환을 가능하게 하기 위해서 적용될 수도 있다.
청구항 및 상세한 설명에서 언급되는 바와 같이 실시간 동작의 애니메이션과 사전 준비 애니메이션 사이에서 블렌딩 또는 체이닝하는 것의 레퍼런스들(references)은 캡처된 제스처의 애니메이션을 사전 준비 애니메이션에 블렌딩 또는 체이닝하는 것, 그리고 역으로 사전 준비 애니메이션을 캡처된 제스처의 애니메이션에 블렌딩 또는 체이닝하는 것 모두를 포함한다. 더 나아가, 체이닝 기술들의 어떠한 조합도, 단독적으로 또는 조합형태로 적용될 수 있다. 예를 들어 컴퓨터 시스템은 체이닝 하기 전에 사전 준비 애니메이션을 수정할 수 있고, 애니메이션 블렌딩 기술들이 수정된 사전 준비 애니메이션과 캡처된 동작의 애니메이션 사이의 전환을 부드럽게 하기 위해서 적용될 수 있다.
여기서 제시된 체이닝의 시스템, 방법들, 그리고 요소들은 게임 콘솔(gaming console) 등의 멀티매체 콘솔 또는 사용자 입력과 사전 준비 데이터를 혼합하는 컴퓨터 장치들에 구현될 수 있고, 이런 컴퓨터 장치에는 위성 수신기(satellite receivers), 셋톱박스들, 아케이드 게임들, 개인용 컴퓨터들, 휴대용 전화기들, PDA들, 그리고 기타 휴대용 장치들을 예로 들 수 있으며 이들에 한정되지는 않는다.
도 1a와 1b는 체이닝(chaining)과 애니메이션 블렌딩(blending) 기술을 활용할 수 있는 카메라 제어 목표물 인식, 분석, 파악 시스템(camera-controlled target recognition, analysis, and tracking system)(10)의 구성의 예시적 실시예를 도시한다. 시스템은 사용자(18)가 볼링 게임을 하는 상황을 도시한다. 예시적 실시예에서, 시스템(10)은 사용자(18)와 같은 인간 목표물을 인식, 분석, 및/또는 파악할 수 있다. 목표물 인식, 분석, 파악 시스템(10)은 물리적 공간 내 사용자의 동작과 관련된 정보를 수집할 수 있다. 시스템(10)은 사전 준비된 애니메이션과 관련된 정보를 저장할 수 있다. 사용자(18)의 볼링 동작 중 특정 부분에 있어서는 사용자(18)의 실제 동작 또는 제스처를 표현하는 애니메이션을 나타내기 위해서 추적, 분석, 맵핑(map)하는 것보다, 볼링 동작의 일부를 나타내는 사전 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다.
도 1a에서 볼 수 있듯이, 목표물 인식, 분석, 파악 시스템(10)은 컴퓨터 환경(12)을 포함할 수 있다. 컴퓨터 환경(12)은 컴퓨터, 게임 시스템, 또는 콘솔 등으로 구현될 수 있다. 예시적 실시예에 따르면, 컴퓨터 환경(12)은 컴퓨터 환경(12)이 게임 애플리케이션, 기타 애플리케이션들을 실행하는데 사용할 수 있는 하드웨어적 요소 및/또는 소프트웨어적 요소들을 포함할 수 있다.
도 1a에서 볼 수 있듯이, 목표물 인식, 분석, 파악 시스템(10)은 추가로 캡처 장치(20)를 포함할 수 있다. 캡처 장치(20)는 예를 들면, 시각적으로 하나 또는 그 이상의 사용자들을, 예를 들면 사용자(18), 모니터하는데 사용되는 카메라를 포함할 수 있고, 그에 의해 하나 또는 그 이상의 사용자들에 의해 행하여지는 제스처들이 캡처되고, 분석되고, 추적되어서 애플리케이션 내에서 하나 또는 그 이상의 제어들 또는 액션들(actions)을 수행할 수 있다. 자세한 내용은 후술 한다.
한 실시예에 따르면, 목표물 인식, 분석, 파악 시스템(10)은 사용자(18)에게 게임 또는 애플리케이션 시각 및/또는 청각을 제공할 수 있는 텔레비전, 모니터, HDTV 등의 시청각 장치(16)와 연결될 수 있다. 예를 들면, 컴퓨터 환경(12)은 게임 또는 기타 애플리케이션과 결부된 시청각적 신호를 제공하는 그래픽 카드와 같은 비디오 어댑터(video adapter) 및/또는 사운드 카드와 같은 사운드 어댑터(sound adapter)를 포함할 수 있다. 시청각 장치(16)는 컴퓨터 환경(12)으로부터 시청각 신호를 수신할 수 있고, 이때 사용자(18)에게 시청각 신호와 결부된 게임 또는 애플리케이션 시각 및/또는 청각을 출력할 수 있다. 한 실시예에 따르면, 시청각 장치(16)는 S-비디오 케이블, 동축 케이블, HDMI 케이블, DVI 케이블, VGA 케이블 등을 통해 컴퓨터 환경(12)과 연결될 수 있다.
도 1a와 1b에서 볼 수 있듯이, 목표물 인식, 분석, 파악 시스템(10)은 사용자(18)와 같은 사람 목표물을 인식, 분석 및/또는 파악하는데 사용될 수도 있다. 예를 들면, 캡처 장치(20)를 이용해서 사용자(18)를 파악할 수 있고, 이 때 사용자(18)의 동작들은 컴퓨터 환경(12) 내에서 실행되는 애플리케이션에 영향을 미치는데 사용되는 조종 동작으로 인식된다. 따라서, 한 실시예에 의하면 사용자(18)는 신체의 동작을 통해서 애플리케이션을 제어할 수 있다.
시스템(10)은 캡처 장치(20)의 입력을 애니메이션으로 변환할 수 있고, 이때 입력은 사용자 동작에 해당하고, 애니메이션은 그 입력에 의해 결정된다. 따라서 사용자의 동작들이 아바타에 맵핑될 수 있고, 물리적 공간 내 사용자의 동작들이 아바타에 의해 수행될 수 있다. 사용자의 동작들은 애플리케이션 내에서 조종 동작으로 작용할 수 있다. 예를 들면 도 1a와 1b는 각각 사용자(18)가 수행할 수 있는 볼링 게임일 수 있는 컴퓨터 환경(12) 내에서 실행되는 애플리케이션의 예시적 실시예를 도시한다. 컴퓨터 환경(12)은 시청각 장치(16)를 이용하여 볼링장과 볼링 레인의 시각적 표현을 사용자(18)에게 제공할 수 있다. 또한, 컴퓨터 환경(12)은 시청각 장치(16)를 사용하여 사용자(18)가 자신의 신체 동작을 통해서 제어하는 사용자의 아바타(22)의 시각적인 표현을 제공한다. 예시적 실시예에 따르면, 컴퓨터 환경(12)과 시스템(10)의 캡처 장치(20)는 사용자의 삼차원 물리적 공간 안에서 사용자(18)가 취한 제스처들을 감지하고 분석하는데 사용될 수 있고, 이때 사용자의 제스처들은 게임 공간 안에서 사용자 아바타(24)를 제어하는 용도로 해석될 수 있다. 예를 들면 도 1b에서 볼 수 있듯이, 사용자(18)가 물리적 공간에서 볼링 동작을 취함으로써 게임 공간 내 사용자의 아바타(24)로 하여금 볼링 동작을 취하게 할 수 있다. 사용자(18)가 취하는 그 밖의 다른 제스처들도 조종 동작 또는 액션들로 해석될 수 있다. 그 밖의 행동으로는 공을 고르는 행위, 걷는 행위, 아바타를 볼링 레인에 위치시키는 행위, 공을 던지는 행위 등이 있다.
시스템(10)은 사용자(18)의 실제 동작 또는 캡처된 제스처의 애니메이션을 사용하지 않고 사전 준비된 애니메이션들을 삽입할 수 있다. 예를 들면 게임 조종 동작의 특정 부분은 사전 준비된 애니메이션에 의해 표현될 수 있다. 상술한 볼링 게임 예시를 예로 들어보면, 공을 들어올리는 행위 또는 레인으로 걸어가는 행위 등은 사전 준비된 애니메이션에 의해 표현된 볼링 동작의 부분일 수 있다.
사용자의 제스처나 동작은 사용자 아바타(24)를 제어하는 행위 외의 액션들과 상응되는 조종 동작들로 해석될 수도 있다. 예를 들면 사용자는 동작을 통해서 게임을 끝내거나, 중지하거나, 저장하거나, 레벨을 선택하거나, 최고점수를 조회하거나, 친구와 대화하거나 기타 행위를 할 수 있다. 사용자의 제스처는 운영 체제, 게임의 비게임 적인 요소들, 또는 게임 이외의 애플리케이션에 적용 가능한 조종 동작에 해당할 수도 있다. 예를 들면 사용자의 제스처는 사용자 인터페이스를 제어하는 등의 객체 조작으로 해석될 수도 있다. 예를 들어 블레이드(blades)를 포함하는 사용자 인터페이스 또는 탭형(tab) 인터페이스가 수직으로 좌에서 우로 배열된 경우를 생각해보면, 각각의 블레이드 또는 탭의 선택은 애플리케이션 또는 시스템 내에서 다양한 제어를 위한 옵션들(options)을 제공한다. 시스템은 탭의 동작에 대한 사용자의 손 동작을 인식할 수 있고, 이 때 물리적 공간 내 사용자의 손이 애플리케이션 공간 안에서의 탭과 가상으로 맞춰지게(align) 된다. 중지 행위(pause), 잡는 동작, 손을 좌측으로 스쳐 넘기는 행위 등의 제스처는 탭을 선택고, 다음 탭을 열기 위해서 치우는 동작으로 해석될 수도 있다.
탭/블레이드 선택을 위한 사용자의 동작 등과 같은 다른 제어행위를 나타내기 위해서 사전 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다. 상술된 예시 내 사용자 인터페이스를 예로 들면, 시스템은 사용자의 제스처를 탭 또는 블레이드를 선택 또는 움직이는 것으로 해석할 수 있고, 사용자의 캡처된 제스처를 애니메이션에 맵핑하는 대신에 디스플레이 목적으로 사전 준비한 애니메이션을 삽입할 수 있다. 예를 들면 탭들 사이의 전환과정에서 사용자의 실제 손동작에 상응하는 속도로 탭을 움직이는 것보다는, 탭을 움직이는 것에 있어서 미리 정해진 전환 속도의 사전 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다. 따라서, 시스템은 탭의 선택과 동작으로 사용자의 제스처를 캡처하고 해석할 수 있지만, 사용자의 손의 속도가 한계 속도(threshold speed)에 도달하여 탭들 사이의 전환 요청 의사를 나타냄이 인식될 때에는 사전 준비 동작으로 전환할 수 있다. 실시간 동작(live motion)을 나타내는 애니메이션과 사전 준비 애니메이션 사이에서 애니메이션들을 혼합(blending)하는 것에 의해 더 효율적인 애니메이션을 제공할 수 있다. 따라서 시스템은 사용자의 실시간 동작 또는 캡처된 제스처를 맵핑(mapping)한 애니메이션과 사전 준비된 애니메이션을 구현 및 적용하는 것 사이를 전환할 수 있다.
일부 사용자의 동작들은 전환점을 나타내는 매개변수(parameters)를 가지는 것으로 인식되고 해석될 수 있다. 전환점은 시스템(10)이 사용자의 캡처된 동작 또는 동작의 애니메이션과 사전 준비된 애니메이션 사이를 전환하는 시점을 의미한다. 예시적 실시예에서 전환점은 사용자의 캡처된 제스처 중에서 시스템으로 하여금 사전 준비된 애니메이션으로의 전환을 촉구하는 식별 시점에 해당할 수 있다. 다른 예시적 실시예에서 전환점은 사전 준비된 애니메이션에서 사용자의 캡처된 제스처의 사용으로 다시 돌아가기를 촉구하는 식별 시점에 해당할 수 있다.
따라서, 전환점을 식별하는 것은 사용자의 동작을 표현하는 것과 사전 준비된 애니메이션을 표현하는 것 사이의 시스템 전환을 촉구할 수 있다. 예를 들면, 사용자(18)는 움켜쥐는 동작(clutching motion)을 취할 수 있고 시스템은 이것을 볼링공을 선택하는 조종 동작으로 해석할 수 있다. 움켜쥐는 동작의 해석은 시스템의 공 선택 시점의 사용자의 캡처된 제스처의 표현으로부터 공 선택 이후의 동작에 대한 사전 준비된 애니메이션으로의 전환(예를 들면 볼링 레인에 발을 놓는 것)을 촉발할 수 있다.
전환점을 설정하는 어떠한 적합한 방법도 적용될 수 있다. 애플리케이션 자체적으로 애플리케이션의 종류 또는 사용자의 숙련도 또는 경험치에 근거하여 전환점을 설정할 수 있다. 예를 들면, 게임의 초보자에 대해서 더 많은 사전 준비 애니메이션이 구현될 수 있고, 이때 성공하기 어려운 제스처들이 사전에 준비된다. 사용자는 전환점을 설정함에 있어서 특정 동작에 대하여 사전 준비 애니메이션을 사용하도록 하거나, 애플리케이션 실행 도중에 더 많은 또는 더 적은 사전 준비 애니메이션의 사용을 요청하도록 할 수 있다.
도 1b에서 도시된 실시예에서, 객체는 볼링공이고 사용자는 실제 볼링공을 다루는 것처럼 삼차원 물리적 공간에서 이동한다. 물리적 공간 내 사용자의 제스처는 스크린(14)에 표시되는 볼링공을 제어할 수 있다. 예시적 실시예에서, 사용자(18)와 같은 인간 목표물은 실제로 객체를 들 수 있다. 그런 실시예들에서, 전자 게임의 사용자는 객체를 잡아서 사용자와 객체의 동작이 게임의 매개변수를 조절 및/또는 제어하는데 사용되게 할 수 있다. 예를 들면, 전자 스포츠 게임에서는 사용자가 라켓을 잡는 동작이 파악될 수 있고 게임 내에서 스크린상의 라켓을 조작하는데 활용될 수 있다. 다른 실시예에서 사용자가 물체를 잡는 동작이 파악되고 전자 전투 게임 내에서 스크린상의 무기를 조작하는데 활용될 수 있다.
다른 예시적 실시예에 따르면, 목표물 인식, 분석, 파악 시스템(10)은 목표물의 동작들을 운영 체제 및/또는 게임 이외의 애플리케이션들의 측면들을 제어하는데 해석할 수 있다. 예를 들면, 운영 체제 및/또는 애플리케이션의 거의 모든 제어 가능한 측면들이 사용자(18)와 같은 목표물의 동작에 의해 제어될 수 있다.
도 2는 목표물 인식, 분석, 파악에 사용될 수 있는 캡처 장치(20)의 예시적 실시예를 도시하고, 이때 목표물은 물건 또는 사용자 일 수 있다. 예시적 실시예에 따르면, 캡처 장치(20)는 적합한 기술을 통해 깊이 값(depth value)을 포함할 수 있는 깊이 영상(depth image)을 포함하는 깊이 정보(depth information)를 가지는 비디오를 캡처하도록 구성될 수 있다. 이때 적합한 기술에는 비행 시간(time of flight), 구조형 광(structured light), 스테레오 영상(stereo image) 등이 있다. 한 실시예에 따르면, 캡처 장치(20)는 계산된 깊이 정보를 "Z 층들" 또는 가시선(line of sight)을 따라 깊이 카메라로부터 연장된 Z 축에 수직인 층들로 정리할 수 있다.
도 2에서 볼 수 있듯이, 캡처 장치(20)는 영상 카메라 요소(22)를 포함할 수 있다. 예시적 실시예에 따르면, 영상 카메라 요소(22)는 장면(scene)의 깊이 영상을 캡처할 수 있는 깊이 카메라를 포함할 수 있다. 깊이 영상은 캡처된 장면의 이차원 픽셀 영역(pixel area)을 포함할 수 있고, 이때 이차원 픽셀 영역의 각 픽셀은 카메라에서 캡처된 장면 안의 물체들의 깊이값을 길이 또는 거리, 예를 들면 cm, mm 등의 단위로 표시한다.
도 2에서 볼 수 있듯이, 예시적 실시예에 따르면, 영상 카메라 요소(22)는 장면의 영상 깊이를 캡처하는데 사용될 수 있는 적외광 요소(24), 삼차원 카메라(26), 그리고 RGB 카메라(28)를 포함할 수 있다. 예를 들면, 비행 시간 분석(time-of-flight analysis)에서 캡처 장치(20)의 적외광 요소(24)는 장면에 적외광을 발사할 수 있고 그 다음에 센서들(미도시)을 이용해서 장면 내의 하나 또는 그 이상의 목표물과 물체들의 평면에서 후방 산란된 빛을 감지할 수 있고, 이때 삼차원 카메라(266) 및/또는 RGB 카메라(28) 등이 사용될 수 있다. 일부 실시예들에서는, 펄스(pulse)가 있는 적외광이 사용될 수 있고, 이러한 적외광은 발신되는 빛의 펄스와 그에 상응하는 수신되는 빛의 펄스 사이의 시간 간격이 측정될 수 있고 그것을 이용해서 캡처 장치(20)와 장면 내 목표물들 또는 물체들 상의 특정 위치 사이의 물리적 거리를 결정할 수 있다. 추가로, 다른 실시예들에서는 발신 광파(outgoing light wave)의 위상과 수신 광파(incoming light wave)의 위상을 비교해서 위상 변이(phase shift)를 판단할 수 있다. 그리고나서 위상 변위를 이용해서 캡처 장치와 목표물 또는 물체들 상의 특정 위치 사이의 물리적 거리를 결정할 수 있다.
또 다른 예시적 실시예에 따르면, 비행 시간 분석(time of flight analysis)은 간접적으로 캡처 장치(20)와 목표물들 또는 물체들의 특정 장소 사이의 물리적 거리를 결정하는데 사용될 수 있고, 이때 SLP방식(shuttered light pulse imaging)을 포함하는 다양한 기술을 통해서 반사광의 세기를 분석하는 방식을 사용한다.
다른 예시적 실시예에서, 캡처 장치(20)는 구조광을 사용해서 깊이 정보를 캡처할 수도 있다. 이런 분석에서는 패턴화된 빛(patterned light)(예를 들면 그리드 패턴 또는 스트라이프 패턴같은 알려진 패턴으로 나타나는 빛)이 적외광 요소(24) 등을 통해서 장면에 투영될 수 있다. 장면 내 하나 또는 그 이상의 목표물들 또는 물체들의 표면과 충돌한 후에 패턴은 그에 대한 응답으로 변형된다. 이러한 패턴의 변형은 예를 들면 삼차원 카메라(26) 및/또는 RGB 카메라(28) 등에 의해 캡처 되어 캡처 장치와 목표물 또는 물체들 상의 특정 장소 사이의 물리적 거리를 판단하기 위해서 분석될 수 있다.
다른 실시예에 따르면, 캡처 장치(20)는 두 개 이상의 물리적으로 독립된 카메라들을 포함할 수 있고, 이 카메라들은 각기 다른 각도에서 장면을 볼 수 있어서 깊이 정보를 생성하는데 사용될 수 있는 시각적 스테레오 데이터를 얻을 수 있다.
캡처 장치(20)는 추가로 마이크로폰(30), 또는 마이크로폰들의 집합(array)을 포함할 수 있다. 마이크로폰(30)은 변환기(transducer) 또는 음향을 수신하고 전기적 신호로 전환하는 센서를 포함할 수 있다. 한 실시예에 따르면, 마이크로폰(30)은 목표물 인식, 분석, 파악 시스템(10)의 컴퓨터 환경(12)과 캡처 장치(20) 사이의 피드백을 감소시키는데 이용될 수 있다. 추가로, 마이크로폰(30)은 컴퓨터 환경(12) 내에서 실행될 수 있는 게임 애플리케이션 또는 비게임 애플리케이션들 등을 제어하기 위해서 사용자에 의해 제공될 수도 있는 오디오 신호를 수신하는데 이용될 수도 있다.
예시적 실시예에서, 캡처 장치(20)는 추가로 영상 카메라 요소(22)와 통신을 하는데 사용될 수 있는 프로세서(32)를 포함할 수도 있다. 프로세서(32)는 표준화된 프로세서, 특수화된 프로세서, 마이크로 프로세서 등의 명령을 실행할 수 있는 것들을 포함하며, 이들 명령들은 깊이 영상을 수신하는 것, 깊이 영상에 적합한 목표물이 포함되어 있는지 여부를 판단하는 것, 적합한 목표물을 골격의 형태 또는 목표물의 모형화로 전환하는 것 등을 포함한다.
캡처 장치(20)는 추가로 메모리 요소(34)를 포함할 수 있고, 메모리 요소(34)는 프로세서(32)에서 실행될 수 있는 명령들, 삼차원 카메라 또는 RGB 카메라를 통해서 캡처한 영상들 또는 영상의 프레임들, 어떤 다른 적절한 정보나 영상등을 저장할 수 있다. 예시적 실시예에 따르면, 메모리 요소(34)는 RAM, ROM, 캐시, 플래시 메모리, HDD, 또는 어떤 적합한 저장 요소도 포함할 수 있다. 도 2에서 볼 수 있듯이 한 실시예에서, 메모리 요소(34)는 영상 캡처 요소(22)와 프로세서(32)와 통신하는 독립 요소일 수 있다. 다른 실시예에 따르면, 메모리 요소(34)는 프로세서(32) 및/또는 영상 캡처 요소(22)와 통합되어 존재할 수도 있다.
도 2에서 볼 수 있듯이, 캡처 장치(20)는 통신 링크(communication link)(36)를 통해서 컴퓨터 환경(12)과 통신할 수 있다. 통신 링크(36)는 USB 연결, 파이어와이어(Firewire) 연결, 이더넷(ethernet) 케이블 연결 등의 유선 연결 및/또는 wireless 802.11b.g.a 또는 n 연결과 같은 무선 연결을 포함할 수 있다. 한 실시예에 따르면, 컴퓨터 환경(12)은 캡처 장치(20)에 시계를 제공할 수 있고, 시계는 장면을 통신 링크(36)를 통해서 언제 캡처하는지 판단하는데 사용될 수 있다.
추가로, 캡처 장치(20)는 삼차원 카메라(26) 및/또는 RGB 카메라(28)에 의해 캡처된 이미지들과 깊이 정보, 및 캡처 장치(20)에 의해 생성된 뼈대 모형(skeletal model)을 제공할 수 있다. 컴퓨터 환경(12)은 그 다음에 뼈대 모형, 깊이 정보, 그리고 캡처된 이미지들을 사용해서, 예를 들어 게임 또는 워드 프로세서 등의 애플리케이션을 제어할 수 있다. 예를 들면 도 2에서 볼 수 있듯이, 컴퓨터 환경(12)은 제스처 라이브러리(gestures library)(190)를 포함할 수 있다.
제스처 라이브러리(190)는 제스처 필터(191)의 집합을 포함할 수 있다. 각각의 필터(191)는 각각의 제스처를 정의하는 정보와 매개변수, 메타데이터(matadata) 로 구성될 수 있다. 예를 들어 한 손이 몸 뒤에서부터 몸의 앞으로 지나가는 동작으로 구성되는 던지기 동작은, 동작이 깊이 카메라에 의해 캡처되면서 사용자의 한 손이 몸 뒤에서부터 몸의 앞으로 지나가는 동작을 나타내는 정보로 구성된 제스처 필터로 구현될 수 있다. 그리고 나서 그 제스처에 대한 매개변수가 설정될 수 있다. 제스처가 던지기 동작인 경우에, 매개변수는 손이 도달해야하는 한계 속도(threshold velocity), 손이 반드시 이동해야하는 거리(절대거리 혹은 사용자의 전체적 크기에 따른 상대적 거리), 그리고 그 제스처기 일어났음을 인식하는 엔진(engine)의 신뢰도(confidence rating) 등을 포함한다. 제스처에 대한 이들 매개변수들은 애플리케이션들 사이에서, 한 애플리케이션의 상황들(contexts)에 따라, 또는 특정 시간에 걸쳐 하나의 애플리케이션의 한 상황 내에서 달라질 수 있다.
카메라들(26, 28)과 장치(20)를 통해 뼈대 모델과 그것과 결부된 동작들의 형태로 캡쳐된 데이터는 제스처 라이브러리(190) 내의 제스처 필터들(191)과 비교되어 사용자(뼈대 모델로 나타나듯이)가 하나 또는 그 이상의 제스쳐를 취한 경우가 식별된다. 따라서, 필터(191)와 같은 필터로의 입력들은 관절에서 만나는 뼈들이 형성하는 각도들 등의 사용자의 관절 위치(joint position)에 관한 관절 데이터, 장면에서의 RGB 컬러 데이터, 그리고 사용자 측면에서의 변화 속도 등을 포함할 수 있다. 언급한 바와 같이, 제스처에 대한 매개변수들은 설정될 수 있다. 필터(191)의 출력들은 특정 제스처가 행해짐에 대한 신뢰도(confidence), 제스처 동작이 행해지는 속도, 제스처가 발생하는 시간 등을 포함할 수 있다.
컴퓨터 환경(12)은 프로세서(196)를 포함할 수 있고, 프로세서(196)는 깊이 영상을 프로세싱해서 방 안의 사용자(18) 또는 물체와 같은 어떤 목표물들이 장면 안에 있는지 여부를 판단한다. 예를 들면 이런 과정은 유사한 거리값을 공유하는 깊이 영상의 픽셀들의 집단화(grouping)를 통해서 이루어질 수 있다. 또한, 영상은 사용자의 뼈대 형상을 만들기 위해서 분석될 수 있고, 이때 관절과 관절들 사이의 조직들 같은 특성들이 식별된다. 깊이 카메라를 통해서 사람을 캡처하고, 그것으로부터 사용자의 뼈대, 손의 관절, 손목, 팔꿈치, 무릎, 코, 발목, 어깨, 골반이 척추를 만나는 지점 등의 다양한 부분을 판단할 수 있는 뼈대 맵팅 기술(skeleton mapping techniques)이 존재한다. 다른 기술들은 영상을 사람의 신체 모델 표현(body model representation)으로 변환하는 것과 영상을 사람의 매쉬 모델 표현(mesh model representation)로 변환하는 것 등을 포함한다.
실시예에서, 프로세싱은 캡처 장치(20) 자체에서 수행되고, 깊이와 색깔값의(이때 캡처 장치는 3D 카메라로 구성된다) 미가공 영상 데이터들이 링크(36)를 통해서 컴퓨터 환경(12)으로 전송된다. 다른 실시예에서, 프로세싱은 카메라(402)에 결합된 프로세서(32)에 의해서 수행되고 그 후에 분석된 영상 데이터들이 컴퓨터 환경(12)으로 보내진다. 또 다른 실시예에서, 미가공 영상 데이터와 분석된 영상 데이터 모두 컴퓨터 환경(12)로 보내진다. 컴퓨터 환경(12)은 분석된 영상 데이터를 수신하여도, 현재 프로세스 또는 애플리케이션을 실행하기 위해 미가공 데이터를 수신할 수도 있다. 예를 들면, 장면의 영상이 컴퓨터 네트워크를 통해서 다른 사용자에게 전송된 경우에, 컴퓨터 환경(12)은 다른 컴퓨터 환경에서 프로세싱할 수 있도록 미가공 데이터를 전송할 수 있다.
컴퓨터 환경(12)은 뼈대 모델의 동작을 해석하고 그 동작에 기초하여 애플리케이션을 제어하기 위해 제스처 라이브러리(190)를 사용할 수 있다. 컴퓨터 환경(12)은 아바타 또는 디스플레이 장치(193) 등의 디스플레이 상의 포인터(pointer) 등의 형식으로 사용자를 나타내는 것을 표시하고 모델링할 수 있다. 디스플레이 장치(193)는 컴퓨터 모니터, 텔레비전 스크린, 또는 어떤 적합한 디스플레이 장치도 포함할 수 있다. 예를 들면, 카메라 제어 컴퓨터 시스템(camera-controlled computer system)은 사용자의 영상 자료를 캡처하고 사용자 제스처에 맵핑되는 사용자 피드백을 털레비젼 스크린에 표시할 수 있다. 사용자 피드백은 도 1a와 도 1b에서 볼 수 있듯이 스크린상의 아바타로 표현될 수 있다. 아바타의 동작은 사용자의 동작을 아바타의 동작에 맵핑하는 방식으로 직접 제어할 수도 있다. 사용자의 제스처들은 애플리케이션의 특정 측면들을 제어할 수 있다.
사용자 동작을 나타내는 것을 표시하는 대신에 사전 준비 애니메이션을 사용하는 것이 바람직할 수 있다. 사용자의 제스처가 언제나 애플리케이션에서 적용가능한 것이 아닐 수도 있다. 예를 들면, 컴퓨터 환경을 통해서 애플리케이션에 접속하는 과정에서 사용자는 음료수를 마시기 위해 손을 뻗을 수도 있다. 가상 세계 애플리케이션 안에서는 음료수를 마시기 위해 손을 뻗는 행위 또는 의자에서 자세를 바꾸는 행위 등의 평범한 사용자 동작들을 표현되는 동작으로 맵핑하는 것이 바람직할 수도 있다. 하지만, 정보를 스프레드시트에 입력하는 등의 다른 애플리케이션들에 있어서는 음료수를 위해 손을 뻗는 등의 행위 등의 특정 캡처된 동작들을 보여주는 것이 바람직하지 않을 수 있다. 일부 경우에 특정 애플리케이션에 적용될 수 있는 사용자 동작들은 사용자들 사이에서 매우 유사하거나 중복적이다. 예를 들면 볼링에서의 백스윙 동작은 일반적인 동작에 해당하고 사용자의 백스윙 동작을 캡처해서 모델링할 필요가 없을 수 있다. 다른 경우들에서는 특정 사용자 동작들이 캡처하기 어렵거나 미숙한 사용자들은 정확하게 동작을 취하는 것이 어려운 경우들이 있다. 예를 들면 어린 아이들이 제대로 된 백스윙을 하는 것은 매우 어렵고 따라서 볼링 동작에 있어서 해당 부분에는 사전 준비된 동작을 사용하는 것이 바람직할 수 있다. 직접적으로 사용자의 동작이 애니메이션으로 맵핑되지 않은 경우일지라도, 사용자의 동작은 애플리케이션 내에서 제어를 위해 해석될 수 있다. 그 대신에, 사전 준비된 애니메이션은 그것이 표시되는 기간 전부 또는 일부에 있어서 제어를 제공할 수 있다.
제스처 라이브러리(190)는 사전 결정되거나 미리 레코딩된 애니메이션 데이터를 포함하는 사전 준비 애니메이션 라이브러리(pre-canned animation library)(192)를 포함할 수 있다. 컴퓨터 환경은 사전 준비 라이브러리(192) 내의 사전 준비 데이터로 특정 동작들을, 예를 들면 특정 제스처, 나타내도록 구현할 수 있다. 사전 준비 애니메이션은 사용자의 캡처된 동작에 직접적으로 맵핑되는 시각적 표현을 보여주는 대신에 사용자의 동작을 나타내는데 사용된다. 사전 준비 애니메이션 라이브러리(192)는 다양한 사전 준비 애니메이션들을 포함할 수 있다. 애니메이션은 특정 애플리케이션, 특정 제스처, 특정 동작, 특정 숙련도 등에 적용될 수 있다.
사전 준비 애니메이션은 캡처된 동작의 애니메이션과 전환점에서 체인 될 수 있고(chained), 또는 캡처된 동작의 애니메이션이 전환점에서 사전 준비된 애니메이션과 체인 될 수 있다. 두 시나리오 모두에서 켑처된 동작의 애니메이션에 체인 되는 사전 준비 애니메이션을 선택하는 것은 다양한 요소들의 영향을 받고, 이들 요소들에는 사용자의 매개변수들, 애플리케이션 종류, 사전 준비된 애니메이션의 매개변수들, 사용자의 숙련도, 제스처 실행의 난이도, 제스처의 중복성 등이 있다.
많은 사전 준비 애니메이션들이 동일한 요구 동작을 나타낼 수 있고 컴퓨터 환경은 그들 가운데 가장 적합한 사전 준비 애니메이션을 선택할 수 있다. 예를 들면, 테니스 서브의 백스윙을 나타내는 복수의 사전 준비 애니메이션 옵션들이 사용가능할 수 있다. 백스윙을 나타내는 복수의 사전 준비 애니메이션들에 있어서 백스윙 동작의 자세와 속도 매개변수는 각각 다를 수 있다. 다양한 요소들에 기반한 복수의 사전 준비 애니메이션 옵션들의 여러 예시가 묘사된다.
예시적 실시예에서, 캡처된 동작의 애니메이션에 체인 하는 특정 사전 준비 애니메이션을 선택하는 것은 사전 준비 애니메이션의 매개변수들과 전환점에서의 캡처된 동작의 매개변수들의 비교에 의존한다. 예를 들면 백스윙 동작을 나타내는 다섯 가지 사전 준비된 애니메이션 옵션들이 존재할 수 있다. 전환점에 이르기까지, 그리고 전환점에선, 캡처 장치는 사용자 동작의 영상 데이터를 수신할 수 있다. 영상 데이터는 전환점까지의 그리고 전환점에서의 사용자 위치를 인식하기 위해서 분석될 수 있고, 이 예시에서 시스템은 사용자의 테니스 동작 전체에서 사용자 팔의 매우 느린 속도를 인식한다. 다섯 가지 사전 준비 애니메이션 옵션들 중에서 백스윙 동작에 대한 사전 준비 애니메이션을 선택하는 것은 사용자의 동작에 가장 가까운 위치와 속도 매개변수에 근거할 수 있다. 이와 유사하게, 사전 준비 애니메이션에서 캡처된 동작의 애니메이션으로 되돌아갈 때도, 캡처 장치에 의해 캡처된 영상 데이터는 물리적 공간 내에서의 동작을 인식하기 위해서 분석될 수 있다.
사전 준비 애니메이션의 매개변수들은 캡처 장치에 의해 캡처된 동작들과 보다 가깝게 관련되기 위해서 수정될 수 있다. 영상 데이터의 분석에 의해 실행 중인 사전 준비 에니메이션을 수정, 다른 사전 준비 애니메이션으로의 전환, 또는 복수의 사전 준비 애니메이션들의 블렌드가 촉발될 수 있다. 예를 들면, 복수의 사전 준비 애니메이션들 중 하나가 캡처된 동작의 애니메이션에 체인되기 위해 선택될 수 있다. 매개변수들이 사용자의 물리적 특성 또는 사용자가 주로 취하는 동작들에 보다 근접하게 부합되도록 수정될 수 있다.
다른 예시적 실시예에서, 사전 준비 애니메이션을 선택하는 것은 두 개 이상의 병합되는 사전 준비 애니메이션들을 선택하는 것일 수 있다. 예를 들면, 둘 이상의 사전 준비 애니메이션들이 캡처된 동작의 애니메이션에 체인 되기에 바람직한 매개변수들을 가질 수 있다. 복수의 사전 준비 애니메이션들의 매개변수들이 병합되어 캡처된 동작의 애니메이션과의 체이닝에 보다 적합한 새로운 사전 준비 애니메이션을 생성할 수 있다. 예시적 실시예에서 컴퓨터 환경은 애니메이션 블렌딩 요소(animation blending component)(195)를 사용하여 새로운 사전 준비 애니메이션을 생성할 수 있고, 이때 복수의 사전 준비 애니메이션들이 입력에 해당한다. 새로운 사전 준비 애니메이션은 전환점에서 사용자의 캡처된 동작을 보다 잘 나타낼 수 있을 수 있고, 따라서 애니메이션들이 체인 되었을 때 애니메이션들 사이에 좀더 부드러운 전환을 제공할 수 있다. 따라서 상술한 테니스 예시에서, 테니스 서브의 백스윙을 나타내는 둘 이상의 사전 준비 애니메이션들은 어떠한 방식으로 병합되어 사용자의 위치와 속도에 맞춰진 새로운 사전 준비 애니메이션을 제공할 수 있다.
다른 예시적 실시예에서, 캡처된 행동의 애니메이션과 체인 시키는 특정 사전 준비 애니메이션을 선택하는 것은 사용자의 매개변수에 기반을 둘 수 있다. 예를 들면, 캡처 장치는 게임을 하는 사용자의 영상 데이터를 수신할 수 있다. 영상데이터는 사용자와 사용자의 동작에 대한 다양한 매개변수들을 판단하기 위해서 분석될 수 있다. 영상 데이터는 사용자의 키는 물론 특정 동작에 있어서의 사용자의 관절의 동작도 나타낼 수 있다. 동작 내내 사용자의 관절의 위치와 전환점에서 캡처된 사용자의 관절과 팔다리의 동작이 인식될 수 있다. 사전 준비 애니메이션은, 캡처 장치에 의해 캡처된 사용자의 동작들과 유사하게 움직이며 유사한 신장을 가진 사용자를 나타내는 애니메이션에 부합되게 선택될 수 있다.
다른 예시적 실시예에서, 캡처된 동작의 애니메이션에 체인 될 특정 사전 준비 애니메이션을 선택하는 것은 사용자의 숙련도에 기반에 근거할 수 있다. 예를 들면 테니스 게임을 하는 초보 사용자에게 있어서, 서브의 백스윙에 있어서 애니메이션화 된 팔 스윙의 동작이 기본에 충실하고 속도가 느린 것이 바람직하다. 따라서, 초보 사용자에게 맞는 기본 사전 준비 애니메이션을 선택하는 것이 바람직하다. 반면에, 경험치가 높은 사용자는 공에 스핀을 넣을 수 있고, 더 좋은 라켓 컨트롤이나 조준, 또는 빠른 백스윙을 가질 수 있다. 숙련된 사용자에게는 스핀을 넣는 것, 백스윙 동작에서의 조준 등의 더 많은 옵션이 포함된 사전 준비된 애니메이션들이 제시될 수 있다.
복수의 사전 준비된 애니메이션들 사이에서 선택하는 것과 관련해서 구체적인 예시들이 제공되고 있지만, 매개변수의 어떠한 조합에 근거해서라도 선택이 이루어질 수 있음이 고려돼야 할 것이다. 예를 들면, 복수의 사전 준비 애니메이션들로부터 선택 하는 것은 사용자 숙련도와 캡처 장치에 의해서 캡처된 사용자의 신장, 두 가지 모두에 기반을 두고 이루어질 수 있다. 실행 도중에 사전 준비 애니메이션의 선택이 바뀔 수도 있고, 이때 실행 중인 사전 준비 애니메이션을 새로운 것, 복수의 블렌드 된 사전 준비애니메이션들에 기반을 둔 애니메이션, 수정된 사전 준비 애니메이션 등으로 전환될 수 있다.
또한, 사전 준비된 애니메이션은 캡처된 동작의 애니메이션에 체인 되기 전에 수정될 수도 있다. 일부 경우들에서는 사전 준비된 애니메이션은 사전 준비된 애니메이션과 캡처된 동작의 애니메이션을 체인 하는 과정에서 평활화(smoothing) 과정이 거의 필요없는 정도까지 수정될 수도 있다. 예를 들면, 사용자의 캡처된 동작의 매개변수들이 분석될 수 있고, 사전 준비된 애니메이션이 체이닝(chaining)을 위해서 선택될 수 있다. 체이닝 전에 사전 준비 애니메이션은 전환점에서의 사용자의 캡처된 동작을 보다 유사하게 나타내기 위해서 수정될 수 있다. 예를 들면 애니메이션 상의 팔의 위치가 사용자의 캡처된 동작과 좀더 유사하게 나타나도록 수정될 수 있다.
사전 준비된 애니메이션의 특정 매개변수들을 그런 식으로 수정하는 것은 애니메이션 형식들 사이의 매끄러운 전환을 위해서 수행되는 별도의 평활화(smoothing) 과정의 필요성을 제거할 수 있다. 매개변수들은 실행 도중에 수정될 수도 있고, 동작이 캡처 되는 실시 시간(runtime) 동안의 사용자 동작에 대해 사전 준비된 애니메이션의 매개변수들을 맞추어 수정할 수도 있다. 또한, 매개변수들은 사용자의 이력 데이터에 기초하여 수정될 수도 있다. 예를 들면, 사용자의 테니스 서브의 백스윙 동작에 사전 준비된 애니메이션이 삽입되었다면, 사용자 위치의 이력 데이터는 사용자의 캡처된 동작의 애니메이션과 사전 준비된 애니메이션 사이의 전환점에서의 사용자 팔꿈치의 일반적인 위치를 나타낼 수 있다. 사용자가 루틴(routine) 또는 일상적인 동작들을 매번 당해 사용자에게는 개개인에게 특정된 방식이지만 유사한 방식으로 수행하기 때문에, 사전 준비 애니메이션들의 매개변수들은 그 사용자의 이력 데이터를 기초로 수정될 수 있다. 유사하게, 사용자는 애플리케이션 내 제어를 위한 제스처를 서서히 개선할 수 있고 사용자의 캡처된 동작 내의 변화들을 이력 데이터가 파악하여 그에 근거하여 사전 준비된 애니메이션의 매개변수들을 수정할 수 있다.
컴퓨터 환경(12)은 전환점 요소(194)와 애니메이션 블렌딩 요소(animation blending component)(200)를 포함할 수 있다. 전환점 요소(198)는 어느 경우에 사전 준비된 애니메이션을 사용하는 것이 적절하고, 어느 경우에 사용자의 캡처된 동작에 대응되는 애니메이션을 제공하는 것이 적절한지를 판단할 수 있다. 애플리케이션의 종류, 사용자의 숙련도, 제스처 실행의 난이도, 제스처의 중복성 등의 다양한 요소들에 의해서, 전환점 모듈(198)은 사용자 동작에 대응되는 애니메이션과 사전 준비된 애니메이션 사이에서 나타나는 동작의 변환이 일어나는 변환점을 식별하거나 결정할 수 있다.
제스처 라이브러리(190), 전환점 요소(194), 그리고 애니메이션 블렌딩 요소(200)는 하드웨어, 소프트웨어, 또는 그들의 조합에 구현될 수 있다. 예를 들면, 제스처 라이브러리(190), 전환점 요소(194) 그리고 애니메이션 블렌딩 요소(200)는 프로세서(196)와 같은 컴퓨터 환경(또는 도 3의 프로세싱 유닛(101) 또는 도 4의 프로세싱 유닛(259))의 프로세서에서 실행되는 소프트웨어로 구현될 수 있다.
도 2-4에서 도시된 블록다이어그램은 예시에 해당할 뿐, 구체적인 구현 방법을 암시하는 것이 아니다. 따라서, 도 1의 프로세서(195 또는 32), 도 3의 프로세싱 유닛(101), 그리고 도 4의 프로세싱 유닛(259)은 단일 프로세서(single processor) 또는 다중 프로세서들(multiple processors)의 형태로 구현될 수 있다. 다중 프로세서들은 분산되어 위치할 수도 있고 중앙에 위치할 수도 있다. 예를 들면, 제스처 라이브러리(190)는 캡처 장치의 프로세서(32) 상에서 실행되는 소프트웨어로 구현될 수도 있고, 컴퓨터 환경 내의 프로세서(195) 상에서 실행되는 소프트웨어로 구현될 수도 있다. 제시한 기술을 수행할 수 있는 어떤 프로세서들의 조합도 고려될 수 있다. 다중 프로세서들은 무선, 유선(hard wire), 또는 그들의 조합으로 통신할 수 있다.
제스처 라이브러리와 전환점을 식별하는 매개변수들은 제스처 도구(gesture tool)에 의해 애플리케이션 또는 애플리케이션의 내용(context)에 맞게 조정될 수 있다. 내용은 문화적 내용일 수도 있고, 환경적 내용일 수도 있다. 문화적 내용은 시스템을 사용하는 사용자의 문화를 지칭한다. 서로 다른 문화들에서는 유사한 제스처가 현저하게 다른 의미를 의미할 수 있다. 예를 들면 미국 사용자가 집게 손가락으로 자기 머리의 눈 옆쪽을 가리키는 행동은 "보라는 의미" 또는 "눈을 사용하라는 의미"를 담고 있지만 같은 제스처가 이탈리아 사용자에 의해 사용된 경우에는 마피아와 관련되어 있다는 의미가 있다.
유사하게, 하나의 애플리케이션의 다양한 환경들 간에 다양한 내용들이 존재할 수 있다. 자동차를 운행하는 것과 관련된 1인칭 슈팅 게임을 생각해보자. 사용자가 걷고 있을 때에는, 그라운드를 향해서 손가락들로 주먹을 만들고 몸 앞으로 주먹을 내지르는 행위가 주먹으로 치는 제스처를 나타낼 수 있다. 사용자가 운전 모드일 때에는 동일한 동작이 기어 변속 제스처를 나타낼 수 있다. 또한, 게임 내에 하나 또는 그 이상의 메뉴 환경이 존재할 수 있고, 메뉴 환경에서 사용자는 게임을 저장하고, 자신의 캐릭터의 도구들을 선택하거나 직접 게임플레이와 관련없는 유사한 행동들을 수행할 수 있다. 이 환경에서, 동일한 제스처는 특정 메뉴를 선택하거나 다음 화면으로 넘어가는 등의 또다른 제 3의 의미를 가질 수 있다.
제스처, 사전 준비된 애니메이션, 그리고 전환점들을 그 장르(genre)에서 사용될 가능성이 큰 보완적 제스처들(complementary gestures)의 장르 패키지들(genre packages)로 묶일 수 있다. 보완적 제스처들의 의미는 그 들이 보통 함께 사용된다는 뜻이거나 그들 중 하나의 매개변수의 변화가 다른 것들의 매개변수의 변화를 가져온다는 뜻을 가지며, 이들은 장르 팩키지로 묶일 수 있다. 이들 패키지들은 애플리케이션에 제공될 수 있고, 애플리케이션은 이들 중 적어도 하나를 선택할 수 있다. 애플리케이션은 제스처, 사전 준비된 애니메이션, 또는 전환점의 매개변수가 애플리케이션 특유의 측면에 가장 잘 부합되도록 수정 또는 조정할 수 있다. 매개변수들이 조정될 때, 제스처 또는 제 2 제스처의 제 2 보완적 매개변수(상호 의존적 개념에서)가 매개변수들이 보완적으로 남아있을 수 있도록 수정된다. 비디오 게임에 대한 장르 패키지들은 일인칭 슈팅, 액션, 운전, 스포츠 등의 장르를 포함한다.
전환점 요소(198)는 어느 경우에 사전 준비된 애니메이션을 사용하는 것이 적절하고, 어느 경우에 사용자의 캡처된 동작 또는 제스처에 기반한 애니메이션을 사용하는 것이 적절한지를 판단할 수 있다. 전환점 요소(194)는 사용자의 동작을 분석하여 관련 매개변수들이 전환점을 나타내는 것들을 충족하는지 여부를 판단할 수 있다. 예를 들면, 볼링 애플리케이션에서 볼링 동작에 대한 다양한 제스처들은 컴퓨터 환경(12)에 의해서 해석될 수 있다. 제스처 필터(191)는 백스윙 제스처와 일치하는 매개변수들에 기반하여 사용자의 백스윙의 시작점을 식별할 수 있다.
볼링 동작에서 전환점은 사용자의 손이 사용자의 엉덩이를 기준으로 한 평면과 만나는 점에 설정될 수 있다. 그 전환점의 특징은 사용자의 캡처된 동작이 백스윙 동작으로 구성되고 특정 속도에서 발생한다는 점이다. 물리적 공간에서 측정된 사용자 제스처의 매개변수들은 전환점의 매개변수들과 부합될 수 있다. 전환점을 식별하는 것은 사전 준비 제스처의 구현을 촉발할 수 있다. 사전 준비 애니메이션 라이브러리(192)는 사전 준비된 백스윙 애니메이션을 저장할 수 있다.
애니메이션 블렌딩 요소(195)는 실시간 애니메이션(live animation)과 사전 준비된 애니메이션 사이의 전환을 부드럽게 할 수 있다. 예를 들면, 컴퓨터 환경(12)은 사용자의 동작에 대한 뼈대 형태의 맵핑을 생성할 수 있고, 전환점에서의 사용자의 위치와 사전 준비 애니메이션의 시작 위치 사이의 전환을 평탄화(smooth)할 수 있다. 사용자의 동작과 사전 준비 애니메이션을 이런 방식으로 체이닝하는 것은 사용자 표현이 디스플레이됨에 있어서 방해요소를 최소화하고, 매끄러운 전환을 제공할 수 있다. 캡처된 동작은 사용자들 마다 서로 다를 수 있고, 사용자가 특정 제스처를 매번 수행할 때마다 달라질 수 있다. 따라서, 다양한 사용자들과 다양한 동작들에 있어서, 사전 준비된 동작과 체인되는 블렌딩은 역시 달라질 수 있다. 체이닝을 위해서 선택된 사전 준비 애니메이션에 의해 어느 정도의 블렌딩이 필요한지 여부도 결정될 수 있다.
제 2 전환점은 공을 다시 앞으로 내미는 과정에서 사용자의 손이 사용자의 엉덩이를 기준으로 한 평면과 만나는 시점으로 설정될 수 있다. 제 2 전환점은 사용자의 캡처된 동작 또는 제스처와 대응되는 애니메이션의 사용으로 되돌아가는 것을 촉발할 수 있다. 여기서 다시 애니메이션 블렌딩 요소(195)는 사전 준비된 애니메이션과 사용자 동작의 애니메이션 사이의 매끄러운 전환을 가능하게 해줄 수 있다.
도 3은 목표물 인식, 분석, 파악 시스템 내에서 하나 또는 그 이상의 제스처들을 해석하는데 사용할 수 있는 컴퓨터 환경의 예시적 실시예를 도시한다. 도 1a-2 등과 관련해서 상술한 컴퓨터 환경(12) 등의 컴퓨터 환경은 게임 콘솔(gaming console) 등의 멀티피디어 콘솔(100)일 수 있다. 도 3에서 볼 수 있듯이, 멀티매체 콘솔(100)은 CPU(101)을 포함하고, CPU(101)는 1 단계 캐시(102), 2 단계 캐시(104), 그리고 플래시 ROM(106)을 포함한다. 1 단계 캐시(102)와 2 단계 캐시(104)는 임시적 데이터 저장을 통해서 메모리 접속 사이클을 감소시켜서 프로세싱의 속도와 처리용량을 개선한다. CPU(101)는 하나 또는 그 이상의 코어(core)를 포함할 수 있고, 따라서 추가적 1 단계 캐시(102)와 추가적 2 단계 캐시(104)를 포함할 수 있다. 플래시 ROM(106)은 실행 코드(executable code)를 저장할 수 있고, 실행 코드는 멀티매체 콘솔(100)의 전원이 켜지고 나서 부팅 프로세스(boot process)의 시작 단계에서 로딩된다.
그래픽 프로세싱 유닛(GPU)(108)과 비디오 인코더/비디오 코덱(114)은 고해상도와 고속인 그래픽 프로세싱을 위한 비디오 파이프라인(pipeline)을 형성한다. 데이터는 GPU(108)에서 비디오 인코더/비디오 코덱(114)으로 버스(bus)를 통해서 이동한다. 비디오 프로세싱 파이프라인은 데이터를 텔레비전 등의 디스플레이에 전송하기 위해서 A/V(audio/video) 포트(140)로 출력한다. 메모리 컨트롤러(110)는 GPU(108)에 연결되어 프로세서가 RAM 등의 다양한 종류의 메모리(112)에 손쉽게 접속할 수 있도록 한다.
멀티매체 콘솔(100)은 I/O 컨트롤러(120), 시스템 관리 컨트롤러(122), 오디오 프로세싱 유닛(123), 네트워크 인터페이스 컨트롤러(124), 제 1 USB 호스트 컨트롤러(126), 제 2 USB 호스트 컨트롤러(128) 그리고 모듈(118)에 선호적으로 구현되는 전면 패널 I/O 하위 어셈블리(subassembly)를 포함한다. USB 컨트롤러들(126, 128)은 주변부 컨트롤러(142(1), 142(2)), 무선 어댑터(148), 그리고 외부 메모리 장치(146)(예를 들면 플래시 메모리, 외장형 CD/DVD ROM 드라이브, 이동식 매체 등)의 호스트 역할을 수행한다. 네트워크 인터페이스(124) 및/또는 무선 어댑터(148)는 네트워크(예를 들면 인터넷, 집안의 네트워크)로의 접속을 제공하고 이터넷 카드(ethernet card), 모뎀, 블루투스 모듈, 케이블 모뎀 등의 다양한 유무선 어탭터 중 하나일 수 있다.
시스템 메모리(143)는 부팅 과정에서 로딩 되는 애플리케이션 데이터를 저장하기 위해서 제공된다. 매체 드라이브(144)가 제공되며, DVD/CD 드라이브, 하드 드라이브, 또는 다른 이동식 매체 드라이브 등으로 구성될 수 있다. 매체 드라이브(144)는 멀티매체 콘솔(100)의 내부에 위치할 수도 있고 외부에 위치할 수도 있다. 애플리케이션 데이터는 매체 드라이브(144)를 통해서 멀티매체 콘솔(100)에 의해서 실행 또는 재생의 목적으로 접속될 수 있다. 매체 드라이브(144)는 I/O 컨트롤러(120)에 시리얼 ATA 버스 또는 다른 고속 연결부(예를 들면 IEEE 1394) 등의 버스를 통해서 연결된다.
시스템 관리 컨트롤러(122)는 멀티매체 콘솔(100)의 사용가능성을 보장하는 것과 관련된 다양한 서비스 기능들을 제공한다. 오디오 프로세싱 유닛(120) 그리고 오디오 코덱(132)은 고 충실도(high fidelity)와 스테레오 프로세싱을 가지는 오디오 프로세싱 파이프라인을 형성한다. 오디오 데이터는 통신 링크를 통해서 오디오 프로세싱 유닛(123)과 오디오 코덱(132) 사이를 이동한다. 오디오 프로세싱 파이프라인은 외부 오디오 재생장치 또는 오디오 능력을 가지는 장치에 의한 데이터를 재생산을 위해서 데이터를 A/V 포트(140)에 출력할 수 있다.
전면 패널 I/O 하위 어셈블리(130)는 전원 버튼(150)과 꺼냄 버튼(eject button)(152)의 기능은 물론이고 LED 등의 멀티매체 콘솔(100)의 외표에 노출되는 다른 표시부를 지원한다. 시스템 전원 공급 모듈(136)은 멀티매체 콘솔(100)의 요소들에게 전원을 공급한다. 팬(138)은 멀티매체 콘솔(100) 내의 회로를 냉각한다.
CPU(101), GPU(108), 메모리 제어부(110), 그리고 멀티매체 콘솔 내 다른 다양한 요소들은 직렬 및 평행 버스들, 메모리 버스, 주변부 버스를 포함하는 하나 이상의 버스와 그리고 어떠한 다양한 버스 구조를 사용하는 프로세서 또는 로컬 버스를 통해 상호 연결되어 있다. 예시로서, 이와 같은 구조는 PCI 버스, PCI-Express 버스 등을 포함할 수 있다.
멀티매체 콘솔(100)의 전원이 들어온 상태일 때, 애플리케이션 데이터는 시스템 메모리(143)로부터 메모리(112) 및/또는 캐시(102, 104)로 로딩 될 수 있고 CPU(101)에서 실행될 수 있다. 애플리케이션은 GUI(graphical user interface)를 나타낼 수 있고, GUI는 사용자가 매체 콘솔(100) 상의 사용가능한 다양한 매체 종류들을 탐색할 때, 일관성 있는 사용자 경험을 제공한다. 운용중에, 애플리케이션들 및/또는 매체 드라이브(144) 안에 포함되어 있는 다른 매체는 멀티매체 콘솔(100)에 추가적인 기능을 제공하기 위해서 매체 드라이브(144)에서 실행되거나 재생될 수 있다.
멀티매체 콘솔(100)은 시스템을 단순히 텔레비전 또는 다른 디스플레이 장치에 연결하는 것만으로 독립된 시스템으로 운용될 수 있다. 이 독립 모드에서, 멀티매체 콘솔(100)은 하나 또는 그 이상의 사용자들이 시스템과 상호 작용하는 것, 영화를 보는 것, 또는 음악을 듣는 것을 가능하게 한다. 그러나 네트워크 인터페이스(124) 또는 무선 어댑터(148)를 통해서 가능해진 광대역 연결성의 통합으로 인하여, 멀티매체 콘솔(100)은 더 큰 네트워크 커뮤니티(network community) 안에서 하나의 참가자로 운용될 수도 있다.
멀티매체 콘솔(100)의 전원이 들어왔을 때, 멀티매체 콘솔의 운영 체제에 의해 정해진 크기의 하드웨어 리소스들이 시스템의 사용을 위해 확보(reserve)된다. 이 리소스들은 메모리(reservation of memory)(예를 들면 16MB), CPU 그리고 GPU 사이클들(예를 들면 5%), 네트워크 대역대(예를 들면 8kbs) 등의 확보를 포함한다. 이들 리소스들이 시스템 부팅 시간에 확보되기 때문에, 확보된 리소스들은 애플리케이션의 시각에서는 존재하지 않는다.
특히, 메모리 예약은 시작 커널(launch kernel), 병행 시스템 애플리케이션(concurrent system application)들과 드라이버들을 포함할 수 있을 정도의 크기를 가지는 것이 바람직하다. CPU 확보는 바람직하게는 일정하게 유지되어야하고, 만약 확보된 CPU 사용량이 시스템 애플리케이션들에 의해서 사용되지 않을 경우에는 노는 스레드(idle thread)가 미사용 사이클을 소모한다.
GPU 확보와 관련하여, 시스템 애플리케이션에 의해 생성된 저용량 메시지(예를 들면 팝업)는 팝업을 오버레이로 렌더링하는 코드를 스케줄링하는 GPU 인터럽트를 이용하여 디스플레이된다. 오버레이를 위해 필요한 메모리의 양은 오버레이 영역의 크기에 따라 달라지고 오버레이는 바람직하게는 화면 해상도에 맞추어 크기가 조절된다. 병행 시스템 애플리케이션에 의해 전체 사용자 인터페이스가 사용되는 경우, 애플리케이션 해상도로부터 독립적인 해상도를 사용하는 것이 바람직하다. 이 해상도를 설정하는데 스케일러를 사용하여 주파수를 변경 및 TV의 재동기화의 필요성을 제기할 수 있다.
멀티매체 콘솔(100)이 부팅 되고 시스템 리소스가 확보되면, 병행 시스템 애플리케이션들이 실행되어 시스템 기능을 제공한다. 시스템 기능은 상술된 확보된 시스템 리소스 내에서 실행되는 한 세트의 시스템 애플리케이션 내에 캡슐화된다. 운영 체제 커널은 게임 애플리케이션 스레드와 대비하여 시스템 애플리케이션 스레드를 식별한다. 시스템 애플리케이션은 애플리케이션에 일관된 시스템 리소스 뷰를 제공하기 위하여 바람직하게는 CPU(101) 상에서 사전 정의된 시간 및 간격으로 실행되도록 스케줄링 된다. 스케줄링으로 인해 콘솔 상에서 실행 중인 게임 애플리케이션에 대한 캐시 중단(cache disruption)이 최소화될 수 있다.
병행 시스템 애플리케이션이 음성을 필요로 할 때, 음성 처리는 시간 민감도 때문에 게임 애플리케이션에 비동기식으로 스케줄링 된다. (이하 기술되는) 멀티매체 콘솔 애플리케이션 관리자는 시스템 애플리케이션이 작동될 때 게임 애플리케이션 음성 레벌(예: 음소거, 감쇄)를 조정한다.
입력장치(예를 들면 컨트롤러(142(1), 142(2)))는 게임 애플리케이션 및 시스템 애플리케이션에 의해 공유된다. 입력 장치는 확보된 리소스가 아니고, 시스템 애플리케이션 및 게임 애플리케이션 각각이 장치를 독점하도록 애플리케이션 간에 전환될 수 있다. 바람직하게는 애플리케이션 관리자는 게임 애플리케이션 정보 없이 입력 스트림의 전환을 제어하고, 드라이버는 독점권 전환에 관련된 상태 정보를 관리한다. 카메라(26, 28)와 캡처 장치(20)는 콘솔(100)을 위한 추가적 입력 장치들을 정의할 수 있다.
도 4는 컴퓨터 환경(220)의 다른 예시적 실시예를 도시하는데, 이것은 도 1a-2에 도시된 목표물 인식, 분석, 파악 시스템 안에서 하나 또는 그 이상의 제스처를 해석하는데 사용된 컴퓨터 환경(12)일 수 있다. 컴퓨터 시스템 환경(220)은 적합한 컴퓨터 환경의 하나의 예시에 불과할 뿐 제시된 발명의 사용이나 기능의 범위에 대해서 한정의 의미가 있지는 않는다. 또한, 마찬가지로 컴퓨터 환경(220)은 예시적 운용 환경(220)에 도시되어 있는 요소들 중 하나 도는 조합과 관련된 필요조건 내지 의존성이 있는 것으로 해석돼서는 안 된다. 일부 실시예들에서 도시된 다양한 컴퓨터 요소들은 본 발명의 구체적 측면에 대한 예를 들도록 구성된 회로망(circuitry)을 포함할 수 있다. 예를 들면, 본 공개된 기술에서 사용되는 용어 "회로망"은 스위치들 또는 펌웨어에 의해 기능을 수행하도록 구성된 특수한 하드웨어 요소를 포함할 수 있다. 다른 예시적 실시예들에서 회로망이라는 용어는 일반적 목적의 기능의 수행을 가능하게 하는 로직(logic)을 구현하는 소프트웨어 명령들에 의해 구성된 프로세싱 유닛(general purpose processing unit), 메모리 등과 같은 것들을 포함한다. 회로망은 하드웨어와 소프트웨어의 결합을 포함하는 예시적 실시예들에서, 구현자(implementer)는 로직을 구현하는 소스 코드를 짤 수 있고, 소스 코드는 기계적으로 판독 가능한 코드로 컴파일될 수 있고, 이것은 일반적 목적의 프로세싱 유닛에 의해서 프로세스 될 수 있다. 당업자는 하드웨어, 소프트웨어, 또는 그들의 조합들 사이에 별반의 차이가 없을 정도로 최첨단 기술이 발전했음을 알 것이고 특정 기능을 발효하기 위해 하드웨어 또는 소프트웨어를 선택하는 것은 구현자에게 맡겨진 다지인적인 선택에 해당한다. 더 구체적으로 당업자들은 소프트웨어 프로세스가 그와 본질적으로 부합하는 하드웨어 구조로 변환할 수 있고, 하드웨어 구조 그 자체도 부합하는 소프트웨어 프로세스로 변환할 수 있다는 것을 인지할 것이다. 따라서 하드웨어적인 구현을 할 것인지 소프트웨어적 구현을 할 것인지의 여부는 구현자에게 맡겨진 디자인적인 선택이다.
도 4에서 컴퓨터 환경(220)은 컴퓨터(241)를 포함하고, 컴퓨터(241)는 일반적으로 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터(241)에 액세스(access) 가능한 어떤 형태의 사용 가능한 매체도 포함하고, 휘발성과 비휘발성 매체, 이동식과 고정식 aocp를 모두 포함한다. 시스템 메모리(222)는 ROM(223) 그리고 RAM(260) 같은 휘발성/비휘발성 형태의 컴퓨터 저장 매체를 포함한다. 기본적 입출력 시스템(BIOS)(224)은 스타트업 도중과 같은 때에 컴퓨터(241) 내의 요소들 사이에 정보를 전달하는 것을 도와주는 기본 루틴들을 포함하고 있고, 일반적으로 ROM(223)에 저장되어 있다. RAM(260)은 일반적으로 곧장 접속 가능 및/또는 현재 프로세싱 유닛(259)에 의해 실행중인 데이터 및/또는 프로그램 모듈들을 포함한다. 한정적 의미가 아닌 예시로서, 도 4는 운영 체제(225), 애플리케이션 프로그램(226), 다른 프로그램 모듈들(227), 그리고 프로그램 데이터(228)를 도시한다.
컴퓨터(241)는 또한 다른 이동식/고정식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예시적 의미로서, 도 4는 고정식, 비휘발성 자기 매체를 읽거나 그것에 기록할 수 있는 HDD(238), 이동식, 비휘발성 자기 디스크(254)를 읽거나 그것에 기록할 수 있는 자기 디스크 드라이브(239), CD ROM 또는 다른 광학 매체와 같은 이동식, 비휘발성 광학 디스크(253)를 읽거나 그것에 기록할 수 있는 광학 디스크 드라이브(240)를 도시한다. 예시적 운용 환경에서 사용될 수 있는 다른 이동식/고정식, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다기능 디스크(digital versatile disks), 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하며, 이에 한정되지는 않는다. HDD(238)은 일반적으로 인터페이스(234)와 같은 고정식 메모리 인터페이스를 통해서 시스템 버스(221)와 연결되며, 자기 디스크 드라이브(239)와 광학 디스크 드라이브(240)는 일반적으로 인터페이스(235)와 같은 이동식 메모리 인터페이스를 통해서 시스템 버스(221)와 연결된다.
상술 되고 도 4에 도시된 드라이브들과 그들과 결부된 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 그리고 다른 데이터의, 저장부를 컴퓨터(241)에 제공한다. 도 4를 예로 들면, HDD(238)은 운영 체제(258), 애플리케이션 프로그램들(257), 다른 프로그램 모듈들(256), 그리고 프로그램 데이터(255)를 저장하는 것으로 도시된다. 이들 요소들은 운영 체제(225), 애플리케이션 프로그램들(226), 다른 프로그램 모듈들(227), 그리고 프로그램 데이터(228)와 같을 수도 있고 다를 수도 있음에 유의한다. 여기서 운영 체제(258), 애플리케이션 프로그램들(257), 다른 프로그램 모듈들(256), 그리고 프로그램 데이터(255)들은 그것들이 적어도 다른 카피(different copies)라는 것을 나타내기 위해서 다른 번호들이 사용되었다. 사용자는 키보드(251) 및 일반적으로 마우스, 트랙볼 또는 터치패드로 지칭되는 포인팅 장치(252)와 같은 입력 장치들을 통해서 컴퓨터(241)에 명령과 정보를 입력할 수 있다. 다른 입력 장치들(미도시)로는 마이크로폰, 조이스틱, 게임 패드, 인공위성 수신기, 스캐너 등을 포함할 수 있다. 이들 입력장치들은 보통 시스템 버스와 결합된 사용자 입력 인터페이스(236)를 통해서 프로세싱 유닛(259)과 연결되나, 병렬 포트, 게임 포트 또는 USB와 같은 다른 인터페이스 또는 버스 구조들에 의해서 연결될 수도 있다. 카메라들(26, 28)과 캡처 장치(20)는 콘솔(100)을 위한 추가적인 입력 장치들을 정의할 수 있다. 모니터(242) 또는 다른 종류의 디스플레이 장치도 비디오 인터페이스(232)와 같은 인터페이스를 통해서 시스템 버스(221)와 연결될 수 있다. 모니터뿐만 아니라, 컴퓨터는 스피커(244)와 프린터(243) 등의 다른 주변 출력 장치들을 포함할 수도 있고, 이들은 출력 주변부 인터페이스(233)를 통해서 연결된다.
컴퓨터(241)는 원격 컴퓨터(246)와 같은 하나 또는 그 이상의 원격 컴퓨터들로의 논리적 연결부들(logical connections)을 사용하여 네트워크 환경에서 운용될 수 있다. 원격 컴퓨터(246)는 개인용 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 대등 장치(peer device) 또는 다른 흔한 네트워크 교점(common network node) 등일 수 있으며, 비록 도 4에는 메모리 저장 장치(247)만 도시되어 있지만 컴퓨터(241)와 관련돼서 상술된 요소들 전부 또는 대부분을 일반적으로 포함한다. 도 2에서 도시된 논리적 연결부들은 LAN(245) 그리고 WAN(249)를 포함하고, 또한 다른 네트워크들도 포함할 수 있다. 이런 네트워크 환경들은 사무실, 사내 네트워크, 인트라넷 그리고 인터넷 등에서 흔히 존재한다.
LAN 네트워크 환경에서 사용되는 경우에, 컴퓨터(241)는 네트워크 인터페이스 또는 어댑터(237)를 통해서 LAN(245)에 연결된다. WAN 네트워크 환경에서 사용되는 경우에, 컴퓨터(241)는 일반적으로 모뎀(250) 또는 인터넷과 같은 WAN(249)를 통해서 통신을 형성할 수 있는 다른 수단을 포함한다. 모뎀(250)은 내장형 또는 외장형일 수 있고, 사용자 입력 인터페이스(236) 또는 다른 적절한 메커니즘을 통해서 시스템 버스(221)와 연결될 수 있다. 네트워크 환경에서, 컴퓨터(241) 또는 그 일부와 관련해서 도시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 한정적 의미로서가 아니라 예시로서, 도 4는 원격 애플리케이션 프로그램(248)이 메모리 장치(247)에 위치하는 것을 도시한다. 도시된 네트워크 연결부들은 단순한 예시에 불과하며 컴퓨터들 사이에 통신 링크를 형성할 수 있는 다른 어떤 수단들도 사용될 수 있다.
도 5A는 캡처 장치(20)에서 생성될 수 있는 사용자의 뼈대 맵핑(skeletal mapping)의 예를 도시한다. 이 실시예에서, 다양한 관절과 뼈들이 인식된다: 각각의 손(502), 각각의 팔(504), 각각의 팔꿈치(506), 각각의 이두박근(508), 각각의 어깨(510), 각각의 엉덩이(512), 각각의 허벅지(514), 각각의 무릎(516), 각각의 종아리(518), 각각의 발(520), 머리(522), 몸통(524), 척추의 상부(526)와 하부(528), 그리고 허리(530). 많은 지점들이 파악될수록, 손가락 또는 발가락의 뼈와 관절, 또는 코와 눈 등의 얼굴의 개개의 특성과 같은 추가적인 특성들이 인식될 수 있다.
신체의 움직임을 통해서, 사용자는 제스처를 만들 수 있다. 제스처는 사용자에 의한 동작 또는 자세로 구성되며, 이것은 영상 데이터의 형태로 캡처될 수 있고 의미 해석을 위해서 분석될 수도 있다. 제스처는 공던지기 흉내를 내는 등의 동작으로 구성되는 동적 동작일 수도 있다. 제스처는 정적인 자세일 수도 있고, 그 예로는 몸통(524) 앞에서 교차된 팔들(504)을 유지하는 자세 등이 있다. 제스처는 소품들을 포함할 수 있고, 예컨대 가짜 칼을 휘두를 수 있다. 제스처는 두 손(502)으로 손뼉을 치는 것과 같이 하나 이상의 신체 부위로 구성될 수도 있고, 입술을 오므리는 등의 미묘한 동작으로 구성될 수도 있다.
사용자의 제스처는 일반적인 컴퓨팅 상황에서 입력으로 사용될 수 있다. 예를 들면, 손(502) 또는 다른 신체부위의 다양한 동작들은 통상의 시스템상 작업에 대응될 수 있고, 예시로는 계층적 목록에서 위 아래로 움직이는 것, 파일을 여는 것, 파일을 닫는 것, 파일을 저장하는 것 등이 있다. 예를 들면 사용자는 손가락이 위를 가리키도록 자신의 손을 유지하고 손바닥이 캡처 장치(20)를 향하도록 할 수 있다. 그 후에 사용자는 손가락을 오므려서 주먹을 만들 수 있고, 이때 이런 제스처는 윈도우 기반의 사용자 인터페이스 컴퓨터 환경 내에서 지정된 윈도우를 닫아야함을 나타낼 수 있다. 제스처들은 비디오 게임 특정의 상황에도 게임 종류에 따라 적용이 가능할 수 있다. 예를 들면 운전 게임에서 손(502)과 발(520)의 다양한 동작들은 차량의 방향 조종, 기어 변속, 가속, 브레이킹 등에 대응될 수 있다. 따라서 제스처는 비디오 게임, 문서 편집기들, 워드 프로세서, 데이터 관리기와 같은 다양한 종류의 애플리케이션에서 디스플레이되는 사용자의 표현에 맵핑되는 다양한 종류의 동작들을 나타낼 수 있다.
사용자는 제자리에서 스스로 걷거나 뜀으로써, 걷는 동작 또는 뛰는 동작과 대응되는 제스처를 만들 수 있다. 예를 들면, 사용자는 각각의 다리(512-520)를 번갈아가며 들었다가 내림으로써 움직이지 않고 걷는 동작을 흉내 낼 수 있다. 시스템은 각각의 엉덩이(512)와 각각의 허벅지(514)를 분석해서 이 제스처를 분석할 수 있다. 한 엉덩이-허벅지 각도(수직선을 기준으로 측정되며, 이때 서있는 상태에서 엉덩이-허벅지 각도가 0도이고, 다리가 수평이 되도록 뻗어진 것이 90도에 해당한다.)가 다른 허벅지와의 관계에서 특정 한계(threshold)를 넘어서면 발걸음(step)이 인지될 수 있다. 걷는 동작 또는 뛰는 동작은 두 다리가 번갈아서 일정 수의 연속적인 발걸음을 한 후에 인식될 수 있다. 가장 최근에 이루어진 두 발걸음 사이의 시간이 주기(period)로 생각될 수 있다. 일정 수의 주기 동안 한계각도(threshold angle)를 넘기지 않을 경우에, 시스템은 걷는 동작 또는 뛰는 동작이 종료됐다고 판단할 수 있다.
"걷기 또는 뛰기" 제스처에 있어서, 애플리케이션은 그 제스처와 결부된 매개변수들의 값을 설정할 수 있다. 이 매개변수들은 상술한 한계 각도, 걷기 또는 달리기 제스처를 개시하기 위해서 요구되는 발걸음의 수, 제스처의 종료를 인정하기 위해서 필요한 발걸음 없는 주기의 수, 제스처가 걷기인지 달리기인지를 판단하기 위한 기준으로서의 한계 주기(threshold period) 등을 포함할 수 있다. 사용자가 다리를 빠르게 움직이는 빠른 주기는 달리기에 대응될 수 있고, 느린 주기는 걷기에 대응될 수 있다.
제스처는 처음에는 초기 매개변수들의 집합과 결부될 수 있고, 애플리케이션은 자신의 매개변수로 이를 대체할 수 있다. 이런 시나리오에서, 애플리케이션에 대하여 매개변수들의 제공이 강요되는 것은 아니고, 애플리케이션 내에서 정의된 매개변수들이 없는 경우에 제스처가 인지될 수 있게 해주는 초기 매개변수들을 사용할 수도 있다. 제스처와 관련된 정보는 사전 준비 애니메이션의 목적을 위해 저장될 수 있다.
제스처와 결부될 수 있는 다양한 출력들이 있다. 제스처가 일어나고 있는지의 여부에 대한 "예 또는 아니요."의 기준치가 있을 수 있다. 사용자의 파악된 동작이 제스처에 대응될 가능성에 대응되는 신뢰도(confidence level)도 존재할 수 있다. 신뢰도는 0과 1 사이의 범위 내의 이동소수점 수들의 선형적 스케일일 수도 있다. 이 제스처 정보를 수신하는 애플리케이션이 허위양성(false-positive)은 입력으로 받아들일 수 없을 때, 적어도 .95이상 등과 같은 높은 신뢰도를 가지는 인식된 제스처들만을 사용할 수 있다. 애플리케이션은 허위 양성들을 포함하면서까지 제스처의 모든 사례들을 인식해야할 때, 애플리케이션은 적어도 단지 0.2보다 큰 정도의 매우 낮은 신뢰도를 가지는 제스처도 사용할 수 있다. 제스처는 두 개의 가장 최근 발걸음 사이의 시간에 대한 출력을 가질 수 있고, 단지 첫 번째 발걸음만 기록된 경우는 특정값, 예를 들면 -1 과 같은 값을 가지도록 설정될 수 있다. (두 발걸음 사이의 시간은 반드시 양수이어야 하므로). 제스처는 가장 최근 발걸음 동안에 도달한 가장 큰 허벅지 각도에 대한 출력도 가질 수 있다.
다른 예시적 제스처는 "발꿈치 들고 점프하기"이다. 여기서 사용자는 발끝은 땅에 붙이고 발꿈치만 들어서 이 제스처를 행할 수 있다. 그 대신에 사용자는 발(520) 전체가 땅에 닿지 않도록 점프를 할 수도 있다. 시스템은 어깨(510), 엉덩이(512) 그리고 무릎(516)과 관련되는 각도들을 분석해서 그들이 똑바로 일어서는 것과 동일한 배열을 가지는지의 여부를 판단해서 해당 제스처를 확인하기 위해 뼈대를 분석할 수 있다. 그리고 나서 이들 지점들과 척추 상부(526)와 하부(528) 지점들이 어떠한 상향 가속(upward accceleration)을 갖는지의 여부를 판단하기 위해 모니터 될 수 있다. 가속의 적절한 조합은 점프 제스처를 촉발할 수 있다. 가속과 특정 제스처의 적절한 조합은 전환점의 매개변수들을 충족시킬 수 있다.
이 "발꿈치 들고 점프하기" 제스처에 있어서 애플리케이션은 이 제스처와 결부된 매개변수의 값들을 설정할 수 있다. 매개변수들은 제스처를 촉발하기 위해서 어깨들(510), 엉덩이들(512) 그리고 무릎들(516)의 조합들이 얼마나 빨리 위로 우직여야 하는지를 결정하는 상술된 가속 한계점과(acceleration threshold) 점프가 아직 촉발될 수 있는 때의 어깨(510), 엉덩이(512) 그리고 무릎(516) 사이의 배열의 최대각(maximum angle)을 포함할 수 있다. 출력들은 점프할 때 사용자 신체 각도와 신뢰도를 포함할 수 있다.
제스처를 수신할 애플리케이션의 특징에 기반하여 제스처의 매개변수들을 설정하는 것은 정확하게 제스처를 식별하는데 있어서 중요하다. 제스처와 사용자의 의도를 제대로 인식하는 것은 긍정적인 사용자 경험을 형성하는데 큰 도움이 된다.
애플리케이션은 사전 준비된 애니메이션을 사용할 시점을 인식하기 위해서 다양한 전환점들과 결부된 매개변수들의 값들을 설정할 수 있다. 전환점들은 다양한 매개변수들에 의해서 정의될 수 있고, 이들 매개변수들은 특정 제스처, 속도, 목표물 또는 물체의 각도의 인식, 또는 이들의 어떠한 조합들도 포함할 수 있다. 만약 특정 제스처의 인식을 통해서 전환점이 부분적으로나마 정의된다면, 제스처를 올바르게 인식하는 것은 전환점의 매개변수들의 충족에 대한 신뢰도를 증가시키는 것에 이로울 수 있다.
제스처의 또 다른 매개변수는 이동한 거리이다. 사용자의 제스처가 가상 환경에서 아바타의 액션을 제어하는 경우에, 아바타는 공으로부터 팔길이만큼 떨어져 있을 수 있다. 만약 사용자가 공과 상호작용 하여 잡기를 원한다면, 이것은 사용자로 하여금 그의 팔(502-510)을 쭉 펴면서 잡는 제스처를 행하도록 요구할 수 있다. 이런 상황에서 사용자가 그의 팔(502-510)을 부분적으로만 펴면서 붙잡는 제스처는 상술된 제스처와 유사하지만 공과 상호작용하는 결과를 달성하지 못할 수 있다. 유사하게, 전환점의 매개변수들이 붙잡는 제스처의 인식표지에 해당할 수 있고, 만약 사용자가 그의 팔(502-510)을 부분적으로만 펴서 공과 상호작용하는 결과를 달성하지 못하는 경우에, 사용자의 제스처는 전환점의 매개변수 역시 충족하지 못할 것이다.
제스처 또는 그것의 일부는 그것이 발생하는 공간을 매개변수로 가질 수 있다. 공간은 제스처가 신체 동작으로 구성되는 경우에 일반적으로 신체와 관련되어 표현된다. 예를 들면, 오른손잡이 사용자가 공을 던지는 제스처는 오른쪽 어깨(510a)보다 위에 위치하고, 던지는 팔(502a-310a)과 같은 쪽의 머리(522) 옆의 공간에서만 인식될 수 있다. 공간의 모든 경계를 정의할 필요는 없을 수도 있다. 던지는 제스처에 있어서도 몸으로부터 바깥쪽의 경계는 정의되지 않은 상태로 남겨지며, 부피는 무한대 또는 장면의 모니터 되는 가장자리까지 확장된다.
도 6a-6f는 볼링 게임 도중에 사용자가 행할 수 있는 제스처들의 예를 도시한다. 도 6a-6f 각각은 다른 때의 사용자 동작의 영상 데이터의 프레임 또는 스냅 샷과 대응될 수 있다. 각각의 영상 데이터의 프레임은 사용자의 뼈대 지도(skeletal map)를 만들기 위해서 분석될 수 있고, 제스처들은 도 6에 도시된 뼈대 지도와 관련돼서 서술된 것처럼 인식될 수 있다. 도 6a-6f에서 도시된 영상 데이터의 프레임들 또는 스냅 샷들은 캡처 장치에 의해서 캡처 돼서 캡처 장치(20) 또는 컴퓨터 환경(12) 내에서 프로세스 될 수 있으며, 이는 도 2에서 도시된다.
캡처 장치(20)는 사용자가 거리를 이동하는 것보다 더 빠르게 영상 자료의 연속된 프레임들을 캡처할 수 있다. 예를 들면, 볼링 제스처들이 10초 동안에 이루어지고, 깊이 카메라가 데이터를 초당 40프레임에 캡처하는 경우에, 400 프레임들의 영상 데이터가 캡처될 것이다. 사용자의 깊이 영상으로부터 뼈대 지도를 만든 시스템은 이제 시간의 흐름에 때라 사용자의 몸이 어떻게 이동하는 지를 판단할 수 있고, 그것으로부터 제스처를 분석할 수 있다. 사용자 동작 내 다른 지점들에서, 시스템은 사용자의 동작을 표현하는 애니메이션을 디스플레이하는 대신에 사전 준비된 애니메이션을 구현할 수 있다.
도 6a에서 사용자(602)는 팔(604)을 옆으로 내린 채 시작한다. 도 6b에서 도시된 사용자 동작의 스냅 샷과 같이 사용자는 볼링공 반환대(bowling ball return)로 걸어간다. 그 다음에 사용자는 도 6c에 도시된 사용자 동작의 스냅 샷에서처럼 공을 선택한다. 사용자는 사용자의 물리적 공간 안에서 실제 물리적 물체를 향해 손을 뻗을 수 있고, 물리적 물체는 캡처 장치에 의해서 인식되어 게임 공간 내 아바타와 관련해서 디스플레이될 수 있다. 그렇지 않으면, 특정 애플리케이션 내에서 사용되는 소품들 또는 물체들이 스크린에 디스플레이될 수 있고 사용자는 물리적 공간에서 알맞게 움직여서 게임 공간 안의 위치와 대응시킴으로써 물체들과 상호작용을 할 수 있다. 예를 들면, 만약에 볼링공 반환대에 공이 모여있는 것이 게임 공간 내에서 디스플레이되고 있다면, 사용자는 물리적 공간에서 앞으로 걷는 동작과 몸을 돌리는 동작을 행해서 게임 공간 내에서 디스플레이되는 볼링공 반환대로 아바타가 걸어가고 몸을 돌리는 것을 제어할 수 있다. 사용자 제스처들에 맵핑된 아바타 같은 디스플레이된 사용자를 표현하는 것을 보면서, 사용자는 그 자신이 공 선택을 하도록 움직일 수 있다.
공이 선택되고 나서, 사용자는 도 6c와 도 6d에 도시된 프레임들 사이의 볼링 레인의 위치로 걸어갈 수 있고, 스스로를 원하는 곳에 위치시킨다. 또다시, 디스플레이로 맵핑된 사용자 동작을 관찰함으로써, 사용자는 사용자의 물리적 공간에서 걷기 동작을 행함으로써 아바타를 게임 공간 내에서 디스플레이되는 볼링 레인의 적절한 위치로 이동시킬 수 있다. 사용자는 도 6d의 사용자 동작의 스냅 샷에서 볼 수 있듯이 공을 들고 백스윙 동작을 행할 준비를 하고, 도 6e의 사용자 동작의 스냅 샷에서 볼 수 있듯이 백스윙 동작을 시작한다. 도 6f는 볼링 레인으로 볼링공을 던지는 시점에서의 사용자를 도시한다.
캡처 장치(20)가 어떤 영상에서도 사용자가 정지한 것으로 보이는 정지 영상들의 시리즈를 캡처하지만, 사용자는 제스처를 수행하는 과정에서 움직일 수 있다(정적인 제스처와 대조적으로). 시스템은 각각의 정지 영상에서 자세들의 시리즈를 취하여, 그것들로부터 사용자가 행하고 있는 움직이는 제스처의 신뢰도를 결정할 수 있다.
제스처를 행함에 있어서, 사용자의 동작은 아바타와 같은 디스플레이 상의 표현으로 맵핑될 수 있다. 사용자의 켑쳐된 동작에 대응되는 애니메이션을 맵핑하는 것보다 사전 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다. 사용자의 동작이 애플리케이션의 한 측면을 제어하는 제스처가 아닌 경우에도, 사용자 동작을 디스플레이하거나 사전 준비된 애니메이션을 삽입하는 것이 바람직할 수 있다. 예를 들면, 도 6c에서 사용자의 공 선택이 이루어진 후, 도 6c와 도 6d의 프레임들 사이의 동작에 해당하는, 위로 몸을 젖히고 볼링핀들 방향으로 이동하는 동작은 사전 준비된 애니메이션으로 나타내는 것이 바람직할 수 있다. 사용자의 캡처된 동작을 맵핑하는 것보다, 사전 준비된 애니메이션을 사용하는 것이 애니메이션 목적상 더 효율적일 수 있다. 다른 예시로서, 도 6d와 6f에 도시된 영상들 사이에서 발생하고, 도 6e에서 스냅 샷이 도시된 사용자의 백스윙은 미숙련 사용자가 행하기에는 너무 복잡하거나 볼링 게임에서 일반적인 동작에 해당함을 이유로 사전 준비된 애니메이션이 사용되도록 설정될 수 있다.
특정 제스처 또는 동작의 일부는 다양한 이유들에 의해서 사전 준비된 애니메이션에 의해서 표현되도록 선택될 수 있다. 예를 들면, 그 동작은 게임 내의 사용자의 퍼포먼스에 무의미한 것이고 애니메이션을 사용자의 동작에 맵핑하는 것보다 사전 준비된 애니메이션을 사용하는 것이 더 효율적일 수 있다. 애니메이션의 용도로 사전 준비된 애니메이션을 삽입하는 것은 측정 또는 식별하는 것이 복잡한 동작 또는 일반적인 동작들의 경우에 있어서 바람직하다. 사용자가 그의 동작이 디스플레이를 위해서 맵핑되는 것을 예상하지 못하는 상황들에서는 사전 준비된 애니메이션을 사용하는 것이 바람직하다. 애플리케이션에서 사용되는 일부 동작들은 매우 일반적이어서 사용자는 사용자의 캡처된 동작 또는 제스처에 기반한 애니메이션을 디스플레이하는 것과 사전 준비된 애니메이션을 사용하는 것을 구분하기가 어렵고, 따라서 둘 중 어느 하나를 디스플레이하는 것이 효율적일 수 있다. 사전 준비된 애니메이션은 게임 또는 애플리케이션 안에서 중단점들(break points)을 제공하는 것에 바람직할 수 있다. 예를 들면, 만약 사용자가 사전 준비된 애니메이션이 공 선택 이후에 사용자의 아바타를 볼링공 반환대로부터 레인으로 이동시킬 것이라는 사실을 인지하는 경우에, 사용자는 게임이 재개하기 전에 아바타 동작에 영향을 미치지 않고 휴식을 취할 수 있다. 그 다음에 사용자는 사용자의 동작을 디스플레이하는 시스템으로 돌아오도록 촉발하는 촉발 동작을 취할 수 있다.
사전 준비된 애니메이션들의 사용을 촉발하는 전환점들과 요구되는 블렌딩의 종류와 분량은 애플리케이션의 세부 사항에 가장 적합하도록 제스처와 결부된 매개변수들에 의해 조정될 수 있다. 예를 들면, 관련 제스처 정보를 가지는 제스처 라이브러리를 활용하는 볼링 애플리케이션에서, 도 6a-6f에 도시된 사용자의 동작들은 볼링 제스처들로 인식될 수 있다. 제스처에 관련되거나 애플리케이션 특유의 매개변수들은 전환점을 인식하여 전환점을 뒤따르는 애니메이션의 부분으로 사전 준비된 애니메이션을 사용하도록 촉발할 수 있다.
전환점을 인식하기 위한 매개변수들의 집합은 사용자로 하여금 특정 동작을 취하거나 특정 각도 안에서 굽히도록 요구하는 것과 같이 더 엄격할 수 있다. 예를 들면, 전환점은 애플리케이션-특정 동작(application-specific motion)에 의해 인식될 수 있고, 이런 예로는 사용자의 아바타가 사용자가 원하는 볼링공 위에 위치할 때 사용자로 하여금 손을 뻗어서 움켜잡는 동작을 하도록 요구하는 상술된 볼링 동작에 있어서의 전환점을 들 수 있다. 만약에 전환점이 매개변수들의 조합으로 인식된 경우에, 매개변수들의 조합은 전환점을 나타냄에 있어 신뢰도를 증가시킬 수 있다. 예를 들면, 도 6c와 도 6d 사이의 동작이 사전 준비 애니메이션에 의해서 표현되는 볼링 애플리케이션을 생각해보자. 전환점을 나타내는 매개변수들은 애플리케이션(예: 볼링 게임)의 종류, 특정 사용자 동작(예: 구부리는 동작), 그리고 애플리케이션-특성 동작(예: 공 선택에 있어서의 움켜잡는 동작)의 조합을 필요로 할 수 있다.
애플리케이션들 사이에서 전환점들은 달라질 수 있다. 한 애플리케이션 내에서 매개변수를 충족시키는 것은 전환점을 나타내는 것일 수 있지만, 두 번째 애플리케이션에서 동일한 매개 변수를 충족시키는 것은 전환점을 나타내는 것이 아닐 수 있다. 게임 안에서 그 특정 시점에서의 움켜잡는 동작은 전환점을 나타낼 수 있고, 전환점에서 사전 준비된 애니메이션은 다음 전환점에 도달할 때까지 사용자의 동작을 표현한다. 비 게임 스프레드시트 애플리케이션과 같은 다른 애플리케이션에서, 움켜잡는 동작은 정보를 스프레드시트 내의 한 셀에서 다른 셀로 이동하는데 사용될 수 있다. 전환점의 매개변수들은 사용자가 예를 들면 1.5초 내 등의 특정 시간 범위 내에서 특정 포지션들을 거쳐서 이동할 것을 요구할 수 있고, 만약에 사용자가 이들 포지션들을 거쳐서 움직이는데 1.5초 이상을 사용하는 경우에, 특정 전환점으로 인지되지 않고 따라서 사전 준비된 애니메이션을 촉발하지 않는다.
시스템은 물리적 공간 안에서의 사용자의 제스처들을, 아바타가 볼링공 반환대를 향해서 움직이는 것, 구부린 후 특정 공을 움켜잡는 동작을 취하는 것 등에 맞출 수 있다. 전환점에서 시스템은 공 선택 이후의 동작(예, 몸을 젖히는 동작과 아바타를 볼링핀을 보도록 볼링 레인에 제대로 포지션 시키는 것) 대해서 사전 준비된 애니메이션을 구현할 수 있다. 시스템은 애니메이션 블렌딩 기술을 적용해서 사용자의 실시간 동작에 대응되는 애니메이션으로부터 사전에 준비된 애니메이션으로 전환하는 것, 또는 그 반대의 경우에 디스플레이 상에서의 끊김을 최소화하면서체이닝(chained)되도록 할 수 있다.
도 7a와 7b는 도 6a-6e에 도시된 사용자 동작의 각각의 프레임들을 도시하고, 더 나아가 사용자 제스처와 사전 준비된 애니메이션들의 순열과, 시스템이 애니메이션 블렌딩 기술들을 통해서 어떻게 사용자 제스처의 애니메이션들과 사전 준비된 애니메이션들을 함께 체이닝 할 수 있는지를 도시한다.
전환점 #1, #2, #3, 그리고 #4는 매개변수가, 예를 들면 사용자 동작의 특정 매개변수, 전환점의 매개변수들을 충족시키는 지점들일 수 있다. 전환점을 나타내는 매개변수들은 사용자 동작 이외의 것, 예를 들면 애플리케이션 내 특정 지점을 나타내는 매개변수와 대응될 수 있다. 전환점을 설정하는 어떤 적절한 방법도 적용될 수 있다. 애플리케이션 자체가 애플리케이션의 종류 및/또는 사용자의 숙련도 또는 경험을 기초로 전환점을 설정할 수 있다. 예를 들면, 초보자에게는 더 많은 사전 준비 동작들이 구현될 수 있다. 사용자는 사전 준비된 동작들이 특정 동작들에서 사용되도록 전환점을 설정하거나 또는 애플리케이션을 사용하는 동안 내내 더 많은 또는 더 적은 사전 준비 애니메이션들의 사용을 요구할 수 있다.
전환점의 매개변수들을 충족하는 것은 사용자 동작의 애니메이션으로부터 사전 준비된 애니메이션으로의 전환 또는 그 반대의 전환을 촉발할 수 있다. 도 7a에서 볼 수 있듯이, 섹션 A는 사용자 동작의 애니메이션을 사용하는 것을 나타내고, 볼링 게임의 측면들을 제어하는 다양한 제스처들을 도시한다. 사전 준비된 애니메이션의 구현은 전환점의 매개변수들이 충족되었을 때 촉발될 수 있다. 전환점 #1에서의 전환은 애플리케이션의 종류(예를 들면 볼링 게임), 특정 사용자 동작(예를 들면 굽히는 동작), 그리고 애플리케이션-특정 동작(예를 들면 공 선택에 있어서 움켜잡는 동작)의 조합에 의해서 촉발될 수 있다.
섹션 C에서 볼 수 있듯이, 볼링 애플리케이션 내의 예시적 사전 준비 애니메이션은 볼링공 반환대에서 공을 집어들고, 바로 서는 자세로 돌아와서, 사용자의 아바타 또는 다른 시각적 표현을 볼링 핀들이 있는 볼링 레인 앞에 포지션 시키는 것일 수 있다. 캡처된 동작으로부터 사전 준비 애니메이션으로 전환하기 위해서, 이하 상세히 서술되고 섹션 B에서 나타나는 것과 같이 애니메이션 블렌딩이 포함될 수 있다.
다른 예시적 실시예에서, 시스템은 섹션 C에서 사용된 사전 준비 애니메이션의 마지막 포지션 등의 사전 준비된 애니메이션에 의해 제공된 마지막 포지션에서 디스플레이 화면을 멈출 수 있다. 사전 준비된 애니메이션에 의해 제공된 마지막 포지션은 아바타 등의 사용자 표식에 의해 디스플레이 상에서 도시될 수 있다. 사용자에 의한 실시간 동작의 표현을 재개하기 위해서, 사용자는 특정 실시간 제스처(live gesture)로 전환을 촉발해야할 수도 있다. 예를 들면, 시스템의 사용자에 의해 행해진 실시간 제스처의 측정과 디스플레이를 재개하기 위해서, 사용자는 사전 준비 애니메이션에 의해 제공된 마지막 포지션과 유사한 포지션을 취해야할 수도 있다. 따라서, 전환은 의도적으로 중단되어 중단점을 제공하거나 사용자로 하여금 제대로 된 포지션에 스스로를 설정할 수 있도록 도와준다. 사용자의 실시간 동작의 캡처와 특정 동작의 감지는 시스템이 사용자의 실시간 동작의 사용으로 되돌아오도록 유발한다. 상술된 바와 같이, 사용자 동작의 애니메이션과 사전 준비 애니메이션들 사이의 전환은 동작을 디스플레이 상에서 관찰하는 사용자에게는 어쩌면 끊어짐이 없이(seamless) 보일 수도 있다.
제 2 전환점 #2는 사전 준비된 애니메이션에 의해 나타나는 동작의 완료에 의해 인식될 수 있다. 예시적 실시예에서, 전환점 #2에서, 시스템은 사용자 동작의 애니메이션으로 되돌아올 수 있다. 섹션 D에서 표현된 바와 같이 사전 준비된 애니메이션으로부터 사용자 동작의 애니메이션으로 되돌아오는 전환을 하기 위해서, 섹션 C에서 사용된 사전 준비 애니메이션을 섹션 E의 도입부에서의 사용자 포지션에 좀더 가깝게 표시되기 위해서 수정할 수 있다.
예시적 볼링 동작에 대한 연속된 제스처들과 애니메이션들은 도 7b에 도시된 바와 같이 계속된다. 도 7에서 볼 수 있듯이, 섹션 E는 다시 전환점 #2에 이어지는 시스템의 계속되는 사용자 제스처의 애니메이션을 도시한다. 볼 선택 이후에는 물리적 공간 내 사용자 동작의 애니메이션을 디스플레이하는 것이 바람직할 수 있는데, 이는 게임 공간 내 사용자 표현의 포지션은 사용자 선호도에 기반을 둘 수 있기 때문이다. 예를 들면, 사용자는 레인에 가깝게 위치하는 것을 선호할 수 있고, 또는 볼링핀들을 기준으로 가운데를 벗어난 곳에 위치하는 것을 선호할 수도 있다.
세 번째 전환점인 전환점 #3의 매개변수들은 사용자가 볼링 동작의 백스윙을 시작할 준비가 되어있음을 나타내는 사용자의 실시간 동작 또는 제스처일 수 있다. 예를 들면, 전환점 #3의 매개변수들은 사용자 제스처의 인식일 수 있고, 이 제스처는 사용자의 몸체 앞에서 준비자세로 공을 잡고 있는 것, 볼링 레인에서 원하던 포지션이 달성됨을 나타내기 위해서 미리 정해진 시간만큼 정지하는 것, 몸통의 앞에서 사용자의 엉덩이를 향해 백스윙을 시작하는 것을 포함할 것이다. 시스템은 전환점 #3을 나타내는 사용자의 동작을 인식할 수 있고, 따라서 섹션 G에서 도시된 사전 준비된 애니메이션의 사용을 촉발할 수 있다. 섹션 G에서 볼 수 있듯이, 볼링 애플리케이션 내 예시적 사전 준비된 애니메이션은 사용자 엉덩이의 평면 뒤에서 일어나는 백스윙과 포워드 스윙 동작일 수 있다. 사전 준비된 애니메이션은 백스윙과 포워드 스윙 동작을 나타내는 복수의 사전 준비된 애니메이션들 중에서 선택될 수 있다. 캡처된 동작으로부터 사전 준비된 애니메이션으로 전환하기 위해서, 섹션 F에 나타난 것과 같이 애니메이션 블렌딩이 포함될 수 있다.
네 번째 전환점 #4는 사전 준비된 애니메이션에 의해 나타난 동작의 종료에 의해 인식될 수 있다. 예시적 실시예에서, 전환점 #4에서, 시스템은 사용자의 동작을 나타내기 위해서 사용자의 캡처된 동작을 사용하는 것으로 되돌아 갈 수 있다. 사전 준비된 애니메이션에서 사용자의 캡처된 동작들로 전환하기 위해서, 섹션 H에 나타난 것과 같이 애니메이션 블렌딩이 포함될 수 있다.
사용자 동작의 애니메이션은 조종 동작에 대응할 수도 있고 대응하지 않을 수도 있다. 또한, 사전 준비된 애니메이션도 조종 동작에 대응할 수도 있고 대응하지 않을 수도 있다. 예를 들면, 물리적 공간에서 사용자 동작의 애니메이션은 아바타와 같은 사용자의 애니메이션 또는 시각적 표현에 맵핑될 수 있다. 사용자의 동작이 애플리케이션의 한 측면을 제어하지 않는 경우에도, 시스템은 사용자 동작에 맵핑되는 애니메이션을 디스플레이할 수 있다. 또한, 동작의 일부를 나타내는 사전 준비된 애니메이션이 삽입되고 디스플레이될 수 있으며, 그 동작은 애플리케이션 안에서 조종 동작으로 작용할 수도 있고 하지 않을 수도 있다. 그 대신에, 사용자 동작은 운영 체제 또는 애플리케이션의 조종 동작 같은 조작 동작으로 작용하는 제스처에 대응될 수 있다. 예를 들면, 볼링 애플리케이션 내의 움켜잡는 동작은 공을 선택하는 제스처를 나타낼 수 있다. 또한, 사전 준비된 애니메이션도 애플리케이션의 한 측면을 제어할 수 있다(예를 들면 사전 준비 애니메이션의 매개변수들은 사전 준비된 애니메이션이 실행될 때 애플리케이션의 조종 동작으로 해석될 수 있는 것으로 정의될 수 있다).
각각의 전환점 #1, #2, #3, 그리고 #4에서 발생하는 것과 같이 사용자의 제스처 또는 실시간 동작을 사전 준비된 애니메이션과 체인 하기 위해서는, 시스템은 애니메이션 블렌딩 방법을 적용할 수 있다. 애니메이션 블렌딩은 하나 또는 그 이상의 소스들로부터 계층적 교정의 정보를 얻고 그들을 함께 혼합해서 유사한 계층 구조의 교점들을 위한 새로운 방향(orientation)을 생성하는 과정이다. 가장 일반적인 계층 구조(hierarchy)는 사용자의 뼈대를 막연하게 나타내는 것이다. 이 계층적 구조에서, 각각의 교점은 무릎, 어깨 또는 요추와 같은 뼈대의 관절을 나타낸다. 각각의 교점에서, 포지션, 로테이션과 스케일 값들을 포함하는 방향이 일반적으로 저장된다. 이런 상황에서, 애니메이션 블렌딩은 개별적인 뼈대 관절 방향을 혼합하여 하나 또는 그 이상의 소스들로부터 새로운 뼈대 자세를 생성하는 과정이다.
다양한 기존의 방법들이 성향들의 집단의 블렌딩을 수행하기 위해서 존재한다. 이들은 개별의 방향 요소들에 대한 선형보간법, 로테이션들에 있어서 구면 선형 보간법(spherical linear interpolation), 연속적인 스플라인 보간법(spline interpolation), 또는 방향 요소의 단순한 덧셈, 뺄셈 또는 조절을 포함할 수 있다. 애니메이션 블렌딩의 품질은 맥락에 매우 관련되어 애플리케이션들은 원하는 결과를 얻기 위해서 어떠한 기존 방법들도 결합하거나 확장할 수 있다. 추가로, 데이터의 저장 방법 역시 매우 신축적이고, 전환 메트릭스들, 개별 포지션 오프셋(discreet position offsets), 균일하고 비균일한 스케일 값들, 그리고 극좌표 축 각도 쌍(axis-angle pairs), 쿼터니온(quaternion), 또는 개별 오일러 각도(discreet Euler angles) 형식의 로테이션을 포함할 수 있다. 애니메이션 교점 계층의 커다란 집합의 경우 메모리 사용이 종종 문제가 되는바, 다양한 압축 기술들이 서술된 데이터를 퀀타이즈 또는 더 컴팩트화하기 위해서 사용될 수 있다.
또한, 애니메이션 블렌딩은 목표 재설정(retargeting) 과정을 포함한다. 목표 재설정은 블렌딩 할 목적으로, 하나 또는 그 이상의 상이한 교점 계층을 공통 공간으로 전환하는 과정이다. 예를 들면, 프로 운동선수로부터 캡처된 동작을 포함하는 애니메이션이 된 뼈대 계층 구조를 생각해보자. 또한, 제 2 소스로서, 사춘기 아이로부터 캡처된 동작이 있을 수 있다. 이들 계층구조는 각각의 뼈대가 포함하는 개개의 뼈 길이들뿐만이 아니라, 각각의 뼈대에 포함된 관절의 숫자도 다를 수 있다. 그들을 혼합하기 위해서, 이 소스들 중 하나 또는 그 이상이 공통 공간으로 전환될 필요성이 있을 수 있다. 목표 재설정 과정은 한 뼈대 계층 구조의 동작을 다른 것의 공간 또는 형태로 전환할 수 있다. 이전 예시에서는, 블렌딩 할 균질한 데이터 집단을 제공하기 위해서, 어린이 관절은 운동 선수의 그것과 비례하여 스케일업 될 수 있다.
애니메이션화 된 교점 계층들의 직접적인 블렌딩 외에도, 간접적으로 하나 또는 그 이상의 애니메이션들을 혼합하여 결과를 도출하는 기술들의 집합도 존재한다. 이들은 정운동학과 역운동학(forward and inverse kinematics)을 포함할 수 있다. 운동학의 응용은 교점 방향이 원하는 목표물과 주위의 교점 방향들로부터 추론될 수 있도록 한다. 예를 들면, 어깨의 현재 위치와 손의 요구되는 위치가 주어졌을 때, 팔꿈치의 잠재적인 위치는 역운동학을 통해서 추론될 수 있다. 상부와 하부 팔의 뼈길이가 고정된 경우에, 어깨와 손이 자리를 잡은 뒤에는 팔꿈치의 잠재적인 방향은 유한한 집합을 형성한다. 사람의 뼈대에 관한 지식과 팔꿈치에 대한 시간적 정보(temporal information)를 이용해서, 적합한 위치가 선택될 수 있다. 이 과정을 이용해서, 블렌딩되고 있는 계층들 내에서 교점들이 직접적으로 나타나지 않는 경우에 있어서, 방향들은 추론될 수 있다.
애니메이션 블렌딩이 섹션들 B와 H에서 발생하는 대로 도 7a와 7b에서 나타난다. 섹션 D는 상술할 바와 같이 사전 준비된 수정본의 매개변수들을 수정하는 예를 나타내고, 섹션 F는 상술한 바와 같이 복수의 사전 준비 애니메이션들 중에서 사용자의 캡처된 동작에 가장 잘 부합되는 하나를 선택하는 과정의 예시를 보여준다. 이들 옵션들 중 어떤 것도 순서와 상관없이 캡처된 동작의 애니메이션과 사전 준비된 애니메이션 사이의 체이닝을 위해서 사용가능하다. 도 7a와 7b에서 도시된 예들은 단지 예시적 목적만을 가진다. 예를 들면, 섹션 D에서 사전 준비된 동작으로부터 사용자 동작으로 전환 중에 발생하는 것으로 나타나는 사전 준비 애니메이션의 수정은 캡처된 동작의 애니메이션으로부터 사전 준비된 애니메이션으로 전환하는 과정에서도 일어날 수 있다.
애니메이션 블렌딩은 사용자의 실시간 동작이나 제스처에 대한 애니메이션과 사전 준비된 애니메이션 사이의 전환을 평탄화하는데 적절한 아무 방법일 수 있다. 예를 들면, 애니메이션 블렌딩 기술은 포지션들 사이의 보간법 또는 단축 또는 복수 축 연속적 블렌딩(single-axis or multi-axis continuous blending)을 포함할 수 있다. 애니메이션 블렌딩의 입력들 중 하나는 삼차원 공간 내의 사용자의 동작에 기반한 사용자의 제스처일 수 있다. 애니메이션 블렌딩 기술의 다른 입력은 사전 준비된 애니메이션에 의해 제공되는 포지션일 수 있다.
전환점에서의 제스처가 정적이거나 적은 동작만이 포함된 경우에는, 더 적은 블렌딩이 요구될 수 있다. 예를 들면, 전환점 #1에서, 볼링 애플리케이션 내에서 전환점으로 인식될 수 있는 사용자의 캡처된 동작들은 사용자가 허리를 구부리는 동작과 공 선택시에 움켜줘는 행동을 하는 것이다. 전환점을 나타내는 제스처들이 w한된 경미한 동작들이기 때문에, 섹션 A의 사용자의 캡처된 동작으로부터 섹션 C의 사전 준비된 애니메이션으로의 애니메이션 블렌딩의 양은 적을 수 있다. 이것은 섹션 A와 섹션 C의 동작의 그래프 간의 작은 차이로 나타난다. 섹션 B의 블렌딩에 있어서 섹션 A의 동작에서 섹션 C의 사전 준비된 애니메이션으로의 전환은 적은 양의 애니메이션 블렌딩만을 필요로 한다.
다른 경우들에서, 전환점에서 사용자의 동작이 크거나 애플리케이션들 또는 사용자들 사이에 동작들이 너무 달라져서, 실시간 동작과 사전 준비된 애니메이션 사이의 전환 과정에 있어서 더 많은 블렌딩이 필요할 수 있다. 만약에 전환점이 사용자의 의해 많은 동작이 발생하는 지점인 경우에, 사전 준비된 동작으로의 매끄러운 전환을 위해서 추가적인 블렌딩이 필요할 수 있다. 전환점에서, 사전 준비된 애니메이션의 시작 포지션으로부터 물리적 공간 안의 사용자 동작의 포지션이 크게 달라질수록, 더 많은 블렌딩이 요구된다.
예를 들면, 도 7b의 전환점 #4에서 볼 수 있듯이, 시스템은 볼링공의 사전 준비된 백스윙과 포워드 스윙으로부터 사용자의 엉덩이의 평면을 지나가는 사용자 스윙의 실시간 동작으로 전환한다. 전환점에서, 캡처된 동작들의 애니메이션은, 다시 말하면 백스윙과 포워드 스윙 동안의 사용자 동작은, 사용자 팔의 속도, 엉덩이로부터의 거리, 사용자 팔목의 스핀의 종류 등에 근거하여 사전 준비된 애니메이션과 다를 수 있다. 따라서, 도 7b의 동작 그래프는 섹션 G의 사전 준비된 애니메이션으로부터 섹션 I의 제스처의 애니메이션으로의 전환을 평탄화하기 위해서 더 많은 애니메이션 블렌딩을 필요로 하는 섹션 H의 애니메이션 블렌딩의 예를 보여준다.
적용되는 블렌딩의 양은 성공과 실패의 한 요소가 될 수 있다. 예를 들면, 캡처된 동작과 사전 준비된 동작을 체인 하는 과정에서 요구되는 블렌딩의 양은 애플리케이션 안에서의 성공률에 부합할 수 있다. 만약에 애플리케이션이 볼링 게임인 경우에, 사용자의 캡처된 백스윙 동작, 또는 전환점에서의 사용자 동작은 사전 준비된 애니메이션의 시작 포지션으로부터 크게 다를 수 있다. 사용자의 제스처와 사전 준비된 애니메이션 사이의 이런 차이의 크기는 실패로 해석될 수 있다. 실패는 사용자가 볼링 레인에 공을 던진 결과를 결정할 수 있다. 예를 들면, 사전 준비된 애니메이션에서 캡처된 동작의 애니메이션으로의 전환점이 물리적 공간에서 사용자의 실제 포지션과 크게 다른 포지션인 경우에, 공은 볼링 레인에 똑바로 던져지지 않거나 또는 볼링핀들과 나란하지 않을 수 있다. 또는 예를 들면, 사용자가 물리적 공간에서 공을 던지는 과정에서 넘어질 경우, 또는 예를 들면 오버핸드로 던지려고 시도하는 경우에, 캡처된 동작과 사전 준비된 애니메이션의 매개변수 사이의 차이는 게임 또는 애플리케이션 내의 사용자의 성공 또는 실패로 명확해질 수 있다.
사용자가 제스처를 전달하기 위해서 취하는 동작들 또는 포즈들은 시간이 흐르면서 변할 수 있고, 이것은 상황이 변화를 나타낼 수 있다. 예를 들면, 사용자가 지쳐서 점프 제스처를 전달하기 위해서 세션 초기에서 만큼 못할 수 있다. 또한, 사용자는 연습을 통해서 제스처와 결부된 동작 또는 포즈를 더 능숙하게 할 수 있고, 두 개의 다른 제스처들이 하나의 동작 또는 포즈로 인식될 가능성이 감소하도록 매개 변수에 대한 허용 가능한 변형들이 감소할 수 있다. 애플리케이션은 또한 사용자가 노련해질수록 집중력을 상실하지 않게 하기 위해서 사용자에게 좀더 도전적 경험을 제공하기를 원할 수도 있다. 다른 실시예에서, 애플리케이션은 사용자에게 제스처들을 좀더 정밀하게 제어할 수 있게 하거나 더 많은 제스처를 쓸 수 있게 할 수 있다. 예를 들면, 테니스 비디오 게임의 초보자는 단순히 공을 네트 위로 넘기는 것에만 집중하고 스핀을 넣는 등과 같은 행위에는 관심이 없을 수 있다. 그러나 테니스 애플리케이션이 사용자의 숙련도 증가를 감지함과 더불어 일반적 치기에 추가로 톱스핀 또는 백스핀 등의 제스처를 도입하거나 인지할 수 있다.
유사하게, 애플리케이션의 전환점과 결부된 매개변수들도 시간의 흐름에 따라 변할 수 있고, 상황에 따라 달라질 수도 있고, 사용자 의도의 예측들에 따라서 선택될 수도 있다. 예를 들면, 테니스 비디오 게임의 초보자의 경우에는 초보자가 단지 공을 네트 위로 넘기는 행위에만 관심이 있다면 더 많은 사전 준비된 애니메이션을 사용하는 것이 바람직할 수 있다. 따라서, 전환점들이 그것에 부합해서 설정될 수 있다. 사용자의 동작이 개선됨을 테니스 애플리케이션이 감지함과 더불어, 더 적은 사전 준비 애니메이션들이 삽입되도록 전환점을 수정할 수 있다.
관절 포지션, 속도, 가속도 등을 포함하는 제스처 이력은 사용자의 의도를 판단하는데 이용될 수 있다. 이들 요소들은 그 이후의 애니메이션들, 게임 조종 동작들, 그리고 전환점들에 대한 매개 변수의 기초가 될 수 있고, 개시될 사전 준비 애니메이션을 판단할 수 있다. 예를 들면, 볼링 동작에서, 만약에 사용자의 백스윙과 포워드 스윙 동작이 일반적으로 특정 속도 구간 내에 속한다는 이력이 있다면, 동작이 그에 부합하는 유사한 속도를 가진 매개변수를 가지는 사전 준비된 애니메이션을 사용자의 캡처된 동작과 블렌딩을 위해서 선택할 수 있다.
제 2 사용자가 제 1 사용자를 대체해서 입력을 제공할 수 있고 제 2 사용자는 제스처 전달에 있어서 매우 다른 방식을 가질 수 있다. 실시예에서, 수신된 깊이 영상들은 제 2 사용자가 장면에서 제스처를 전달하는지를 판단하기 위해서 분석될 수 있다. 따라서, 제 2 사용자와 결부된 전환점들은 제 1 사용자와 결부된 전환점들과 다를 수 있다.
일반적으로, 애니메이션 블렌딩 작업은 하나 또는 그 이상의 입력들을 받는 단계와 매끄러운 출력을 생성하는 단계로 구성된다. 사용자 동작의 애니메이션과 하나 또는 그 이상의 서술된 애니메이션을 병렬 또는 직렬 설정으로 체인 하기 위해서 애니메이션 블렌딩에 관한 다양한 기술들이 적용될 수 있다. 이들 기술들은 첨가적 그리고 공제적 블렌딩, 선형보간법, 구면 선형보간법, 위상 변화, 선형 블렌딩, 디졸빙(dissolving), 양선형 블렌딩, 결합형 블렌딩, 거울 블렌딩, 클램프 플렌딩(clamp blending), 멀티 트랙 블렌딩(multi-track blending), 레이어링(layering) 등을 포함할 수 있다. 예를 들면, 레이어링은 두 개의 애니메이션들이 동시에 실행되고 그들의 조합이 결과로 나오는 것이다. 애니메이션 블렌딩은 사용자의 캡처된 동작 또는 제스처의 애니메이션과 사전 준비된 애니메이션의 프레임들 사이에 프레임을 새로 생성하는 것을 포함할 수 있다. 서로 다른 애니메이션들은 이들 중간 프레임들을 다른 방식으로 생성한다. 예를 들면, 지점 포지션들이 선형 또는 스플라인 보간법에 의해 보간될 수 있다.
기본적 애니메이션 블렌딩 작업은 선형 보간법을 포함할 수 있다. 걷는 제스처 애니메이션과 사전 준비된 뛰는 애니메이션 사이의 전환은 측정된 걷는 제스처 애니메이션 매개변수의 끝과 사전 준비된 뛰는 애니메이션 매개변수의 시작을 블렌딩하는 것을 포함할 수 있다. 작업은 두 애니메이션들 사이의 포지션들의 차이를 계산하는 단계와 두 포지션들 사이에서 발생하는 동작을 나타내기 위해 선형 보간법을 적용하는 단계를 포함할 수 있다. 사용자의 캡처된 동작의 애니메이션과 사전 준비된 애니메이션 사이의 보간된 동작의 디스플레이는 애니메이션들 사이에 이음매가 없거나 거의 없는 전환을 제공한다. 전환 시간은 물리적 공간 내 사용자의 캡처된 동작으로부터 측정된 가속도와 속도 변수들의 함수일 수 있고, 이는 걷는 제스처의 애니메이션으로부터 사전 준비된 뛰는 애니메이션으로의 전환을 부드럽게 하기 위해서 사용된다.
걷는 것에서 사전 준비된 달리기 예시를 계속 생각해보면, 만약에 걷기 제스처의 끝에 대한 애니메이션 매개변수와 사전 준비된 달리기의 시작에 대한 애니메이션 매개변수 사이의 델타(delta)가 작은 경우에, 애니메이션 블렌딩을 위한 단순한 디졸브(dissolve) 기술로도 충분할 수 있다. 만약에 전환이 상당히 빠른 경우, 걷기 제스처의 마지막 포지션으로부터 사전 준비된 달리기 제스처의 도입부로 디졸빙(dissolving)하는 것으로 충분할 수 있다. 다른 경우들에서는 전환 상태를 긴 시간 동안 유지해서 사전 준비된 걷기와 달리기 애니메이션 사이에 몇 발자국의 조깅 동작을 생성해서 그들 각각의 이동 속도 사이의 틈을 메우는 것이 바람직하다. 전통적인 애니메이션 블렌딩 기술들은 하나 또는 그 이상의 사전 준비된 걷기와 달리기 애니메이션들로부터 조깅 동작을 생성하도록 적용된다.
그러나 많은 경우에는 캡처된 동작과 사전 준비된 애니메이션 사이의 델타는 사용자 동작의 다양성 때문에 오프셋 될 수 있다. 따라서, 걷기와 달리기는 같은 위상이 아닐 수 있고, 블렌딩은 두 개의 애니메이션들을 함께 블렌딩 또는 체이닝하는 동작을 시뮬레이트할 수 있다. 두 애니메이션들 사이의 오프셋은 결정될 수 있고, 이는 포지션, 속도 등의 오프셋들을 포함한다. 사전 준비된 애니메이션은 전환점에서의 사용자 제스처의 매개변수를 기반으로 선택될 수 있다. 또한, 사전 준비된 애니메이션의 매개변수들은 사용자의 실시간 동작에 동기화되기 위해서 조정될 수 있다. 만약에 바람직한 사전 준비 애니메이션이 빠르게 달리는 것이고 캡처된 동작은 느리게 걷는 것인 경우에, 캡처된 동작에서 사전 준비된 애니메이션으로의 전환을 나타내기 위해서 동작의 더 많은 프레임이 삽입될 수 있다.
일부 경우들에서는, 사용자가 관찰한 애니메이션으로 하여금 사전 준비 애니메이션 집단 사이의 블렌딩을 유도하도록 하는 것이 바람직할 수 있다. 이런 식으로, 사용자의 물리적 행동들은 블렌딩 기술을 유도하는 입력 매개변수가 된다. 예를 들면, 애플리케이션은 다양한 전문적으로 제작된 또는 동작 캡처된 테니스 스윙 애니메이션을 포함할 수 있다. 이런 스윙 애니메이션들의 팔레트(palette)에서, 그 각각은 스윙 속도와 공간 내 손목의 원호(arc) 반경 등과 같은 어떤 매개변수들에 의해서도 분류될 수 있다. 사용자가 테니스 스윙 제스처를 수행하는 것이 관찰될 때, 물리적 공간에서 그들의 행동에 부합되는 매개변수의 집합 역시 관찰될 수 있다. 사용자의 관찰된 매개변수들을 기준으로 사용해서, 하나 또는 그 이상의 사전 준비된 애니메이션들이 선택될 수 있고 사용자들의 관찰된 행동을 가장 가깝게 나타내는 프로처럼 보이는 테니스 스윙을 생성하도록 블렌드 될 수 있다. 이런 블렌딩은 사용자가 스스로 스윙을 하면서 실시간으로 발생할 수 있고, 이 때는 계속해서 사전 준비된 애니메이션들 사이의 매개변수들이 수정된다. 이런 계속적인 수정은 사용자의 물리적 동작과 게임 공간 내 아바타의 대응하는 액션들 사이의 어떠한 인지가능한 지연도 최소화하기 위해서 적용된다.
전환점들에서의 애니메이션들 그리고 디스플레이를 위한 프레임들 전체에서의 애니메이션들을 묘사하기 위해서 다양한 도구들이 사용된다. 일부 방법들은 사용자의 동작 또는 제스처를 정의하기 위해서 사용자의 삼차원 뼈대 모델의 지점 포지션들을 사용할 수 있다. 다른 방법들은 매트릭스들 또는 오일러 각들(Euler angles)을 사용해서 사용자의 동작/제스처 및/또는 사전 준비된 애니메이션의 포지션들을 묘사한다.
평탄화(smoothing) 알고리즘을 돕기 위해서 보조 데이터 또는 제어 매개변수들이 입력으로 사용될 수 있고, 이들은 사전 준비된 애니메이션 및/또는 사용자 동작의 애니메이션 특유의 매개변수들을 포함한다. 예를 들면, 전환점은 한 애니메이션에서 다음 애니메이션으로, 넘어가는 전환을 개시하기 위한 참조 지점을 나타낼 수 있다. 블렌딩 시간은 프레임들 안에서 블렌딩의 길이를 나타낼 수 있다. 블렌드 종류는 사전 준비 애니메이션 및/또는 사용자 동작의 애니메이션 사이의 체이닝이 얼마나 부드럽게 이루어져야 하는지를 나타내는 지표일 수 있다. 다른 매개변수들의 일부로서는 애니메이션의 동작의 정도, 다양한 지점들의 속도(예를 들면 관절 또는 팔다리), 사용자 동작의 애니메이션과 사전 준비된 애니메이션 사이의 델타 등이 포함될 수 있다. 체인 될 사용자 동작의 애니메이션과 사전 준비된 애니메이션과 관련된 전환점들과 매개변수들의 사용을 통해서, 애니메이션 블렌딩은 애니메이션들이 매끄럽게 블렌드되는 것을 가능케한다.
도 8은 애니메이션 블렌딩에 대한 예시적 방법(500)의 플로우 다이어그램을 도시한다. 예시적 방법(500)은 예를 들면 캡처 장치(20) 및/또는 도 1a-1b에 대하여 서술된 목표물 인식, 분석, 파악 시스템(10)의 컴퓨터 환경(12)을 사용해서 구현될 수 있다. 예시적 실시예에 따르면, 목표물은 사람인 목표물, 사람 목표물과 물건, 둘 이상의 사람 목표물들 등으로서 뼈대 모델(skeletal model), 메쉬 인간 모델(mesh human model), 또는 다른 어떤 적절한 표현 등과 같은 모델을 생성하기 위해서 스캔 될 수 있는 것들을 포함한다. 그리고 나서 모델은 도 1a-1b에 대하여 상술된 컴퓨터 환경(12)에서 실행될 수 있는 애플리케이션과 상호 작용하는데 사용될 수 있다. 예시적 실시예에 따르면, 목표물은 예를 들면 컴퓨터 환경(12)에서 애플리케이션이 시작될 때 및/또는 컴퓨터 환경(12) 상의 애플리케이션의 실행 중에 주기적으로 모델을 생성하기 위해서 스캔 될 수 있다.
예를 들면, 상술한 바와 같이, 목표물은 도 1a-1b에 대하여 상술한 사용자(18)를 포함할 수 있다. 목표물은 예를 들면 사용자(18)의 뼈대 모형을 생성하기 위해서 스캔 될 수 있고, 전자 게임 등의 애플리케이션의 매개변수들을 조정 및/또는 제어하는 실시간 사용자 인터페이스의 역할을 사용자(18)의 물리적 동작들이 할 수 있도록 모형이 파악될 수 있다. 예를 들면, 사용자의 파악된 동작들은 전자 롤플레잉 게임 내의 아바타 또는 스크린상의 캐릭터를 이동시키는데 사용될 수 있고; 전자 경주 게임에서 스크린상의 자동차를 제어하는데 사용될 수 있고; 가상 환경 내 물체들의 정리 또는 제작을 제어하는데 사용될 수 있고;, 또는 애플리케이션 안에서 어떤 적절한 조작을 수행하는데 사용될 수 있다.
한 실시예에 따르면, 805에서 컴퓨터 제어 카메라 시스템은, 예를 들면, 사용자의 제스처와 관련된 깊이 정보를 측정할 수 있다. 예를 들면 목표물 인식, 분석, 파악 시스템은 도 1a-2에 대하여 상술된 캡처 장치(20)와 같은 캡처 장치를 포함할 수 있다. 캡처 장치는 하나 또는 그 이상의 목표물을 포함하는 장면을 캡처하거나 관찰할 수 있다. 예시적 실시예에서, 캡처 장치는 어떤 적절한 기술을 사용하여 장면 안의 하나 또는 그 이상의 목표물들과 결부된 깊이 정보를 얻도록 설정된 깊이 카메라일 수 있고, 이때 적절한 기술에는 비행시간 분석, 구조광 분석, 스테레오 비전 분석(stereo vision analysis) 등이 포함된다. 더 나아가, 깊이 정보는 전 처리(pre-process)될 수 있고, 깊이 데이터와 색 데이터로부터 생성된 깊이 영상으로서 또는 영상 내 어떠한 사용자에 대한 뼈대 맵핑도 포함하는 것과 같은 분석된 깊이 영상 데이터 중 하나로 전처리 될 수 있다.
예시적 실시예에 따르면, 깊이 정보는 깊이 영상을 포함할 수 있다. 깊이 영상은 각각의 관찰된 픽셀이 관찰된 깊이값을 가지는 복수의 관찰된 픽셀들일 수 있다. 예를 들면, 깊이 영상은 캡처된 장면의 이차원 픽셀 영역을 포함할 수 있고, 이때 이차원 픽샐 영역 내 각각의 픽셀은 캡처 장치로부터 캡처된 장면 내 물건들의 길이 또는 거리와 같은 깊이값(depth value)을, 예를 들면 cm 또는 mm를 나타낼 수 있다.
810에서, 시스템은 전환점들과 충족시 전환점들의 표식이 될 수 있는 매개변수들을 식별할 수 있다. 전환점은 제스처 내 또는 제스처들 사이의 식별 지점으로써 시스템이 캡처된 동작 또는 사용자의 제스처의 애니메이션과 사전 준비된 애니메이션 사이를 전환하는 지점일 수 있다. 예시적 실시예에서, 전환점은 제스처 내의 또는 제스처들 사이의 식별 지점으로서 사전 준비된 애니메이션으로 전환할 것을 나타내는 표식을 제공하는 지점일 수 있다. 전환점을 식별하는 것은 전환점의 아무 요건들을 충족하는 방식(예를 들면 손이 머리 위에 있는 등)으로 움직이고 있음을 판단하는 단계를 포함할 수 있다. 실시예에서, 사용자는 목소리를 이용해서 동작을 취하거나, 동작을 보완하거나, 동작을 구별하거나, 동작을 명확하게 할 수 있다. 예를 들면, 사용자는 입을 열고 닫는 행위로 노래하는 제스처를 취할 수 있고, 특정 음을 부름으로써 그 노래하는 제스처의 특정한 음을 특정할 수 있다. 추가로, 사용자는 "보통 펀치" 제스처를 취하면서 소리를 지름으로써 "보통 펀치"와는 구별되는 "강펀치" 제스쳐를 취할 수 있다. 다른 예시적 실시예에서, 전환점은 캡처된 동작의 애니메이션으로 되돌아오는 것을 촉발하는 사전 준비되 애니메이션 내의 식별점이다.
815에서, 전환점 매개변수들의 충족 여부의 판단은 캡처된 동작 또는 사전 준비된 애니메이션(어느 것이 현재 활용중인지 여부에 따라서 달라진다)의 매개변수들과 특정 전환점에서 정의된 매개변수들을 비교함으로써 이루어진다. 만약에 전환의 매개변수들이 불 충족되면, 805에서 깊이 정보의 측정이 계속된다.
만약 전환점의 매개변수들이 815에서 충족된다면, 작업(820)은 현재 애니메이션이 캡처된 동작에 기반을 둔 것인지 사전 준비된 애니메이션에 기반을 둔 것인지 여부를 판단한다. 만약에 사전 준비된 애니메이션이 현재 실행중이라면, 애니메이션 블렌딩 기술들 등을 통해서 사용자의 캡처된 동작이 사전 준비된 애니메이션에 체인 된다. 만약에 현재 애니메이션이 캡처된 동작에 기반을 둔 것이라면, 전환점은 사전 준비된 애니메이션이 선택되어야 한다는 것을 나타낸다.
822에서, 시스템은 적어도 하나의 사전 준비된 애니메이션을 선택한다. 많은 사전 준비된 애니메이션들이 동일한 요구되는 동작을 나타낼 수 있고, 컴퓨터 환경은 복수의 사전 준비 애니메이션 중에서 가장 적합한 하나를 선택할 수 있다. 예를 들면, 복수의 사전 준비 애니메이션 옵션들이 테니스 서브의 백스윙을 나타내기 위해서 사용 가능할 수 있다. 백스윙 동작의 포지션과 속도 매개변수들은 백스윙을 나타내는 복수의 사전 준비 애니메이션들 각각마다 다를 수 있다. 시스템은 전환점에서 캡처된 사용자의 동작과 가장 유사한 매개변수들을 가지는 사전 준비된 애니메이션을 선택할 수 있다.
만약에 복수의 사전 준비된 애니메이션이 822에서 선택되었다면, 복수의 사전 준비된 애니메이션들은 사용자의 캡처된 동작의 애니메이션과 체인 하기에 적합한 새로운 사전 준비된 애니메이션을 생성할 수 있도록 어떤 식으로든 병합될 수 있다. 예를 들면, 832에서, 복수의 사전 준비 애니메이션들은 834에서의 사용자의 캡처된 동작의 애니메이션과 체인 되기 위해서 블렌드될 수 있다.
832에서, 적어도 하나의 선택된 사전 준비 애니메이션의 매개변수들이 수정될 수 있다. 일부 경우에서, 사전 준비된 애니메이션은 사전 준비된 애니메이션과 834에서 캡처된 동작의 애니메이션의 체이닝 과정에서 평탄화(smoothing) 과정이 불필요하거나 거의 필요성이 없어지는 지점까지 수정될 수 있다. 예를 들면 사용자의 캡처된 동작의 매개변수들이 분석될 수 있고, 체이닝하기 위한 사전 준비된 애니메이션이 선택될 수 있다. 체이닝 이전에, 사전 준비된 애니메이션은 전환점에서의 사용자의 캡처된 동작과 보다 가깝게 나타나도록 수정될 수 있다. 예를 들면, 애니메이션 내의 팔의 포지션은 사용자의 캡처된 동작에서의 그것을 보다 유사하게 나타내도록 수정될 수 있다.
822에서 적어도 하나의 사전 준비된 애니메이션을 선택하고 난 후, 825에서 사용자의 캡처된 동작의 애니메이션과 사전 준비된 애니메이션이 체인 된다. 830에서, 사용자 동작과 사전 준비된 애니메이션의 블렌드되서 나타나는 디스플레이가 제공된다. 따라서, 시스템은 사용자의 캡처된 제스처의 애니메이션에 체인 될 사전 준비된 애니메이션을 선택 또는 수정할 수 있고, 시스템은 사전 준비된 애니메이션을 선택하고 그 다음에 블렌딩 기술들 등을 통해서 애니메이션들 사이의 전환을 부드럽게 할 수 있고, 또는 시스템은 두 가지의 조합을 수행할 수도 있다. 사전 준비된 애니메이션은 단일 옵션에서 선택될 수도 있고, 이때 사전 준비된 애니메이션에 의해서 제공된 동작에 기반을 두고 선택이 될 수 있으며, 또한 사전 준비된 애니메이션은 각각의 애니메이션이 요구된 동작의 애니메이션을 나타내는 복수의 사전 준비된 애니메이션들로부터 선택될 수도 있다.
여기에 기술된 구성 및/또는 접근방안은 사실상 예이며, 이들 특정 실시예 또는 예는 제한하려는 것이 아니라는 것을 알 것이다. 여기에 기술된 특정 루틴 또는 방법은 임의 수의 처리 계획 중의 하나 이상을 나타낼 수 있다. 따라서 도시된 다양한 액트(acts)는 도시된 시퀀스로, 다른 시퀀스로, 병렬로, 또는 그 밖의 유사한 것으로 수행될 수 있다. 마찬가지로, 전술한 처리의 순서는 변경될 수 있다.
또한, 본 개시물은 여러 도면에 도시된 특정 구성에 연관되어 기술되었으나, 상술된 본 개시물의 기능에 벗어남이 없이 동일한 기능을 수행하기 위해서 다른 유사한 구성이 사용되거나, 상술된 구성을 수정 또는 보완할 수 있다. 본 개시물의 주제는 여기에 개시된 다양한 프로세스, 시스템 및 구성, 다른 특징, 기능, 액트 및/또는 속성의 모든 신규 및 비자명한 결합과 부결합뿐만 아니라 이들의 임의 및 모든 등가물을 포함한다. 따라서, 상술된 실시예의 방법 및 장치, 특정 구성 또는 그 일부분은 플로피 디스켓, CD_ROM, 하드 드라이브, 또는 다른 기계 판독가능 저장 매체와 같은 유형의 매체(tangible media)에 장착된 프로그램 코드(예를 들어, 명령어)의 형태를 가질수 있다. 상기 프로그램 코드가 컴퓨터와 같은 기계에 로드되고 실행될 때, 상기 기계는 상술된 실시예를 실시하기 위한 장치가 된다.
본 발명이 속한 분야의 당업자는 여기에 명시된 특정 구현과 더불어, 여기에 기술된 설명을 참조하여 다른 구성 및 구현을 이룰 수 있는 것이 분명하다. 따라서, 본 개시물은 하나의 구성에 한정되지 않고, 첨부된 청구항의 범주에 속하도록 이해되어야 한다. 예를 들어, 여기에 설명된 다양한 단계는 하드웨어, 소프트웨어 또는 그 둘의 조합을 통하여 구현될 수 있다.
10: 목표물 인식, 분석, 파악 시스템 12: 컴퓨터 환경
14: 스크린 16: 시청각 장치
18: 사용자 20: 캡처 장치
22: 영상 카메라 요소 24: 적외광 요소
26: 삼차원 카메라 28: RBG 카메라
30: 마이크로폰 32: 프로세서
34: 메모리 요소 36: 통신 링크
100: 멀티매체 콘솔 102, 104: 캐시
106: 플래시 ROM 108: GPU
110: 디스플레이 112: 메모리
114: 비디오 인코더/비디오 코덱 118: 모듈
120: I/O 제어부 122: 시스템 관리 제어부
123: 오디오 프로세싱 유닛
124: 네트워크 인터페이스 제어부 126, 128: USB 호스트 제어부
132: 오디오 코덱 138: 팬
140: A/V 포트 142: 주변부 제어부
143: 시스템 메모리 144: 매체 드라이브
146: 외부 메모리 장치 148: 무선 어댑터
190: 제스처 라이브러리 191: 제스처 필터
192: 사전 준비 애니메이션 라이브러리 193: 디스플레이 장치
194: 전환점 요소 195, 196: 프로세서
220: 컴퓨터 환경 221: 시스템 버스
222: 시스템 메모리 223: ROM
224: BIOS 225: 운용시스템
226: 어플리케이션 프로그램 227: 다른 프로그램 모듈들
228: 프로그램 데이터 232: 비디오 인터페이스
233: 출력 주변부 인터페이스 234, 235: 인터페이스
236: 사용자 입력 인터페이스 237: 어댑터
238: HDD 239: 자기 디스크 드라이브
240: 광학 디스크 드라이브 241: 컴퓨터
242: 모니터 243: 프린터
244: 스피커 245: LAN
246: 원격 컴퓨터 247: 메모리 저장 장치
248: 원격 어플리케이션 프로그램 249: WAN
250: 모뎀 251: 키보드
252: 포인팅 장치 253: 광학 디스크
254: 자기디스크 255: 프로그램 데이터
256: 다른 프로그램 모듈들 257: 애플리케이션 프로그램들
258: 운영 체제 259: 프로세싱 유닛
260: RAM 500: 애니메이션 블렌딩 방법
502: 손 504: 팔
506: 팔꿈치 508: 이두박근
510: 어깨 512: 엉덩이
514: 허벅지 516: 무릎
518: 다리 520: 발
522: 머리 524: 몸통
526: 척추 상부 528: 척추 하부
530: 허리

Claims (15)

  1. 애니메이션을 체이닝(chaining) 하는 방법(800)에 있어서,
    캡쳐된 동작을 나타내는 영상 데이터를 캡처 장치(20)로부터 수신하는 단계(805)와,
    사전 준비된 에니메이션(pre-canned animation)을 선택하는 단계(822)와,
    상기 캡쳐된 동작의 애니메이션과 상기 사전 준비된 애니메이션을 체이닝(chaining)하는 단계(825)를 포함하는
    애니메이션을 체이닝하는 방법.
  2. 제 1 항에 있어서,
    상기 캡쳐된 동작의 상기 애니메이션과 상기 사전 준비된 애니메이션을 체이닝하는 단계가 상기 캡쳐된 동작의 상기 애니메이션을 상기 사전 준비된 애니메이션으로 블렌딩(blending)하는 단계 또는 상기 사전 준비된 애니메이션을 상기 캡쳐된 동작의 상기 애니메이션으로 블렌딩하는 단계(830)를 포함하는
    애니메이션을 체이닝하는 방법.
  3. 제 2 항에 있어서,
    상기 캡처된 동작의 상기 애니메이션과 상기 사전 준비된 애니메이션을 체이닝하는 단계(825, 834)가 상기 캡쳐된 동작의 매개변수들을 상기 사전 준비된 애니메이션의 초기 매개변수들 또는 상기 사전 준비된 애니메이션의 종료 매개변수 중 적어도 하나와 블렌딩하는 단계(830)를 포함하는
    애니메이션을 체이닝하는 방법.
  4. 제 1 항에 있어서,
    전환점을 나타내는 적어도 하나의 매개변수를 식별하는 단계(810)로서, 상기 적어도 하나의 매개변수를 충족하는 것(815)이 상기 캡쳐된 동작과 상기 사전 준비된 애니메이션의 체이닝(825, 834)을 촉발하는 것을 더 포함하는
    애니메이션을 체이닝하는 방법.
  5. 제 1 항에 있어서,
    복수의 사전 준비된 애니메이션들을 선택하고 새로운 사전 준비된 애니메이션을 생성하기 위해서 상기 복수의 사전 준비된 애니메이션들을 블렌딩하는 단계(832)와,
    상기 캡쳐된 동작의 상기 애니메이션과 체이닝하기 위해서 상기 새로운 사전 준비된 애니메이션을 선택하는 단계(834)를 더 포함하는
    애니메이션을 체이닝하는 방법.
  6. 제 1 항에 있어서,
    상기 캡처된 동작이 상기 캡처 장치(20)에 의해서 캡처된 물리적 공간 내 목표물(18)의 실시간 동작인
    애니메이션을 체이닝하는 방법.
  7. 애니메이션을 체이닝(chaining)하는 방법(800)에 있어서,
    사용자의 제스처를 나타내는 영상 데이터를 캡쳐 장치(20)로부터 수신하는 단계(805)와,
    사전 준비된 애니메이션을 선택하는 단계(822)와,
    상기 제스처의 애니메이션과 상기 사전 준비된 애니메이션을 체이닝하는 단계(825, 834)를 포함하는
    애니메이션을 체이닝하는 방법.
  8. 제 7 항에 있어서,
    상기 제스처의 애니메이션과 상기 사전 준비된 애니메이션의 체인된 애니메이션을 디스플레이하는 단계(830)를 더 포함하는
    애니메이션을 체이닝하는 방법.
  9. 제 7 항에 있어서,
    상기 사전 준비된 애니메이션을 선택하는 단계(822)가 복수의 사전 준비된 애니메이션들(192)로부터 하나의 사전 준비된 애니메이션을 선택하는 단계를 포함하는
    애니메이션을 체이닝하는 방법.
  10. 제 7 항에 있어서,
    복수의 사전 준비된 애니메이션들을 선택하는 단계와,
    새로운 사전 준비된 애니메이션을 생성하기 위해서 상기 복수의 사전 준비된 애니메이션들을 블렌딩하는 단계와,
    상기 캡쳐된 동작의 상기 애니메이션과 체이닝하기 위해서 상기 새로운 애니메이션을 선택하는 단계(825, 834)를 더 포함하는
    애니메이션을 체이닝하는 방법.

  11. 제 7 항에 있어서,
    상기 제스처 애니메이션과 상기 사전 준비된 애니메이션을 체이닝하는 단계(825, 834)가,
    전환점에서의 상기 제스처 애니메이션의 매개변수들을 상기 사전 준비된 애니메이션의 초기 매개변수들 또는 상기 사전 준비된 애니메이션의 종료 매개변수들 중 적어도 하나와 체이닝하는 단계를 포함하는
    애니메이션을 체이닝하는 방법.
  12. 제 7 항에 있어서,
    상기 전환점을 나타내는 적어도 하나의 매개변수를 식별하는(812) 명령들을 포함하되, 상기 적어도 하나의 매개변수를 충족시키면(815) 상기 제스처 애니메이션과 상기 사전 준비된 애니메이션의 상기 체이닝하는 단계(825, 834)가 촉발되는
    애니메이션을 체이닝하는 방법.
  13. 제 7 항에 있어서,
    상기 전환점의 매개변수(815)가 애플리케이션 종류, 사용자 숙련도, 제스처 이력, 제스처 난이도, 제스처 중복 정도, 환경적 상황, 또는 문화적 상황 중 적어도 하나에 바탕을 두고 설정되는
    애니메이션을 체이닝하는 방법.
  14. 애니메이션 블렌딩(animation blending) 장치에 있어서, 상기 장치가
    캡쳐된 동작을 나타내는 영상 데이터를 수신(805)하는 캡처 장치 요소(20)와,
    컴퓨터 실행 가능 명령들을 실행하는 프로세서(32, 196)를 포함하고,
    상기 컴퓨터 실행 가능 명령들은 사전 준비 애니메이션을 선택하는 단계(822)와 전환점에서(815) 실시간 동작의 애니메이션과 사전 준비된 애니메이션을 블렌딩하는 단계(830)에 대한 명령들을 포함하는
    애니메이션 블렌딩 장치.
  15. 제 14 항에 있어서,
    상기 체인된 제스처와 사전 준비된 애니메이션의 상기 블렌딩된 애니메이션을 디스플레이하는(836) 디스플레이 장치(193)를 더 포함하는
    애니메이션 블렌딩 장치.
KR1020117021586A 2009-03-20 2010-03-02 애니메이션을 체이닝하는 방법 및 애니메이션 블렌딩 장치 KR101643020B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/408,141 2009-03-20
US12/408,141 US8988437B2 (en) 2009-03-20 2009-03-20 Chaining animations

Publications (2)

Publication Number Publication Date
KR20110139223A true KR20110139223A (ko) 2011-12-28
KR101643020B1 KR101643020B1 (ko) 2016-07-26

Family

ID=42740358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021586A KR101643020B1 (ko) 2009-03-20 2010-03-02 애니메이션을 체이닝하는 방법 및 애니메이션 블렌딩 장치

Country Status (9)

Country Link
US (3) US8988437B2 (ko)
EP (1) EP2409277B1 (ko)
JP (1) JP5635069B2 (ko)
KR (1) KR101643020B1 (ko)
CN (1) CN102362293B (ko)
BR (1) BRPI1009547A2 (ko)
CA (1) CA2752699C (ko)
RU (1) RU2530708C2 (ko)
WO (1) WO2010107575A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190059726A (ko) * 2017-11-23 2019-05-31 한길씨앤씨 주식회사 가상현실 환경에서의 사용자와 객체 간 상호 작용 처리 방법
KR102251977B1 (ko) * 2019-11-18 2021-05-14 주식회사 인공지능연구원 아바타 동작 저작 장치 및 방법

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8982122B2 (en) 2008-11-24 2015-03-17 Mixamo, Inc. Real time concurrent design of shape, texture, and motion for 3D character animation
US8659596B2 (en) 2008-11-24 2014-02-25 Mixamo, Inc. Real time generation of animation-ready 3D character models
US20100257462A1 (en) * 2009-04-01 2010-10-07 Avaya Inc Interpretation of gestures to provide visual queues
EP2430794A4 (en) * 2009-04-16 2014-01-15 Hewlett Packard Development Co MANAGING COMMONLY USED CONTENT IN VIRTUAL COLLABORATION SYSTEMS
US20100285877A1 (en) * 2009-05-05 2010-11-11 Mixamo, Inc. Distributed markerless motion capture
US9981193B2 (en) 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
US10357714B2 (en) 2009-10-27 2019-07-23 Harmonix Music Systems, Inc. Gesture-based user interface for navigating a menu
US8334842B2 (en) * 2010-01-15 2012-12-18 Microsoft Corporation Recognizing user intent in motion capture system
US8284157B2 (en) 2010-01-15 2012-10-09 Microsoft Corporation Directed performance in motion capture system
US8928672B2 (en) 2010-04-28 2015-01-06 Mixamo, Inc. Real-time automatic concatenation of 3D animation sequences
EP2579955B1 (en) 2010-06-11 2020-07-08 Harmonix Music Systems, Inc. Dance game and tutorial
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
US9821224B2 (en) * 2010-12-21 2017-11-21 Microsoft Technology Licensing, Llc Driving simulator control with virtual skeleton
CN102614663A (zh) * 2011-01-30 2012-08-01 德信互动科技(北京)有限公司 多人游戏实现装置
US8761437B2 (en) * 2011-02-18 2014-06-24 Microsoft Corporation Motion recognition
US8884949B1 (en) 2011-06-06 2014-11-11 Thibault Lambert Method and system for real time rendering of objects from a low resolution depth camera
US10049482B2 (en) 2011-07-22 2018-08-14 Adobe Systems Incorporated Systems and methods for animation recommendations
KR101189633B1 (ko) * 2011-08-22 2012-10-10 성균관대학교산학협력단 손가락 움직임에 따른 포인터 제어명령어 인식 방법 및 손가락 움직임에 따라 포인터를 제어하는 모바일 단말
US10748325B2 (en) 2011-11-17 2020-08-18 Adobe Inc. System and method for automatic rigging of three dimensional characters for facial animation
US9628843B2 (en) * 2011-11-21 2017-04-18 Microsoft Technology Licensing, Llc Methods for controlling electronic devices using gestures
KR101910659B1 (ko) * 2011-12-29 2018-10-24 삼성전자주식회사 디지털 영상장치 및 그 제어방법
US9747495B2 (en) 2012-03-06 2017-08-29 Adobe Systems Incorporated Systems and methods for creating and distributing modifiable animated video messages
US20140046923A1 (en) 2012-08-10 2014-02-13 Microsoft Corporation Generating queries based upon data points in a spreadsheet application
CA2924837A1 (en) * 2012-09-17 2014-03-20 Mario Perron System and method for participants to perceivably modify a performance
US20140111523A1 (en) * 2012-10-22 2014-04-24 Google Inc. Variable length animations based on user inputs
US10220303B1 (en) 2013-03-15 2019-03-05 Harmonix Music Systems, Inc. Gesture-based music game
US9396574B2 (en) * 2013-06-28 2016-07-19 Pixar Choreography of animated crowds
US20160239002A1 (en) * 2013-09-25 2016-08-18 Schneider Electric Buildings Llc Method and device for adjusting a set point
JP6362129B2 (ja) * 2013-11-28 2018-07-25 国立大学法人 筑波大学 歩行訓練装置及び歩行訓練システム
US9652667B2 (en) * 2014-03-04 2017-05-16 Gopro, Inc. Automatic generation of video from spherical content using audio/visual analysis
JPWO2016035181A1 (ja) 2014-09-03 2017-06-22 株式会社ニコン 撮像装置、情報処理装置、及び撮像システム
US10012729B2 (en) * 2014-09-17 2018-07-03 Disney Enterprises, Inc. Tracking subjects using ranging sensors
CN106575444B (zh) * 2014-09-24 2020-06-30 英特尔公司 用户姿势驱动的化身装置和方法
US10973440B1 (en) * 2014-10-26 2021-04-13 David Martin Mobile control using gait velocity
CN104394400B (zh) * 2014-12-09 2015-12-02 山东大学 基于立体多画显示的隔网对抗性项目虚拟仿真系统及方法
US10950140B2 (en) 2017-06-22 2021-03-16 Visyn Inc. Video practice systems and methods
US10656722B2 (en) 2015-11-09 2020-05-19 Carnegie Mellon University Sensor system for collecting gestural data in two-dimensional animation
US20170193289A1 (en) * 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Transform lightweight skeleton and using inverse kinematics to produce articulate skeleton
KR20170086317A (ko) * 2016-01-18 2017-07-26 한국전자통신연구원 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법
EP3428877A4 (en) 2016-03-09 2019-10-30 Nikon Corporation DETECTION DEVICE, INFORMATION PROCESSING DEVICE, METHOD, PROGRAM, AND DETECTION SYSTEM
US20170357622A1 (en) * 2016-06-12 2017-12-14 Apple Inc. Arrangement of documents in a document feed
WO2017223530A1 (en) 2016-06-23 2017-12-28 LoomAi, Inc. Systems and methods for generating computer ready animation models of a human head from captured data images
US10559111B2 (en) 2016-06-23 2020-02-11 LoomAi, Inc. Systems and methods for generating computer ready animation models of a human head from captured data images
US11146661B2 (en) 2016-06-28 2021-10-12 Rec Room Inc. Systems and methods for detecting collaborative virtual gestures
US10304244B2 (en) 2016-07-08 2019-05-28 Microsoft Technology Licensing, Llc Motion capture and character synthesis
US20180089879A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Synchronizing Display of Multiple Animations
US10369469B2 (en) * 2016-11-09 2019-08-06 Electronic Arts Inc. Runtime animation substitution
WO2018211798A1 (ja) * 2017-05-18 2018-11-22 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP6643583B2 (ja) * 2017-06-27 2020-02-12 株式会社コナミアミューズメント ゲーム機、及びコンピュータプログラム
JP6853156B2 (ja) * 2017-09-29 2021-03-31 株式会社日立製作所 姿勢推定システム、姿勢推定装置、及び距離画像カメラ
US10198845B1 (en) 2018-05-29 2019-02-05 LoomAi, Inc. Methods and systems for animating facial expressions
US11017576B2 (en) * 2018-05-30 2021-05-25 Visyn Inc. Reference model predictive tracking and rendering
CN109064530A (zh) * 2018-08-01 2018-12-21 吉林盘古网络科技股份有限公司 人物动画合成方法、装置及终端
JP2019049572A (ja) * 2018-12-26 2019-03-28 株式会社ニコン 撮像装置、情報処理装置、及び撮像システム
US10984575B2 (en) 2019-02-06 2021-04-20 Snap Inc. Body pose estimation
WO2020217727A1 (ja) * 2019-04-22 2020-10-29 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US10818065B1 (en) * 2019-05-17 2020-10-27 Adobe Inc. Inverse kinematic solution blending in digital character animation
US11551393B2 (en) 2019-07-23 2023-01-10 LoomAi, Inc. Systems and methods for animation generation
US10997766B1 (en) * 2019-11-06 2021-05-04 XRSpace CO., LTD. Avatar motion generating method and head mounted display system
US11393148B2 (en) * 2019-12-19 2022-07-19 Microsoft Technology Licensing, Llc Automatic weight determination for unassigned variables
CN113129415A (zh) * 2020-06-22 2021-07-16 完美世界(北京)软件科技发展有限公司 动画混合空间剖分方法、装置、设备和可读介质
WO2022056151A1 (en) * 2020-09-09 2022-03-17 Colin Brady A system to convert expression input into a complex full body animation, in real time or from recordings, analyzed over time
US11615592B2 (en) 2020-10-27 2023-03-28 Snap Inc. Side-by-side character animation from realtime 3D body motion capture
US11660022B2 (en) 2020-10-27 2023-05-30 Snap Inc. Adaptive skeletal joint smoothing
US11450051B2 (en) * 2020-11-18 2022-09-20 Snap Inc. Personalized avatar real-time motion capture
US11748931B2 (en) 2020-11-18 2023-09-05 Snap Inc. Body animation sharing and remixing
US11734894B2 (en) 2020-11-18 2023-08-22 Snap Inc. Real-time motion transfer for prosthetic limbs
US11593982B1 (en) 2021-01-06 2023-02-28 Apple Inc. Method and device for generating a blended animation
WO2023080806A1 (en) * 2021-11-08 2023-05-11 Nvidia Corporation Synthetic audio-driven body animation using voice tempo
US11880947B2 (en) 2021-12-21 2024-01-23 Snap Inc. Real-time upper-body garment exchange
US11954801B2 (en) 2022-04-11 2024-04-09 Microsoft Technology Licensing, Llc Concurrent human pose estimates for virtual representation
WO2024049574A1 (en) * 2022-08-29 2024-03-07 Travertine Design Engine Llc Video game environment and avatars
CN115920351A (zh) * 2022-10-25 2023-04-07 无锡工艺职业技术学院 网球课动画示范辅助装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334443A (ja) * 2006-06-12 2007-12-27 Kyushu Institute Of Technology アバター動作制御システム、そのプログラム及び方法
JP2008067866A (ja) * 2006-09-13 2008-03-27 Nintendo Co Ltd ゲームプログラムおよびゲーム装置

Family Cites Families (230)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4288078A (en) * 1979-11-20 1981-09-08 Lugo Julio I Game apparatus
US4695953A (en) * 1983-08-25 1987-09-22 Blair Preston E TV animation interactively controlled by the viewer
US4630910A (en) * 1984-02-16 1986-12-23 Robotic Vision Systems, Inc. Method of measuring in three-dimensions at high speed
US4627620A (en) * 1984-12-26 1986-12-09 Yang John P Electronic athlete trainer for improving skills in reflex, speed and accuracy
US4645458A (en) * 1985-04-15 1987-02-24 Harald Phillip Athletic evaluation and training apparatus
US4702475A (en) * 1985-08-16 1987-10-27 Innovating Training Products, Inc. Sports technique and reaction training system
US4843568A (en) * 1986-04-11 1989-06-27 Krueger Myron W Real time perception of and response to the actions of an unencumbered participant/user
US4711543A (en) * 1986-04-14 1987-12-08 Blair Preston E TV animation interactively controlled by the viewer
US4796997A (en) * 1986-05-27 1989-01-10 Synthetic Vision Systems, Inc. Method and system for high-speed, 3-D imaging of an object at a vision station
US5184295A (en) * 1986-05-30 1993-02-02 Mann Ralph V System and method for teaching physical skills
US4751642A (en) * 1986-08-29 1988-06-14 Silva John M Interactive sports simulation system with physiological sensing and psychological conditioning
US4809065A (en) * 1986-12-01 1989-02-28 Kabushiki Kaisha Toshiba Interactive system and related method for displaying data to produce a three-dimensional image of an object
US4817950A (en) * 1987-05-08 1989-04-04 Goo Paul E Video game control unit and attitude sensor
US5239463A (en) * 1988-08-04 1993-08-24 Blair Preston E Method and apparatus for player interaction with animated characters and objects
US5239464A (en) * 1988-08-04 1993-08-24 Blair Preston E Interactive video system providing repeated switching of multiple tracks of actions sequences
US4901362A (en) * 1988-08-08 1990-02-13 Raytheon Company Method of recognizing patterns
US4893183A (en) * 1988-08-11 1990-01-09 Carnegie-Mellon University Robotic vision system
JPH02199526A (ja) * 1988-10-14 1990-08-07 David G Capper 制御インターフェース装置
US4925189A (en) * 1989-01-13 1990-05-15 Braeunig Thomas F Body-mounted video game exercise device
US5229756A (en) * 1989-02-07 1993-07-20 Yamaha Corporation Image control apparatus
US5469740A (en) * 1989-07-14 1995-11-28 Impulse Technology, Inc. Interactive video testing and training system
JPH03103822U (ko) * 1990-02-13 1991-10-29
US5101444A (en) * 1990-05-18 1992-03-31 Panacea, Inc. Method and apparatus for high speed object location
US5148154A (en) * 1990-12-04 1992-09-15 Sony Corporation Of America Multi-dimensional user interface
US5534917A (en) * 1991-05-09 1996-07-09 Very Vivid, Inc. Video image based control system
US5417210A (en) * 1992-05-27 1995-05-23 International Business Machines Corporation System and method for augmentation of endoscopic surgery
US5295491A (en) * 1991-09-26 1994-03-22 Sam Technology, Inc. Non-invasive human neurocognitive performance capability testing method and system
US6054991A (en) 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
CA2101633A1 (en) 1991-12-03 1993-06-04 Barry J. French Interactive video testing and training system
US5875108A (en) 1991-12-23 1999-02-23 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
JPH07325934A (ja) 1992-07-10 1995-12-12 Walt Disney Co:The 仮想世界に向上したグラフィックスを提供する方法および装置
US5999908A (en) 1992-08-06 1999-12-07 Abelow; Daniel H. Customer-based product design module
US5320538A (en) * 1992-09-23 1994-06-14 Hughes Training, Inc. Interactive aircraft training system and method
IT1257294B (it) 1992-11-20 1996-01-12 Dispositivo atto a rilevare la configurazione di un'unita' fisiologicadistale,da utilizzarsi in particolare come interfaccia avanzata per macchine e calcolatori.
US5495576A (en) * 1993-01-11 1996-02-27 Ritchey; Kurtis J. Panoramic image based virtual reality/telepresence audio-visual system and method
US5690582A (en) 1993-02-02 1997-11-25 Tectrix Fitness Equipment, Inc. Interactive exercise apparatus
JP2799126B2 (ja) 1993-03-26 1998-09-17 株式会社ナムコ ビデオゲーム装置及びゲーム用入力装置
US5405152A (en) * 1993-06-08 1995-04-11 The Walt Disney Company Method and apparatus for an interactive video game with physical feedback
US5454043A (en) * 1993-07-30 1995-09-26 Mitsubishi Electric Research Laboratories, Inc. Dynamic and static hand gesture recognition through low-level image analysis
US5423554A (en) * 1993-09-24 1995-06-13 Metamedia Ventures, Inc. Virtual reality game method and apparatus
US5980256A (en) 1993-10-29 1999-11-09 Carmein; David E. E. Virtual reality system with enhanced sensory apparatus
JP3419050B2 (ja) * 1993-11-19 2003-06-23 株式会社日立製作所 入力装置
US5347306A (en) * 1993-12-17 1994-09-13 Mitsubishi Electric Research Laboratories, Inc. Animated electronic meeting place
JP2552427B2 (ja) * 1993-12-28 1996-11-13 コナミ株式会社 テレビ遊戯システム
US5577981A (en) * 1994-01-19 1996-11-26 Jarvik; Robert Virtual reality exercise machine and computer controlled video system
US5580249A (en) * 1994-02-14 1996-12-03 Sarcos Group Apparatus for simulating mobility of a human
US5597309A (en) * 1994-03-28 1997-01-28 Riess; Thomas Method and apparatus for treatment of gait problems associated with parkinson's disease
US5385519A (en) * 1994-04-19 1995-01-31 Hsu; Chi-Hsueh Running machine
US5524637A (en) * 1994-06-29 1996-06-11 Erickson; Jon W. Interactive system for measuring physiological exertion
JPH0844490A (ja) 1994-07-28 1996-02-16 Matsushita Electric Ind Co Ltd インターフェイス装置
US5563988A (en) * 1994-08-01 1996-10-08 Massachusetts Institute Of Technology Method and system for facilitating wireless, full-body, real-time user interaction with a digitally represented visual environment
US6115053A (en) * 1994-08-02 2000-09-05 New York University Computer animation method and system for synthesizing human-like gestures and actions
US6714665B1 (en) 1994-09-02 2004-03-30 Sarnoff Corporation Fully automated iris recognition system utilizing wide and narrow fields of view
US5516105A (en) * 1994-10-06 1996-05-14 Exergame, Inc. Acceleration activated joystick
US5638300A (en) 1994-12-05 1997-06-10 Johnson; Lee E. Golf swing analysis system
JPH08161292A (ja) 1994-12-09 1996-06-21 Matsushita Electric Ind Co Ltd 混雑度検知方法およびそのシステム
US5594469A (en) * 1995-02-21 1997-01-14 Mitsubishi Electric Information Technology Center America Inc. Hand gesture machine control system
US5682229A (en) 1995-04-14 1997-10-28 Schwartz Electro-Optics, Inc. Laser range camera
US5913727A (en) 1995-06-02 1999-06-22 Ahdoot; Ned Interactive movement and contact simulation game
US6229913B1 (en) 1995-06-07 2001-05-08 The Trustees Of Columbia University In The City Of New York Apparatus and methods for determining the three-dimensional shape of an object using active illumination and relative blurring in two-images due to defocus
US5682196A (en) 1995-06-22 1997-10-28 Actv, Inc. Three-dimensional (3D) video presentation system providing interactive 3D presentation with personalized audio responses for multiple viewers
JPH11508359A (ja) * 1995-06-22 1999-07-21 3ディブイ・システムズ・リミテッド 改善された光学測距カメラ
IL114278A (en) * 1995-06-22 2010-06-16 Microsoft Internat Holdings B Camera and method
US5702323A (en) 1995-07-26 1997-12-30 Poulton; Craig K. Electronic exercise enhancer
US6430997B1 (en) 1995-11-06 2002-08-13 Trazer Technologies, Inc. System and method for tracking and assessing movement skills in multidimensional space
US6073489A (en) 1995-11-06 2000-06-13 French; Barry J. Testing and training system for assessing the ability of a player to complete a task
US6308565B1 (en) 1995-11-06 2001-10-30 Impulse Technology Ltd. System and method for tracking and assessing movement skills in multidimensional space
US6098458A (en) 1995-11-06 2000-08-08 Impulse Technology, Ltd. Testing and training system for assessing movement and agility skills without a confining field
WO1999044698A2 (en) 1998-03-03 1999-09-10 Arena, Inc. System and method for tracking and assessing movement skills in multidimensional space
US6176782B1 (en) 1997-12-22 2001-01-23 Philips Electronics North America Corp. Motion-based command generation technology
US5933125A (en) 1995-11-27 1999-08-03 Cae Electronics, Ltd. Method and apparatus for reducing instability in the display of a virtual environment
US5880731A (en) * 1995-12-14 1999-03-09 Microsoft Corporation Use of avatars with automatic gesturing and bounded interaction in on-line chat session
US5641288A (en) 1996-01-11 1997-06-24 Zaenglein, Jr.; William G. Shooting simulating process and training device using a virtual reality display screen
US6152856A (en) 1996-05-08 2000-11-28 Real Vision Corporation Real time simulation using position sensing
US6173066B1 (en) 1996-05-21 2001-01-09 Cybernet Systems Corporation Pose determination and tracking by matching 3D objects to a 2D sensor
US5989157A (en) 1996-08-06 1999-11-23 Walton; Charles A. Exercising system with electronic inertial game playing
CN1168057C (zh) 1996-08-14 2004-09-22 挪拉赫梅特·挪利斯拉莫维奇·拉都包夫 追踪并显示使用者在空间的位置与取向的方法,向使用者展示虚拟环境的方法以及实现这些方法的系统
JP3064928B2 (ja) 1996-09-20 2000-07-12 日本電気株式会社 被写体抽出方式
DE69626208T2 (de) 1996-12-20 2003-11-13 Hitachi Europ Ltd Verfahren und System zur Erkennung von Handgesten
US6009210A (en) 1997-03-05 1999-12-28 Digital Equipment Corporation Hands-free interface to a virtual reality environment using head tracking
US6100896A (en) 1997-03-24 2000-08-08 Mitsubishi Electric Information Technology Center America, Inc. System for designing graphical multi-participant environments
US5877803A (en) 1997-04-07 1999-03-02 Tritech Mircoelectronics International, Ltd. 3-D image detector
US6215898B1 (en) 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
JP3077745B2 (ja) 1997-07-31 2000-08-14 日本電気株式会社 データ処理方法および装置、情報記憶媒体
US6188777B1 (en) 1997-08-01 2001-02-13 Interval Research Corporation Method and apparatus for personnel detection and tracking
US6289112B1 (en) 1997-08-22 2001-09-11 International Business Machines Corporation System and method for determining block direction in fingerprint images
US6720949B1 (en) 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
AUPO894497A0 (en) 1997-09-02 1997-09-25 Xenotech Research Pty Ltd Image processing method and apparatus
WO1999015863A1 (en) 1997-09-24 1999-04-01 3Dv Systems, Ltd. Acoustical imaging system
EP0905644A3 (en) 1997-09-26 2004-02-25 Matsushita Electric Industrial Co., Ltd. Hand gesture recognizing device
US6141463A (en) 1997-10-10 2000-10-31 Electric Planet Interactive Method and system for estimating jointed-figure configurations
US6072494A (en) 1997-10-15 2000-06-06 Electric Planet, Inc. Method and apparatus for real-time gesture recognition
US6130677A (en) 1997-10-15 2000-10-10 Electric Planet, Inc. Interactive computer vision system
WO1999019828A1 (en) 1997-10-15 1999-04-22 Electric Planet, Inc. Method and apparatus for performing a clean background subtraction
US6101289A (en) 1997-10-15 2000-08-08 Electric Planet, Inc. Method and apparatus for unencumbered capture of an object
AU9808298A (en) 1997-10-15 1999-05-03 Electric Planet, Inc. A system and method for generating an animatable character
US6181343B1 (en) 1997-12-23 2001-01-30 Philips Electronics North America Corp. System and method for permitting three-dimensional navigation through a virtual reality environment using camera-based gesture inputs
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
US6636219B2 (en) * 1998-02-26 2003-10-21 Learn.Com, Inc. System and method for automatic animation generation
US6159100A (en) 1998-04-23 2000-12-12 Smith; Michael D. Virtual reality game
US6077201A (en) 1998-06-12 2000-06-20 Cheng; Chau-Yang Exercise bicycle
JP2000011199A (ja) 1998-06-18 2000-01-14 Sony Corp アニメーションの自動生成方法
US20010008561A1 (en) 1999-08-10 2001-07-19 Paul George V. Real-time object tracking system
US6801637B2 (en) 1999-08-10 2004-10-05 Cybernet Systems Corporation Optical body tracker
US7121946B2 (en) 1998-08-10 2006-10-17 Cybernet Systems Corporation Real-time head tracking system for computer games and other applications
US6950534B2 (en) 1998-08-10 2005-09-27 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US6681031B2 (en) 1998-08-10 2004-01-20 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US7036094B1 (en) 1998-08-10 2006-04-25 Cybernet Systems Corporation Behavior recognition system
IL126284A (en) 1998-09-17 2002-12-01 Netmor Ltd System and method for three dimensional positioning and tracking
EP0991011B1 (en) * 1998-09-28 2007-07-25 Matsushita Electric Industrial Co., Ltd. Method and device for segmenting hand gestures
US6501515B1 (en) * 1998-10-13 2002-12-31 Sony Corporation Remote control system
AU1930700A (en) 1998-12-04 2000-06-26 Interval Research Corporation Background estimation and segmentation based on range and color
US6147678A (en) 1998-12-09 2000-11-14 Lucent Technologies Inc. Video hand image-three-dimensional computer interface with multiple degrees of freedom
AU1574899A (en) 1998-12-16 2000-07-03 3Dv Systems Ltd. Self gating photosurface
US6570555B1 (en) 1998-12-30 2003-05-27 Fuji Xerox Co., Ltd. Method and apparatus for embodied conversational characters with multimodal input/output in an interface device
US6363160B1 (en) 1999-01-22 2002-03-26 Intel Corporation Interface using pattern recognition and tracking
US7003134B1 (en) 1999-03-08 2006-02-21 Vulcan Patents Llc Three dimensional object pose estimation which employs dense depth information
US6299308B1 (en) 1999-04-02 2001-10-09 Cybernet Systems Corporation Low-cost non-imaging eye tracker system for computer control
US6614422B1 (en) 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US6503195B1 (en) 1999-05-24 2003-01-07 University Of North Carolina At Chapel Hill Methods and systems for real-time structured light depth extraction and endoscope using real-time structured light depth extraction
US6476834B1 (en) 1999-05-28 2002-11-05 International Business Machines Corporation Dynamic creation of selectable items on surfaces
US6873723B1 (en) 1999-06-30 2005-03-29 Intel Corporation Segmenting three-dimensional video images using stereo
US6738066B1 (en) 1999-07-30 2004-05-18 Electric Plant, Inc. System, method and article of manufacture for detecting collisions between video images generated by a camera and an object depicted on a display
US7113918B1 (en) 1999-08-01 2006-09-26 Electric Planet, Inc. Method for video enabled electronic commerce
US7050606B2 (en) 1999-08-10 2006-05-23 Cybernet Systems Corporation Tracking and gesture recognition system particularly suited to vehicular control applications
US7224384B1 (en) * 1999-09-08 2007-05-29 3Dv Systems Ltd. 3D imaging system
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
US20030132950A1 (en) 2001-11-27 2003-07-17 Fahri Surucu Detecting, classifying, and interpreting input events based on stimuli in multiple sensory domains
US20030021032A1 (en) 2001-06-22 2003-01-30 Cyrus Bamji Method and system to display a virtual input device
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
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
DE19960180B4 (de) * 1999-12-14 2006-03-09 Rheinmetall W & M Gmbh Verfahren zur Herstellung eines Sprenggeschosses
US6522331B1 (en) * 2000-02-01 2003-02-18 Stormfront Studios, Inc. Character animation using directed acyclic graphs
US6663491B2 (en) 2000-02-18 2003-12-16 Namco Ltd. Game apparatus, storage medium and computer program that adjust tempo of sound
US6633294B1 (en) 2000-03-09 2003-10-14 Seth Rosenthal Method and apparatus for using captured high density motion for animation
EP1152261A1 (en) 2000-04-28 2001-11-07 CSEM Centre Suisse d'Electronique et de Microtechnique SA Device and method for spatially resolved photodetection and demodulation of modulated electromagnetic waves
US6640202B1 (en) 2000-05-25 2003-10-28 International Business Machines Corporation Elastic sensor mesh system for 3-dimensional measurement, mapping and kinematics applications
JP3539553B2 (ja) * 2000-05-30 2004-07-07 シャープ株式会社 アニメーション作成方法及びアニメーション作成装置並びにアニメーション作成プログラムを記録したコンピュータ読み取り可能な記録媒体
US6731799B1 (en) 2000-06-01 2004-05-04 University Of Washington Object segmentation with background extraction and moving boundary techniques
US6788809B1 (en) 2000-06-30 2004-09-07 Intel Corporation System and method for gesture recognition in three dimensions using stereo imaging and color vision
US7227526B2 (en) 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
JP2002041276A (ja) * 2000-07-24 2002-02-08 Sony Corp 対話型操作支援システム及び対話型操作支援方法、並びに記憶媒体
JP2002109560A (ja) * 2000-10-02 2002-04-12 Sharp Corp アニメーション再生装置、アニメーション再生システム、アニメーション再生方法、アニメーション再生方法を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体
US7058204B2 (en) 2000-10-03 2006-06-06 Gesturetek, Inc. Multiple camera control system
JP3725460B2 (ja) * 2000-10-06 2005-12-14 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
US7039676B1 (en) 2000-10-31 2006-05-02 International Business Machines Corporation Using video image analysis to automatically transmit gestures over a network in a chat or instant messaging session
EP1230959A1 (en) 2001-02-13 2002-08-14 Pumpkin Pie Net Limited Video simulation method and program
US6539931B2 (en) 2001-04-16 2003-04-01 Koninklijke Philips Electronics N.V. Ball throwing assistant
US7667705B2 (en) * 2001-05-15 2010-02-23 Nintendo Of America Inc. System and method for controlling animation by tagging objects within a game environment
US8035612B2 (en) 2002-05-28 2011-10-11 Intellectual Ventures Holding 67 Llc Self-contained interactive video display system
US7259747B2 (en) 2001-06-05 2007-08-21 Reactrix Systems, Inc. Interactive video display system
JP3420221B2 (ja) 2001-06-29 2003-06-23 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置及びプログラム
JP2003085592A (ja) 2001-09-10 2003-03-20 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体
US20030054327A1 (en) * 2001-09-20 2003-03-20 Evensen Mark H. Repetitive motion feedback system and method of practicing a repetitive motion
US6937742B2 (en) 2001-09-28 2005-08-30 Bellsouth Intellectual Property Corporation Gesture activated home appliance
WO2003054683A2 (en) 2001-12-07 2003-07-03 Canesta Inc. User interface for electronic devices
US7340077B2 (en) * 2002-02-15 2008-03-04 Canesta, Inc. Gesture recognition system using depth perceptive sensors
US20030169906A1 (en) 2002-02-26 2003-09-11 Gokturk Salih Burak Method and apparatus for recognizing objects
US7310431B2 (en) * 2002-04-10 2007-12-18 Canesta, Inc. Optical methods for remotely measuring objects
ATE321689T1 (de) 2002-04-19 2006-04-15 Iee Sarl Sicherheitsvorrichtung für ein fahrzeug
US7170492B2 (en) 2002-05-28 2007-01-30 Reactrix Systems, Inc. Interactive video display system
US7348963B2 (en) 2002-05-28 2008-03-25 Reactrix Systems, Inc. Interactive video display system
US7710391B2 (en) 2002-05-28 2010-05-04 Matthew Bell Processing an image utilizing a spatially varying pattern
US7489812B2 (en) 2002-06-07 2009-02-10 Dynamic Digital Depth Research Pty Ltd. Conversion and encoding techniques
GB0216819D0 (en) * 2002-07-19 2002-08-28 Kaydara Inc Generating animation data
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
US7576727B2 (en) 2002-12-13 2009-08-18 Matthew Bell Interactive directed light/sound system
JP4235729B2 (ja) 2003-02-03 2009-03-11 国立大学法人静岡大学 距離画像センサ
US20050071306A1 (en) * 2003-02-05 2005-03-31 Paul Kruszewski Method and system for on-screen animation of digital objects or characters
US9177387B2 (en) * 2003-02-11 2015-11-03 Sony Computer Entertainment Inc. Method and apparatus for real time motion capture
US20040155961A1 (en) 2003-02-11 2004-08-12 Litwin Louis Robert Apparatus and method for controlling display of video camera signals received over a powerline network
DE602004006190T8 (de) 2003-03-31 2008-04-10 Honda Motor Co., Ltd. Vorrichtung, Verfahren und Programm zur Gestenerkennung
US8072470B2 (en) 2003-05-29 2011-12-06 Sony Computer Entertainment Inc. System and method for providing a real-time three-dimensional interactive environment
WO2004107266A1 (en) 2003-05-29 2004-12-09 Honda Motor Co., Ltd. Visual tracking using depth data
JP4546956B2 (ja) 2003-06-12 2010-09-22 本田技研工業株式会社 奥行き検出を用いた対象の向きの推定
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
US7536032B2 (en) 2003-10-24 2009-05-19 Reactrix Systems, Inc. Method and system for processing captured image information in an interactive video display system
JP3847753B2 (ja) * 2004-01-30 2006-11-22 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
CN100573548C (zh) 2004-04-15 2009-12-23 格斯图尔泰克股份有限公司 跟踪双手运动的方法和设备
US7308112B2 (en) 2004-05-14 2007-12-11 Honda Motor Co., Ltd. Sign based human-machine interaction
US20050278157A1 (en) * 2004-06-15 2005-12-15 Electronic Data Systems Corporation System and method for simulating human movement using profile paths
KR20060011226A (ko) 2004-07-29 2006-02-03 엘지전자 주식회사 이동통신 시스템에서 멀티캐스트 및 방송 서비스를 위한핸드오버 지원방법
US7704135B2 (en) 2004-08-23 2010-04-27 Harrison Jr Shelton E Integrated game system, method, and device
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
US7711676B2 (en) * 2004-11-12 2010-05-04 Sap Aktiengesellschaft Tracking usage of data elements in electronic business communications
JP4449723B2 (ja) * 2004-12-08 2010-04-14 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
KR20060070280A (ko) 2004-12-20 2006-06-23 한국전자통신연구원 손 제스처 인식을 이용한 사용자 인터페이스 장치 및 그방법
CN101137996A (zh) 2005-01-07 2008-03-05 格斯图尔泰克股份有限公司 基于光流的倾斜传感器
HUE049974T2 (hu) 2005-01-07 2020-11-30 Qualcomm Inc Képeken lévõ objektumok észlelése és követése
WO2006074310A2 (en) 2005-01-07 2006-07-13 Gesturetek, Inc. Creating 3d images of objects by illuminating with infrared patterns
EP1851750A4 (en) 2005-02-08 2010-08-25 Oblong Ind Inc SYSTEM AND METHOD FOR CONTROL SYSTEM BASED ON GESTURES
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 삼성전기주식회사 멀티 레이어 커패시터 내장형의 인쇄회로기판의 제조방법
JP4686595B2 (ja) 2005-03-17 2011-05-25 本田技研工業株式会社 クリティカルポイント解析に基づくポーズ推定
GB0509172D0 (en) 2005-05-04 2005-06-15 Spiral Scratch Ltd Three dimensional effects in an eye toy
EP1886509B1 (en) 2005-05-17 2017-01-18 Qualcomm Incorporated Orientation-sensitive signal output
US20070015121A1 (en) * 2005-06-02 2007-01-18 University Of Southern California Interactive Foreign Language Teaching
EP1752748B1 (en) 2005-08-12 2008-10-29 MESA Imaging AG Highly sensitive, fast pixel for use in an image sensor
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
US7606392B2 (en) * 2005-08-26 2009-10-20 Sony Corporation Capturing and processing facial motion data
US7450736B2 (en) 2005-10-28 2008-11-11 Honda Motor Co., Ltd. Monocular tracking of 3D human motion with a coordinated mixture of factor analyzers
GB2431717A (en) * 2005-10-31 2007-05-02 Sony Uk Ltd Scene analysis
JP4917615B2 (ja) * 2006-02-27 2012-04-18 プライム センス リミティド スペックルの無相関を使用した距離マッピング(rangemapping)
US8277315B2 (en) * 2006-03-01 2012-10-02 Hybrid Learning Systems, Inc. Game simulation based on current events
KR101408959B1 (ko) * 2006-03-14 2014-07-02 프라임센스 엘티디. 삼차원 감지를 위한 깊이 가변 광 필드
US8766983B2 (en) * 2006-05-07 2014-07-01 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
JP4781181B2 (ja) 2006-07-07 2011-09-28 株式会社ソニー・コンピュータエンタテインメント ユーザインタフェースプログラム、装置および方法、情報処理システム
US7701439B2 (en) 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
US8395658B2 (en) * 2006-09-07 2013-03-12 Sony Computer Entertainment Inc. Touch screen-like user interface that does not require actual touching
JP5395323B2 (ja) 2006-09-29 2014-01-22 ブレインビジョン株式会社 固体撮像素子
JP5101080B2 (ja) 2006-10-19 2012-12-19 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
US20080120558A1 (en) * 2006-11-16 2008-05-22 Paco Xander Nathan Systems and methods for managing a persistent virtual avatar with migrational ability
US20080134102A1 (en) * 2006-12-05 2008-06-05 Sony Ericsson Mobile Communications Ab Method and system for detecting movement of an object
US7412077B2 (en) 2006-12-29 2008-08-12 Motorola, Inc. Apparatus and methods for head pose estimation and head gesture detection
WO2008106197A1 (en) 2007-03-01 2008-09-04 Sony Computer Entertainment America Inc. Interactive user controlled avatar animations
GB0703974D0 (en) * 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
US7729530B2 (en) 2007-03-03 2010-06-01 Sergey Antonov Method and apparatus for 3-D data input to a personal computer with a multimedia oriented operating system
US8379029B2 (en) * 2007-05-04 2013-02-19 Autodesk, Inc. Looping motion space registration for real-time character animation
US20080307304A1 (en) * 2007-06-07 2008-12-11 Ernst Feiler Method and system for producing a sequence of views
US8146005B2 (en) * 2007-08-07 2012-03-27 International Business Machines Corporation Creating a customized avatar that reflects a user's distinguishable attributes
US7852262B2 (en) 2007-08-16 2010-12-14 Cybernet Systems Corporation Wireless mobile indoor/outdoor tracking system
US8390628B2 (en) * 2007-09-11 2013-03-05 Sony Computer Entertainment America Llc Facial animation using motion capture data
US8149210B2 (en) * 2007-12-31 2012-04-03 Microsoft International Holdings B.V. Pointing device and method
US10026210B2 (en) * 2008-01-10 2018-07-17 Autodesk, Inc. Behavioral motion space blending for goal-oriented character animation
CN201254344Y (zh) 2008-08-20 2009-06-10 中国农业科学院草原研究所 植物标本及种子存贮器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334443A (ja) * 2006-06-12 2007-12-27 Kyushu Institute Of Technology アバター動作制御システム、そのプログラム及び方法
JP2008067866A (ja) * 2006-09-13 2008-03-27 Nintendo Co Ltd ゲームプログラムおよびゲーム装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190059726A (ko) * 2017-11-23 2019-05-31 한길씨앤씨 주식회사 가상현실 환경에서의 사용자와 객체 간 상호 작용 처리 방법
KR102251977B1 (ko) * 2019-11-18 2021-05-14 주식회사 인공지능연구원 아바타 동작 저작 장치 및 방법

Also Published As

Publication number Publication date
KR101643020B1 (ko) 2016-07-26
RU2530708C2 (ru) 2014-10-10
US9824480B2 (en) 2017-11-21
JP5635069B2 (ja) 2014-12-03
RU2011138414A (ru) 2013-03-27
WO2010107575A3 (en) 2011-01-06
EP2409277A2 (en) 2012-01-25
EP2409277A4 (en) 2017-03-01
WO2010107575A2 (en) 2010-09-23
US8988437B2 (en) 2015-03-24
US20100238182A1 (en) 2010-09-23
CN102362293A (zh) 2012-02-22
US20150154782A1 (en) 2015-06-04
CA2752699C (en) 2017-08-22
US9478057B2 (en) 2016-10-25
CN102362293B (zh) 2017-09-29
JP2012521038A (ja) 2012-09-10
EP2409277B1 (en) 2020-11-04
CA2752699A1 (en) 2010-09-23
US20170069125A1 (en) 2017-03-09
BRPI1009547A2 (pt) 2016-03-22

Similar Documents

Publication Publication Date Title
US9824480B2 (en) Chaining animations
US9298263B2 (en) Show body position
JP5632474B2 (ja) ユーザーから学習した入力を介し視覚表示を実写のようにする方法及びシステム
US8418085B2 (en) Gesture coach
JP5661763B2 (ja) プレーヤーの表現に基づく視覚表示の表現方法及びシステム
JP5775514B2 (ja) ジェスチャー・ショートカット
US9280203B2 (en) Gesture recognizer system architecture
US20100306716A1 (en) Extending standard gestures
US20100302138A1 (en) Methods and systems for defining or modifying a visual representation

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 4