KR20100087716A - 이동 애니메이션 방법 및 장치 - Google Patents
이동 애니메이션 방법 및 장치 Download PDFInfo
- Publication number
- KR20100087716A KR20100087716A KR1020107010647A KR20107010647A KR20100087716A KR 20100087716 A KR20100087716 A KR 20100087716A KR 1020107010647 A KR1020107010647 A KR 1020107010647A KR 20107010647 A KR20107010647 A KR 20107010647A KR 20100087716 A KR20100087716 A KR 20100087716A
- Authority
- KR
- South Korea
- Prior art keywords
- animation
- client
- data
- entity
- virtual environment
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 152
- 230000033001 locomotion Effects 0.000 title claims abstract description 150
- 230000008859 change Effects 0.000 claims description 138
- 230000000007 visual effect Effects 0.000 claims description 36
- 238000006073 displacement reaction Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 8
- 238000012935 Averaging Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 4
- 238000009499 grossing Methods 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 2
- 210000004185 liver Anatomy 0.000 claims 1
- 230000009471 action Effects 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 32
- 210000002683 foot Anatomy 0.000 description 30
- 210000001624 hip Anatomy 0.000 description 27
- 210000002414 leg Anatomy 0.000 description 7
- 210000001981 hip bone Anatomy 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 210000003423 ankle Anatomy 0.000 description 2
- 244000309466 calf Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 210000000689 upper leg Anatomy 0.000 description 2
- 101150047304 TMOD1 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000386 athletic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- A63F13/10—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/552—Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 가상환경에서 사용자-제어되는 개체의 이동 애니메이션을 방법 및 장치에 관한 것이다. 가상환경에서 개체 이동을 추적하기 위한 개체 추적데이터를 서버 측에 저장된다. 사용자는 클라이언트를 통하여 개체에 대하여 원하는 액션을 입력하고, 입력데이터는 클라이언트로부터 서버로 전송된다. 서버는 수신된 데이터를 이용하여 개체에 대한 적합한 애니메이션을 선택한다. 이후 서버는 선택된 애니메이션을 식별하는 데이터를 클라이언트로 전송하여 클라이언트 측 개체의 애니메이션을 제어한다. 가상환경에서 개체의 정확한 이동 표시를 유지하면서 개체 이동을 시뮬레이션 하기 위한 애니메이션 데이터를 이용함으로써, 서버는 개체를 정확하게 제어할 수 있고 따라서 개체의 애니메이션은 더욱 사실적일 수 있다.
Description
본 발명은 이동 애니메이션 방법 및 장치에 관한 것이다. 특히, 본 발명은 사용자-제어 개체의 이동 애니메이션에 관한 것이다.
공지의 서버-기반 게임시스템에서, 서버는 캐릭터 이동을 구현하며 이때 캐릭터는 사용자 제어에 의해 지시되는 직선 및 곡선을 따라 움직이는 마치 단순한 점들의 집합체와 같다. 클라이언트 측에서 사용되는 애니메이션은 캐릭터 사지가 가능한 최적으로 동작하도록 하여 사실적인 이동을 제공하도록 한다. 그러나, 때로는'풋 슬라이딩(foot-sliding)'이 발생되어 캐릭터의 발들이 지면에서 미끄러지는 것으로 보이거나 애니메이션들 간에 이상하게 혼재되어 보인다.
축구게임과 같이 과도하고 상당한 액션이 포함되는 분야에서, 이러한 공지시스템은 현실적인 룩앤필을 게임환경에 제공하지 못한다. 예를들면, 플레이어가 발로 공을 가지고 180°회전할 때, 그 장면에서 단순하고, 일정한-속도로 회전하는 것과는 아주 다르게 복잡하게 동작된다.
모션-캡쳐 기법을 이용하여 애니메이션이 제작될 수 있다. 이러한 기술에서, 연기자 동작은 모션-캡쳐 스튜디오에 기록되고 컴퓨터 게임에서 캐릭터 동작을 모델화하기 위하여 사용된다. 연기자가 이동하는 동안 신체 개별 부분들의 움직임이 검출되고 동작을 형성하는 일련의 모션-캡쳐 프레임들을 생성하기 위하여 사용된다. 슬라이싱이라고도 불리는, 게임에서 다른 애니메이션들을 연속하여 결합하기 위하여, 각각의 애니메이션은 '포즈'라고도 하는 다수의 소정 신체 위치들 중 하나에서 시작하고 종료되는 것이 바람직하다. 이를 통한 더욱 유연하고도 자연스러운 이행 동작이 가능하여 애니메이션들 사이의 연속성이 제공된다. 모션-캡쳐 스튜디오에는 각각의 애니메이션들이 시작되고 종료되는 각각의 포즈를 정의하는 데이터가 제공된다. 이후 모션-캡쳐 스튜디오는 모션-캡쳐 데이터를 처리하여 최초 및 최종 키-프레임들이 원하는 포즈들과 일치하는 일련의 키-프레임들로서의 애니메이션을 정의하는 데이터 파일을 제공한다.
연기자 및 동작은 본원에서 '뼈대'라고 칭하는 부분들의 계층구조를 가지는 개체로서 모델화된다. 이러한 계층구조 최상위는 연기자 엉덩이를 나타내는 뼈대일 수 있다. 가공되지 않은 모션-캡쳐 데이터에서, 전형적으로 기타 모든 동작들은 엉덩이 뼈대 신체-부분에 대하여 상대적으로 정의된다.
모션-캡쳐된 개체 위치에 대한 미지 방향은 개체에 대하여 정방향이다. 모션-캡쳐된 데이터는 수평적 정방향을 포함한 엉덩이 뼈대 동작을 정의한다. 회귀성 보행 또는 주행 애니메이션 동안, 개체가 다른 다리에 이어 한 다리를 앞으로 옮길 때 엉덩이는 이리저리 돌려진다. 이는 엉덩이 정방향이 애니메이션 동안 이리저리 흔들린다는 것을 의미한다.
이동 개체는 이러한 개체 위치와 이어지는 관점으로 제3자 시각으로 화면에 보여질 수 있다. 이것은, 엉덩이 정방향이 직접 개체 정방향으로 사용된다면, 개체가 앞으로 주행할 때, 관점이 엉덩이 동작과 동일선상에서 이리저리 흔들린다는 것을 의미한다. 이러한 모션은 가상환경에서 개체 동작을 제어하는 사용자를 불안하게 한다.
미국특허번호 제6,972,765 B1호는 그래픽 인터페이스상에 객체를 포함하는 3차원 (3D) 애니메이션 그래픽 영상을 형성하는 방법을 기술한다. 그래픽 영상은 사용자에 의해 실시간 대화형으로 움직이도록 설계된다. 본 방법은 객체들을 선택하고 이들을 그래픽 인터페이스에 표시하고, 외부 프롬프트에 실시간 대화형으로 반응하는 특성을 가지는 객체에 동작을 할당하고, 그래픽 인터페이스상에 객체 및 이들에 할당된 동작을 상징하는 시각 요소들을 조합하는 것을 포함한다.
일본특허출원번호 제2007-038010호는 2차원 게임에서 캐릭터 애니메이션을 달성하기 위한 애니메이션 시스템을 기재한다. 게임-캐릭터는 상이한 애니메이션 기법들이 적용되는 상이한 영역들로 분할된다. 일 영역에서, 뼈대 애니메이션 기법이 사용되고, 여기서 객체 동작을 제어하기 위한 논리가 적용된다. 다른 영역에서, 셀 애니메이션 기법이 사용된다. 상이한 애니메이션 기법이 사용되는 영역들은 캐릭터를 동작시키기 위하여 이후 결합된다.
한국특허출원 제2004-0087787호는 3차원 온라인 게임에서 캐릭터 형태를 변형시키기 위한 시스템을 기술한다. 캐릭터 애니메이션은 캐릭터 각각의 뼈대를 애니메이션 함으로써 달성된다. 하나의 캐릭터에 기초한 형상을 다른 캐릭터로 내보내어 (exporting) 하나의 캐릭터를 위한 뼈대 애니메이션 모델은 다른 캐릭터로 연장될 수 있다. 플레이어에 의한 캐릭터 조작에 대응하여 캐릭터 애니메이션 사실감을 높이기 위하여 역운동학이 적용될 수 있다.
게임시스템에서 사용될 수 있고 사용자-제어 개체 동작의 룩앤필을 개선시키며 가상환경에서 개체를 더욱 사실적으로 동작시키기 위한 기법이 제공될 필요가 있다.
본 발명의 제1 측면에 의하면, 가상환경에서 사용자-제어 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법에 있어서, 상기 사용자-제어는 클라이언트-기반이며,
상기 가상환경에서 제1 개체 추적 관련 제1 개체 추적데이터를 서버 측에 저장하는 단계;
상기 가상환경에서 상기 제1 개체의 사용자-제어 관련 개체-제어 입력데이터를 제1 클라이언트로부터 상기 서버 측에서 수신하는 단계;
상기 제1 클라이언트로부터 수신된 입력데이터에 기초하여, 제1 다수의 애니메이션들로부터 상기 제1 클라이언트 측에 동작되는 제1 애니메이션을 상기 서버 측에서 선택하는 단계;
상기 가상환경에서 상기 제1 개체의 상기 제1 선택 애니메이션을 식별하는 제1 데이터를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계;
상기 제1 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 하나 이상의 개체 변화 특성을 검색하는 단계; 및
상기 제1 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 상기 검색된 개체 변화 특성에 기초하여, 상기 저장된 제1 개체 추적데이터를 갱신하는 단계를 포함하여 구성된다.
가상환경에서 개체 동작을 추적하기 위하여 개체 추적데이터는 서버 측에 저장된다. 사용자는 클라이언트를 통하여 개체에 대한 소망 액션을 입력하고, 이는 클라이언트에 의해 서버로 전송된다. 서버는 수신된 데이터를 이용하여 개체에 대한 적합한 애니메이션을 선택한다. 서버는 선택 애니메이션을 식별하는 데이터를 클라이언트로 전송하며, 이에 따라 클라이언트 측 개체 애니메이션을 제어한다.
선택된 애니메이션 관련 개체 변화 특성은 예를들면 서버 측 메모리 저장장치로부터 서버에 의해 검색된다. 개체 변화 특성은 예를들면 개체의 지점 및 방향 및 애니메이션들의 타이밍과 같은 애니메이션 과정에서 변화되는 소정의 특징과 관련된다. 개체 변화 특성을 사용하면 애니메이션 과정에서 개체가 어떻게 가변되는 것과 관련된 정보 예를들면 애니메이션 시작에 상대적으로 특히 애니메이션 종료 시 개체가 어디에 있을 것인지 및/또는 애니메이션 도중 개체가 어떤 길과 마주칠 것인지 관련 정보가 서버로 제공된다. 서버는 선택된 애니메이션의 개체 변화 특성에 따라 저장 개체 추적데이터를 갱신한다.
따라서 서버는 가상환경에서 개체를 계속하여 추적할 수 있고 또한 클라이언트 측에서 개체를 동작시킬 때 사용되는 다수의 개체 애니메이션들을 알 수 있다. 가상환경에서 개체 이동의 정확한 표시를 유지하면서 개체 이동을 시뮬레이션 하는 애니메이션 데이터를 사용함으로써, 서버는 개체를 정확하게 제어할 수 있고 따라서 개체 애니메이션은 더욱 사실적일 수 있다.
서버 및 클라이언트가 통신되는 네트워크는 불필요한 많은 양의 애니메이션 데이터로 오버로딩 될 필요는 없다. 애니메이션 데이터 자체는 서버 및 클라이언트 사이에 전송될 필요는 없고, 관련 애니메이션을 식별하기 위하여 클라이언트에 의해 연속하여 사용될 수 있는 식별 애니메이션 관련 데이터만이 전송될 필요가 있다.
바람직하게는, 본 방법은 상기 저장된 제1 개체 추적데이터에 기초하여 상기 제1 클라이언트 측에 동작되는 상기 제1 애니메이션을 선택하는 단계를 더욱 포함한다. 따라서, 서버는 또한 개체에 대한 적합한 애니메이션을 선택하기 위하여 저장된 추적데이터를 사용할 수 있다. 애니메이션 선택은 따라서 가상환경에서 개체 이동을 알면서 수행될 수 있고, 이는 애니메이션 품질을 더욱 개선할 수 있다.
바람직하게는, 저장 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 지점 추적 관련된 지점 데이터를 포함한다. 예를들면, 애니메이션에서 지점 데이터는 개체에 대한 출발 지점을 포함할 수 있다.
바람직하게는, 저장 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 방향 추적 관련된 방향 데이터를 포함한다. 예를들면, 애니메이션에서 방향 데이터는 개체에 대한 출발 방향을 포함할 수 있다.
바람직하게는, 저장 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 타이밍 추적 관련된 타이밍 데이터를 포함한다. 예를들면, 타이밍 데이터는 애니메이션에서 개체에 대한 출발 시간을 포함할 수 있다.
따라서, 가상환경에서 개체의 지점, 위치 및 타이밍은 선택 애니메이션을 기초로 서버 측에서 추적될 수 있어, 개체가 클라이언트 측에서 동작될 때 가상환경에서 개체 이동에 대한 더욱 정확한 표시가 가능하다.
바람직하게는, 본 방법은:
상기 제1 다수의 애니메이션들로부터 상기 제1 클라이언트 측에 동작되는 추가 애니메이션을 상기 서버 측에서 선택하는 단계;
상기 제1 클라이언트 측에 동작되는 상기 추가 애니메이션을 식별하는 추가 데이터를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계;
상기 추가 선택 애니메이션 관련 하나 이상의 추가 개체 변화 특성을 검색하는 단계; 및
상기 추가된 검색 개체 변화 특성에 기초하여, 상기 저장된 제1 개체 추적데이터를 갱신하는 단계를 포함하여 구성된다.
바람직하게는, 제1 및 상기 추가 선택 애니메이션들은 일련의 애니메이션에 대하여 선택되며, 연속적인 추적은 일련의 애니메이션들에 대하여 서버 측에서 수행된다.
바람직하게는 다수의 애니메이션들은 모션-캡쳐 데이터에서 유도된다. 따라서 모션-캡쳐 스튜디오에서 연기자 동작 관련 데이터는 이동 애니메이션을 위한 소스 데이터로 사용될 수 있다.
바람직하게는, 본 발명은:
상기 가상환경에서 제2 개체의 추적 관련 제2 개체 추적데이터를 서버 측에 저장하는 단계;
상기 가상환경에서 상기 제2 개체의 사용자-제어 관련 개체-제어 입력데이터를 제1 클라이언트에서 원격에 있는 제2 클라이언트로부터 상기 서버 측에서 수신하는 단계;
상기 제2 클라이언트로부터 수신된 상기 입력데이터에 기초하여, 제2 다수의 애니메이션들로부터 상기 제2 클라이언트 측에 동작되는 제1 애니메이션을 상기 서버 측에서 선택하는 단계;
상기 가상환경에서 상기 제2 클라이언트에서 동작되는 제1 선택 애니메이션을 식별하는 데이터를 상기 서버로부터 상기 제2 클라이언트로 전송하는 단계;
상기 제2 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 하나 이상의 개체 변화 특성을 검색하는 단계; 및
상기 제2 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 상기 검색된 개체 변화 특성에 기초하여, 상기 저장된 제2 개체 추적데이터를 갱신하는 단계를 포함하여 구성된다.
따라서, 본 발명은 네트워크를 통하여 멀티-사용자 기능성을 제공하기 위하여 적용될 수 있다. 각 클라이언트는 다른 클라이언트와 원격일 수 있고 각각은 가상환경에서 하나 이상의 개체를 제어하기 위하여 사용자에 의해 조작될 수 있다. 하나 이상의 서버는 클라이언트와 통신하여 이들 각각의 개체들 애니메이션을 제어하고, 개체들은 선택된 애니메이션들에 기초하여 하나 이상의 서버에서 추적될 수 있다.
바람직하게는, 본 방법은 상기 저장된 제2 개체 추적데이터에 기초하여 상기 제2 클라이언트 측에서 동작되는 상기 제1 애니메이션을 선택하는 단계를 더욱 포함한다. 따라서, 서버는 하나 이상의 개체에 대한 적합한 애니메이션들을 선택하기 위하여 저장된 추적데이터를 사용할 수 있다. 따라서 애니메이션 선택은 가상환경에서 다수의 개체들 이동을 알고 수행될 수 있다.
바람직하게는, 제1 다수 및 제2 다수 애니메이션들은 하나 이상의 공동되는 개체 애니메이션들을 포함한다. 따라서, 각각의 클라이언트는 동일하거나 유사한 애니메이션들 세트를 가질 수 있고 이를 통하여 이들 관련 개체가 동작될 수 있다.
바람직하게는, 상기 제1 개체 및 상기 제2 개체가 상기 가상환경에서 상호 작용한다면 상기 제1 다수 애니메이션들에서 상기 애니메이션 선택은 상기 제2 다수 애니메이션들에서 상기 애니메이션 선택에 의존된다.
따라서, 각 개체의 사용자-제어에 따라서, 각 클라이언트와 관련된 개체들은 가상환경에서 서로 상호 작용되도록 동작될 수 있다. 따라서 서버는 이에 따라 각 개체들을 위한 애니메이션을 선택할 수 있다.
본 발명의 제2 측면에 의하면, 가상환경에서 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법에 있어서, 상기 사용자-제어는 클라이언트-기반이며,
제1 다수의 개체 애니메이션들로 이루어진 애니메이션 데이터를 제 1클라이언트 측에 저장하는 단계;
가상환경에서 제1 개체의 추적 관련 제1 개체 추적데이터를 상기 제1 클라이언트 측에서 처리하는 단계;
상기 가상환경에서 제1 개체의 사용자-제어 관련 개체-제어 입력데이터를 상기 제1 클라이언트에서 서버로 전송하는 단계;
상기 제1 다수의 애니메이션들에서 개체 애니메이션을 식별하는 제1 선택 데이터를 포함하는 제1 데이터를 상기 서버로부터 상기 제1 클라이언트 측에서 수신하는 단계;
상기 가상환경에서 상기 제1 수신 데이터, 상기 제1클라이언트에 저장된 상기 애니메이션 데이터 및 상기 제1 개체 추적데이터에 기초하여 상기 제1 클라이언트 측에 상기 제1 개체를 동작시키는 단계를 포함하여 구성된다.
따라서, 본 발명은 클라이언트 측에 저장된 애니메이션 데이터에 따라 가상환경에서 사용자-제어 개체가 동작되도록 한다. 사용자는 클라이언트를 통하여 개체에 대한 소망 동작을 입력할 수 있고, 이후 서버로 전송될 수 있다. 이후 클라이언트는 어떠한 개체 이동 애니메이션이 서버에 의해 식별되었는지를 알려주는 데이터를 서버로부터 수신한다. 클라이언트는 식별된 애니메이션에서 개체를 추적하기 위하여 개체 추적데이터를 처리할 수 있다.
따라서 서버는 가상환경에서 개체 추적을 유지할 수 있고 또한 클라이언트 측에서 개체를 동작시키는데 사용되는 다수의 개체 애니메이션들을 알 수 있다. 개체 이동을 시뮬레이션 하는 애니메이션 데이터를 이용함으로써, 가상환경에서 개체 애니메이션은 더욱 사실적으로 시뮬레이션 될 수 있다.
바람직하게는, 본 방법은 상기 서버로부터 상기 제1 개체 추적데이터를 상기 제1 클라이언트 측에서 수신하는 단계를 포함한다. 따라서, 클라이언트는 서버에 의해 개체 추적데이터가 제공될 수 있다.
바람직하게는, 본 방법은 상기 클라이언트 측에 상기 제1 개체 추적데이터를 저장하는 단계를 포함하며, 상기 개체 추적데이터 처리단계는 상기 클라이언트에 상기 저장된 것들로부터 상기 개체 추적데이터를 검색하는 단계를 포함한다. 따라서, 클라이언트는 자체에 개체 추적데이터를 저장할 수 있다. 클라이언트는 서버로부터 개체 추적데이터를 수신하는 대신 개체 추적데이터 자체 버전을 유지할 수 있다. 달리, 또는 추가로, 클라이언트는 서버로부터 개체 추적데이터를 수신하고 개체를 동작시키기 위하여 이를 직접 이용하거나 또는 클라이언트는 서버로부터 수신한 개체 추적데이터를 이용하여 자체 저장된 개체 추적데이터를 갱신할 수 있다.
바람직하게는 본 방법은 클라이언트 측에서 상기 식별된 개체 애니메이션 관련 개체 변화 특성을 처리하는 단계;
상기 처리된 개체 변화 특성에 기초하여 상기 제1 개체 추적데이터를 갱신하는 단계; 및
상기 갱신된 제1 개체 추적데이터에 기초하여 상기 가상환경에서 상기 제1 개체를 상기 제1 클라이언트 측에서 더욱 동작시키는 단계를 포함한다.
따라서 클라이언트는 식별된 애니메이션 관련 개체 변화 특성을 처리할 수 있다. 개체 변화 특성을 이용함으로써 클라이언트에 애니메이션 과정에서의 개체 가변 관련 정보가 제공된다.
바람직하게는, 본 방법은 상기 개체 변화 특성을 상기 서버로부터 상기 클라이언트 측에서 수신하는 단계를 포함한다. 따라서 클라이언트는 서버에 의해 개체 변화 특성이 제공될 수 있다.
바람직하게는, 본 방법은 상기 클라이언트 측에 상기 개체 변화 특성을 저장하는 단계를 포함하며, 상기 개체 변화 특성을 처리하는 단계는 상기 클라이언트 측 상기 저장된 것에서 개체 변화 특성을 검색하는 단계를 더욱 포함한다. 따라서 클라이언트는 자체에 개체 변화 특성을 저장할 수 있다. 클라이언트는 개체 변화 특성 자체 버전을 유지하거나 서버에 의해 개체 변화 특성이 제공될 수 있고, 이 경우 클라이언트는 저장된 개체 변화 특성을 갱신할 수 있다.
본 발명의 제3 측면에 의하면, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법이 제공되며, 본 방법은:
개체 개별적 신체-부분들에 대한 신체-부분 동작데이터를 포함한 개체 이동 애니메이션으로 구성된 모션-캡션 데이터에서 유도된 애니메이션 데이터를 저장하는 단계;
상기 가상환경에서 개체의 사용자-제어 이동 관련 개체-제어 입력데이터를 수신하는 단계; 및
상기 저장된 애니메이션 데이터에 따라, 지점 및 방향이 상기 신체-부분 동작데이터 최소 일부에 의해 정의되는 제3자 시각적 관점으로 상기 가상환경에서 상기 개체를 동작시키는 단계를 포함하여 구성된다.
따라서 사용자는 제3자 시각으로 가상환경에서 개체 이동을 관망할 수 있다. 사용자가 개체를 보는 이러한 관망 각도 또는 카메라 각도는 신체-부분 동작데이터에 따라 개체를 추적할 수 있다.
본 발명은 가상환경에서 개체의 이동 애니메이션 과정에서 제3자 시각적 관망을 제공하기 위하여 사용될 수 있다. 애니메이션 데이터는 모션-캡쳐 스튜디오에 기록된 연기자 모션에서 유도될 수 있다. 신체-부분 동작데이터는 모션-캡션 데이터에서 유도되어 최소한 부분적으로 제3자 시각적 관점을 정의하기 위하여 사용되어 가상환경에서 개체의 애니메이션 과정에서 더욱 안정적이고 사실적 관망을 제공할 수 있다.
바람직하게는, 모션-캡션 데이터는 다수의 모션-캡쳐 프레임들을 포함하고, 제3자 시각적 관점의 지점 및 방향은 신체-부분에 대한 신체-부분 동작데이터로부터 정의되고, 이는 모션-캡쳐 프레임들 간 유연화에 의해 상기 모션-캡쳐 데이터로부터 유도된다.
따라서, 애니메이션 과정에서 제3자 시각적 관점을 제공하기 위하여 모션-캡션 데이터의 프레임들 간 유연화가 적용될 수 있다. 이를 통하여 제3자 관망 시각에 바람직하지 않게 나타나는 모션-캡쳐 데이터 연관된 임의의 진동, 떨림, 흔들림 등을 피할 수 있다. 이러한 바람직하지 않은 효과는 예를들면 모션이 기록될 때 이리저리 움직이는 하나 이상의 연기자 부분들 예를들면 주행 액션이 기록될 때 연기자 엉덩이 뼈대의 흔들림으로 인한 것일 수 있다.
바람직하게는, 개체 이동 애니메이션은 다수의 키-프레임들을 포함하며, 키-프레임을 위한 제3자 시각적 관점 지점은 상기 하나 이상의 모션-캡쳐 프레임에서 상기 신체-부분 지점으로부터 유도할 수 있고, 키-프레임을 위한 제3자 시각적 관점 방향은 상기 하나 이상의 모션-캡쳐 프레임에서 상기 신체-부분 방향으로부터 유도할 수 있다.
바람직하게는, 하나 이상의 모션-캡션 프레임은 상기 다수의 모션-캡션 프레임들에서 최초 및/또는 최종 모션-캡션 프레임들을 포함한다.
따라서, 애니메이션에서 키-프레임을 위한 제3자 시각적 관점의 지점 및/또는 방향은 하나 이상의 모션-캡쳐 프레임 예를들면 기록된 액션과 관련된 최초 및/또는 최종 모션-캡쳐 프레임에서 신체-부분 지점 및/방향으로부터 유도될 수 있다.
바람직하게는, 키-프레임에 위한 제3자 시각적 관점의 방향은 상기 하나 이상의 모션-캡쳐 프레임들에서 상기 신체-부분 방향 관련 하나 이상의 방향을 정의하는 것을 포함한다.
바람직하게는, 키-프레임을 위한 제3자 시각적 관점의 방향을 유도하는 것은 상기 가상환경에서 하나 이상의 신체-부분 방향 및 기준 사이 관계를 결정하는 것을 포함한다.
바람직하게는, 기준은 상기 가상환경에서 기준방향을 포함한다.
바람직하게는, 관계는 상기 신체-부분 방향 및 상기 기준방향 사이 하나 이상의 각도를 포함한다.
따라서 하나 이상의 모션-캡쳐 프레임에서 신체-부분 방향은 애니메이션에서 하나 이상의 키-프레임에서의 개체 방향을 계산하기 위하여 사용될 수 있다. 신체-부분 방향은 가상환경에서 기준방향과 비교될 수 있다. 이것은 가상환경에서 신체-부분에 의해 형성되는 축 방향 및 기준방향 사이 관계 예를들면 각도 결정을 포함할 수 있다.
본 과정은 신체-부분 동작 데이터의 정규화 형태로 이해될 수 있고, 이에 따라 신체-부분 방향은 가상환경에서 기준방향과 관계하여 정규화된다. 모션-캡쳐 동작에서 연기자가 마주 보는 진정한 방향은 전형적으로 알 수 없을 것이다. 본 발명의 정규화 과정을 통하여 가상환경에서 애니메이션 개체가 마주 보는 방향이 계산된다. 유도된 개체 방향은 이후 개체 애니메이션 과정에서 안정적이고 사실적인 제3자 시각 관점을 제공하기 위하여 사용될 수 있다.
애니메이션 출발 및/또는 종료에서 개체가 마주 할 또는 마주 보아야 하는 방향을 서버가 계산할 때 개체 방향 지식이 서버에 의해 사용될 수 있고, 본 지식은 모션-캡쳐 데이터로부터 유래하지 않을 수 있다. 이는 특히 다수의 애니메이션들이 함께 연속되어야 하는 경우 유용할 수 있다.
바람직하게는 하나 이상의 각도들이 키-프레임을 위한 상기 제3자 시각적 관점의 방향을 결정하기 위하여 사용된다. 따라서 하나 이상의 신체-부분 및 가상환경 기준방향 사이 계산되는 하나 이상의 각도들은 애니메이션에서 제3자 시각적 관점을 결정하기 위하여 사용될 수 있다.
바람직하게는, 상기 애니메이션에서 키-프레임을 위한 제3자 시각적 관점의 방향은 상기 애니메이션에서 둘 이상의 다른 키-프레임들의 제3자 시각적 관점 방향을 이용하여 계산된다. 따라서, 제3자 시각적 관점 방향은 각 개별적 키-프레임에 대한 신체-부분 방향으로부터 직접 계산될 필요가 없다. 대신, 제3자 시각적 관점 방향은 예를들면 단지 두 키-프레임들에 대한 신체-부분 방향 데이터로부터 직접 계산될 수 있고, 이들 두 키-프레임들에 대한 제3자 시각 관점 방향은 애니메이션의 다른 키-프레임들에서 제3자 시각 관점 방향을 계산하기 위하여 사용될 수 있다.
바람직하게는, 둘 이상의 다른 키-프레임들은 상기 애니메이션에서 최초 및 최종 키-프레임들을 포함한다. 최초 및 최종 키-프레임들의 제3자 시각 관점 방향은 예를들면 애니메이션에서 다른 모든 키-프레임들의 제3자 시각적 관점 방향을 계산하기 위하여 사용될 수 있다.
개체 방향이 애니메이션의 최초 및 최종 키-프레임들의 신체-부분 방향 데이터로부터 계산된다면, 이러한 정보는 하나 이상 또는 모든 중간 키-프레임들의 개체 방향을 계산하기 위하여 사용될 수 있다. 이것은 중간 프레임들에 걸쳐 최초 및 최종 키-프레임 개체 방향을 유연화하는 것을 포함할 수 있다. 이러한 유연화는 중간 키-프레임들에 걸쳐 최초 프레임 내지 최종 키-프레임의 개체 방향을 예를들면 선형보간으로 평균하는 것에 의해 수행될 수 있다.
바람직하게는, 키-프레임을 위한 상기 제3자 시각적 관점 지점을 유도하는 것은 하나 이상의 모션-캡쳐 프레임에서 상기 신체-부분의 지점을 변위하는 것을 포함한다.
본 과정은 신체-부분 동작 데이터의 정규화 형태로 이해될 수 있고, 이에 따라 신체-부분 지점은 가상환경에서 일 지점과 관계하여 정규화된다. 모션-캡쳐 동작에서 연기자가 놓이는 진정한 지점은 전형적으로 알 수 없을 것이다. 본 발명의 정규화 과정을 통하여 애니메이션 과정에서 가상환경에서 개체 지점이 계산된다. 유도된 개체 지점은 이후 개체 애니메이션 과정에서 안정적이고 사실적인 제3자 시각 관점을 제공하기 위하여 사용될 수 있다.
정규화 과정에서 변위는 가상환경에서 개체의 수직 높이 평면 (height plane)에서 고정된 정도의 감산을 포함할 수 있다. 제3자 시각적 관점 지점에 대한 부의 높이를 피하기 위하여, 변위는 상기 가상환경에서 예를들면 가상환경에서 지면의 높이와 같은 기준 높이에 의해 제한될 수 있다.
바람직하게는, 개체는 골격 캐릭터이다. 따라서 개체는 뼈대의 골격을 가질 수 있고, 각 개체 뼈대는 모션-캡쳐 스튜디오에서 연기자의 해당 뼈대들 동작을 나타내는 하나 이상의 신체-부분 부착 센서들을 가진다. 각 뼈대의 개별 동작들은 기록되고 이에 따라 개체를 동작시키기 위하여 사용된다.
바람직하게는, 신체-부분들은 상기 개체의 엉덩이-뼈대에 해당되는 두 신체-부분들을 포함한다. 따라서, 연기자의 엉덩이-뼈대 동작은 가상환경에서 개체 애니메이션 과정에서 제3자 시각적 관점을 유도하기 위하여 사용된다. 모션-캡쳐 데이터는 전형적으로 연기자의 엉덩이-뼈대 동작 관련 데이터를 포함하고, 이는 애니메이션에서 개체의 지점 및 방향을 계산하기 위하여 사용될 수 있다.
본 발명의 4번째 측면에 의하면, 본 발명은 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법을 제공하며, 본 방법은:
각각이 관련 개체 변화 특성을 가지는 다수의 개체 이동 애니메이션들을 포함하는 애니메이션 데이터 저장 단계;
가상환경에서 사용자-제어 이동 관련 개체-제어 입력데이터를 수신하는 단계;
상기 입력데이터에 기초하여 상기 다수의 애니메이션들로부터 개체 이동 애니메이션을 선택하는 단계 및 상기 선택된 애니메이션 관련 개체 변화 특성이 변경되도록 상기 선택된 애니메이션을 변경하는 단계; 및
상기 변경된 애니메이션에 따라 상기 가상환경에서 개체를 동작시키는 단계를 포함하여 구성된다.
개체-제어 입력데이터가 수신될 때, 적합한 개체 이동 애니메이션은 저장된 애니메이션 데이터로부터 선택될 수 있다. 그러나, 선택된 애니메이션은 가상환경에서 개체를 동작시키기 위하여 사용되기 전에 개체가 더욱 사실적으로 동작되도록 변경될 수 있다. 개체 이동 애니메이션은 개체가 애니메이션 과정에서 가변되는 것과 관련된 개체 변화 특성과 연관될 수 있다. 따라서 선택된 애니메이션에 해당되는 저장된 애니메이션 데이터에 의해 직접 개체를 동작시키는 대신, 선택된 애니메이션은 먼저 변경되어 관련 개체 변화 특성을 변화시킬 수 있다.
이러한 과정은 애니메이션을 더욱 사실적으로 룩앤필 하도록 예를들면 애니메이션이 가상환경에서 동작되는 다른 개체 또는 객체의 애니메이션과 일치되도록 개체의 지점 및 방향을 조정하기 위하여 사용될 수 있다.
수평적 및 수직적 변위, 방향, 타이밍 등에 대하여 모든 잠재적 개체 이동 변화에 대한 애니메이션 데이터를 제공하는 것은 비현실적이다. 이는 애니메이션 데이터가 모션-캡쳐 데이터로부터 유도되는 경우 연기자가 소정 동작 형태의 다양한 변화를 임의의 높은 정확도 또는 정밀도를 가지고 연기하는 것이 어렵기 때문에 특히 그러하다.
따라서 본 발명에 의하면, 개체 애니메이션은 정확하게 제공된 애니메이션들로 제한될 필요가 없고 선택된 애니메이션은 개체의 소망 동작에 더욱 가깝게 일치하도록 변경될 수 있다. 이는 예를들면 개체가 가상환경에서 다른 개체 또는 객체와 상호 작용하기 위하여 애니메이션에서 특정 지점, 각도 및 시간에 바람직하게 도착하여야 하는 경우 발생될 수 있다.
바람직하게는, 개체 변화 특성은 상기 개체 이동 애니메이션에서 상기 개체의 지점 및/또는 방향을 포함하고 상기 변경은 상기 선택된 애니메이션에서 상기 개체의 지점 및/또는 방향을 변경하는 것을 포함한다. 따라서, 애니메이션이 선택될 때, 개체 변화 특성이 체크되어 선택된 애니메이션이 개체의 소망 동작에 충분히 근접하고 따라서 가상환경에서 직접 애니메이션으로 적합한지가 확인될 수 있다. 만일 애니메이션이 직접 애니메이션으로 수용될 수 없다면 예를들면 개체의 지점 및/또는 방향이 개선되어야 한다면, 애니메이션은 가상환경에서 개체를 동작시키기 위하여 사용되기 전에 애니메이션 개체 변화 특성을 변형하도록 변경될 수 있다.
바람직하게는, 개체 이동 애니메이션들은 다수의 키-프레임들을 포함하며, 상기 개체 변화 특성은 상기 개체 이동 애니메이션들에서 제1 및 제2 키-프레임들 간 상기 개체의 지점 및/또는 방향 변화를 포함한다. 따라서, 예를들면 애니메이션에서 소정 시점들 간 개체 지점 및/또는 방향과 같은 개체 변화 특성의 변화는 애니메이션이 어느 정도 소망 개체 동작에 이르렀는지에 대한 측정으로 사용될 수 있다.
바람직하게는, 개체 이동 애니메이션들은 상기 개체의 개별적 신체-부분들을 위한 신체-부분 동작을 포함하며, 상기 개체 이동 애니메이션들 관련 개체 변화 특성은 상기 개체의 상기 하나 이상의 신체-부분들 지점 및/또는 방향을 포함한다.
신체-부분 동작이 소망 개체 액션에 더욱 가깝게 일치되도록, 애니메이션의 개체 변화 특성이, 애니메이션에서 하나 이상의 신체-부분들의 지점 및/또는 방향이 개선되어야 하는 것으로 표시되면, 개체가 가상환경에서 동작되기 전에 애니메이션에서 하나 이상의 신체-부분의 지점 및/방향이 변경될 수 있다.
바람직하게는, 상기 선택된 애니메이션의 변경은 상기 선택된 애니메이션의 상기 개체의 하나 이상의 신체-부분들의 지점 및/또는 방향 변경을 포함한다. 따라서, 개체의 하나 이상의 신체-부분의 지점 및/또는 방향을 변경함으로써 애니메이션의 룩앤필이 개선될 수 있다.
바람직하게는, 개체 이동 애니메이션 관련 개체 변화 특성은 상기 제1 및 제2 키-프레임들 간 상기 하나 이상의 신체-부분의 지점 및/또는 방향 변화를 포함한다. 따라서 애니메이션에서 소정 시점들 간 개체의 하나 이상의 신체-부분들의 지점 및/또는 방향과 같은 개체 변화 특성의 변화는 애니메이션이 어느 정도 소망 개체 동작에 이르렀는지에 대한 측정으로 사용될 수 있다.
바람직하게는, 상기 제1 및/또는 상기 제2 키-프레임들은 상기 애니메이션들에서 최초 및/또는 최종 키-프레임들을 포함한다. 따라서, 애니메이션에서 개체 또는 개체의 하나 이상의 신체-부분의 출발 및 종료 지점 및/또는 방향은, 애니메이션이 본 개체에 대하여 이전 및 이후 애니메이션들 또는 가상환경에서 기타 개체 및/또는 객체들과 관련된 애니메이션들과 함께 슬라이스 되는 것을 개선하기 위하여 조정될 수 있다.
바람직하게는, 저장된 애니메이션 데이터는 객체 애니메이션 데이터를 포함하고, 상기 객체 애니메이션 데이터는 상기 개체 이동 애니메이션들 내에서 하나 이상의 객체들 이동과 관련되고, 상기 변경은 상기 하나 이상의 객체와 관계하여 상기 하나 이상의 신체-부분의 지점 및/또는 방향의 변경을 포함한다.
따라서, 변경은 개체 또는 예를들면 공과 같은 객체에 대한 개체의 하나 이상의 신체-부분들의 지점 또는 방향, 또는 그 역의 변경을 포함하여, 개체는 예를들면 공을 차고 헤딩하기 위하여 공과 더욱 사실적 방식으로 상호 작용할 수 있다.
바람직하게는, 변경은 이것이 적용되어야 하는 개체 이동 애니메이션의 키-프레임들 서브세트를 식별하는 것을 포함한다. 변경은 전체 애니메이션 보다는 애니메이션에서 키-프레임들 서브 세트에 더욱 현실적으로 적용될 수 있다. 이것은 대다수의 회전 또는 기타 이러한 개체 동작이 애니메이션에서 단지 몇 키-프레임들에 걸쳐 발생하는 예에서 유용할 수 있고, 이 경우 변경은 이들 몇 키-프레임들에만 최적으로 적용될 수 있다. 애니메이션 서브세트는 클라이언트 및/또는 서버 측에서 애니메이션 데이터 저장에 앞서 식별될 수 있거나 영상 처리 기법을 이용하여 서버 또는 클라이언트에 의해 식별될 수 있다.
바람직하게는, 키-프레임들 서브세트는 상기 개체의 주어진 신체-부분이 주어진 지점 및/또는 방향에 있는 키-프레임들에 의해 식별된다. 따라서 서브세트는 예를들면 개체의 발이 지면에 있거나 소정 방향 등에 있는 키-프레임에 의해 식별될 수 있다.
바람직하게는, 키-프레임들 서브세트는 주어진 객체가 주어진 지점 및/또는 방향에 있는 키-프레임들에 의해 식별된다. 따라서 서브세트는 예를들면 공과 같은 객체가 지면에 있거나 개체 등 높이와 비교하여 소정 높이에 있는 키-프레임에 의해 식별될 수 있다.
바람직하게는, 주어진 신체-부분은 상기 개체의 발 및/또는 머리를 포함하고, 상기 주어진 객체는 공을 포함하며, 상기 변경은 상기 공의 지점 및/또는 방향과의 관계에서 상기 발 또는 상기 머리의 지점 및/또는 방향을 변경하는 것을 포함한다. 따라서, 변경은 축구 경기에서 플레이어와 같이 스포츠 게임에서 사용자에 의해 제어되는 개체를 더욱 사실적으로 동작시키는데 적용될 수 있다.
바람직하게는, 변경은 키-프레임들의 상기 서브세트에서 상기 개체의 하나 이상의 다리 신체-부분들의 지점 및/또는 방향을 변경시키기 위하여 다리의 역운동학을 사용하는 것을 포함한다. 따라서 예를들면 변경이 개체 다리가 지면에 있는 시점을 변경시키는 것을 포함하면, 개체 다리의 지점 및 방향은 변경되어 변경된 애니메이션에서 다리는 더욱 자연스럽게 보인다. 개체의 허벅지, 무릎, 종아리, 발목 또는 발 등은 이러한 다리 역운동학 처리에 포함될 수 있다.
바람직하게는, 변경은 상기 개체 이동 애니메이션에서 하나 이상의 키-프레임의 타이밍을 변경하는 것을 포함한다. 따라서 변경은 예를들면 애니메이션의 가속 또는 감속화를 포함하여 개체는 더욱 자연스러운 방식으로 객체 또는 기타 개체에 도착하거나 떠날 수 있다. 예를들면 이는 공을 차거나 다른 개체 등에 대한 태클을 포함한다.
본 발명의 다섯 번째 측면에 의하면, 본 발명의 상기 측면들에 의한 데이터 통신 네트워크를 통하여 실행되는 애니메이션을 포함한 컴퓨터-구현되는 멀티-플레이어 스포츠 게임이 제공되며, 각 플레이어는 클라이언트를 통하여 상기 네트워크 상에서 이루어지는 게임에서 하나 이상의 개체를 제어한다.
따라서 본 발명은 각 개체들의 이동 애니메이션을 제어하는 클라이언트들 및 서버를 통하여 개체를 제어하는 다수의 사용자들과 인터넷을 통하여 경기되는 대규모 멀티-플레이어 온-라인 (MMO) 게임에서 플레이어를 동작시키기 위하여 사용될 수 있다.
본 발명의 여섯 번째 측면에 의하면, 본 발명의 제1, 제2, 제3 및 제4 측면 중 어느 하나의 방법을 실행하기 위하여 적합한 장치가 제공된다.
본 발명의 일곱 번째 측면에 의하면, 본 발명의 제1, 제2, 제3 및 제4 측면 중 어느 하나의 방법을 실행하기 위하여 적합한 컴퓨터 소프트웨어가 제공된다.
본 발명의 추가적인 특징 및 장점들은 단지 예시로 주어지고 도면을 참조하여 설명되는 본 발명의 하기 바람직한 예의 설명으로부터 명백하여 질 것이다.
도 1은 본 발명의 예에 의한 네트워크 게임 환경을 위한 시스템 다이어그램이다.
도 2는 본 발명의 예에 의한 게임용 데이터 파일 생성 단계들을 보이는 흐름도이다.
도 3은 본 발명의 예에 의한 모션-캡쳐 데이터 편집시스템을 보인다.
도 4는 본 발명의 예에 의한 모션-캡션 데이터 편집 단계들을 보이는 흐름도이다.
도 5a 및 5b는 본 발명의 예에 의한 키-프레임을 위한 개체 방향 데이터 계산을 보인다.
도 6은 본 발명의 예에 의한 서버 기능 요소들을 보인다.
도 7은 본 발명의 예에 의한 클라이언트 기능 요소들을 보인다.
도 8은 본 발명의 예에 의한 서버-기반 애니메이션 데이터 저장장치를 보인다.
도 9는 본 발명의 예에 의한 클라이언트-기반 애니메이션 데이터 저장장치를 보인다.
도 10은 본 발명의 예에 의한 개체 애니메이션이 진행되는 동안 클라이언트 및 서버 상에서 수행되는 단계들을 보이는 흐름도이다.
도 11a 및 11b는 본 발명의 예에 의한 애니메이션 키-프레임들 변경을 보이는 것이다.
도 2는 본 발명의 예에 의한 게임용 데이터 파일 생성 단계들을 보이는 흐름도이다.
도 3은 본 발명의 예에 의한 모션-캡쳐 데이터 편집시스템을 보인다.
도 4는 본 발명의 예에 의한 모션-캡션 데이터 편집 단계들을 보이는 흐름도이다.
도 5a 및 5b는 본 발명의 예에 의한 키-프레임을 위한 개체 방향 데이터 계산을 보인다.
도 6은 본 발명의 예에 의한 서버 기능 요소들을 보인다.
도 7은 본 발명의 예에 의한 클라이언트 기능 요소들을 보인다.
도 8은 본 발명의 예에 의한 서버-기반 애니메이션 데이터 저장장치를 보인다.
도 9는 본 발명의 예에 의한 클라이언트-기반 애니메이션 데이터 저장장치를 보인다.
도 10은 본 발명의 예에 의한 개체 애니메이션이 진행되는 동안 클라이언트 및 서버 상에서 수행되는 단계들을 보이는 흐름도이다.
도 11a 및 11b는 본 발명의 예에 의한 애니메이션 키-프레임들 변경을 보이는 것이다.
게임 시스템
도 1은 본 발명의 예에 의한 네트워크 게임환경을 위한 시스템 다이어그램을 도시한 것이다. 서버 100는 데이터 통신 네트워크 104를 통하여 다수의 클라이언트 106, 108, 110과 연결된다. 클라이언트들 106, 108, 110은 개인용 컴퓨터 (PC), 휴대 정보 단말기 (PDA), 휴대용 컴퓨터, 또는 데이터 처리 및 게임 기능을 제공할 수 있는 기타 임의 전산장치를 포함할 수 있다. 서버 100 및 클라이언트들 106, 108, 110 각각은 데이터 저장장치들 102, 112, 114, 116에 접근할 수 있고, 여기에는 게임 환경 관련 데이터가 저장된다. 데이터 저장장치들은 서버 또는 클라이언트들 내장 또는 외장형일 수 있다.
서버 100은 네트워크 104를 통하여 멀티-플레이어 게임을 제어한다. 게임은 클라이언트들 106, 108, 110 측 사용자들에 의해 캐릭터 또는 아바타 등과 같은 개체들이 제어되는 가상세계 또는 기타 이러한 가상환경을 포함한다. 클라이언트들 106, 108, 110 사용자는 키보드, 마우스, 조이스틱 또는 기타 입력장치를 통하여 가상환경에서 개체들이 동작하도록 개체-제어 데이터를 입력한다.
서버 100은 개체들이 참여하는 게임에 대한 가상환경을 시뮬레이션하고 각각의 클라이언트로부터의 입력데이터를 처리하여 개체들이 동작하고 반응하는 방법을 결정한다. 이러한 시뮬레이션은 멀티-플레이어 스포츠 게임 예를들면 축구 또는 야구 경기 또는 어드벤처 게임을 포함한다.
애니메이션 편집시스템
도 2는 본 발명에 의한 이동 애니메이션용 데이터 파일 생성 단계들을 보이는 흐름도이다. 단계 200은 게임에서 개체가 수행하는 이동 애니메이션을 정의하기 위하여 연기자 동작이 기록되는 모션-캡쳐 스튜디오에서의 모션-캡쳐 데이터 생성을 포함한다. 단계 202에서 모션-캡쳐 데이터는 컴퓨터 화면 또는 기타 그래픽 표시장치에 데이터가 표시되는3D 그래픽 소프트웨어로 보내진다. 모션-캡쳐 스튜디오로부터 수신된 모션-캡쳐 데이터는 모션-캡쳐 데이터 파일을 처리할 수 있는 3D 그래픽 기능이 구비된 컴퓨터 소프트웨어 어플리케이션 예를들면 오토데스크 회사에서 개발된 3ds MaxTM (3D 스튜디오 MaxTM라고도 알려짐)으로 표시될 수 있다. 단계 204은 본 발명에 의한 애니메이션을 생성하기 위한 모션-캡쳐 데이터 편집을 포함한다. 모션-캡쳐 데이터 편집은 하기 도 3 및 4를 참조하여 더욱 상세하게 기술된다. 이후 단계 206에서 편집 데이터는 게임 구현에 요구되는 기타 게임 데이터 파일들과 함께 수집된다.
이후 단계 208에서 자동 빌드 프로시저가 적용되어 가상환경에서 개체를 동작시키기 위한 클라이언트 및 서버용 데이터 파일을 생성한다. 데이터 통신 네트워크를 통하여 경기되고 클라이언트 장치를 통하여 하나 이상의 개체를 제어하는 다수의 플레이어가 관여되는 서버 제어 게임에서 개체가 동작된다. 빌드 프로시저 일부는 지원되는 모든 개체에 대한 애니메이션을 정의하는 단일 데이터 파일을 생성한다. 스포츠 게임의 예에서는, 이러한 파일은 하나 이상의 애니메이션에서 공, 퍽 등의 움직임과 관련된 데이터를 포함할 수 있다. 빌드 프로시저는 서버 및 각 클라이언트 양자에 저장되고 사용될 수 있는 출력 데이터를 생성한다.
도 3은 본 발명의 예에 의한 모션-캡쳐 데이터 편집시스템을 도시한다. 모션-캡쳐 데이터 302는 편집시스템 300으로 입력되며, 여기에서 모션-캡쳐 데이터가 편집되어 애니메이션 데이터 파일 304이 출력된다. 편집시스템 300은, 모션-캡쳐 데이터를 처리할 수 있는, 예를들면 상기 3D 스튜디오 MaxTM와 같은 3D 그래픽 소프트웨어306를 포함한다. 모션-캡쳐 데이터를 편집할 수 있는 애니메이션 편집모듈 308은 3D 그래픽 편집자와 인터페이스 된다. 애니메이션 편집모듈은 3D 그래픽 소프트웨어 306에 플러그인 형태일 수 있다. 개체 변화 특성 추출기 310은 3D 그래픽 소프트웨어 306 및 애니메이션 편집모듈 308 양자와 인터페이스 되어 모션-캡쳐 데이터로부터 개체 변화 특성 308을 추출한다. 개체 변화 특성은 하기 상술된다.
이동 유연화(
Movement
Smoothing
)
도 4는 본 발명의 예에 의한 모션-캡쳐 데이터 편집 단계들을 보이는 흐름도이다. 편집 과정은 모션-캡쳐 데이터를 본 발명에 따라 이동 애니메이션용 애니메이션 데이터 파일로 전환하는 것이다. 애니메이션 데이터 파일은 각 개체 애니메이션에 대한 다수의 키-프레임들을 포함한다. 애니메이션에서 각 키-프레임에 대하여 필요한 데이터는 모션-캡쳐 데이터로부터 직접 유도할 필요가 없다. 대신, 애니메이션에서 하나 이상의 키-프레임 예를들면 최초 및 최종 키-프레임의 데이터는 계산될 수 있고, 중간 키-프레임에 필요한 데이터는 하기 유연화 과정에 의해 최초 및 최종 키-프레임으로부터 유도될 수 있다.
애니메이션 편집은 모션-캡쳐 데이터에서 하나 이상의 모션-캡쳐 프레임 식별로부터 시작된다. 임의 기타 모션-캡쳐 프레임들 또는 단일 모션-캡쳐 프레임이 식별될 수 있지만, 본 예에서는, 최초 및 최종 모션-캡쳐 프레임이 단계 400에서 식별된다. 최초 및 최종 모션-캡쳐 프레임에서 개체 포즈, 즉 개체 지점 및 방향이 단계 402에서 식별된다. 단계 404에서 개체가 (상기 3D 스튜디오 MaxTM 와 같은) 3D 그래픽 소프트웨어 어플리케이션으로 생성된 3D 환경에 배치된다. 예를들면 개체는 3D 그래픽 소프트웨어에 의해 정의된 가상환경의 관념상 원점에 배치될 수 있다. 개체 방향은 3D 그래픽 소프트웨어에 의해 정의된 가상환경의 기준방향과 정렬될 수 있다.
애니메이션에서 최초 키-프레임을 위한 개체 지점 및 개체 방향 데이터가 단계 406에서 계산된다. 애니메이션에서 최종 키-프레임을 위한 개체 지점 및 개체 방향 데이터가 단계 408에서 계산된다. 애니메이션의 최초 및 최종 키-프레임들 사이에 있는 하나 이상의 중간 키-프레임을 위한 개체 지점 및 개체 방향 데이터는 단계 410에서 계산된다. 중간 키-프레임을 위한 개체 지점 및 개체 방향 데이터는 최초 및 최종 키-프레임으로부터의 개체 지점 및 개체 방향 데이터를 이용하여 계산될 수 있다.
본 발명의 예에서, 엉덩이 뼈대 동작과 관련된 모션-캡쳐 데이터가 처리되어 계층구조에서 엉덩이 뼈대 상부에 놓이는 새로운 유연화-동작 뼈대와 관련된 데이터가 생성된다. 유연화-동작 뼈대의 동작은 가상환경에서 지면상 연기자 지점 및 지향 방향을 표시하기 위하여 사용된다. 이후 엉덩이 뼈대 동작이 아닌 유연화-동작 뼈대 동작이 개체 동작을 표시하기 위하여 사용된다.
유연화-동작 뼈대 데이터가 엉덩이-뼈대 데이터로부터 추출될 때, 변경된 엉덩이 뼈대 데이터가 남을 것이다. 새로운 유연화-동작 뼈대 데이터 및 변경된 엉덩이-뼈대 데이터의 결합 효과는 애니메이션 전체 모습을 보존하기 위하여 원래 변경되지 않은 엉덩이 뼈대 데이터와 동일할 것이다. 그렇지 않은 경우, 개체 애니메이션은 유연화-동작 뼈대 분리로 인한 뼈대 계층구조에서의 변화로 인하여 동일하게 보이지 않을 수 있다.
본 발명의 예에 의하면, 유연화-동작 뼈대 지점 및 방향은 개체를 제어하는 사용자에 의해 개체가 보이는 제3자 시각과 연결된다. 유연화-동작 뼈대는 가상환경 주위에서 유연하게 움직이고, 따라서 엉덩이 뼈대와 같이 기타 뼈대인 경우 있을 수 있는 불안정한 동작을 형성하지 않고 더욱 자연스러운 모습의 제3자 시각 관점을 제공할 것이다.
하나 이상의 개체 동작 기준파일들은 각 애니메이션에 대한 유연화-동작 뼈대 동작과 관련된 데이터를 포함하도록 생성된다. 이러한 개체 동작 데이터는 개체 지점 및 개체 방향을 정의하는 데이터를 포함할 수 있다.
본 발명의 예에서, 각 키-프레임에서 유연화-동작 뼈대에 대한 개체 지점 데이터는 엉덩이 뼈대 위치 아래 고정 거리로 계산되고, 예를들면 그 높이는 키-프레임에서 임의 뼈대의 가장 낮은 위치 아래 고정된 짧은 거리로 설정될 수 있다. 유연화-동작 뼈대 위치는 가상환경의 제로 높이 지면 위치보다 아래로 가지 않도록 제한될 수 있다.
본 발명의 예에서, 하나 이상의 키-프레임에서 유연화-동작 뼈대 방향과 관련된 개체 방향 데이터가 계산된다. 유연화-동작 뼈대 는 개체에 대하여 대략 정 지향에서 수직 지향되거나, 회전될 수 있다. 각 키-프레임에 대한 유연화-동작 뼈대 방향은 3D 스튜디오 MaxTM와 같은 3D 그래픽 소프트웨어에 의해 형성된 가상환경에서 개체를 배치함으로써 계산된다. 개체는 가상환경에서 관념상 원점에 배치될 수 있어 관념상 기준방향 예를들면 3D 스튜디오 MaxTM에서 부의 y 축은 애니메이션에 대한 출발 포즈에서 정방향으로 간주되고, 즉 애니메이션의 최초 키-프레임에서 정방향으로 간주된다.
특정 포즈에 대한 정방향은 그 포즈에 대한 기준파일로부터 얻어질 수 있다. '주행_애니메이션_출발_포즈'라는 포즈에서 출발하는 주행 애니메이션을 예로 들면, 주행 애니메이션에 대한 모션 캡쳐 스튜디오로부터의 데이터는 가상세계 원점에 서서 정방향을 향하는 연기자로부터 출발하는 것으로 간주된다. 이후 '주행_애니메이션_출발_포즈'에서 출발하는 애니메이션 개시 프레임이 기준으로 사용된다. 따라서, 본 프레임에서 어떠한 엉덩이 뼈대 각도라도 정방향에 대한 엉덩이 뼈대의 출발 각도를 정의한다.
도 5a 및 5b는 본 발명의 예에 의한 키-프레임에 대한 개체 방향 데이터 계산방법을 도시한 것이다.
기준방향 및 엉덩이 뼈대 축에 대하여 수직 방향 사이 각도는 애니메이션 최초 키-프레임에 대하여 계산되고 애니메이션 기준파일에 저장된다. 본 과정이 본 발명의 예에 따라 도 5a에 기술된다.
애니메이션에서 최초 키-프레임 500은 기준방향 506을 보이고 이는 애니메이션 최초 키-프레임에서 간주된 개체 정방향과 정렬된다.
개체의 엉덩이 뼈대는 부호 510로 표기되고 방향은 504로 정의된다. 기준방향 506 및 엉덩이 뼈대 방향 504 사이 각도 θ1 는 부호 508로 도시된다.
애니메이션 최종 키-프레임에 대한 기준방향 및 엉덩이 뼈대 방향 사이 각도는 유사하게 계산되고 애니메이션 기준파일에 저장된다. 본 과정이 본 발명의 예에 따라 도 5b에 기술된다.
애니메이션에서 최종 키-프레임 502은 기준방향 514를 포함하며 이는 애니메이션 최초 키-프레임 기준방향 506과 정렬된다. 개체 엉덩이 뼈대는 부호 518로 도시되고 이는 애니메이션 최초 키-프레임에서의 엉덩이 뼈대와 다른 방향, 본 예에서 방향 512로 도시된다. 기준방향 514 및 엉덩이 뼈대 방향 512 사이 각도 θn는 부호 516으로 표기된다.
각도 θ1 및 θn는 애니메이션의 최초 및 최종 키-프레임에 대한 개체의 유연화-동작 뼈대 옵셋을 정의한다. 각각의 옵셋은 모션-캡쳐된 엉덩이 정방향으로 적용되어 유연화-동작 뼈대 정방향 즉 이들 키-프레임들에 대한 개체 방향을 제공한다
본 발명의 예에서, 최초 및 최종 키-프레임들 사이 중간 키-프레임들에 대한 유연화-동작 뼈대 방향은 최초 및/또는 최종 키-프레임의 유연화-동작 뼈대 방향으로부터 계산된다. 이는 최초 및 최종 키-프레임들 유연화-동작 뼈대 방향 사이 각도를 평균하는 것을 포함한다. 이는 최초 및 최종 키-프레임들의 유연화-동작 뼈대 방향 사이 각도에 대한 선형보간 (linear interpolation)을 포함할 수 있다
이러한 과정은 애니메이션에서 개체의 유연화-동작 뼈대의 유연한 회전 (또는 기준방향에 의해 정의된 정방향으로 움직이는 애니메이션의 경우 회전 없음)을 제공할 수 있다
본 발명의 예에 의하면, 개체 애니메이션 도중, 제3자 시각 관점, 또는 클라이언트 측 사용자에 의해 보여지는 '카메라 각도'는 연화-동작 뼈대 모션과 연결된다. 따라서, 주행 애니메이션 예에서, 카메라는 개체 후방에서 앞으로 유연하게 이동되고 바람직하지 않은 좌우 흔들림 모션이 없다. 엉덩이 뼈대 그 자체는 여전히 애니메이션에서 자연스럽게 흔들리므로 개체 애니메이션은 사실감을 제공한다.
키-프레임에서 유연화-동작 뼈대 지점 및 방향을 결정하고, 행렬 곱과 같은 변환이 적용되어 변경된 엉덩이 위치를 결정할 수 있다. 각 키-프레임에 대한 유연화-동작 뼈대 데이터 및 각 키-프레임에 대한 변경된 엉덩이 뼈대 데이터는 애니메이션 데이터 파일 (참조: 도 3에서 부호 304)에 기록되어 편집과정이 완료된다. 개별적인 애니메이션 데이터 파일이 각 개체 이동 애니메이션에 대하여 생성되거나 또는 애니메이션들이 함께 단일 애니메이션 데이터 파일로 수집될 수 있다.
기타 데이터가 애니메이션 데이터 파일들에 추가될 수 있고, 예를들면 뼈대 계층구조에서 변경되지 않은 뼈대 관련 데이터 또는 애니메이션들에서 객체들 동작과 관련된 데이터, 예를들면 공 또는 적합한 기타 이러한 객체들 움직임을 정의하는 데이터를 포함할 수 있다. 기타 이러한 객체들은 애니메이션에서 개체가 집어 들고, 던지고, 놓는 등의 검과 같은 무기, 또는 바위 또는 가방과 같은 기타 아이템을 포함할 수 있고, 이들 움직임은 연기자에 의해 모션-캡쳐 스튜디오에서 캡쳐 가능하다.
게임 데이터
본 발명의 예에서, 하나 이상의 서버는 하나 이상의 클라이언트 측의 개체 애니메이션을 제어한다. 이러한 개체 애니메이션을 수행하기 위하여, 서버 및 클라이언트에는 소정의 기능 요소들이 제공되고 소정 데이터 접근이 요구되며, 이하 도 6 내지 9를 참조하여 기술된다.
도 6은 본 발명의 예에 의한 서버 기능 요소들을 도시한 것이다. 서버 600은 네트워크를 통하여 다수의 클라이언트 간 게임을 제어하는 게임 제어모듈 612를 포함한다. 게임 제어모듈 612은 네트워크 및 입력/출력 인터페이스 616을 통해 클라이언트로부터 수신되는 사용자-제어 입력을 처리한다. 각 개체에 대한 소망 동작 및 시뮬레이션 가상환경에 적용되는 다수의 규칙에 따라, 게임 제어모듈 612는 가상환경에서 각 개체가 동작하는 방법을 결정하고 적합한 제어신호를 입력/출력 인터페이스 616을 통해 각 개체로 전송한다.
게임 제어모듈 612이 가상환경을 시뮬레이션하는 규칙은 특정 어플리케이션에 따라 다르다. 축구 경기의 경우, 규칙은 각 플레이어의 스킬, 경험 또는 운동 수준 관련 규칙, 또는 어떤 플레이어가 태클이 성공하는지 실패하는지, 공을 먼저 잡는지 등을 결정하는 규칙을 포함할 수 있다. 이러한 규칙에는 확률 함수들이 적용될 수 있다. 기타 규칙들은 경기장 크기, 골문 위치, 게임 시간 또는 각 팀 플레이어 수 등에 관한 것일 수 있다. 게임 제어 규칙들은 게임 제어모듈 612에 의해 접근 가능한 게임 제어 규칙 데이터베이스 604에 저장된다.
서버 600은 각 클라이언트 상의 개체에 대한 적합한 애니메이션을 선택하는 애니메이션 선택모듈 610을 포함한다. 애니메이션 선택모듈 610은 애니메이션 선택규칙 데이터베이스 602에 저장된 애니메이션 선택 규칙에 따라 애니메이션을 선택한다. 서버 600은 동작을 예를들면 가상환경에서 각 개체의 지점 및 방향을 추적하는 개체 추적모듈 614를 포함한다. 서버 600은 개체 추적 데이터 데이터베이스 606를 포함하며 개체 추적 데이터가 저장된다.
또한 서버 600은 개체 변화 특성 데이터베이스 608을 포함하며, 여기에 예를들면 애니메이션 과정에서 개체 지점 및 방향 변화와 같은 개체 변화 특성이 저장된다; 개체 변화 특성 데이터베이스 608 내용에 대하여 도 7 설명을 참조.
도 7은 본 발명에 의한 서버-기반 애니메이션 데이터 저장장치를 보인다. 서버-기반 애니메이션은 도 6에 도시된 서버 자체 또는 서버에 의해 접근 가능한 원격에 위치하는 데이터베이스 608에 저장된다.
표 700에서 '애니메이션 식별자' 702로 표시된 제1 행은 다수의 애니메이션을 식별하는 데이터를 포함한다. 제2 행 710, 제3행 712 및 제4행 714는 애니메이션 관련 개체 변화 특성을 포함한다. 개체 변화 특성은 예를들면 개체 지점, 방향 및 타이밍과 같이 애니메이션 과정에서 변하는 소정의 특징에 관한 것이다. 개체 변화 특성을 사용하면 애니메이션 과정에서 개체가 어떻게 가변되는 것과 관련된 정보 예를들면 개체가 어디에 있을 것인지 및/또는 애니메이션 도중 개체가 어떤 길과 마주칠 것인지 특히 애니메이션 종료와 관련된 정보가 서버로 제공된다.
'△(x, y, z)' 같이 표시된 제2 행 710은 가상환경의 x, y 및 z 방향(각각 좌-우, 앞-뒤, 및 상-하)에서 개체 지점 변화 (기호 △ 표기)와 관련된 애니메이션 개체 변화 특성을 포함한다. 표에 주어진 x, y, 및 z 수치는 가상환경에서 관념상 거리 단위 또는 미터법에 의할 수 있고, 이는 적합한 수준의 거리 단위를 제공한다. '△(θ)' 같이 표시된 제3 행 712는 가상환경에서 개체 방향 변화와 관련된 애니메이션 개체 변화 특성을 포함한다. 표에 주어진 θ수치는 가상환경에서 관념상 각도 단위 또는 미터법에 의할 수 있고, 이는 적합한 수준의 각도 단위를 제공하여, 본 경우 도(degree)이다. '△(t)' 같이 표시된 제4 행 712는 가장환경에서 개체 타이밍 변화와 관련된 애니메이션 개체 변화 특성을 포함한다. 표에 주어진 t 수치는 가상환경에서 관념상 시간 단위 또는 미터법에 의할 수 있고, 이는 적합한 수준의 시간 단위를 제공하며, 본 경우 초(second)이다.
예시적 표 700에서, 더 많은 애니메이션 780이 본 발명에 구현될 수 있지만, 단지 두 애니메이션만이 애니메이션 식별자들 A1 및 A2로 포함된다. 표 700의 부호 704로 표시된 열 2는 애니메이션 A1을 포함하고 x 방향 지점 변화는 1, y 방향으로는 2, 및 z 방향으로는 1, 방향 변화는 45°및 타이밍 변화는 3초이다. 표 700의 부호 706으로 표시된 열 3은 애니메이션 A2을 포함하고 x 방향 변화는 2, y 방향 5, 및 z 방향으로는 0, 방향 변화는 90°및 타이밍 변화는 4초이다.
도 8은 본 발명의 예에 의한 클라이언트 기능 요소들을 보인다. 클라이언트 800은 서버상의 게임 제어모듈 612에 의해 제어되지 않는 게임 측면을 제어하는 게임 제어모듈 810을 포함한다. 클라이언트 게임 제어 규칙들은 게임 제어모듈 810에 의해 접근되는 게임 제어규칙 데이터베이스 802에 저장된다.
또한 클라이언트 800은 개체 변화 특성을 저장하는 개체 변화 특성 데이터베이스 806을 포함한다; 개체 변화 특성 데이터베이스 806 내용에 관하여는 도 9 설명을 참조.
클라이언트 800은 가상환경에서 클라이언트와 관련된 하나 이상의 개체 지점 및 방향과 같은 움직임을 추적하는 개체 추적모듈 812를 포함한다. 클라이언트 800은 개체 추적 데이터를 저장하기 위한 개체 추적데이터 데이터베이스 804를 포함한다.
클라이언트 800은 가상환경에서 3D 그래픽 렌더링을 위한 3D 그래픽 프로세서 808을 포함한다. 클라이언트 800은 가상환경 엔진 814를 포함하며, 이는 가상환경 레이아웃, 구조를 정의한다. 이는 예를들면 터치라인, 코너깃발, 광고판, 골대 등 경기장 룩앤필 및 각각의 개체 및 객체가 관련 애니메이션 데이터 파일들에 따라 동작되는 방법을 정의한다.
도 9는 본 발명의 예에 의한 클라이언트-기반 애니메이션 데이터 저장장치를 도시한다. 데이터는 도 8에 도시된 데이터베이스 806에 저장되며, 이는 클라이언트 자체 또는 클라이언트에 의해 접근 가능한 원격에 위치될 수 있다.
표 900에는 도 7의 표 700에 도시된 서버 저장량과 동일한 데이터가 유사 기준번호로 포함된다. 그러나 표 900은 추가 행 916을 포함하며, 여기에는 가상세계에서 개체를 동작시키기 위하여 사용되는 실제 데이터를 가지는 애니메이션 데이터 파일들이 포함된다. 서버는 어떤 애니메이션이 소망하는 각각의 개체 동작에 적합한지를 결정하기 위하여 각각의 애니메이션에 대한 개체 변화 특성을 알 수 있지만, 이들 애니메이션 데이터 파일들은 서버에 저장될 필요는 없다.
본 발명의 일 예에서, 클라이언트는 서버에 저장된 개체 변화 특성 카피를 저장하고, 이 경우 서버는 애니메이션을 클라이언트에 식별시키고 클라이언트는 관련 애니메이션 데이터 파일 (행 916) 및 상응 개체 변화 특성(910, 912, 914)을 참조하여 이에 따라 가상환경에서 개체를 동작시킨다. 여기에서, 클라이언트는 이전 애니메이션에 의한 종료 위치 및 종래 시간으로부터 본 애니메이션 출발 위치 (지점 및 방향) 및 출발 시간을 추론한다. 이들 종료 위치 및 종료 시간은 선택된 애니메이션에 대한 개체 변화 특성에 기초하여 계산되고, 이들은 각각의 개체에 대하여 이전 저장된 추적 데이터에 적용된다.
본 발명의 다른 예에서, 애니메이션 출발 위치 (지점 및 방향) 및 출발 시간 형태의 출발 특징은 서버로부터 클라이언트로 전달되어 가상환경 엔진 814로 하여금 애니메이션이 가상환경에서 시뮬레이션 되어야 하는 장소 및 시간을 지시한다.
본 발명의 또 다른 예에서, 클라이언트는 애니메이션 데이터 파일들 및 상응 애니메이션 식별자들을 저장하기만 한다. 이 경우, 서버는 클라이언트에게 클라이언트 상에서 개체를 동작시키는데 필요한 임의 개체 변화 특성을 알리고, 클라이언트 상에 이러한 데이터를 미리 저장할 필요가 없다. 이후 각각의 개체에 대한 추적 데이터는 개체 변화 특성이 클라이언트 상에 저장된 상기 예에서 기술된 바와 같이 계산될 수 있다.
본 발명의 이들 모든 예에서, 서버는 예를들면 하나 이상의 데이터 패킷 형태의 간헐적 애니메이션 메시지를 보내며, 이는 클라이언트에게 가상환경에서 개체를 동작시키기 위하여 사용되어야 하는 최소한 하나의 애니메이션 또는 일련의 애니메이션들을 필요하다면 출발 특징 및/또는 개체 변화 특성과 함께 지시한다. 이러한 메시지는 정규 시간 간격으로 또는 서버가 필요하다고 판단될 때 또는 각각의 클라이언트로부터 갱신 요청에 응답하여 전달될 수 있다.
개체 추적이 개체 변화 특성을 사용한 계산에 기초하여 클라이언트에서 수행되는 상기 예들에서, 또한 출발 특징을 포함하는 메시지는 (애니메이션 메시지 간격과 비교하여) 상대적으로 긴 간격으로 전달될 수 있다. 이러한 메시지는 네트워크 데이터 전송에서 발생될 수 있는 임의의 반올림 오차 및 오차들로 인한 영향을 줄이는데 도움이 되고, 그렇지 않다면 가상환경인 서버 및 클라이언트 시뮬레이션들 간 차이를 유발시킬 수 있다.
게임 플레이
도 10은 본 발명의 예에 따라 가상환경에서 개체 애니메이션 중 클라이언트 및 서버에서 수행되는 단계들의 흐름도를 도시한 것이다.
서버-기반 게임 데이터는 단계 1000에서 초기화된다. 소정 데이터 예를들면 게임을 위한 제어 데이터 및 개체 추적 데이터 등을 서버의 램 (RAM)으로 로딩하는 것을 포함한다.
클라이언트-기반 게임 데이터는 단계 1002에서 초기화된다. 유사하게, 이는 적합한 데이터를 클라이언트 램 (RAM)으로 로딩하는 것을 포함한다.
사용자가 가상환경에서 개체 이동을 원할 때 예를들면 네트워크를 통하여 게임을 플레이 할 때, 단계 1004에 도시된 바와 같이 클라이언트는 클라이언트 장치를 통하여 사용자 입력을 제공하여 개체가 하여야 하는 것을 지시한다. 가상환경에서 사용자 입력에 대하여 개체 동작을 추적하기 위하여 추적 데이터가 클라이언트에 의해 처리된다 (단계 1006).
본 정보는 하나 이상의 개체 제어 명령 형태로 네트워크를 통하여 (점선 1024로 표시) 단계 1008에서 서버로 전송된다. 서버는 개체 제어 데이터를 단계 1010에서 수신, 제어 데이터를 해석, 및 이에 따라 단계 1012에서 개체 이동 애니메이션을 선택한다. 이는 하나 이상의 클라이언트로부터 개체 제어 데이터 수신 및 이에 따라 각 클라이언트를 위한 개체 이동 애니메이션들을 선택하는 단계를 포함할 수 있다. 또한 이는 클라이언트 상의 연속 애니메이션을 위하여 단일 클라이언트를 위한 하나 이상의 애니메이션 선택을 포함할 수 있다.
서버가 각 클라이언트를 위하여 어떤 애니메이션이 플레이 되어야 하는지를 선택하는 방법은 시뮬레이션 되는 특정 가상환경과 관련된 다수의 규칙에 따라 결정될 수 있다. 이러한 규칙들 예로는 도 6에서 게임 제어모듈612과 관련하여 상기된다.
클라이언트로부터 수신된 데이터로부터, 서버는 사용자의 소망 개체 동작을 알 수 있다. 또한 서버는 개체가 동작될 수 있는 애니메이션 총 세트를 알 수 있다. 본 정보를 이용하여, 서버는 소망 개체 동작에 적합한 애니메이션 또는 필요한 경우 이후 슬라이싱 되는 일련의 애니메이션들을 선택한다.
또한 서버는 개체 지점 및 방향 예를들면 개체의 유연화-동작 뼈대의 지점 및/또는 방향 관련 개체 추적 데이터를 이용하여 개체에 대한 애니메이션을 선택할 수 있다. 이러한 개체 추적 데이터는 서버에 저장되고, 클라이언트 상에도 저장될 수 있다.
애니메이션 데이터 파일들은 서버 자체에 저장될 필요는 없고, 각 클라이언트에 저장된다. 각 애니메이션은 단일 정수 식별자로 식별될 수 있고, 예를들면 도 9 첫 두 행들에 도시된 바와 같이 애니메이션들 전체 세트 표에 색인될 수 있다. 서버는 애니메이션 식별 데이터 및 기타 관련 인자들을 보내기만 할 수 있고 애니메이션 데이터 자체를 보내지 않는다. 이로써 개체 애니메이션이 가능하고 한편 네트워크를 통하여 데이터 흐름을 감소시킨다. 이를 통하여 서버 및 클라이언트들 사이 과도한 데이터 흐름으로 발생할 수 있는 속도 지연 및 혼잡을 피할 수 있다. 서버는 개체의 유연화-동작 위치의 모션을 정확하게 나타내고, 이는 각 클라이언트 상에 나타나는 것과 동일하다. 이를 통하여 모든 클라이언트들이 예를들면 네트워크 게임에서 자신의 및 다른 개체들의 애니메이션들을 포함한 애니메이션들 진행에 있어 일관적인 장면을 가지는 것을 확신할 수 있다.
선택된 이동 애니메이션 관련 데이터는 단계 1014에서 네트워크 1024을 통하여 클라이언트로 전송된다. 따라서 서버는 각 클라이언트에게 예를들면 게임 출발시간, 애니메이션 출발시간, 애니메이션 출발 시 초기 개체 위치 (지점 및 방향 포함) 및 애니메이션(들) 식별 데이터에 의해 정의된 바와 같이 어떤 애니메이션 또는 일련의 애니메이션들이 수행되어야 하는지를 알린다.
단계 1016에서 서버는 선택된 애니메이션과 관련된 하나 이상의 개체 변화 특성을 검색하고 이에 따라 단계 1018에서 개체 추적 데이터를 갱신한다. 이후 서버는 단계 1010으로 돌아가 추가적인 개체 제어 데이터 수신을 대기한다.
서버에 의해 선택된 이동 애니메이션 관련 데이터는 단계 1020에서 클라이언트 측에 수신되어 단계 1022에서 해당 애니메이션 데이터 파일들에 따라 클라이언트 측 가상환경에서 개체를 동작시키는데 사용된다.
단계 1026에서 클라이언트는 선택된 애니메이션 관련 개체 변화 특성을 처리하고 이에 따라 단계 1028에서 개체 추적 데이터를 갱신한다. 이후 클라이언트는 단계 1004로 돌아가 추가적인 사용자 입력 수신을 대기한다.
본 발명의 예에서, 단계 1026에서의 처리는 서버로부터 수신된 개체 변화 특성 처리를 포함하거나, 클라이언트 측에 저장된 개체 변화 특성처리를 포함한다. 유사하게, 단계 1028에서 개체 추적 갱신은 클라이언트 측에 저장되거나 서버로부터 수신된 개체 추적 데이터 갱신을 포함한다.
공(ball) 게임에서 애니메이션 되는 개체의 경우, 플레이어 동작은 각각의 애니메이션에 대한 유연화-동작 뼈대와 관련된 데이터로부터 결정될 수 있다. 개체가 공과 같은 객체를 제어한다면, 예를들면 애니메이션 전체 또는 일부에 대하여 선수가 발로 공을 드리블하는 경우, 공의 모션은 적합한 공 애니메이션 데이터로부터 결정될 수 있다. 달리 공이 플레이어 제어하에 있지 않다면, 애니메이션 데이터를 직접 사용하지 않고도 3D 가상환경에서 공 모션은 물질 동작을 정의하는 물리 법칙을 적용하여 시뮬레이션 될 수 있다.
애니메이션 변경
본 발명의 예에 따라 가상환경에서 개체를 동작시킬 때, 클라이언트 측에서 개체를 동작시키기 전에 애니메이션 데이터를 변경시킬 필요가 있다. 가상환경에서 다른 개체 애니메이션과 연속되기 위하여 애니메이션에 걸쳐 개체가 유연하게 처리되거나, 개체가 공과 같은 객체에 더욱 현실감 있게 접근하도록 수행된다.
이러한 변경은 애니메이션에서 개체에 의해 이동되는 거리가 포함될 수 있다. 이러한 거리 변경은 개체에 대하여 전방 또는 측방 수평 거리 또는 수직 거리를 포함하고, 예를들면 후자의 경우 개체가 점프하여 축구공 등을 헤딩하기 위하여 동작되는 경우이다.
이러한 변경은 애니메이션에서 예를들면 개체 속도를 높이거나 줄이는 개체 동작 타이밍을 포함할 수 있어 다른 개체가 태클되는 등과 같이 애니메이션은 가상환경에서 일 위치에 도착한 개체를 보일 수 있다.
이러한 변경은 애니메이션에서 개체에 의한 회전 각도를 포함할 수 있다. 0°및 360°사이 모든 각도에 대한 개체 회전과 관련된 데이터를 저장하는 것은 비현실적일 수 있어, 클라이언트는 매 45°회전 각도에 대한 애니메이션 데이터를 저장할 수 있다. 만일 사용자-제어 입력이 35°회전을 표시하면, 예를들면 45°회전을 포함한 적합한 애니메이션이 서버에 의해 선택되고, 10°회전 변경이 적용되어 45°회전을 35°회전으로 변경시킨다.
개체 이동 애니메이션을 선택할 때 (도 10의 단계 1012), 서버는 애니메이션 변경이 필요하다고 간주할 수 있다. 이러한 경우, 서버는 클라이언트에게 변경 식별 데이터 및 애니메이션 변경을 위한 임의 필요한 인자들을 선택된 이동 애니메이션 관련 데이터와 함께 전송한다 (도 10의 단계 1014).
저장된 애니메이션 데이터는 다수의 개체 이동 애니메이션들을 포함할 수 있고, 각각의 애니메이션은 개체 변화 특성과 관련된다. 이러한 특징은 예를들면 개체의 지점 또는 방향이 애니메이션 과정에서 변경되는 방법을 정의한다. 다른 예로서, 이러한 특징은 개체의 하나 이상의 신체-부분들의 지점 또는 방향이 애니메이션 과정에서 변경되는 방법을 정의할 수 있다.
사용자가 개체-제어 데이터를 입력할 때, 적합한 개체 이동 애니메이션은 다수의 개체 이동 애니메이션들로부터 선택될 수 있다. 그러나, 선택된 개체 애니메이션은 원하는 개체 동작과 아주 가깝게 일치될 수 없다. 이러한 경우, 선택된 개체 애니메이션은 변경되어 개체 변화 특성이 원하는 개체 동작과 더욱 근접하게 일치하도록 된다.
회전 변경은 애니메이션 전 과정에 걸쳐 선형적으로 적용될 수 있다. 그러나, 다수의 본래 회전은 애니메이션에서 키-프레임의 서브세트로 압축된다. 특히 공이 개체에 의해 제어되고 복합한 조작이 관여될 때 이러한 경우가 자주 있다.
회전 변경이 전 애니메이션에 걸쳐 적용된다면, 클라이언트는 개체가 처음에는 좌측으로 이후 우측으로 뒤로 도는 것으로 볼 수 있고 이는 바람직하지 않다.
따라서 바람직하게는 다수의 회전이 발생하는 애니메이션 서브세트를 식별하고 이러한 타이밍 데이터를 애니메이션과 함께 기록하는 것이다. 이는 모션-캡쳐 데이터 (도 2의 단계 204) 편집 과정에서 수행될 수 있다. 본 과정의 상기 부분은 3ds MaxTM와 같은 소프트웨어를 사용하여 회전이 발생하고 종료하는 애니메이션에서 시간 옵셋을 식별하는 조작자에 의해 수행되거나 또는 컴퓨터-구현 영상 처리 기법을 사용하여 반- 또는 완전-자동으로 수행될 수 있다.
애니메이션 서브세트를 식별하는 타이밍 데이터는 이후 애니메이션 데이터가 함께 결합될 때 추가된다 (도 2의 단계 206). 자동 빌드 프로시저 동안, 또한 타이밍 데이터는 서버 및 클라이언트 측에서 활용될 수 있는 출력 파일에 저장될 수 있다.
회전 변경은 이후 식별된 애니메이션 서브세트에 걸쳐 적용될 수 있다. 회전 변경은 예를들면 식별된 애니메이션 서브세트에 걸쳐 선형적으로 적용될 수 있다.
회전 각도 변경 역시 지면 상의 유연화-동작 뼈대의 최종 변위를 변경시킬 수 있다. 따라서 바람직하게는 회전 각도 변경이 적용될 때 유연화-동작 뼈대 변위를 변경시키는 것이다.
이러한 변위는 모든 회전 변경이 회전 출발시간에 적용된다고 가정함으로써 회전 변경 출발 이후 임의 시간에 표시될 수 있다. 이는 다음과 같은 의사-코드에 의해 기술될 수 있다:
a <= x <= b 인 x에 가장 가까운 수치를 리턴 하도록 클램프 함수 clamp(x, a, b)를 정의한다.
애니메이션 개시로부터 시간 t에서 유연화-동작 뼈대의 위치 (지점 및 방향)을 정의한다. 위치는 전형적으로 4x4 행렬인 변환 형태인 수학적 표기로 주어질 수 있다.
개체 수직 축에 대하여 각도 θ 회전을 변환 R(θ)로 정의한다.
애니메이션에서 회전 주기 시작 및 종료를 각각 시간 옵셋 t0 및 t1으로 나타낸다.
애니메이션에서 회전 변경 각도 (θ)을 가지는 시간 t에서의 변경된 유연화-동작 뼈대 위치를 나타내는 변환 Tmod(t)을 다음과 같이 설정한다:
도 11a 및 11b는 본 발명에 의한 애니메이션 수평적 변경을 보인다.
애니메이션에서 개체의 수평적 변위를 변경할 필요가 있다. 예를들면 개체가 정지된 공을 향하여 주행하는 경우이다. 개체가 공을 제어하기 위하여 다수의 주행 애니메이션 사이클이 운영될 필요가 있고 이어 공 제어 애니메이션이 따른다. 공 제어 애니메이션이 개체의 발이 골에 닿는 바로 그 시간 및 장소인 이러한 위치에서 시작되는 것이 바람직하다. 따라서 개체가 원하는 위치에 도착하도록 일반적으로 주행 애니메이션을 단축 또는 연장하여 바람직하다.
도 11a는 공 1100에 접근하는 개체 스텝들을 묘사하는 애니메이션의 변경되지 않은 3개의 키-프레임들을 보인다. 단계들은 개체 발이 가상환경 지면 상에 있는 시점들이다. 본 도면에서 도시된 3개의 키-프레임들 사이에 있는 플레이어 발이 다른 위치에 있는 키-프레임들이 있을 수 있으나 본 예에서 표기되지 않는다.
제1 키-프레임 1128에서, 개체의 왼발 1102는 부호 1104와 동일선상이다. 제2 키-프레임 1130에서, 개체의 오른발 1106은 부호 1108과 동일선상이다. 제3 키-프레임 1132에서, 개체의 왼발 1110은 부호 1112와 동일선상이다.
오른발 선수가 공을 찰 때, 그 선수는 통상 오른발로 공을 차도록 공으로 달려가고 왼발 중앙은 공 왼쪽에 거의 공 중앙과 동일선상에 놓인다.
도 11a에서, 키-프레임 3 (또는 이후 키-프레임)에서 공 차는 것을 서버가 계산한다면, 애니메이션은 사실적이지 않게 보일 수 있다. 왜냐하면 부호 1114로 도시된 왼발 1110 중앙은 공 1100의 중앙 1116과 정렬되지 않기 때문이다. 공 1100 중앙 1116은 개체 왼발 중앙으로부터 부호 1118로 표시된 거리에 있는 것으로 보일 수 있다.
따라서 개체가 공에 접근하고 애니메이션의 제3의 키-프레임 1132에서 발이 공과 정렬되도록 공을 차기 전의 키-프레임에서 개체 스텝들을 조정하는 것이 바람직하다.
따라서 서버는 이러한 원하는 연속 장면을 달성하기 위하여 애니메이션 변위가 어느 정도 변경되어야 하는지를 결정한다. 이후 이것은 클라이언트로 전달되어 이에 따라 애니메이션을 처리한다. 변위 정도는 애니메이션이 수용될 수 있는 룩앤필을 가지도록 임의 주어진 애니메이션에 대하여 합리적인 한계 내로 제한되어야 한다.
도 11b는 필요한 변경이 개체 스텝들로 적용된 후 애니메이션이 어떻게 보이는지를 도시한다.
제1 키-프레임 1128에서, 개체 왼발 1102가 부호 1104 전방 거리 1120에 있도록 변경된다. 제2 키-프레임 1130에서, 개체 오른발 1106은 부호 1108 전방 거리 1122에 있도록 변경된다. 제3 키-프레임 1132에서, 개체 왼발 1110은 부호 1112 전방 거리 1124에 있도록 변경된다. 이로써 개체 왼발 1110 중앙 1126이 공이 차이는 막 차려고 하는 제3 키-프레임 1132에서 공 1100과 정렬되는 원하는 효과를 준다.
더 이상의 액션이 없으면, 개체의 발은 변경된 애니메이션이 작동될 때 그 영역에서 슬라이드 되는 것으로 보일 수 있다. 예를들면 주행 애니메이션이 플레이어를 1.5 미터 전방으로 자연스럽게 이동시키는 것을 고려하면, 0.5 미터만큼 전방 모션을 감소시키고 0.25 미터 측방 변위하는 변경이 적용된다. 플레이어 발은 변경이 적용될 때 지면에 슬라이드 되는 것으로 보일 것이다.
이러한 문제는 각 발이 지면에 놓이는 동안 애니메이션 주기를 식별함으로써 해결될 수 있다. 이후 발의 역운동학이 적용되어 개체의 발 동작을 조정하여 각 발이 상기 동일 주기 동안 놓임이 유지될 수 있다. 이는 발 신체-부분들 예를들면 개체의 허벅지, 무릎, 종아리, 발목, 발 등을 변경된 발 놓임 위치에 대한 자연스러운 모습의 포즈로 조정하는 것을 포함한다. 이러한 발의 역운동학 구현에 사용되는 수학 및 알고리즘은 본 분야 기술자에게 자명하고 본원에 상세하게 기술되지 않는다.
서버가 하나 이상의 클라이언트들 측에서 애니메이션 변경이 애니메이션 또는 일련의 애니메이션들에 적용되도록 계산한 후, 서버는 관련 클라이언트들로 변경 관련 데이터를 전송할 수 있다. 이후 변경은 서버 측 및 또한 가능한 클라이언트 측에서 유연화-동작 뼈대 움직임에 상응하는 개체 추적 데이터에 적용된다.
상기 예들은 본 발명의 예로 이해되어야 한다. 본 발명의 추가적인 예들이 고려될 수 있다.
상기 설명은 애니메이션의 최초 및 최종 키-프레임에 대한 유연화-동작 뼈대 데이터 계산 및 중간 키-프레임에 대한 유연화-동작 뼈대 데이터를 계산하기 위한 이러한 데이터 이용에 대하여 기술된다. 다른 예에서, 애니메이션의 최초 및 최종 키-프레임이 아닌 예를들면 중간 키-프레임과 같은 키-프레임에 대한 유연화-동작 뼈대 데이터가 먼저 계산될 수 있고, 최초 및 최종 키-프레임을 포함한 다른 키-프레임에 대한 유연화-동작 뼈대 데이터를 생성하기 위하여 사용될 수 있다. 또 다른 예에서, 어떠한 유연화가 수행되지 않고 유연화-동작 뼈대 데이터는 모든 키-프레임에 대하여 개별적으로 계산될 수 있다.
예시적 도 11a 및 11b에 도시된 바와 같은 변위 변경은 3개의 애니메이션 이상 및 이하 또는 전 애니메이션에 걸쳐 적용될 수 있다. 변위 변경은 이러한 키-프레임에 걸쳐 선형적으로 또는 비-선형적으로 적용되어 일부 키-프레임들에서 다른 것보다 추가적인 변위를 형성할 수 있다. 또한 변위는 도 11a 및 11b에서 부호 1104, 1108 및 1112와 수직 방향에서의 개체 변위 변경을 포함할 수 있다.
클라이언트-서버 기반 구성을 참조하여 기술된 본 발명의 예들은 다른 구성 및 반대 구성에서도 구현될 수 있다.
임의의 하나 예들과 관련된 임의 특징들은 단독 또는 기술된 다른 특징과 결합되어 사용될 수 있고 또한 임의 기타 예들의 하나 이상의 특징과 결합하거나 임의 기타 예들의 임의 결합하여 적용될 수 있다. 또한, 상기되지 않은 균등 및 변형 또한 특허청구범위에서 정의된 본 발명의 범위로부터 벗어남이 없이 적용될 수 있다.
Claims (63)
- 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법에 있어서, 상기 가상환경에서 제1 개체 추적 관련 제1 개체 추적데이터를 서버 측에 저장하는 단계;
상기 가상환경에서 상기 제1 개체의 사용자-제어 관련 개체-제어 입력데이터를 제1 클라이언트로부터 상기 서버 측에서 수신하는 단계;
상기 제1 클라이언트로부터 수신된 입력데이터에 기초하여, 제1 다수의 애니메이션으로부터 상기 제1 클라이언트 측에 동작되는 제1 애니메이션을 상기 서버 측에서 선택하는 단계;
상기 가상환경에서 상기 제1 개체의 상기 제1 선택 애니메이션을 식별하는 제1 데이터를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계;
상기 제1 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 하나 이상의 개체 변화 특성을 검색하는 단계; 및
상기 제1 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 상기 검색된 개체 변화 특성에 기초하여, 상기 저장된 제1 개체 추적데이터를 갱신하는 단계를 포함하여 구성되는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법. - 제1항에 있어서, 상기 저장된 제1 개체 추적데이터에 기초하여 상기 제1 클라이언트 측에 동작되는 상기 제1 애니메이션을 선택하는 단계를 더욱 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 제1항 또는 제2항에 있어서, 상기 저장된 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 지점 추적과 관련된 지점 데이터를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 선행 항들 중 어느 하나의 항에 있어서, 상기 저장된 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 방향 추적과 관련된 방향 데이터를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 선행 항들 중 어느 하나의 항에 있어서, 상기 저장된 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 타이밍 추적과 관련된 타이밍 데이터를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 선행 항들 중 어느 하나의 항에 있어서,
상기 제1 다수의 애니메이션들로부터 상기 제1 클라이언트 측에 동작되는 추가 애니메이션을 상기 서버 측에서 선택하는 단계;
상기 제1 클라이언트 측에 동작되는 상기 추가 애니메이션을 식별하는 추가 데이터를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계;
상기 추가 선택 애니메이션 관련 하나 이상의 추가 개체 변화 특성을 검색하는 단계; 및
상기 추가된 검색 개체 변화 특성에 기초하여, 상기 저장된 제1 개체 추적데이터를 갱신하는 단계를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법. - 제6항에 있어서, 상기 제1 및 상기 추가 선택 애니메이션들은 일련의 애니메이션에 대하여 선택되는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 선행 항들 중 어느 하나의 항에 있어서, 상기 다수의 애니메이션들은 모션-캡쳐 데이터에서 유도되는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 선행 항들 중 어느 하나의 항에 있어서,
상기 가상환경에서 제2 개체의 추적 관련 제2 개체 추적데이터를 서버 측에 저장하는 단계;
상기 가상환경에서 상기 제2 개체의 사용자-제어 관련 개체-제어 입력데이터를 제1 클라이언트에서 원격에 있는 제2 클라이언트로부터 상기 서버 측에서 수신하는 단계;
상기 제2 클라이언트로부터 수신된 상기 입력데이터에 기초하여, 제2 다수의 애니메이션들로부터 상기 제2 클라이언트 측에 동작되는 제1 애니메이션을 상기 서버 측에서 선택하는 단계;
상기 가상환경에서 상기 제2 클라이언트에서 동작되는 제1 선택 애니메이션을 식별하는 데이터를 상기 서버로부터 상기 제2 클라이언트로 전송하는 단계;
상기 제2 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 하나 이상의 개체 변화 특성을 검색하는 단계; 및
상기 제2 클라이언트 측에 동작되는 상기 제1 선택 애니메이션 관련 상기 검색된 개체 변화 특성에 기초하여, 상기 저장된 제2 개체 추적데이터를 갱신하는 단계를 더욱 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법. - 제9항에 있어서, 상기 저장된 제2 개체 추적데이터에 기초하여 상기 제2 클라이언트 측에서 동작되는 상기 제1 애니메이션을 더욱 선택하는 단계를 포함하는,가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 선행 항들 중 어느 하나의 항에 있어서, 상기 검색된 변화 특성은 상기 서버 측 메모리 저장장치로부터 검색되는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 제9항 내지 제11항 중 어느 하나의 항에 있어서, 상기 제1 다수 및 제2 다수 애니메이션들은 하나 이상의 공동되는 개체 애니메이션들을 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 제9항 내지 제12항 중 어느 하나의 항에 있어서, 상기 제1 개체 및 상기 제2 개체가 상기 가상환경에서 상호 작용한다면 상기 제1 다수 애니메이션들에서 상기 애니메이션 선택은 상기 제2 다수 애니메이션들에서 상기 애니메이션 선택에 의존되는, 가상환경에서 클라이언트-기반의 사용자-제어되는 개체의 클라이언트 측 애니메이션 제어를 위한 서버-기반 방법.
- 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법에 있어서,
제1 다수의 개체 애니메이션들로 이루어진 애니메이션 데이터를 제 1클라이언트 측에 저장하는 단계;
가상환경에서 제1 개체의 추적과 관련된 제1 개체 추적데이터를 상기 제1 클라이언트 측에서 처리하는 단계;
상기 가상환경에서 제1 개체의 사용자-제어 관련 개체-제어 입력데이터를 상기 제1 클라이언트에서 서버로 전송하는 단계;
상기 제1 다수의 애니메이션들에서 개체 애니메이션을 식별하는 제1 선택 데이터를 포함하는 제1 데이터를 상기 서버로부터 상기 제1 클라이언트 측에서 수신하는 단계;
상기 가상환경에서 상기 제1 수신 데이터, 상기 제1클라이언트에 저장된 상기 애니메이션 데이터 및 상기 제1 개체 추적데이터에 기초하여 상기 제1 클라이언트 측에 상기 제1 개체를 동작시키는 단계를 포함하여 구성되는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법. - 제14항에 있어서, 상기 서버로부터 상기 제1 개체 추적데이터를 상기 제1 클라이언트 측에서 수신하는 단계를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 또는 제15항에 있어서, 상기 클라이언트 측에 상기 제1 개체 추적데이터를 저장하는 단계를 포함하며, 상기 개체 추적데이터 처리단계는 상기 클라이언트에 상기 저장된 것들로부터 상기 개체 추적데이터를 검색하는 단계를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제16항 중 어느 하나의 항에 있어서,
클라이언트 측에서 상기 식별된 개체 애니메이션 관련 개체 변화 특성을 처리하는 단계;
상기 처리된 개체 변화 특성에 기초하여 상기 제1 개체 추적데이터를 갱신하는 단계; 및
상기 갱신된 제1 개체 추적데이터에 기초하여 상기 가상환경에서 상기 제1 개체를 상기 제1 클라이언트 측에서 더욱 동작시키는 단계를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법. - 제17항에 있어서, 상기 개체 변화 특성을 상기 서버로부터 상기 클라이언트 측에서 수신하는 단계를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제17항 또는 제18항에 있어서, 상기 클라이언트 측에 상기 개체 변화 특성을 저장하는 단계를 포함하며, 상기 개체 변화 특성을 처리하는 단계는 상기 클라이언트 측 상기 저장된 것에서 개체 변화 특성을 검색하는 단계를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제19항 중 어느 하나의 항에 있어서, 상기 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 지점 추적과 관련된 지점 데이터를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제20항 중 어느 하나의 항에 있어서, 상기 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 방향 추적과 관련된 방향 데이터를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제21항 중 어느 하나의 항에 있어서, 상기 제1 개체 추적데이터는 일련의 애니메이션들 과정에서 상기 제1 개체의 타이밍 추적과 관련된 타이밍 데이터를 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제22항 중 어느 하나의 항에 있어서, 상기 제1 수신 데이터는 상기 제1 다수의 애니메이션들에서 추가 개체 애니메이션을 식별하는 추가 선택 데이터를 포함하고, 상기 동작 단계는 상기 식별된 일련의 애니메이션을 동작시키는 것을 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제23항 중 어느 하나의 항에 있어서, 상기 저장된 애니메이션 데이터는 모션-캡쳐 데이터에서 유도되는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제14항 내지 제24항 중 어느 하나의 항에 있어서,
제2 다수의 개체 애니메이션들로 이루어진 애니메이션 데이터를 제1 클라이언트와 원격인 제 2클라이언트 측에 저장하는 단계;
가상환경에서 제2 개체의 추적과 관련된 제2 개체 추적데이터를 상기 제2 클라이언트 측에서 처리하는 단계;
상기 가상환경에서 제2 개체의 사용자-제어 관련 개체-제어 입력데이터를 상기 제2 클라이언트에서 상기 서버로 전송하는 단계;
상기 제2 다수의 애니메이션들에서 개체 애니메이션을 식별하는 제2 선택 데이터를 포함하는 제2 데이터를 상기 서버로부터 상기 제2 클라이언트 측에서 수신하는 단계;
상기 가상환경에서 상기 제2 수신 데이터, 상기 제2클라이언트에 저장된 상기 애니메이션 데이터 및 상기 제2 개체 추적데이터에 기초하여 상기 제2 클라이언트 측에 상기 제2 개체를 동작시키는 단계를 더욱 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법. - 제25항에 있어서, 상기 제1 다수 및 제2 다수 애니메이션들은 하나 이상의 공동되는 개체 애니메이션들을 포함하는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 제25항 또는 제26항에 있어서, 상기 제1 개체 및 상기 제2 개체가 상기 가상환경에서 상호 작용한다면 상기 제1 다수 애니메이션들에서 상기 애니메이션 식별은 상기 제2 다수 애니메이션들에서 상기 애니메이션 식별에 의존되는, 가상환경에서 클라이언트-기반의 사용자-제어 개체의 클라이언트 측 이동 애니메이션 제어를 위한 클라이언트-기반 방법.
- 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법에 있어서,
개체 개별적 신체-부분에 대한 신체-부분 동작데이터를 포함한 개체 이동 애니메이션으로 구성된 모션-캡션 데이터에서 유도된 애니메이션 데이터를 저장하는 단계;
상기 가상환경에서 상기 개체의 사용자-제어 이동 관련 개체-제어 입력데이터를 수신하는 단계; 및
상기 저장된 애니메이션 데이터에 따라, 지점 및 방향이 상기 신체-부분 동작데이터 최소 일부에 의해 정의되는 제3자 시각적 관점으로 상기 가상환경에서 상기 개체를 동작시키는 단계를 포함하여 구성되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법. - 제28항에 있어서, 모션-캡션 데이터는 다수의 모션-캡쳐 프레임들을 포함하며, 제3자 시각적 관점의 지점 및 방향은, 모션-캡쳐 프레임들 간 유연화에 의해 상기 모션-캡쳐 데이터로부터 유도되는, 신체-부분에 대한 신체-부분 동작데이터로부터 정의되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제29항에 있어서, 개체 이동 애니메이션은 다수의 키-프레임들을 포함하며, 키-프레임을 위한 제3자 시각적 관점의 지점은 상기 하나 이상의 모션-캡쳐 프레임에서 상기 신체-부분 지점으로부터 유도될 수 있고, 키-프레임을 위한 제3자 시각적 관점의 방향은 상기 하나 이상의 모션-캡쳐 프레임에서 상기 신체-부분 방향으로부터 유도될 수 있는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제30항에 있어서, 상기 하나 이상의 모션-캡션 프레임은 상기 다수의 모션-캡션 프레임들에서 최초 및/또는 최종 모션-캡션 프레임들을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제30항 또는 제31항에 있어서, 키-프레임을 위한 제3자 시각적 관점의 방향은 상기 하나 이상의 모션-캡쳐 프레임들에서 상기 신체-부분의 방향 관련 하나 이상의 방향을 정의하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제32항에 있어서, 키-프레임을 위한 제3자 시각적 관점의 방향을 유도하는 것은 상기 가상환경에서 하나 이상의 신체-부분 방향 및 기준 사이 관계를 결정하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제33항에 있어서, 상기 기준은 상기 가상환경에서 기준방향을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제34항에 있어서, 상기 관계는 상기 신체-부분 방향 및 상기 기준방향 사이 하나 이상의 각도를 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제35항에 있어서, 상기 하나 이상의 각도들이 키-프레임을 위한 상기 제3자 시각적 관점의 방향을 결정하기 위하여 사용되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제30항 내지 제36항 중 어느 하나의 항에 있어서, 상기 애니메이션에서 키-프레임을 위한 제3자 시각적 관점의 방향은 상기 애니메이션에서 둘 이상의 다른 키-프레임들의 제3자 시각적 관점 방향을 이용하여 계산되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제37항에 있어서, 상기 둘 이상의 다른 키-프레임들은 상기 애니메이션에서 최초 및 최종 키-프레임들을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제37항 또는 제38항에 있어서, 둘 이상의 다른 키-프레임들의 제3자 시각적 관점 방향을 이용하여 키-프레임을 위한 제3자 시각적 관점의 방향을 계산하는 것은 상기 둘 이상의 다른 키-프레임들 간 평균화를 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제39항에 있어서, 상기 평균화는 선형보간을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제30항 내지 제40항 중 어느 하나의 항에 있어서, 키-프레임을 위한 상기 제3자 시각적 관점의 지점을 유도하는 것은 하나 이상의 모션-캡쳐 프레임들에서 상기 신체-부분의 지점을 변위하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제41항에 있어서, 상기 변위는 상기 개체의 수직 높이 에서 고정된 높이 감산을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제41항 또는 제42항에 있어서, 상기 변위는 상기 가상환경에서 기준 높이에 의해 제한되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제28항 내지 제43항 중 어느 하나의 항에 있어서, 상기 개체는 골격 캐릭터인, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제28항 내지 제43항 중 어느 하나의 항에 있어서 , 상기 신체-부분들은 상기 개체의 엉덩이-뼈대에 해당되는 두 신체-부분들을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법에 있어서,
각각이 관련 개체 변화 특성을 가지는 다수의 개체 이동 애니메이션들을 포함하는 애니메이션 데이터 저장 단계;
상기 가상환경에서 사용자-제어 이동 관련 개체-제어 입력데이터를 수신하는 단계;
상기 입력데이터에 기초하여 상기 다수의 애니메이션들로부터 개체 이동 애니메이션을 선택하는 단계 및 상기 선택된 애니메이션 관련 개체 변화 특성이 변경되도록 상기 선택된 애니메이션을 변경하는 단계; 및
상기 변경된 애니메이션에 따라 상기 가상환경에서 개체를 동작시키는 단계를 포함하여 구성되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법. - 제46항에 있어서, 상기 개체 변화 특성은 상기 개체 이동 애니메이션에서 상기 개체의 지점 및/또는 방향을 포함하고, 상기 변경은 상기 선택된 애니메이션에서 상기 개체의 지점 및/또는 방향을 변경하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제46항 또는 제47항에 있어서, 상기 개체 이동 애니메이션들은 다수의 키-프레임들을 포함하며, 상기 개체 변화 특성은 상기 개체 이동 애니메이션들에서 제1 및 제2 키-프레임들 간 상기 개체의 지점 및/또는 방향 변화를 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제46 내지 제48항 중 어느 하나의 항에 있어서, 상기 저장된 애니메이션 데이터는 모션-캡쳐 데이터로부터 유도되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제46 내지 제49항 중 어느 하나의 항에 있어서, 상기 개체 이동 애니메이션들은 상기 개체의 개별적 신체-부분들을 위한 신체-부분 동작을 포함하며, 상기 개체 이동 애니메이션들 관련 개체 변화 특성은 상기 개체의 상기 하나 이상의 신체-부분들 지점 및/또는 방향을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제50항에 있어서, 상기 선택된 애니메이션의 상기 변경은 상기 선택된 애니메이션의 상기 개체의 하나 이상의 신체-부분들의 지점 및/또는 방향 변경을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제50항 또는 제51항에 있어서, 개체 이동 애니메이션 관련 상기 개체 변화 특성은 상기 제1 및 제2 키-프레임들 간 상기 하나 이상의 신체-부분들의 지점 및/또는 방향 변화를 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제48항 또는 제52항에 있어서, 상기 제1 및/또는 상기 제2 키-프레임들은 상기 애니메이션들에서 최초 및/또는 최종 키-프레임들을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제50항 내지 제53항 중 어느 하나의 항에 있어서, 상기 저장된 애니메이션 데이터는 객체 애니메이션 데이터를 포함하고, 상기 객체 애니메이션 데이터는 상기 개체 이동 애니메이션들 내에서 하나 이상의 객체들 이동과 관련되고, 상기 변경은 상기 하나 이상의 객체와 관계하여 상기 하나 이상의 신체-부분들의 지점 및/또는 방향의 변경을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제48항 내지 제54항 중 어느 하나의 항에 있어서, 상기 변경은 이것이 적용되어야 하는 개체 이동 애니메이션의 키-프레임들 서브세트를 식별하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제55항에 있어서, 상기 키-프레임들 서브세트는 상기 개체의 주어진 신체-부분이 주어진 지점 및/또는 방향에 있는 키-프레임들에 의해 식별되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제55항 또는 제56항에 있어서, 상기 키-프레임들 서브세트는 주어진 객체가 주어진 지점 및/또는 방향에 있는 키-프레임들에 의해 식별되는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제57항에 있어서, 상기 주어진 신체-부분은 상기 개체의 발 및/또는 머리를 포함하고, 상기 주어진 객체는 공을 포함하며, 상기 변경은 상기 공의 지점 및/또는 방향과의 관계에서 상기 발 또는 상기 머리의 지점 및/또는 방향을 변경하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제55항 내지 제58항 중 어느 하나의 항에 있어서, 상기 변경은 키-프레임들의 상기 서브세트에서 상기 개체의 하나 이상의 다리 신체-부분들의 지점 및/또는 방향을 변경시키기 위하여 다리의 역운동학을 사용하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 제48항 내지 제59항 중 어느 하나의 항에 있어서, 상기 변경은 상기 개체 이동 애니메이션에서 하나 이상의 키-프레임들의 타이밍을 변경하는 것을 포함하는, 가상환경에서 사용자-제어 개체의 이동 애니메이션 방법.
- 각 플레이어는 클라이언트를 통하여 네트워크 상에서 이루어지는 게임에서 하나 이상의 개체를 제어하는, 선행 항들에 따라 데이터 통신 네트워크를 통하여 실행되는 애니메이션을 포함한 컴퓨터-구현되는 멀티-플레이어 스포츠 게임.
- 제1항 내지 제60항 중 어느 하나의 방법을 실행하는 장치.
- 제1항 내지 제60항 중 어느 하나의 방법을 실행하는 컴퓨터 소프트웨어.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0722341A GB2454681A (en) | 2007-11-14 | 2007-11-14 | Selection of animation for virtual entity based on behaviour of the entity |
GB0722341.5 | 2007-11-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100087716A true KR20100087716A (ko) | 2010-08-05 |
Family
ID=38896283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107010647A KR20100087716A (ko) | 2007-11-14 | 2008-11-14 | 이동 애니메이션 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20110119332A1 (ko) |
EP (1) | EP2219748A2 (ko) |
JP (1) | JP2011508290A (ko) |
KR (1) | KR20100087716A (ko) |
CN (1) | CN101854986A (ko) |
GB (1) | GB2454681A (ko) |
WO (1) | WO2009063040A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101526050B1 (ko) * | 2013-06-19 | 2015-06-04 | 동명대학교산학협력단 | 군중 시뮬레이션 재현 장치 및 그 방법 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290899A1 (en) * | 2012-04-30 | 2013-10-31 | Asaf AMRAN | Obtaining status data |
CN104463834A (zh) * | 2013-11-25 | 2015-03-25 | 安徽寰智信息科技股份有限公司 | 一种三维模型中模拟人物步态轮廓的方法 |
US9990754B1 (en) | 2014-02-04 | 2018-06-05 | Electronic Arts Inc. | System for rendering using position based finite element simulation |
US10973440B1 (en) * | 2014-10-26 | 2021-04-13 | David Martin | Mobile control using gait velocity |
US9827496B1 (en) * | 2015-03-27 | 2017-11-28 | Electronics Arts, Inc. | System for example-based motion synthesis |
US10022628B1 (en) | 2015-03-31 | 2018-07-17 | Electronic Arts Inc. | System for feature-based motion adaptation |
US10503965B2 (en) | 2015-05-11 | 2019-12-10 | Rcm Productions Inc. | Fitness system and method for basketball training |
US10792566B1 (en) | 2015-09-30 | 2020-10-06 | Electronic Arts Inc. | System for streaming content within a game application environment |
US10403018B1 (en) | 2016-07-12 | 2019-09-03 | Electronic Arts Inc. | Swarm crowd rendering system |
US10726611B1 (en) | 2016-08-24 | 2020-07-28 | Electronic Arts Inc. | Dynamic texture mapping using megatextures |
US10478730B1 (en) * | 2016-08-25 | 2019-11-19 | Electronic Arts Inc. | Computer architecture for simulation of sporting events based on real-world data |
US10096133B1 (en) | 2017-03-31 | 2018-10-09 | Electronic Arts Inc. | Blendshape compression system |
JP6229089B1 (ja) * | 2017-04-26 | 2017-11-08 | 株式会社コロプラ | 仮想空間を介して通信するためにコンピュータで実行される方法、当該方法をコンピュータに実行させるプログラム、および、情報処理装置 |
JP6314274B1 (ja) | 2017-05-26 | 2018-04-18 | 株式会社ドワンゴ | データ生成装置およびアプリケーション実行装置 |
US10878540B1 (en) | 2017-08-15 | 2020-12-29 | Electronic Arts Inc. | Contrast ratio detection and rendering system |
US10535174B1 (en) | 2017-09-14 | 2020-01-14 | Electronic Arts Inc. | Particle-based inverse kinematic rendering system |
US10860838B1 (en) | 2018-01-16 | 2020-12-08 | Electronic Arts Inc. | Universal facial expression translation and character rendering system |
CN109032339A (zh) * | 2018-06-29 | 2018-12-18 | 贵州威爱教育科技有限公司 | 一种实时智能体感同步的方法及系统 |
US10902618B2 (en) | 2019-06-14 | 2021-01-26 | Electronic Arts Inc. | Universal body movement translation and character rendering system |
CN110443871A (zh) * | 2019-07-22 | 2019-11-12 | 北京达佳互联信息技术有限公司 | 动画合成方法、装置、电子设备及存储介质 |
US11972353B2 (en) | 2020-01-22 | 2024-04-30 | Electronic Arts Inc. | Character controllers using motion variational autoencoders (MVAEs) |
US11504625B2 (en) | 2020-02-14 | 2022-11-22 | Electronic Arts Inc. | Color blindness diagnostic system |
US11648480B2 (en) | 2020-04-06 | 2023-05-16 | Electronic Arts Inc. | Enhanced pose generation based on generative modeling |
US11232621B2 (en) | 2020-04-06 | 2022-01-25 | Electronic Arts Inc. | Enhanced animation generation based on conditional modeling |
CN111968206B (zh) * | 2020-08-18 | 2024-04-30 | 网易(杭州)网络有限公司 | 动画对象的处理方法、装置、设备及存储介质 |
US11830121B1 (en) | 2021-01-26 | 2023-11-28 | Electronic Arts Inc. | Neural animation layering for synthesizing martial arts movements |
US11887232B2 (en) | 2021-06-10 | 2024-01-30 | Electronic Arts Inc. | Enhanced system for generation of facial models and animation |
US11670030B2 (en) | 2021-07-01 | 2023-06-06 | Electronic Arts Inc. | Enhanced animation generation based on video with local phase |
US11562523B1 (en) | 2021-08-02 | 2023-01-24 | Electronic Arts Inc. | Enhanced animation generation based on motion matching using local bone phases |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09153146A (ja) * | 1995-09-28 | 1997-06-10 | Toshiba Corp | 仮想空間表示方法 |
US6219045B1 (en) * | 1995-11-13 | 2001-04-17 | Worlds, Inc. | Scalable virtual world chat client-server system |
CN1188193C (zh) * | 1997-02-18 | 2005-02-09 | 世嘉股份有限公司 | 图像处理装置及图像处理方法 |
CA2250021C (en) * | 1997-05-19 | 2007-02-06 | Matsushita Electric Industrial Co., Ltd. | Graphic display apparatus, synchronous reproduction method, and av synchronous reproduction apparatus |
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 |
US6554706B2 (en) * | 2000-05-31 | 2003-04-29 | Gerard Jounghyun Kim | Methods and apparatus of displaying and evaluating motion data in a motion game apparatus |
JP4011327B2 (ja) * | 2000-11-15 | 2007-11-21 | 株式会社レクサー・リサーチ | 表示オブジェクト提供装置、表示オブジェクト提供方式及び表示オブジェクト提供プログラム |
KR100436816B1 (ko) * | 2001-12-28 | 2004-06-23 | 한국전자통신연구원 | 3차원 캐릭터 애니메이션 제작 방법 및 시스템 |
US7372464B2 (en) * | 2003-07-21 | 2008-05-13 | Autodesk, Inc. | Processing image data |
US7317457B2 (en) * | 2003-07-21 | 2008-01-08 | Autodesk, Inc. | Processing image data |
ATE374202T1 (de) * | 2004-06-29 | 2007-10-15 | Gruenenthal Gmbh | Neue analoga von nitrobenzylthioinosin |
US7542040B2 (en) * | 2004-08-11 | 2009-06-02 | The United States Of America As Represented By The Secretary Of The Navy | Simulated locomotion method and apparatus |
KR100682849B1 (ko) * | 2004-11-05 | 2007-02-15 | 한국전자통신연구원 | 디지털 캐릭터 생성 장치 및 그 방법 |
WO2006061308A1 (fr) * | 2004-12-07 | 2006-06-15 | France Telecom | Procédé d'animation temporelle d'un avatar à partir d'un signal source comprenant des informations d'aiguillage, dispositif, programme d'ordinateur, moyen de stockage et signal source correspondants. |
US7731588B2 (en) * | 2005-09-28 | 2010-06-08 | The United States Of America As Represented By The Secretary Of The Navy | Remote vehicle control system |
US20080146302A1 (en) * | 2006-12-14 | 2008-06-19 | Arlen Lynn Olsen | Massive Multiplayer Event Using Physical Skills |
-
2007
- 2007-11-14 GB GB0722341A patent/GB2454681A/en not_active Withdrawn
-
2008
- 2008-11-14 KR KR1020107010647A patent/KR20100087716A/ko not_active Application Discontinuation
- 2008-11-14 JP JP2010533589A patent/JP2011508290A/ja active Pending
- 2008-11-14 EP EP08849932A patent/EP2219748A2/en not_active Withdrawn
- 2008-11-14 CN CN200880115895A patent/CN101854986A/zh active Pending
- 2008-11-14 WO PCT/EP2008/065536 patent/WO2009063040A2/en active Application Filing
-
2010
- 2010-05-05 US US12/774,528 patent/US20110119332A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101526050B1 (ko) * | 2013-06-19 | 2015-06-04 | 동명대학교산학협력단 | 군중 시뮬레이션 재현 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20110119332A1 (en) | 2011-05-19 |
GB2454681A (en) | 2009-05-20 |
JP2011508290A (ja) | 2011-03-10 |
WO2009063040A3 (en) | 2009-11-12 |
WO2009063040A2 (en) | 2009-05-22 |
GB0722341D0 (en) | 2007-12-27 |
CN101854986A (zh) | 2010-10-06 |
EP2219748A2 (en) | 2010-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100087716A (ko) | 이동 애니메이션 방법 및 장치 | |
US10977851B2 (en) | Animation control method for multiple participants | |
Zordan et al. | Dynamic response for motion capture animation | |
JP5137970B2 (ja) | ビデオストリームにおいて、マーク無しに、テクスチャー化平面幾何学的オブジェクトをリアルタイムで自動追跡するリアリティ向上方法および装置 | |
US9478109B2 (en) | Virtual sensor in a virtual environment | |
US6488505B1 (en) | System and method of vehicle competition with enhanced ghosting features | |
EP2754131B1 (en) | System and method for visualizing synthetic objects withinreal-world video clip | |
US20100156906A1 (en) | Shot generation from previsualization of a physical environment | |
JP5044550B2 (ja) | ゲーム装置、ゲーム装置の入力方法及び入力プログラム | |
Ishigaki et al. | Performance-based control interface for character animation | |
CN104394949A (zh) | 带有移动装置动作传感器输入的基于网络的游戏平台 | |
CN111714880B (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
US11816772B2 (en) | System for customizing in-game character animations by players | |
Zhang et al. | KaraKter: An autonomously interacting Karate Kumite character for VR-based training and research | |
US11494964B2 (en) | 2D/3D tracking and camera/animation plug-ins | |
WO2008016064A1 (fr) | dispositif de jeu, procédé d'affichage d'objet dans un dispositif de jeu et programme d'affichage | |
Zhao et al. | User interfaces for interactive control of physics-based 3d characters | |
JP7323751B2 (ja) | ゲームシステム及びプログラム | |
JP2007052508A (ja) | 描画処理装置および描画処理方法 | |
Lee et al. | Performance‐Based Biped Control using a Consumer Depth Camera | |
Laszlo et al. | Predictive feedback for interactive control of physics-based characters | |
Choi et al. | Generating a ball sport scene in a virtual environment | |
JP3753348B2 (ja) | 情報記憶媒体及び画像生成装置 | |
Li | Computer Games. | |
Jung et al. | Virtual RoboCup: real-time 3D visualization of 2D soccer games |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |