KR102359969B1 - Character motion control apparatus by using motion sensors and animation data and method thereof - Google Patents

Character motion control apparatus by using motion sensors and animation data and method thereof Download PDF

Info

Publication number
KR102359969B1
KR102359969B1 KR1020200040981A KR20200040981A KR102359969B1 KR 102359969 B1 KR102359969 B1 KR 102359969B1 KR 1020200040981 A KR1020200040981 A KR 1020200040981A KR 20200040981 A KR20200040981 A KR 20200040981A KR 102359969 B1 KR102359969 B1 KR 102359969B1
Authority
KR
South Korea
Prior art keywords
posture
character
data
motion
posture data
Prior art date
Application number
KR1020200040981A
Other languages
Korean (ko)
Other versions
KR20210123614A (en
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 가톨릭대학교 산학협력단
Priority to KR1020200040981A priority Critical patent/KR102359969B1/en
Publication of KR20210123614A publication Critical patent/KR20210123614A/en
Application granted granted Critical
Publication of KR102359969B1 publication Critical patent/KR102359969B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods

Abstract

본 발명은 모션 센서와 애니메이션 데이터를 이용한 캐릭터 동작 제어 장치 및 그 방법에 관한 것이다. 본 발명에 따르면, 캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고 수집된 자세 데이터를 기초로 자세 검색 DB를 구축하는 단계와, 매 프레임마다 사용자의 머리와 양 손을 포함한 신체 부위에 장착된 복수의 모션 센서로부터 위치 값을 각각 획득하는 단계와, 현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 상기 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색하는 단계, 및 상기 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어하는 단계를 포함하는 캐릭터 동작 제어 방법을 제공한다.
본 발명에 따르면, 머리와 양손에 설치된 모션 센서와 가상 캐릭터를 위하여 제작된 소량의 애니메이션 데이터를 기반으로 사용자의 자세와 유사한 캐릭터 자세를 직접 검색하여 캐릭터의 동작을 빠르게 제어할 수 있고 캐릭터 제어 과정에서 창작자가 의도한 캐릭터 고유의 스타일이 보존될 수 있다.
The present invention relates to an apparatus and method for controlling a character's motion using a motion sensor and animation data. According to the present invention, in response to each motion of a character, collecting time-specific posture data constituting the corresponding motion and building a posture search DB based on the collected posture data, each frame including the user's head and both hands Each of the steps of obtaining a position value from a plurality of motion sensors mounted on the body part, and comparing the position value of each motion sensor obtained in response to the current user posture with the position values of all motion data in the posture search DB, respectively, A character motion control method comprising: searching for posture data of a character matching a current user posture; and controlling the posture of a character expressed in response to a current user posture in real time based on the posture data retrieved for each frame provides
According to the present invention, based on the motion sensors installed on the head and both hands and a small amount of animation data produced for the virtual character, it is possible to directly search for a character posture similar to the user's posture to quickly control the character's motion, and in the character control process The character's own style intended by the creator may be preserved.

Description

모션 센서와 애니메이션 데이터를 이용한 캐릭터 동작 제어 장치 및 그 방법{Character motion control apparatus by using motion sensors and animation data and method thereof}Character motion control apparatus by using motion sensors and animation data and method thereof

본 발명은 모션 센서와 애니메이션 데이터를 이용한 캐릭터 동작 제어 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 가상 캐릭터를 위하여 제작된 소량의 애니메이션 데이터를 기반으로 사용자의 자세와 유사한 캐릭터 자세를 직접 검색하여 캐릭터의 동작을 제어하는 캐릭터 동작 제어 장치 및 그 방법에 관한 것이다.The present invention relates to a character motion control apparatus and method using a motion sensor and animation data, and more particularly, to a character posture similar to a user's posture by directly searching for a character posture similar to a user's posture based on a small amount of animation data produced for a virtual character. It relates to a character motion control device and method for controlling the motion of the character.

게임 등의 디지털 스토리텔링에 사용되기 위해 창조된 가상 캐릭터에는 창작자가 의도한 뚜렷한 개성이 부여된다. 캐릭터의 개성은 캐릭터의 외형뿐만 아니라 자세나 동작에서도 고유한 스타일로 나타난다. 캐릭터 동작의 스타일은 스토리텔링에 중요한 요소이므로 가능한 창작자가 만든 그대로 표현되는 것이 마땅하다.Virtual characters created for use in digital storytelling such as games are given a distinct personality intended by the creator. A character's personality is expressed in a unique style not only in the appearance of the character, but also in the posture and movement. The style of character movement is an important element in storytelling, so it should be expressed as it was created by the creator as much as possible.

예를 들어 버튼으로 조작하는 전통적인 비디오 게임의 경우, 사용자가 같은 상황에서 같은 점프버튼을 누르더라도 현재 선택된 캐릭터에 따라 서로 다른 스타일의 동작이 플레이되어야 한다. 사용자 입력의 자유도는 제한적이지만 창작자가 의도한 캐릭터 고유의 스타일이 온전히 표현될 수 있다는 장점이 있다.For example, in the case of a traditional video game operated with buttons, even if the user presses the same jump button in the same situation, a different style of motion must be played according to the currently selected character. Although the degree of freedom of user input is limited, it has the advantage of being able to fully express the character's unique style intended by the creator.

반면 최근 VR HMD 장비의 보급과 함께 늘어나고 있는 인체 모션 센서를 이용하는 게임의 경우, 사용자 신체의 움직임이 그대로 복사되어 가상 캐릭터의 동작으로 나타난다. 그 결과 사용자의 동작 제어에 대한 자유도가 무한에 가깝게 확장되지만, 창작자가 의도한 캐릭터 고유의 동작 스타일은 완전히 사라지는 부작용이 발생한다.On the other hand, in the case of a game using a human body motion sensor, which is increasing with the recent spread of VR HMD equipment, the user's body motion is copied as it is and appears as a virtual character's motion. As a result, the user's degree of freedom for motion control is extended to near infinite, but the character's own motion style intended by the creator completely disappears.

한편, 가상현실 게임의 경우에는 웨어러블 모션 센서를 이용 한 방법이 널리 사용되고 있다. 모션 센서란 인체에 착용되어 해당 부분에 대한 3차원 공간상의 위치와 방향에 대한 정보를 지속적으로 측정하는 장치이다. On the other hand, in the case of virtual reality games, a method using a wearable motion sensor is widely used. A motion sensor is a device that is worn on the human body and continuously measures information about the position and direction of a corresponding part in 3D space.

일반적으로 사용자 몸에 부착하는 모션 센서의 수는 인체 자세에 대한 모든 정보를 얻기에 부족하다. 예를 들어 가상현실에서 주로 사용되는 모션 센서는 주로 3개(머리와 양손에 장착)이며, 경우에 따라 양발, 허리 등에 2~3개의 센서가 추가되기도 한다. 이렇게 제한된 정보로부터 전체 인체 자세를 유추하기 위해서 기계 학습에 기초한 기법들이 주로 연구되어 왔다. In general, the number of motion sensors attached to the user's body is insufficient to obtain all information about the human body posture. For example, there are mainly three motion sensors (mounted on the head and both hands) that are mainly used in virtual reality, and in some cases, two or three sensors are added on both feet and waist. In order to infer the whole body posture from this limited information, techniques based on machine learning have been mainly studied.

그런데, 기계 학습은 대량의 학습 데이터를 필요로 한다. 더욱이, 게임 캐릭터를 위해 특별히 제작된 동작 데이터는 그 양이 일반적인 기계학습법의 학습 데이터로 사용하기에는 턱없이 부족하다. 따라서 대량의 학습 데이터를 필요로 하는 기계학습법을 피하는 대신, 소량의 애니메이션 데이터로부터 사용자의 자세와 유사한 캐릭터 자세를 직접 검색하여 사용하는 기술이 요구된다.However, machine learning requires a large amount of learning data. Moreover, the amount of motion data specially created for game characters is insufficient to be used as learning data for general machine learning methods. Therefore, instead of avoiding the machine learning method that requires a large amount of learning data, a technique for directly searching for and using a character posture similar to the user's posture from a small amount of animation data is required.

본 발명의 배경이 되는 기술은 한국공개특허 제2017-0006247호(2017.01.17 공개)에 개시되어 있다.The technology that is the background of the present invention is disclosed in Korean Patent Application Laid-Open No. 2017-0006247 (published on January 17, 2017).

본 발명은, 가상 캐릭터를 위하여 제작된 소량의 애니메이션 데이터를 기반으로 사용자의 자세와 유사한 캐릭터 자세를 직접 검색하여 캐릭터의 동작을 제어하며 캐릭터의 고유 스타일이 보존될 수 있는 캐릭터 동작 제어 장치 및 그 방법을 제공하는데 목적이 있다.The present invention provides an apparatus and method for controlling a character's motion that can directly search for a character's posture similar to a user's posture based on a small amount of animation data produced for a virtual character and control the character's motion and preserve the character's unique style It aims to provide

본 발명은, 캐릭터 동작 제어 장치를 이용한 캐릭터 동작 제어 방법에 있어서, 캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고 수집된 자세 데이터를 기초로 자세 검색 DB를 구축하는 단계와, 매 프레임마다 사용자의 머리와 양 손을 포함한 신체 부위에 장착된 복수의 모션 센서로부터 위치 값을 각각 획득하는 단계와, 현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 상기 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색하는 단계, 및 상기 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어하는 단계를 포함하는 캐릭터 동작 제어 방법을 제공한다.The present invention provides a character motion control method using a character motion control device, comprising the steps of: collecting posture data for each time constituting a corresponding motion in response to each motion of a character and building a posture search DB based on the collected posture data; , obtaining position values from a plurality of motion sensors mounted on body parts including the user's head and hands for each frame, respectively; Comparing each of the position values of all of my motion data, searching for posture data of a character that matches the current user posture, and the posture of a character expressed in response to the current user posture based on the posture data retrieved for each frame It provides a character motion control method comprising the step of controlling in real time.

또한, 상기 자세 검색 DB를 구축하는 단계는, 상기 캐릭터의 동작 별 기 저장된 동작 데이터로부터 해당 동작을 구성하는 시간별 자세 데이터를 수집하는 단계와, 전체 동작에 대응하여 수집된 전체 자세 데이터 중에서 일부의 자세 데이터들을 샘플링하는 단계, 및 상기 샘플링된 자세 데이터들을 상기 자세 검색 DB에 저장하는 단계를 포함할 수 있다.In addition, the step of building the posture search DB includes: collecting posture data for each time constituting a corresponding motion from pre-stored motion data for each motion of the character; It may include sampling the data, and storing the sampled posture data in the posture search DB.

또한, 상기 샘플링하는 단계는, 해당 동작을 구성한 시간별 자세 데이터 중 주변 시간 대비 속도가 지역적 최소 값을 가지는 적어도 하나의 자세 데이터를 1차적으로 샘플링하고, 시간 순으로 나열된 상기 시간별 자세 데이터 중에 일부를 설정 시간 간격에 따라 간헐적으로 선택하는 방식으로 2차적으로 샘플링할 수 있다.In addition, in the sampling, at least one posture data having a local minimum value relative to the surrounding time among the posture data for each time constituting the corresponding motion is primarily sampled, and some of the posture data for each time listed in chronological order is set Secondary sampling can be done in a way that is selected intermittently according to the time interval.

또한, 상기 시간별 자세 데이터를 수집하는 단계는, 상기 수집한 자세 데이터의 구성을 단순화하도록, 상기 자세 데이터 내 포함된 캐릭터의 각 관절의 위치값과 방향값 중 방향값을 소거하고, 캐릭터의 머리 및 양 손에 대응한 관절 부분을 제외한 나머지 관절의 위치값을 소거하여 상기 자세 데이터를 재정리할 수 있다.In addition, the step of collecting the posture data for each time includes deleting the direction values among the position values and direction values of each joint of the character included in the posture data to simplify the configuration of the collected posture data, and The posture data may be rearranged by erasing the position values of the joints other than the joint portions corresponding to both hands.

또한, 상기 현재 사용자 자세와 매칭되는 자세 데이터를 검색하는 단계는, 상기 자세 검색 DB 내 저장된 자세 데이터(Pi) 중에서 현재 사용자 자세와 매칭되는 o번째 자세 데이터(Po)를 아래 수학식을 이용하여 검색할 수 있다.In addition, in the step of searching for posture data matching the current user posture, the oth posture data (P o ) matching the current user posture among posture data (P i ) stored in the posture search DB is used using the following equation can be searched for.

Figure 112020035072485-pat00001
Figure 112020035072485-pat00001

여기서, S는 상기 각 모션 센서의 위치 값의 집합, i는 저장된 자세 데이터의 인덱스, d(S,Pi)는 S와 Pi 간 차이를 정의하는 함수, Ω은 상기 자세 검색 DB 내 저장된 자세 데이터의 집합을 나타낸다.Here, S is the set of position values of each motion sensor, i is the index of the stored posture data, d(S,P i ) is a function defining the difference between S and P i , and Ω is the posture stored in the posture search DB Represents a set of data.

또한, 상기 d(S,Pi)는 아래의 수학식으로 정의될 수 있다.In addition, the d(S,P i ) may be defined by the following equation.

Figure 112020035072485-pat00002
Figure 112020035072485-pat00002

여기서, k는 상기 모션 센서의 개수, j는 사용자와 캐릭터 간 대응하는 신체 부위의 인덱스, pj는 자세 데이터(Pi)에 포함된 k개의 위치 값 중 j번째 위치 값, Ri는 S와 Pi를 전역 공간에서 정합하는 정합 행렬, Dj는 사용자에게 장착된 각 모션 센서 및 캐릭터의 각 관절 간의 위치와 방향에 대한 차이를 보정하는 보정 행렬, T는 캐릭터의 신체 크기와 상기 사용자의 신체 크기 간의 차이를 보정하는 크기 변환 행렬을 나타낸다.Here, k is the number of motion sensors, j is an index of a body part corresponding to a user and a character, p j is a j-th position value among k position values included in the posture data (P i ), R i is S and A registration matrix that registers P i in the global space, D j is a correction matrix that corrects differences in the position and direction between each motion sensor mounted on the user and each joint of the character, T is the body size of the character and the body of the user Represents a size transformation matrix that corrects for differences between sizes.

또한, 상기 현재 사용자 자세와 매칭되는 자세 데이터를 검색하는 단계는, 검색 대상이 되는 자세 데이터(Pi) 마다 상기 정합 행렬(Ri)을 각각 결정하되, 캐릭터와 사용자의 서로 대응한 신체 부위 간의 위치 오차를 최소화하는 위치 변환 행렬 R을 아래 수학식에 의해 연산하여 정합 행렬(Ri)을 결정한 후 상기 d(S,Pi) 연산 식에 대입할 수 있다.In addition, the searching for posture data matching the current user posture includes determining the matching matrix (R i ) for each posture data (P i ) to be searched, but between the body parts corresponding to each other between the character and the user. After determining the matching matrix (R i ) by calculating the position transformation matrix R that minimizes the position error by the following equation, it can be substituted into the d(S,Pi) equation.

Figure 112020035072485-pat00003
Figure 112020035072485-pat00003

또한, 상기 위치 변환 행렬(R)은 설정 제약 조건에 따라 아래 수학식과 같은 호모지니어스 좌표계로 표현되며, 상기 설정 제약 조건은, 캐릭터의 크기, 이동 및 회전 변환 중에서 크기 변환을 금지하여 이동 및 회전 변환만 허용하는 조건, 지면과 수직한 y축을 기준으로 하는 회전만 허용하는 조건, y축 상의 이동을 금지하는 조건을 포함할 수 있다.In addition, the position transformation matrix R is expressed in a homogeneous coordinate system as shown in the following equation according to a setting constraint, and the setting constraint prohibits size transformation among character size, movement, and rotation transformation to transform movement and rotation It may include a condition that allows only rotation, a condition that allows only rotation about the y-axis perpendicular to the ground, and a condition that prohibits movement on the y-axis.

Figure 112020035072485-pat00004
Figure 112020035072485-pat00004

여기서, θ는 y축을 기준으로 하는 회전 각도, tx는 x축 방향 이동 거리, tz는 z축 방향 이동 거리이다.Here, θ is a rotation angle with respect to the y-axis, t x is a movement distance in the x-axis direction, and t z is a movement distance in the z-axis direction.

또한, 상기 정합 행렬(Ri)에 대한 수학식은 상수와 변수를 분리하여 정리하면 아래와 같이 각 변수 α, β, tx, ty에 대한 최적화 식으로 간소화될 수 있다.In addition, the equation for the matching matrix (R i ) can be simplified as an optimization equation for each variable α, β, t x , and t y as follows if constants and variables are separated and arranged.

Figure 112020035072485-pat00005
Figure 112020035072485-pat00005

여기서, A는 상수 행렬이고, b는 상수 벡터이다.Here, A is a constant matrix and b is a constant vector.

또한, 상기 캐릭터의 자세를 실시간 제어하는 단계는, 현재 프레임과 직전 프레임에서 검색된 자세 데이터 간의 자세 변화의 비율을 아래의 수학식을 통하여 제한할 수 있다.In addition, in the step of controlling the posture of the character in real time, the ratio of the posture change between the posture data retrieved from the current frame and the previous frame may be limited through the following equation.

Figure 112020035072485-pat00006
Figure 112020035072485-pat00006

여기서, Pt'는 현재 프레임에 적용된 자세 변화의 비율, Po는 현재 프레임에서 검색된 자세 데이터, Pt-1는 이전 프레임에서 검색된 자세 데이터, ω는 가중치,

Figure 112020035072485-pat00007
는 캐릭터의 자세 데이터에서 위치 값의 경우 선형 보간법을 하고 방향 값의 경우 구면 보간법을 적용하는 연산을 나타낸다.Here, P t ' is the ratio of the posture change applied to the current frame, P o is the posture data retrieved from the current frame, P t-1 is the posture data retrieved from the previous frame, ω is the weight,
Figure 112020035072485-pat00007
represents an operation that applies linear interpolation for position values and spherical interpolation for direction values in the character's posture data.

그리고, 본 발명은, 캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고 수집된 자세 데이터를 기초로 자세 검색 DB를 구축하는 데이터 구축부와, 매 프레임마다 사용자의 머리와 양 손을 포함한 신체 부위에 장착된 복수의 모션 센서로부터 위치 값을 각각 획득하는 센서 데이터 획득부와, 현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 상기 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색하는 자세 검색부, 및 상기 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어하는 자세 제어부를 포함하는 캐릭터 동작 제어 장치를 제공한다.In addition, the present invention provides a data construction unit that collects time-specific posture data constituting a corresponding movement in response to each movement of a character and builds a posture search DB based on the collected posture data, and the head and amount of the user in every frame A sensor data acquisition unit that obtains position values from a plurality of motion sensors mounted on body parts including hands, and the position values of each motion sensor acquired in response to the current user posture A posture search unit that searches for posture data of a character matching the current user posture by comparing the values with each other, and real-time control of the posture of a character expressed in response to the current user posture based on the posture data retrieved for each frame It provides a character motion control device including a posture control unit.

또한, 상기 데이터 구축부는, 상기 캐릭터의 동작 별 기 저장된 동작 데이터로부터 해당 동작을 구성하는 시간별 자세 데이터를 수집하고, 전체 동작에 대응하여 수집된 전체 자세 데이터 중에서 일부의 자세 데이터들을 샘플링하여 상기 자세 검색 DB에 저장할 수 있다.In addition, the data construction unit collects the posture data for each time constituting the corresponding motion from pre-stored motion data for each motion of the character, and samples some of the posture data from the total posture data collected in response to the entire motion to search the posture It can be stored in DB.

본 발명에 따르면, 머리와 양손에 설치된 모션 센서와 가상 캐릭터를 위하여 제작된 소량의 애니메이션 데이터를 기반으로 사용자의 자세와 유사한 캐릭터 자세를 직접 검색하여 캐릭터의 동작을 빠르게 제어할 수 있고 캐릭터 제어 과정에서 창작자(애니메이터)가 의도한 캐릭터 고유의 스타일이 보존될 수 있다.According to the present invention, based on the motion sensors installed on the head and both hands and a small amount of animation data produced for the virtual character, it is possible to directly search for a character posture similar to the user's posture, thereby quickly controlling the character's motion, and in the character control process The character's unique style intended by the creator (animator) may be preserved.

도 1은 본 발명의 실시예에 따른 캐릭터 동작 제어 장치의 구성을 나타낸 도면이다.
도 2는 도 1을 이용한 캐릭터 동작 제어 방법을 설명하는 도면이다.
도 3은 본 발명의 실시예에서 캐릭터의 자세 데이터를 간소화하는 원리를 설명하는 도면이다.
도 4는 캐릭터의 점프 동작에 대한 시간별 자세 데이터를 예시한 도면이다.
도 5는 본 발명의 실시예에 따른 데이터 샘플링 과정을 설명하는 도면이다.
도 6은 본 발명의 실시예에서 사용자와 캐릭터 간 보정 행렬을 획득하는 방법을 설명한 도면이다.
도 7은 본 발명의 실시예에서 사용자와 캐릭터 간 데이터 정합 개념을 설명한 도면이다.
도 8은 본 발명의 실시예에서 후처리 과정을 통하여 캐릭터의 손 위치를 보정한 모습을 예시한 도면이다.
도 9는 본 발명의 실시예에서 인접 프레임 간 캐릭터 자세 변화의 비율을 제한하는 모습을 예시한 도면이다.
도 10은 유사한 사용자 입력값에 대한 결과 차이를 나타낸 도면이다.
도 11은 동작 센서의 추가에 따른 비교 결과를 나타낸 도면이다.
1 is a diagram showing the configuration of a character motion control apparatus according to an embodiment of the present invention.
FIG. 2 is a view for explaining a method of controlling a character motion using FIG. 1 .
3 is a view for explaining the principle of simplifying the posture data of the character in the embodiment of the present invention.
4 is a diagram illustrating posture data for each time for a jumping motion of a character.
5 is a diagram for explaining a data sampling process according to an embodiment of the present invention.
6 is a diagram illustrating a method of obtaining a correction matrix between a user and a character in an embodiment of the present invention.
7 is a diagram illustrating the concept of matching data between a user and a character in an embodiment of the present invention.
8 is a diagram illustrating a state in which the position of a character's hand is corrected through a post-processing process in an embodiment of the present invention.
9 is a diagram illustrating a state of limiting the rate of change of character posture between adjacent frames in an embodiment of the present invention.
10 is a diagram illustrating a result difference for similar user input values.
11 is a view showing a comparison result according to the addition of a motion sensor.

그러면 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Then, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily implement them.

본 발명은 모션 센서와 애니메이션 데이터를 이용한 캐릭터 동작 제어 기법으로, 대량의 학습 데이터를 필요로 하는 복잡한 기계 학습법을 피하는 대신 소량의 애니메이션 데이터 만으로 유사 캐릭터 자세를 직접 검색하여 사용할 수 있고, 캐릭터 제어 과정에서 캐릭터 스타일이 보존될 수 있는 캐릭터 동작 제어 기법을 제안한다.The present invention is a character motion control technique using a motion sensor and animation data. Instead of avoiding a complex machine learning method that requires a large amount of learning data, it is possible to directly search for and use similar character postures only with a small amount of animation data, and in the character control process We propose a character motion control technique in which character style can be preserved.

도 1은 본 발명의 실시예에 따른 캐릭터 동작 제어 장치의 구성을 나타낸 도면이다.1 is a diagram showing the configuration of a character motion control apparatus according to an embodiment of the present invention.

도 1에 도시된 것과 같이, 본 발명의 실시예에 따른 캐릭터 동작 제어 장치(100)는 데이터 구축부(110), 센서 데이터 획득부(120), 자세 검색부(130), 자세 제어부(140)를 포함한다.As shown in FIG. 1 , the character motion control apparatus 100 according to an embodiment of the present invention includes a data construction unit 110 , a sensor data acquisition unit 120 , a posture search unit 130 , and a posture control unit 140 . includes

데이터 구축부(110)는 캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고 수집된 자세 데이터를 기초로 자세 검색 DB를 구축한다. The data construction unit 110 collects time-specific posture data constituting a corresponding motion in response to each motion of the character, and builds a posture search DB based on the collected posture data.

여기서 데이터 구축부(110)는 전체 동작에 대응하여 수집된 전체 자세 데이터 중에서 일부를 샘플링하여 선택된 데이터만을 검색 대상 집합으로 지정함으로써 추후 검색의 효율을 높인다. Here, the data building unit 110 increases the efficiency of a search later by sampling some of the entire posture data collected in response to the entire motion and designating only the selected data as a search target set.

센서 데이터 획득부(120)는 매 프레임마다 사용자의 머리와 양 손을 포함한 신체 부위에 장착된 복수의 모션 센서로부터 위치 값을 각각 획득한다. The sensor data acquisition unit 120 acquires position values from a plurality of motion sensors mounted on body parts including the user's head and both hands for each frame, respectively.

캐릭터 동작 제어 장치(100)는 통신부(미도시)를 포함하여 각각의 모션 센서와 유무선 연결되어 모션 센서의 데이터를 실시간 획득할 수 있다. 물론, 통신부는 Wi-Fi, Bluetooth, RF, WLAN 등의 무선 네트워크 방식을 통하여 각각의 모션 센서와 무선 연결될 수 있다.The character motion control apparatus 100 may be connected to each motion sensor by wire or wireless including a communication unit (not shown) to acquire data of the motion sensor in real time. Of course, the communication unit may be wirelessly connected to each motion sensor through a wireless network method such as Wi-Fi, Bluetooth, RF, or WLAN.

또한, 본 발명의 실시예는 가상 현실 게임에서 요구되는 최소한의 센서 즉, 머리와 양 손을 포함한 3개의 모션 센서를 활용하는 것을 대표 예시로 한다. 다만, 이 경우 상체 동작 위주로 센싱이 이루어지며 하체 동작을 추가로 정확하게 매칭하고자 한다면 허리 및 양 발에 모션 센서를 추가로 장착할 수 있다. In addition, the embodiment of the present invention uses the minimum sensor required in a virtual reality game, that is, three motion sensors including a head and both hands as a representative example. However, in this case, the upper body motion is mainly sensed, and if you want to additionally accurately match the lower body motion, motion sensors can be additionally mounted on the waist and both feet.

자세 검색부(130)는 현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 상기 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색한다.The posture search unit 130 compares the position values of each motion sensor obtained in response to the current user posture with the position values of all motion data in the posture search DB, respectively, and searches for posture data of the character matching the current user posture do.

자세 제어부(140)는 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어한다. 이때, 자세 제어부(140)는 현재 프레임과 직전 프레임에서 검색된 자세 데이터 간의 자세 변화의 비율을 제한함으로써 급작스런 자세 변화를 방지할 수 있다.The posture controller 140 controls the posture of the character expressed in response to the current user posture in real time based on the posture data retrieved for each frame. In this case, the posture controller 140 may prevent abrupt posture change by limiting the rate of posture change between the posture data retrieved from the current frame and the previous frame.

캐릭터 동작 제어 장치(100)는 가상 현실 영상을 출력하는 출력부를 더 포함할 수 있으며, PC, 노트북, 스마트폰, 스마트 패드, 일반 디스플레이 기기 등에 소프트웨어와 같은 응용 프로그램으로 구현될 수 있으며, 게임 소프트웨어에 내장될 수도 있다. 물론, 캐릭터 동작 제어 장치(100)는 사용자의 머리에 장착되는 헤드마운트 디스플레이(HMD)에 응용 프로그램으로 내장되어 동작할 수도 있다.The character motion control apparatus 100 may further include an output unit for outputting a virtual reality image, and may be implemented as an application program such as software on a PC, a laptop computer, a smartphone, a smart pad, a general display device, etc., and may be applied to game software. It may be built-in. Of course, the character motion control apparatus 100 may be operated by being built-in as an application program in a head mounted display (HMD) mounted on the user's head.

본 발명에서 제안하는 캐릭터 동작 제어 방법은 매 프레임마다 다음의 과정을 반복한다. 먼저, 제한된 개수의 모션 센서로부터 사용자의 현재 자세 정보를 얻는다. 다음, 캐릭터를 위해 제작된 동작 데이터를 대상으로 현재 사용자의 자세와 가장 유사한 자세를 검색한다. 이때, 이때 전역 위치와 방향에 대한 정합행렬 계산을 최대한 빠르게 수행하는 알고리즘을 사용한다. 마지막으로, 검색된 자세를 보정하여 캐릭터 자세 변화의 연속성을 유지하도록 한다. The character motion control method proposed in the present invention repeats the following process for every frame. First, the user's current posture information is obtained from a limited number of motion sensors. Next, a posture most similar to the posture of the current user is searched for with respect to the motion data produced for the character. In this case, an algorithm that performs the calculation of the registration matrix for the global position and direction as quickly as possible is used. Finally, the searched posture is corrected to maintain the continuity of the character posture change.

이하에서는 본 발명의 실시예에 따른 캐릭터 동작 제어 방법을 구체적으로 설명한다. 도 2는 도 1을 이용한 캐릭터 동작 제어 방법을 설명하는 도면이다.Hereinafter, a character motion control method according to an embodiment of the present invention will be described in detail. FIG. 2 is a view for explaining a method of controlling a character motion using FIG. 1 .

먼저, 데이터 구축부(110)는 캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고, 수집된 자세 데이터를 기초로 자세 검색 DB를 구축한다(S210,S220).First, the data construction unit 110 collects the posture data for each time constituting the corresponding movement in response to each movement of the character, and builds a posture search DB based on the collected posture data (S210, S220).

여기서, 캐릭터의 각 동작을 구성하는 시간별 자세 데이터는 장착자에 의해 기 제작된 애니메이션 데이터부터 획득 가능한 요소이다. 데이터 구축부(110)는 캐릭터 애니메이션 데이터가 저장된 애니메이션 DB(미도시)로부터 해당 캐릭터에서 수행 가능한 여러 동작들과 해당 동작을 구성하는 시간별 자세 데이터를 로딩(수집)하고 이를 기초로 자세 검색 DB를 구축할 수 있다.Here, the posture data for each time constituting each motion of the character is an element obtainable from animation data previously produced by the wearer. The data construction unit 110 loads (collects) various actions that can be performed in a corresponding character from an animation DB (not shown) in which character animation data is stored and posture data for each time constituting the action, and builds a posture search DB based on this. can do.

여기서, 애니메이션 DB는 캐릭터 동작 제어 장치(100)에 포함될 수도 있고 캐릭터와 관련한 정보를 보유한 외부 서버(제작사 서버 등)에 포함될 수도 있다. 후자의 경우 캐릭터 동작 제어 장치(100)는 외부 서버에 네트워크 접속하여 관련 데이터를 수집할 수 있다.Here, the animation DB may be included in the character motion control apparatus 100 or may be included in an external server (such as a production company server) having information related to the character. In the latter case, the character motion control apparatus 100 may connect to an external server in a network to collect related data.

S210 단계는 캐릭터에 대응하여 제작된 애니메이션 데이터로부터 캐릭터의 각 동작에 대한 시간별 자세 데이터를 수집하는 단계이고, S220 단계는 수집된 데이터를 기초로 자세 검색 DB를 구축하는 단계이다.Step S210 is a step of collecting time-based posture data for each motion of the character from animation data produced in response to the character, and step S220 is a step of building a posture search DB based on the collected data.

이때, 동작에 대응한 시간별 자세 데이터란, 해당 동작(예: 점프, 발차기, 펀치 동작)을 취하는 경우에 시간 흐름에 따라 가변하는 자세 데이터를 의미한다. 따라서 어떠한 동작(모션)을 구성하는 자세 데이터들은 프레임(시간) 별로 존재하게 된다.In this case, the time-based posture data corresponding to the motion means posture data that varies over time when the corresponding motion (eg, jumping, kicking, or punching action) is taken. Therefore, posture data constituting a certain motion (motion) exists for each frame (time).

여기서, 데이터 구축부(110)는 수집된 자세 데이터 전부를 사용하지 않고 사전 샘플링을 통하여 선택한 일부 자세 데이터만을 이용하여 자세 검색 DB를 구축함으로써 검색 대상이 되는 데이터의 수를 제한하고 DB를 경량화하며 검색 속도와 효율을 높인다.Here, the data building unit 110 does not use all of the collected posture data, but builds a posture search DB using only some posture data selected through pre-sampling, thereby limiting the number of data to be searched, lightening the DB, and searching Increase speed and efficiency.

또한, 데이터 구축부(110)는 자세 데이터에 포함된 캐릭터의 각 관절의 위치값과 방향값 중 위치 값만을 이용하여 데이터를 재구성할 수 있고 이를 통하여 캐릭터 자세 정보를 단순화함은 물론 추후 검색 단계에서 캐릭터 관절의 방향값을 무시하여 검색 효율을 높인다.In addition, the data construction unit 110 can reconstruct the data using only the position values among the position values and direction values of each joint of the character included in the posture data, thereby simplifying the character posture information as well as in the later search step. Ignores the direction values of character joints to increase search efficiency.

이 모든 단계는 데이터의 전처리 과정에 해당한다. 즉, 데이터 구축부(110)는 실시간 자세 검색의 효율성을 최대화하기 위해서 캐릭터 동작 데이터에서의 캐릭터 관절 구조를 단순화하고 검색 대상이 되는 데이터의 수를 제한하기 위한 사전 샘플링 과정을 수행한다.All these steps correspond to the data preprocessing process. That is, the data building unit 110 performs a pre-sampling process to simplify the character joint structure in the character motion data and limit the number of data to be searched in order to maximize the efficiency of real-time posture search.

구체적으로, 데이터 구축부(110)는 캐릭터의 동작 별 기 저장된 동작 데이터로부터 해당 동작을 구성하는 시간별 자세 데이터를 애니메이션 DB로부터 수집한다(S210). Specifically, the data building unit 110 collects the posture data for each time constituting the corresponding motion from the previously stored motion data for each motion of the character from the animation DB (S210).

캐릭터의 자세 데이터는 일반적으로 캐릭터를 구성하는 전체 관절에 대한 위치와 방향 값에 관한 정보를 포함하여 구성된다. 데이터 구축부(110)는 이와 같은 속성을 가지는 자세 데이터의 정보를 그대로 활용할 수도 있지만, 자세 데이터의 정보를 단순화할 수 있다. The character's posture data is generally composed of information about the position and direction values for all joints constituting the character. The data building unit 110 may utilize the information of the posture data having such properties as it is, but may simplify the information of the posture data.

이를 위해, 데이터 구축부(110)는 자세 데이터 내 포함된 캐릭터의 각 관절의 위치값과 방향값 중 방향값을 소거한다. 또한, 캐릭터르 구성하는 전체 관절 중에서도 머리 및 양 손에 대응한 세 가지 관절 부분을 제외한 나머지 관절(모션 센서의 장착 부위와는 무관한 관절)에 대한 위치값을 소거하여 자세 데이터를 재정리할 수 있다. To this end, the data construction unit 110 deletes a direction value among the position value and direction value of each joint of the character included in the posture data. In addition, position data can be rearranged by erasing the position values for the remaining joints (joints independent of the motion sensor mounting part) except for the three joint parts corresponding to the head and both hands among all the joints constituting the character. .

도 3은 본 발명의 실시예에서 캐릭터의 자세 데이터를 간소화하는 원리를 설명하는 도면이다.3 is a view for explaining the principle of simplifying the posture data of the character in the embodiment of the present invention.

일반적으로 게임 등에 사용되는 가상 캐릭터의 관절 구조는 일반 모션캡쳐 데이터에서 사용되는 관절 구조보다 복잡한 경우가 많다. 예를 들면, 도 3의 (a)와 같이, 캐릭터 머리카락의 움직임이나 옷의 펄럭임 등을 표현하기 위해 뼈대(관절)를 추가하는 경우가 있으며, 캐릭터가 사용 중인 도구나 무기(예: 활) 등에 뼈대를 추가하는 경우도 있다. 본 실시예의 경우 캐릭터의 신체 자세만을 제어 대상으로 하므로, 도 3의 (b)와 같이 신체가 아닌 부분에 대한 캐릭터 관절 구조는 계산에서 제외하였다.In general, the joint structure of a virtual character used in games, etc. is often more complex than the joint structure used in general motion capture data. For example, as shown in Fig. 3(a), a skeleton (joint) may be added to express the movement of the character's hair or the fluttering of clothes, and a tool or weapon (eg, a bow) that the character is using In some cases, skeletons are added. In the present embodiment, since only the body posture of the character is a control target, the character joint structure for parts other than the body as shown in FIG. 3(b) is excluded from the calculation.

일반적으로 캐릭터의 동작 데이터는 시간에 따른 자세의 변화로 표현되므로,

Figure 112020035072485-pat00008
와 같은 집합으로 표현된다. 여기서, Pi은 해당 동작에 대한 i번째 프레임(시간)의 자세 데이터, n은 해당 동작을 구성하는 전체 프레임의 수를 나타낸다. In general, the movement data of a character is expressed as a change in posture over time,
Figure 112020035072485-pat00008
is expressed as a set such as Here, P i represents the posture data of the i-th frame (time) for the corresponding motion, and n represents the total number of frames constituting the corresponding motion.

하나의 자세 데이터 P는 다시 3차원 위치와 방향 값의 집합

Figure 112020035072485-pat00009
으로 표현된다.
Figure 112020035072485-pat00010
Figure 112020035072485-pat00011
는 각각 해당 자세의 전역 위치와 방향값이고,
Figure 112020035072485-pat00012
는 각 관절의 3차원 방향값이다. m은 관절 구조에 있는 총 관절의 개수다. One posture data P is again a set of three-dimensional position and orientation values
Figure 112020035072485-pat00009
is expressed as
Figure 112020035072485-pat00010
Wow
Figure 112020035072485-pat00011
are the global position and direction values of the posture, respectively,
Figure 112020035072485-pat00012
is the three-dimensional direction value of each joint. m is the total number of joints in the joint structure.

본 발명의 실시예는 검색 단계(S240)에서 관절의 방향값은 사용하지 않고 3차원 위치 값만을 사용하도록 하기 위하여, 도 3의 (c)와 같이 각 관절의 위치 정보만 남기고 방향 정보를 제거한다. In the embodiment of the present invention, in order to use only the three-dimensional position value without using the direction value of the joint in the search step (S240), only the position information of each joint is left as shown in FIG. .

물론, 모션 센서를 통해서도 해당 신체 부위의 방향에 대한 정보를 쉽게 취득할 수 있으므로 검색에 방향값을 모두 고려하는 것은 어려운 문제가 아니지만, 실험을 통해 경험적으로 발견한 사실은 방향값까지 고려했을 때의 검색 결과과 오히려 좋지 못했다는 것이다. 그 이유는 게임 캐릭터의 특성상 캐릭터 고유의 자세가 일반 사용자가 묘사하기 어려운 디테일을 포함하고 있는 경우가 많기 때문이다. 예를 들어 서로 다른 캐릭터는 일반적인 서있는 자세에서 각자의 스타일에 따라 손목의 방향이 완전히 다를 수 있다. 이러한 디테일은 사용자가 무시할 수 있도록 하기 위하여 캐릭터 관절의 방향값은 검색 단계에서 무시한다.Of course, it is not difficult to consider all the direction values in the search because information about the direction of the body part can be easily obtained through the motion sensor. The search results were rather poor. The reason is that, due to the characteristics of game characters, the character's unique posture often contains details that are difficult for general users to describe. For example, different characters may have completely different wrist orientations depending on their style in a normal standing position. In order to allow the user to ignore these details, the direction values of the character joints are ignored in the search step.

본 발명의 실시예의 경우 검색에서 위치값만 사용하므로 모든 동작 데이터의 관절에 대해 미리 정기구학(forward kinematics) 계산을 수행하여 3차원 좌표값을 계산한다. 그리고, 검색 단계(S240)에서 각 관절과 사용자에게 장착된 모션 센서를 일대일 매칭하여 비교하므로, 도 3의 (d)와 같이 해당하는 관절(머리, 좌우 양손)의 위치 값만 남겨둔다. In the case of the embodiment of the present invention, since only position values are used in the search, forward kinematics calculations are performed for joints of all motion data in advance to calculate three-dimensional coordinate values. And, since each joint and the motion sensor mounted on the user are matched one-to-one in the search step (S240) and compared, only the position values of the corresponding joints (head, left and right hands) are left as shown in FIG. 3(d).

결과적으로 단순화된 자세 Pi의 형태는

Figure 112020035072485-pat00013
로 표현된다. pi는 모션 센서와 대응되는 각 관절 부위의 3차원 위치값이고 k는 모션 센서의 개수이다. 본 발명의 실시예의 경우, 머리와 양 손에 각각 모션 센서가 장착되므로 k=3이다.As a result, the shape of the simplified posture P i is
Figure 112020035072485-pat00013
is expressed as p i is the three-dimensional position value of each joint portion corresponding to the motion sensor, and k is the number of motion sensors. In the case of the embodiment of the present invention, since motion sensors are mounted on the head and both hands, respectively, k=3.

데이터 간소화 이후, 데이터 구축부(110)는 전체 동작에 대응하여 수집된 전체 자세 데이터 중에서 일부의 자세 데이터들을 샘플링(sampling)하고 이를 자세 검색 DB에 저장한다(S220). After data simplification, the data building unit 110 samples some of the posture data from among the total posture data collected in response to the entire motion and stores it in the posture search DB (S220).

데이터 샘플링을 진행하는 이유는 다음과 같다. 본 발명에서 사용하는 검색 알고리즘은 선형 검색이다. 일반적으로 동작 데이터의 프레임 간격은 매우 짧기 때문에, 시간적으로 인근한 프레임들은 서로 매유 유사한 자세를 나타낸다. 이때, 거의 비슷한 자세들은 검색 대상에서 제외하면 검색의 효율을 높일 수 있다. 따라서 전체 동작 데이터를 샘플링하여 선택된 프레임만을 검색 대상 집합으로 지정한다.The reasons for data sampling are as follows. The search algorithm used in the present invention is a linear search. In general, since the frame interval of motion data is very short, temporally adjacent frames exhibit very similar postures. In this case, if almost similar postures are excluded from the search target, the search efficiency can be increased. Therefore, only the selected frame is designated as the search target set by sampling the entire motion data.

도 4는 캐릭터의 점프 동작에 대한 시간별 자세 데이터를 예시한 도면이다.4 is a diagram illustrating posture data for each time for a jumping motion of a character.

도 4와 같이, 모션 데이터의 경우 비슷한 시간대의 데이터는 매우 유사한 형태를 띄며, 이러한 모션 데이터를 일일이 검색하는 것은 매우 비효율적인 작업이므로 효율적인 사용을 위해 전체 데이터 중 일부를 샘플링하여 사용하는 것이 바람직하다.As shown in FIG. 4 , in the case of motion data, data of a similar time period has a very similar shape, and since it is very inefficient to search for such motion data one by one, it is preferable to sample and use some of the entire data for efficient use.

도 5는 본 발명의 실시예에 따른 데이터 샘플링 과정을 설명하는 도면이다.5 is a diagram for explaining a data sampling process according to an embodiment of the present invention.

도 5를 참조하면 임의 동작에 대한 시간별 자세 데이터 중에서 중요 프레임(파란색)을 1차로 샘플링하고(도 5의 (a)), 일정 시간 간격으로 프레임(빨간색)을 2차로 샘플링하여(도 5의 (b)), 샘플링된 데이터만을 자세 검색 DB에 저장하는 모습을 나타낸다. 이러한 샘플링 과정은 캐릭터의 개별 동작마다 수행된다.Referring to FIG. 5 , an important frame (blue) is primarily sampled (in FIG. 5 (a)) among the time-specific posture data for an arbitrary motion, and a frame (red) is sampled secondarily at a predetermined time interval ( b)), shows that only the sampled data is stored in the posture search DB. This sampling process is performed for each individual movement of the character.

1차 샘플링 단계에서, 데이터 구축부(110)는 해당 동작을 구성한 시간별 자세 데이터 중 주변 시간 대비 속도가 지역적 최소 값을 가지는 적어도 하나의 자세 데이터를 1차적으로 샘플링한다. In the first sampling step, the data building unit 110 primarily samples at least one posture data having a regional minimum value in a speed relative to the surrounding time among the hourly posture data constituting the corresponding motion.

즉, 캐릭터의 해당 동작 시 머리 및 양손에 해당한 세 가지 관절 부위에서 순간적으로 저속 또는 멈춤이 발생한 시점에 해당한 자세 데이터를 1차적으로 샘플링한다. 즉, 해당 동작 시에 해당 관절 부위에 대한 시간에 따른 속도 그래프가 지역적으로 최소값을 나타내는 순간의 자세 데이터를 선택한다.That is, during the corresponding movement of the character, the posture data corresponding to the instantaneous low speed or stop occurs in the three joint parts corresponding to the head and both hands are primarily sampled. That is, during the corresponding operation, the posture data at the moment in which the velocity graph according to time for the corresponding joint region shows the local minimum value is selected.

예를 들어, 머리 부위의 센서를 기반으로 점프 동작의 경우 가장 높이 뛰어오른 순간의 자세 데이터, 착지 과정에서 무릎이 굽혀진 순간의 자세 데이터, 무릎이 펼쳐져 자세가 안정화된 순간의 자세 데이터, 팔 동작이 정리 되면서 손의 움직임이 멈춘 순간의 자세 데이터 등을 1차적으로 샘플링한다. 이러한 데이터는 반드시 검색될 필요가 있는 중요한 데이터에 해당한다.For example, in the case of a jump motion based on a sensor in the head region, posture data at the moment of the highest jump, posture data at the moment when the knee is bent during landing, posture data at the moment when the posture is stabilized as the knee is extended, and arm motion With this arrangement, the posture data at the moment when the hand motion is stopped is primarily sampled. These data correspond to important data that must be retrieved.

이후에는, 2차 샘플링을 진행하는데, 이는 시간 간격으로 수행되는 무작위 샘플링에 해당한다. 즉, 데이터 구축부(110)는 도 4의 좌측 그림과 같이 시간 순으로 나열된 시간별 자세 데이터 중에 일부를 설정 시간 간격에 따라 간헐적으로 선택하는 방식으로 2차적으로 샘플링한다. 결과적으로 도 4의 우측 그림과 같이, 1차 및 2차 선택된 자세 데이터만을 이용하여 자세 검색 DB를 구축한다.After that, secondary sampling is performed, which corresponds to random sampling performed at time intervals. That is, as shown in the left figure of FIG. 4 , the data building unit 110 samples secondarily in a way that intermittently selects some of the time-wise posture data listed in chronological order according to a set time interval. As a result, as shown in the right figure of FIG. 4 , a posture search DB is constructed using only the first and second selected posture data.

창작자에 의해 만들어진 캐릭터 동작 데이터는 양이 제한적인데, 본 발명의 실시예는 반드시 검색될 필요가 있는 중요 자세를 1차적으로 선택하며 나머지 부분에 대해서는 일정한 시간 간격으로 2차적으로 샘플링하여 DB를 구축한다.The amount of character motion data created by the creator is limited. In the embodiment of the present invention, an important posture that must be searched is primarily selected, and the remaining parts are secondarily sampled at regular time intervals to build a DB. .

이후에는 사용자의 머리와 양손에 설치된 모션 센서로부터 모션 데이터를 획득하고 각 신체 부위의 모션 데이터와 일치하는 캐릭터의 자세 데이터를 자세 검색 DB로부터 검색하여 가상 현실 상에 표출되는 캐릭터 동작을 실시간 제어한다.After that, motion data is acquired from motion sensors installed on the user's head and both hands, and the character's posture data matching the motion data of each body part is retrieved from the posture search DB to control the character's motion displayed in virtual reality in real time.

우선, 센서 데이터 획득부(120)는 매 프레임마다 사용자의 머리와 양 손에 장착된 복수의 모션 센서로부터 해당 부위에 대한 위치 값을 각각 획득하여, 이를 자세 검색부(130)로 전달한다(S230).First, the sensor data acquisition unit 120 acquires a position value for a corresponding part from a plurality of motion sensors mounted on the user's head and both hands in every frame, respectively, and transmits them to the posture search unit 130 (S230) ).

자세 검색부(130)는 현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색한다(S240). The posture search unit 130 compares the position values of each motion sensor obtained in response to the current user posture with the position values of all motion data in the posture search DB, respectively, and searches for posture data of the character matching the current user posture. (S240).

자세 검색부(130)는 자세 검색 DB에 저장된 모든 자세 데이터를 대상으로 선형 검색을 수행한다. 현재 사용자가 장착한 모션센서 위치의 집합을

Figure 112020035072485-pat00014
라고 할 때 최적의 캐릭터 자세는 다음의 방법으로 검색된다. The posture search unit 130 performs a linear search on all posture data stored in the posture search DB. The set of motion sensor positions currently installed by the user
Figure 112020035072485-pat00014
, the optimal character posture is searched for in the following way.

자세 검색부(130)는 자세 검색 DB 내 저장된 자세 데이터(Pi) 중에서 현재 사용자 자세와 매칭되는 o번째 자세 데이터(Po)를 아래 수학식 1에 의해 검색한다.The posture search unit 130 searches for the o-th posture data P o matching the current user posture from among the posture data P i stored in the posture search DB by Equation 1 below.

Figure 112020035072485-pat00015
Figure 112020035072485-pat00015

여기서, S는 상기 각 모션 센서의 위치 값의 집합, i는 저장된 자세 데이터의 인덱스, d(S,Pi)는 S와 Pi 간 차이를 정의하는 함수이다. 그리고, Ω은 자세 검색 DB 내 저장된 자세 데이터의 집합이며, 샘플링된 프레임 번호의 집합에 해당한다.Here, S is a set of position values of each motion sensor, i is an index of stored posture data, and d(S,P i ) is a function defining a difference between S and P i . And, Ω is a set of posture data stored in the posture search DB, and corresponds to a set of sampled frame numbers.

이때, 함수 d(S,Pi)는 아래의 수학식 2와 같이 정의된다.In this case, the function d(S,P i ) is defined as in Equation 2 below.

Figure 112020035072485-pat00016
Figure 112020035072485-pat00016

여기서, k는 모션 센서의 개수, j는 사용자와 캐릭터 간 대응하는 신체 부위의 인덱스, pj는 자세 데이터(Pi)에 포함된 k개의 위치 값 중 j번째 위치 값을 나타낸다. 본 발명의 실시예에서 k=3이므로, j={1,2,3}으로 정의된다. 예를 들어, j=1은 머리 부위, j=2,3은 양 손 부위에 해당한다.Here, k denotes the number of motion sensors, j denotes an index of a body part corresponding to a user and a character, and p j denotes a j-th position value among k position values included in the posture data P i . Since k = 3 in the embodiment of the present invention, it is defined as j = {1,2,3}. For example, j=1 corresponds to the head area, and j=2,3 corresponds to both hands.

Ri는 S와 Pi를 전역 공간에서 정합하는 변환 행렬(이하, 정합 행렬), Dj는 사용자에게 장착된 각 모션 센서 및 캐릭터의 각 관절 사이의 위치와 방향에 대한 차이를 보정하는 보정 행렬, T는 캐릭터의 신체 크기와 사용자의 신체 크기 간의 차이를 보정하는 크기 변환 행렬를 나타낸다.R i is a transformation matrix that matches S and P i in the global space (hereafter, registration matrix), D j is a correction matrix that compensates for differences in position and direction between each motion sensor mounted on the user and each joint of the character , T denotes a size transformation matrix that corrects the difference between the body size of the character and the body size of the user.

여기서, 변환 행렬 Dj와 T는 사용자 신체와 캐릭터 신체의 차이를 보정하는 변환행렬이므로, 사용자가 초기에 각 모션 센서를 착용한 직후 한 번만 계산하면 된다. 이를 위하여, 사용자가 T-자세(양팔을 수평으로 벌리고 다리를 모으고 서는 자세) 상태로 있을 때의 모션 센서 위치를 측정하고 캐릭터가 T-자세 일 때의 관절의 위치와 비교한다.Here, since the transformation matrices D j and T are transformation matrices that correct the difference between the user's body and the character's body, they need only be calculated once immediately after the user initially wears each motion sensor. To this end, the motion sensor position is measured when the user is in a T-position (standing with both arms horizontally spread and legs folded) and compared with the joint position when the character is in the T-position.

도 6은 본 발명의 실시예에서 사용자와 캐릭터 간 보정 행렬을 획득하는 방법을 설명한 도면이다.6 is a diagram illustrating a method of obtaining a correction matrix between a user and a character in an embodiment of the present invention.

우선, 도 6의 (a)와 같이, 크기 변환 행렬 T는 초기에 사용자가 양 팔을 벌린 상태에서 측정된 양손 사이의 거리와 가상 현실 상의 캐릭터의 양 손 사이의 거리 간의 비율을 측정하여 획득할 수 있다. First, as shown in (a) of FIG. 6 , the size transformation matrix T is obtained by measuring the ratio between the distance between the hands measured in a state where the user initially spreads his arms and the distance between the hands of the character in the virtual reality. can

즉, T는 스케일 변환 행렬로서, 사용자가 양손에 모션 센서를 장착하고 있는 경우 사용자와 캐릭터의 양손 간의 거리의 비율을 이용하여 3차원 직교 좌표계의 3축에 대해 균일하게 스케일링하여 획득한다. 이와 같이, 사용자와 캐릭터의 크기 차이 비율을 양 손 거리의 차로 측정하여 세 축에 대하여 균일하게 스케일링할 수 있다. 만일 사용자가 양손 센서에 더해 양발과 머리에 대한 센서를 착용하고 있다면, 수직축에 대해서는 머리에서 양 발 사이의 거리의 비율을 이용하여 스케일링을 다르게 진행할 수 있다.That is, T is a scale transformation matrix and is obtained by uniformly scaling with respect to three axes of a three-dimensional Cartesian coordinate system by using the ratio of the distance between the user's hands and the character's hands when the user is equipped with motion sensors on both hands. In this way, the ratio of the size difference between the user and the character can be uniformly scaled with respect to three axes by measuring the difference between the hand distances. If the user is wearing the sensor for both feet and the head in addition to the both-hand sensor, scaling may be performed differently using the ratio of the distance between the head and the feet on the vertical axis.

이러한 크기 보정 행렬 T에 대한 연산 이후, 캐릭터 관절과 모션 센서 사이의 위치와 방향에 대한 차이를 보정한다. 예를 들어, 사용자의 경우 양 손에 들고 있는 모션 센서를 통하여 캐릭터의 손목 관절을 제어하기 때문에 사용자의 모션 센서와 캐릭터의 관절 사이의 오차가 발생할 수 있다. 이를 해결하기 위하여 사용자의 모션 센서의 위치가 캐릭터의 실제 관절 위치에 맞게 보정한다.After the calculation on the size correction matrix T, the difference in position and direction between the character joint and the motion sensor is corrected. For example, since the user controls the wrist joint of the character through the motion sensors held in both hands, an error may occur between the user's motion sensor and the joint of the character. To solve this, the position of the user's motion sensor is corrected to match the actual joint position of the character.

Dj는 위치와 방향에 대한 변환 행렬로서, 도 6의 (b)와 같이, 캐릭터와 사용자가 모두 T-자세이고 모션 센서 위치에 스케일 변환 T가 적용된 후에, j번째 캐릭터 관절과 모션 센서 사이의 위치와 방향에 대한 차이를 이용하여 Dj를 획득한다. 한편, 수학식 2의 d(S,Pi)를 연산하려면 정합 행렬 Ri을 계산해 주어야 한다. D j is a transformation matrix for position and direction. As shown in FIG. 6(b), both the character and the user are in a T-position and after a scale transformation T is applied to the motion sensor position, the distance between the j-th character joint and the motion sensor is D j is obtained by using the difference between the position and the direction. Meanwhile, in order to calculate d(S,Pi) in Equation 2, a matching matrix R i needs to be calculated.

도 7은 본 발명의 실시예에서 사용자와 캐릭터 간 데이터 정합 개념을 설명한 도면이다. 이러한 도 7은 사용자와 캐릭터 간 매칭된 동일 자세에 대하여, 사용자의 머리와 양 손에 장착된 모션 센서로부터 획득된 데이터(s1,s2,s3)와 그와 매칭된 캐릭터 각 관절의 자세 데이터(p1,p2,p3) 간에 정합을 수행하는 개념을 나타낸다.7 is a diagram illustrating the concept of matching data between a user and a character in an embodiment of the present invention. 7 shows data (s1, s2, s3) obtained from motion sensors mounted on the user's head and both hands for the same posture matched between the user and the character, and the matched posture data of each joint of the character (p1) ,p2,p3) represents the concept of matching.

만일 캐릭터 모델과 사용자가 같은 3차원 좌표계에 있다고 가정하고 두 자세의 전역 위치와 방향을 정확히 알고 있다면 두 자세를 서로 겹치고 정합하는 일은 간단한 계산으로 처리될 수 있다. 하지만 본 발명에서 사용자의 신체에 부착되는 모션 센서는 최소 3개(머리, 양손)로 제한적이므로 전체 신체에 대한 정확한 위치와 방향을 정의하기 어렵다. 따라서 아래와 같이 현재 캐릭터 관절의 위치와 모션 센서의 위치의 오차를 최소화하는 방법으로 정합 행렬 Ri을 정의한다.If the character model and the user are assumed to be in the same three-dimensional coordinate system and the global positions and directions of the two postures are accurately known, overlapping and matching the two postures can be handled with a simple calculation. However, in the present invention, since the number of motion sensors attached to the user's body is limited to at least three (head, both hands), it is difficult to define the exact position and direction of the entire body. Therefore, the registration matrix R i is defined as a method of minimizing the error between the position of the current character joint and the position of the motion sensor as shown below.

즉, 자세 검색부(130)는 검색 대상이 되는 자세 데이터(Pi) 마다 정합 행렬(Ri)을 각각 결정하는데, 캐릭터와 사용자의 서로 대응한 신체 부위 간의 위치 오차를 최소화하는 위치 변환 행렬 R을 아래 수학식 3에 의해 연산하여 정합 행렬(Ri)을 결정한 후 결정된 정합 행렬(Ri)을 수학식 2에 대입하여 d(S,Pi)를 구한다.That is, the posture search unit 130 determines a matching matrix (R i ) for each posture data (P i ) to be searched, respectively, and a position transformation matrix R that minimizes the position error between the body parts corresponding to each other and the character. is calculated by Equation 3 below to determine the registration matrix (R i ), and then substituted the determined registration matrix (R i ) into Equation 2 to obtain d(S,Pi).

Figure 112020035072485-pat00017
Figure 112020035072485-pat00017

정합 행렬 Ri는 Dj 나 T와는 달리 검색 대상이 되는 각각의 캐릭터 자세 Pi 마다 새롭게 계산되어야 한다. 따라서 가능한 계산이 단순해야 한다. 변수의 수를 줄이기 위해 먼저 위치 변환 행렬 R를 다음과 같이 단순화한다.The matching matrix R i is different from D j or T , for each character posture P i to be searched for. must be recalculated each time. Therefore, the possible calculations should be simple. In order to reduce the number of variables, the position transformation matrix R is first simplified as follows.

위치 변환 행렬(R)은 3차원 공간에 존재하는 위치 변환 행렬로써 다음의 수학식 4와 같은 4행 4열의 호모지니어스 좌표계로 나타낼 수 있다.The position transformation matrix R is a position transformation matrix existing in a three-dimensional space and can be expressed in a homogeneous coordinate system of 4 rows and 4 columns as in Equation 4 below.

Figure 112020035072485-pat00018
Figure 112020035072485-pat00018

여기서, R의 단순화를 위하여 수학식 4에 대해 설정 제약 조건을 적용한다.Here, for the simplification of R, a setting constraint is applied to Equation (4).

이때, 설정 제약 조건은, 캐릭터의 크기/이동/회전 변환 중 크기 변환을 금지하는 제1 조건(캐릭터 이동/회전 변환만 허용), 지면과 수직한 y축을 기준으로 하는 회전만 허용하는 제2 조건(수직축 회전만 허용), y축 상의 이동을 금지하는 제3 조건(수직축 상의 이동 제한)을 포함한다. In this case, the setting constraint conditions are a first condition that prohibits size conversion during size/movement/rotation conversion of a character (only character movement/rotation conversion is allowed), and a second condition that allows only rotation based on the y-axis perpendicular to the ground. (Only vertical rotation is allowed), and a third condition that prohibits movement on the y-axis (restriction on movement on the vertical axis).

상술한 3가지 제약 조건에 따라 수학식 4는 수학식 5와 같이 단순화된다.Equation 4 is simplified to Equation 5 according to the above three constraint conditions.

Figure 112020035072485-pat00019
Figure 112020035072485-pat00019

여기서, θ는 y축을 기준으로 하는 회전 각도, tx는 x축 방향 이동 거리, tz는 z축 방향 이동 거리이다.Here, θ is a rotation angle with respect to the y-axis, t x is a movement distance in the x-axis direction, and t z is a movement distance in the z-axis direction.

이와 같이, 본 발명의 실시예는, R을 단순화하기 위하여, 정합 과정에서 신체 스케일의 변형화는 금지하고 신체의 회전과 이동 변환 만을 허용(고려)한다. 또한 자세가 수직축(사용자가 직립한 상태의 축)을 기준으로 한 방향으로 기울어지는 것을 금지하기 위하여, 수직축 (y축) 회전만을 허용한다. 그리고 정합 과정에서 캐릭터가 하늘에 떠 있거나 땅 속으로 들어가는 것을 금지하여 수직 축을 따라 이동하는 것은 제한한다.As such, in the embodiment of the present invention, in order to simplify R, deformation of the body scale is prohibited in the registration process and only rotation and movement transformation of the body is allowed (considered). Also, in order to prevent the posture from tilting in the direction with respect to the vertical axis (the axis of the user's upright state), only the vertical axis ( y axis) rotation is allowed. And during the registration process, the movement along the vertical axis is restricted by forbidding the character to float in the sky or go into the ground.

이후, 빠른 계산을 위하여, 수학식 5에서 비선형적인 요소인 cos과 sin 함수를 변수 α와 β로 치환하면, 수학식 6과 같이 정리될 수 있다.Thereafter, for quick calculation, if the cos and sin functions, which are non-linear elements in Equation 5, are substituted with variables α and β, it can be arranged as shown in Equation 6.

Figure 112020035072485-pat00020
Figure 112020035072485-pat00020

여기서, 우항의 경우, R'로 표현할 수 있다. 이때, R의 강성 조건을 유지시키기 위해 알파와 베타의 관계식을 정의할 수 있다. α22=1는 우항의 R'의 강성을 유지하게 하는 제약 조건에 해당한다.Here, in the case of the right term, it can be expressed as R'. In this case, in order to maintain the stiffness condition of R, a relational expression between alpha and beta can be defined. α 22 =1 corresponds to a constraint that maintains the rigidity of R′ in the right term.

정합 행렬(Ri)에 대한 수학식 3은 상수와 변수를 분리하여 정리하면 다시 아래의 수학식 7과 같이 각 변수 α, β, tx, ty에 대한 최적화 식으로 간소화될 수 있다.Equation 3 for the matching matrix (R i ) can be simplified as an optimization expression for each variable α, β, t x , and t y as shown in Equation 7 below by separating constants and variables.

Figure 112020035072485-pat00021
Figure 112020035072485-pat00021

여기서, A는 상수 행렬이고, b는 상수 벡터이다.Here, A is a constant matrix and b is a constant vector.

위의 최적화는 선형 문제이므로 최소제곱해를 구하는 방식으로 쉽게 계산된다. 이렇게 구해진 R을 통해 가상 환경 내의 적절한 위치와 방향에 캐릭터를 배치할 수 있다.Since the above optimization is a linear problem, it is easily calculated by finding a least-squares solution. Through the obtained R, it is possible to place the character in an appropriate position and direction in the virtual environment.

여기서, 강성 조건인 수학식 6의 우항 부분이 고려되지 않았으므로, 이를 보정하기 위하여 α와 β를 아래 수학식 8과 같이 수정한다.Here, since the right-hand part of Equation 6, which is the stiffness condition, is not considered, α and β are modified as shown in Equation 8 below to correct this.

Figure 112020035072485-pat00022
Figure 112020035072485-pat00022

최적의 캐릭터 자세가 결정되면, 검색 과정에서 계산되는 정합 행렬 R을 사용하여 쉽게 가상환경 내의 적절한 위치와 방향에 캐릭터를 배치할 수 있다. 배치 후에는 검색을 위해 단순화된 자세 데이터 대신 모든 관절의 각도로 표현되는 원본 캐릭터 자세 데이터를 사용하여 후보정 처리할 수 있다.Once the optimal character posture is determined, the character can be easily placed in an appropriate position and direction in the virtual environment using the registration matrix R calculated in the search process. After placement, post-correction processing can be performed using original character posture data expressed in angles of all joints instead of simplified posture data for retrieval.

도 8은 본 발명의 실시예에서 후처리 과정을 통하여 캐릭터의 손 위치를 보정한 모습을 예시한 도면이다.8 is a diagram illustrating a state in which the position of a character's hand is corrected through a post-processing process in an embodiment of the present invention.

검색된 캐릭터 자세는 현재 사용자 자세와 정확히 일치하지 않지만 캐릭터 고유의 스타일을 유지하는 것이 목적이므로 완전히 일치시킬 필요는 없다. 다만 캐릭터와 가상 환경 내의 다른 사물 사이의 상호 작용에 중요한 영향을 미치는 손과 발의 위치는 사용자가 의도한 위치와 동일하게 유지하는 것이 동작 제어에 도움이 될 가능성이 크다. 따라서 도 8과 같이 캐릭터의 손 위치를 실제 사용자가 의도한 위치로 보정할 수 있다. 머리의 경우 바라보는 방향만 일치시킬 수 있다. 그밖에 본 발명은 실제 검색에서 고려되지 않는 관절 방향에 대한 정보도 현재 사용자가 착용 중인 모션 센서와 일치되도록 변형할 수 있다. The retrieved character's posture does not exactly match the current user's posture, but it is not necessary to completely match the character's unique style as the purpose is to maintain it. However, it is highly likely that the position of the hands and feet, which has an important influence on the interaction between the character and other objects in the virtual environment, remains the same as the intended position by the user to help control the motion. Accordingly, as shown in FIG. 8 , the position of the hand of the character may be corrected to the position intended by the actual user. In the case of the head, only the direction of looking can be matched. In addition, according to the present invention, information on joint directions that are not taken into account in an actual search may be modified to match the motion sensor currently worn by the user.

이와 같이, 본 발명의 실시예에서 수행한 모든 실험에서는 캐릭터의 손과 발의 위치와 방향에 대해 각각 대응하는 모션 센서가 있는 경우 역기구학(inverse kinematics) 기법을 이용하여 센서 값과 동일하게 보정하였다. 캐릭터 머리의 경우에는 방향 값만 모션 센서와 동일하게 변형하였다. 역기구학 방법은 팔, 다리, 목 부분에만 제한적으로 분석적 계산법을 적용하여 불필요한 자세 변화를 최소화하였다.As such, in all the experiments performed in the embodiment of the present invention, if there are motion sensors corresponding to the positions and directions of the characters' hands and feet, they were corrected to be the same as the sensor values by using the inverse kinematics technique. In the case of the character's head, only the direction value was transformed in the same way as the motion sensor. The inverse kinematics method minimized unnecessary posture changes by applying the analytical calculation method limited to the arms, legs, and neck.

이후, 자세 제어부(140)는 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어한다(S250).Thereafter, the posture controller 140 controls the posture of the character expressed in response to the current user posture in real time based on the posture data retrieved for each frame ( S250 ).

매 프레임마다 독립적으로 검색된 자세들은 변화의 연속성을 보장하지 않는다. 캐릭터 자세의 갑작스러운 변화는 동작의 사실성에 부정적인 영향을 미치며 자연스럽지 못한 영상을 유발할 수 있다.Independently searched postures for every frame do not guarantee continuity of change. A sudden change in a character's posture negatively affects the realism of the action and may cause an unnatural image.

이를 보완하기 위하여, 자세 제어부(140)는 프레임당 캐릭터 자세 변화의 비율을 제한한다. 즉, 현재 프레임과 직전 프레임에서 검색된 자세 데이터 간의 자세 변화의 비율을 아래 수학식 9를 이용하여 제한한다.To compensate for this, the posture controller 140 limits the rate of change in the character posture per frame. That is, the ratio of the posture change between the posture data retrieved from the current frame and the previous frame is limited using Equation 9 below.

Figure 112020035072485-pat00023
Figure 112020035072485-pat00023

여기서, Pt'는 현재 프레임에 적용된 자세 변화의 비율, Po는 현재 프레임에서 검색된 자세 데이터, Pt-1는 이전 프레임에서 검색된 자세 데이터, ω는 가중치,

Figure 112020035072485-pat00024
는 캐릭터의 자세 데이터에서 위치 값의 경우 선형 보간법을 하고 방향 값의 경우 구면 보간법을 적용하는 연산을 나타낸다. ω는 실험에 의해 얻어지는 경험적인 상수로서, 본 발명의 실시예에서 ω는 0.05로 사용하였다.Here, P t ' is the ratio of the posture change applied to the current frame, P o is the posture data retrieved from the current frame, P t-1 is the posture data retrieved from the previous frame, ω is the weight,
Figure 112020035072485-pat00024
represents an operation that applies linear interpolation for position values and spherical interpolation for direction values in the character's posture data. ω is an empirical constant obtained by experiment, and ω is used as 0.05 in the embodiment of the present invention.

즉, 수학식 9는 현재 검색된 자세 Po 와 이전 프레임에서 사용한 자세 Pt-1의 관절 위치와 방향값을 혼합하는 식으로, 본 발명의 실시예는 이를 기반으로 프레임 간 급격하고 부자연스러운 자세 변화를 방지한다.That is, Equation 9 mixes the joint position and direction values of the currently found posture P o and the posture P t-1 used in the previous frame. to prevent

도 9는 본 발명의 실시예에서 인접 프레임 간 캐릭터 자세 변화의 비율을 제한하는 모습을 예시한 도면이다.9 is a diagram illustrating a state of limiting the rate of change of character posture between adjacent frames in an embodiment of the present invention.

도 9를 참조하면, 이전 프레임에서 검색된 자세 데이터(Pt-1)와 현재 검색된 자세 데이터(Po)를 기반으로 수학식 9의 보간법을 적용한 결과, 현재 검색된 자세 데이터(Po) 대신에 보간된 자세 데이터가 제공된 것을 알 수 있다. 즉, 이전 프레임에서 검색된 손 위치(노란색)로부터 현재 프레임에 검색된 손 위치(빨간색)로의 급격한 변화를 방지하도록 보간된 손 위치(파란색)을 제공함으로써, 프레임 간 급작스럽운 자세 변화를 방지한다.Referring to FIG. 9 , as a result of applying the interpolation method of Equation 9 based on the posture data (P t-1 ) found in the previous frame and the currently retrieved posture data (P o ), interpolation instead of the currently found posture data (P o ) It can be seen that the given posture data is provided. That is, by providing an interpolated hand position (blue) to prevent an abrupt change from the hand position retrieved in the previous frame (yellow) to the hand position retrieved in the current frame (red), abrupt change of posture between frames is prevented.

본 발명의 실시예에서 수행한 모든 실험에서는 프레임 타임이 0.166초 였으며 ω값을 0.05로 고정하여 사용하였다. 즉, 캐릭터는 자세의 변화를 0.166초 당 5%로 제한하였다.In all experiments performed in the embodiment of the present invention, the frame time was 0 . It was 166 seconds and the ω value was 0 . 05 was fixed and used. That is, the character changes the posture to 0 . Limited to 5% per 166 seconds.

이하에서는 본 실시예에 따른 캐릭터 제어 장치의 성능 실험 결과를 설명한다. 실험에 사용된 동작 데이터는 일반 모션 캡쳐 데이터와 전문가가 특정 캐릭터를 위해 제작한 애니메이션 데이터로 나누어진다. 모션 캡처 데이터는 자유롭게 춤추는 동작(약 3분), 골프 동작 (약 1분), 걷기-뛰기-앉기 등의 기본 동작(약 3분), 태권도 동작(약 5분), 마지막으로 기타 여러 동작(약 3분)을 포함하고 있다.Hereinafter, performance test results of the character control apparatus according to the present embodiment will be described. The motion data used in the experiment is divided into general motion capture data and animation data created by experts for specific characters. Motion capture data includes free dancing motions (about 3 minutes), golf motions (about 1 minute), basic motions such as walking-jumping-sitting (about 3 minutes), taekwondo actions (about 5 minutes), and finally many other motions ( about 3 minutes).

전문가가 제작한 애니메이션 데이터는 티팟스튜디오(주)에서 제작한 캐릭터와 가상현실 게임에 적합한 점프하기, 앉기, 공격하기 등의 동작(총 약 1분)이 포함되어 있다.The animation data produced by experts includes characters produced by Teapot Studio Co., Ltd. and movements such as jumping, sitting, and attacking (about 1 minute in total) suitable for virtual reality games.

첫 번째 실험에서는 무작위로 수집된 모션캡쳐 데이터를 사용하는 경우와 전문가에 의해서 제작된 소량의 캐릭터 애니메이션 데이터를 사용하는 경우의 결과를 비교하였다. 또한 일반적인 VR HDM 장비를 사용하는 경우를 가정하여 사용자의 머리와 양손에만 모션 센서를 장착하고 실험하였다.In the first experiment, the results of the case of using randomly collected motion capture data and the case of using a small amount of character animation data produced by experts were compared. Also, assuming that a general VR HDM equipment is used, motion sensors were installed only on the user's head and both hands and tested.

도 10은 유사한 사용자 입력값에 대한 결과 차이를 비교한 결과를 나타낸 도면이다. 도 1O에서 첫 번째 열은 각기 다른 사용자 입력 자세를 나타낸다. 첫 번째 행은 왼손을 들었을 때, 두 번째 행은 앉았을 때, 세 번째 행은 고개를 뒤로 젖히는 동작을 나타낸다. 두 번째 열은 일반적인 모션 캡처 데이터를 사용했을 때의 결과를 나타낸 것이고, 세 번째 열은 본 발명의 실시예에 따라 캐릭터 애니메이션 데이터를 사용했을 때의 결과를 나타낸 것이다.10 is a diagram illustrating a result of comparing the result difference for similar user input values. In FIG. 10 , the first column represents different user input postures. The first row shows when the left hand is raised, the second row shows the sitting position, and the third row shows the motion of tilting the head back. The second column shows results when using general motion capture data, and the third column shows results when using character animation data according to an embodiment of the present invention.

실험 결과, 본 발명과 같이 모션캡쳐 데이터를 사용하였을 때에는 캐릭터가 평범한 사람과 같은 동작을 하는 것을 확인할 수 있다. 또한, 캐릭터 애니메이션 데이터를 사용한 경우 캐릭터 자체의 고유 스타일이 명확하게 표현되는 것을 확인할 수 있다. 캐릭터 다리의 움직임도 창작자(애니케이터)에 의해 캐릭터에게 부여된 자세가 나타남을 알 수 있다.As a result of the experiment, it can be confirmed that the character behaves like an ordinary person when motion capture data is used as in the present invention. In addition, when character animation data is used, it can be confirmed that the character's own unique style is clearly expressed. It can be seen that the movement of the character's legs also shows the posture given to the character by the creator (animator).

두 번째 실험에서는 추가 동작 센서를 사용하는 경우의 결과 비교를 통해 본 연구에서 제시하는 방법의 확장성을 검증하였다. 이 실험에서는 일반 모션캡쳐 데이터를 사용하였으며 총 3개의 센서(머리와 양손)를 사용하는 경우와 총 6개의 센서 (머리, 양손, 양발, 허리)를 사용하는 경우의 결과를 비교하였다.In the second experiment, the scalability of the method presented in this study was verified by comparing the results when using additional motion sensors. In this experiment, general motion capture data was used, and the results when a total of 3 sensors (head and both hands) were used and when a total of 6 sensors (head, both hands, both feet, waist) were used were compared.

도 11은 동작 센서의 추가에 따른 비교 결과를 나타낸 도면이다. 도 11에서 첫 번째 행은 3개의 동작센서를 사용했을 때의 결과를 나타내고, 두 번째 행은 6개의 동작센서를 사용했을 때의 결과를 나타낸다. 동작 센서의 개수가 늘어날수록 사용자의 자세와 보다 유사한 캐릭터 자세가 표현되었음을 확인할 수 있었다.11 is a view showing a comparison result according to the addition of a motion sensor. In FIG. 11 , the first row shows results when three motion sensors are used, and the second row shows results when six motion sensors are used. As the number of motion sensors increased, it was confirmed that a character posture more similar to the user's posture was expressed.

이와 같이, 본 발명은 가상현실 게임을 위해 제작된 캐릭터 모델과 동작 데이터를 사용하여 일반적인 VR장비의 동작센서를 이용한 캐릭터 동작제어 방법을 제공한다. 또한, 일반적인 사람의 동작을 캡쳐한 모션 캡쳐 데이터를 적용했을 때와 게임 제작을 위한 캐릭터의 애니메이션 데이터를 적용했을 때의 결과를 비교하여 게임 캐릭터 고유의 동작 스타일이 유지 되었음을 증명하였다. 마지막으로 사용자의 허리와 양발에 동작 센서를 추가로 장착하는 실험을 통해 본 발명에서 제시하는 방법을 보다 정교하게 표현할 수 있다는 확장성도 증명하였다.As described above, the present invention provides a character motion control method using a motion sensor of a general VR equipment using a character model and motion data produced for a virtual reality game. In addition, by comparing the results of applying the motion capture data that captured the motion of a general person with the animation data of the character for game production, it was proved that the unique motion style of the game character was maintained. Finally, the scalability of the method presented in the present invention can be more precisely expressed through an experiment in which motion sensors are additionally mounted on the user's waist and both feet.

이상과 같은 본 발명에 따르면, 머리와 양손에 설치된 모션 센서와 가상 캐릭터를 위하여 제작된 소량의 애니메이션 데이터를 기반으로 사용자의 자세와 유사한 캐릭터 자세를 직접 검색하여 캐릭터의 동작을 빠르게 제어할 수 있고 캐릭터 제어 과정에서 창작자(애니메이터)가 의도한 캐릭터 고유의 스타일이 보존될 수 있다.According to the present invention as described above, based on the motion sensors installed on the head and both hands and a small amount of animation data produced for the virtual character, it is possible to directly search for a character posture similar to the user's posture to quickly control the character In the control process, the character's own style intended by the creator (animator) may be preserved.

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.Although the present invention has been described with reference to the embodiment shown in the drawings, which is only exemplary, those of ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Accordingly, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

100: 캐릭터 동작 제어 장치 110: 데이터 구축부
120: 센서 데이터 획득부 130: 자세 검색부
140: 자세 제어부
100: character motion control device 110: data construction unit
120: sensor data acquisition unit 130: posture search unit
140: posture control

Claims (16)

캐릭터 동작 제어 장치를 이용한 캐릭터 동작 제어 방법에 있어서,
캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고 수집된 자세 데이터를 기초로 자세 검색 DB를 구축하는 단계;
매 프레임마다 사용자의 머리와 양 손을 포함한 신체 부위에 장착된 복수의 모션 센서로부터 위치 값을 각각 획득하는 단계;
현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 상기 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색하는 단계; 및
상기 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어하는 단계를 포함하며,
상기 시간별 자세 데이터를 수집하는 단계는,
상기 수집한 자세 데이터의 구성을 단순화하도록, 상기 자세 데이터 내 포함된 캐릭터의 각 관절의 위치값과 방향값 중 방향값을 소거하고, 캐릭터의 머리 및 양 손에 대응한 관절 부분을 제외한 나머지 관절의 위치값을 소거하여 상기 자세 데이터를 재정리하며,
상기 자세 검색 DB를 구축하는 단계는,
상기 캐릭터의 동작 별 기 저장된 동작 데이터로부터 해당 동작을 구성하는 시간별 자세 데이터를 수집하는 단계, 전체 동작에 대응하여 수집된 전체 자세 데이터 중에서 일부의 자세 데이터들을 샘플링하는 단계, 및 상기 샘플링된 자세 데이터들을 상기 자세 검색 DB에 저장하는 단계를 포함하며,
상기 샘플링하는 단계는,
해당 동작을 구성한 시간별 자세 데이터 중 주변 시간 대비 속도가 지역적 최소 값을 가지는 적어도 하나의 자세 데이터를 1차적으로 샘플링하고, 시간 순으로 나열된 상기 시간별 자세 데이터 중에 일부를 설정 시간 간격에 따라 간헐적으로 선택하는 방식으로 2차적으로 샘플링하며,
상기 현재 사용자 자세와 매칭되는 자세 데이터를 검색하는 단계는,
상기 자세 검색 DB 내 저장된 자세 데이터(Pi) 중에서 현재 사용자 자세와 매칭되는 o번째 자세 데이터(Po)를 아래 수학식을 이용하여 검색하며,
Figure 112021153322564-pat00051

(여기서, S는 상기 각 모션 센서의 위치 값의 집합, i는 저장된 자세 데이터의 인덱스, d(S,Pi)는 S와 Pi 간 차이를 정의하는 함수, Ω은 상기 자세 검색 DB 내 저장된 자세 데이터의 집합을 나타낸다.)
상기 d(S,Pi)는 아래의 수학식으로 정의되며,
Figure 112021153322564-pat00052

(여기서, k는 상기 모션 센서의 개수, j는 사용자와 캐릭터 간 대응하는 신체 부위의 인덱스, pj는 자세 데이터(Pi)에 포함된 k개의 위치 값 중 j번째 위치 값, Ri는 S와 Pi를 전역 공간에서 정합하는 정합 행렬, Dj는 사용자에게 장착된 각 모션 센서 및 캐릭터의 각 관절 간의 위치와 방향에 대한 차이를 보정하는 보정 행렬, T는 캐릭터의 신체 크기와 상기 사용자의 신체 크기 간의 차이를 보정하는 크기 변환 행렬을 나타낸다.)
상기 현재 사용자 자세와 매칭되는 자세 데이터를 검색하는 단계는,
검색 대상이 되는 자세 데이터(Pi) 마다 상기 정합 행렬(Ri)을 각각 결정하되,
캐릭터와 사용자의 서로 대응한 신체 부위 간의 위치 오차를 최소화하는 위치 변환 행렬 R을 아래 수학식에 의해 연산하여 정합 행렬(Ri)을 결정한 후 상기 d(S,Pi) 연산 식에 대입하며,
Figure 112021153322564-pat00053

상기 위치 변환 행렬(R)은 설정 제약 조건에 따라 아래 수학식과 같은 호모지니어스 좌표계로 표현되며,
상기 설정 제약 조건은,
캐릭터의 크기, 이동 및 회전 변환 중에서 크기 변환을 금지하여 이동 및 회전 변환만 허용하는 조건, 지면과 수직한 y축을 기준으로 하는 회전만 허용하는 조건, y축 상의 이동을 금지하는 조건을 포함하며,
Figure 112021153322564-pat00054

(여기서, θ는 y축을 기준으로 하는 회전 각도, tx는 x축 방향 이동 거리, tz는 z축 방향 이동 거리이다.)
상기 정합 행렬(Ri)에 대한 수학식은 상수와 변수를 분리하여 정리하면 아래와 같이 각 변수 α, β, tx, ty에 대한 최적화 식으로 간소화되며,
Figure 112021153322564-pat00055

(여기서, A는 상수 행렬이고, b는 상수 벡터이다.)
상기 캐릭터의 자세를 실시간 제어하는 단계는,
현재 프레임과 직전 프레임에서 검색된 자세 데이터 간의 자세 변화의 비율을 아래의 수학식을 통하여 제한하는 캐릭터 동작 제어 방법:
Figure 112021153322564-pat00047

여기서, Pt'는 현재 프레임에 적용된 자세 변화의 비율, Po는 현재 프레임에서 검색된 자세 데이터, Pt-1는 이전 프레임에서 검색된 자세 데이터, ω는 가중치,
Figure 112021153322564-pat00048
는 캐릭터의 자세 데이터에서 위치 값의 경우 선형 보간법을 하고 방향 값의 경우 구면 보간법을 적용하는 연산을 나타낸다.
In the character motion control method using the character motion control device,
In response to each motion of the character, collecting the posture data for each time constituting the corresponding motion, and building a posture search DB based on the collected posture data;
acquiring position values from a plurality of motion sensors mounted on body parts including the user's head and both hands for each frame;
comparing the position values of each motion sensor obtained in response to the current user posture with the position values of all motion data in the posture search DB, respectively, and searching for posture data of a character matching the current user posture; and
Based on the posture data retrieved for each frame, comprising the step of controlling the posture of the character expressed in response to the current user posture in real time,
The step of collecting the posture data by time is,
To simplify the configuration of the collected posture data, the direction values among the position values and direction values of each joint of the character included in the posture data are deleted, and the joint parts corresponding to the head and both hands of the character are removed. Clearing the position value to rearrange the posture data,
The step of building the posture search DB is,
Collecting posture data for each time constituting the corresponding motion from pre-stored motion data for each motion of the character, sampling some of the posture data from among the total posture data collected in response to the entire motion, and collecting the sampled posture data Including the step of storing in the posture search DB,
The sampling step is
Among the hourly posture data constituting the corresponding motion, at least one posture data having a local minimum value relative to the surrounding time is primarily sampled, and some of the hourly posture data listed in chronological order is intermittently selected according to a set time interval. Secondary sampling in this way,
The step of searching for posture data matching the current user posture comprises:
Among the posture data (P i ) stored in the posture search DB, the oth posture data (P o ) matching the current user posture is searched using the following equation,
Figure 112021153322564-pat00051

(Here, S is the set of position values of each motion sensor, i is the index of the stored posture data, d(S,P i ) is a function defining the difference between S and P i , Ω is the stored posture data stored in the DB It represents a set of posture data.)
The d(S,P i ) is defined by the following formula,
Figure 112021153322564-pat00052

(Here, k is the number of motion sensors, j is an index of a body part corresponding to a user and a character, p j is a j-th position value among k position values included in the posture data P i , and R i is S and P i in global space, a registration matrix, D j is a correction matrix that corrects differences in the position and direction between each motion sensor mounted on the user and each joint of the character, T is the body size of the character and the user's Represents a size transformation matrix that corrects for differences between body sizes.)
The step of searching for posture data matching the current user posture comprises:
Determine the matching matrix (R i ) for each posture data (P i ) to be searched, respectively,
After determining the registration matrix (R i ) by calculating the position transformation matrix R that minimizes the position error between the character and the user's body parts corresponding to each other by the following equation, it is substituted into the d(S,Pi) operation equation,
Figure 112021153322564-pat00053

The position transformation matrix R is expressed in a homogeneous coordinate system as shown in the following equation according to setting constraints,
The setting constraint is,
Among the size, movement, and rotation transformations of the character, it includes a condition that only allows movement and rotation transformation by prohibiting size transformation, a condition that allows only rotation based on the y-axis perpendicular to the ground, and a condition that prohibits movement on the y-axis,
Figure 112021153322564-pat00054

(Here, θ is the rotation angle with respect to the y-axis, t x is the movement distance in the x-axis direction, and t z is the movement distance in the z-axis direction.)
The equation for the matching matrix (R i ) is simplified to an optimization equation for each variable α, β, t x , and t y as follows if constants and variables are separated and arranged,
Figure 112021153322564-pat00055

(Where A is a constant matrix and b is a constant vector.)
The step of controlling the posture of the character in real time,
A character motion control method that limits the rate of posture change between the current frame and the posture data retrieved from the previous frame through the following equation:
Figure 112021153322564-pat00047

Here, P t ' is the ratio of the posture change applied to the current frame, P o is the posture data retrieved from the current frame, P t-1 is the posture data retrieved from the previous frame, ω is the weight,
Figure 112021153322564-pat00048
represents an operation that applies linear interpolation for position values and spherical interpolation for direction values in the character's posture data.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 캐릭터의 각 동작에 대응하여 해당 동작을 구성하는 시간별 자세 데이터를 수집하고 수집된 자세 데이터를 기초로 자세 검색 DB를 구축하는 데이터 구축부;
매 프레임마다 사용자의 머리와 양 손을 포함한 신체 부위에 장착된 복수의 모션 센서로부터 위치 값을 각각 획득하는 센서 데이터 획득부;
현재 사용자 자세에 대응하여 획득된 각 모션 센서의 위치 값을 상기 자세 검색 DB 내 모든 동작 데이터의 위치 값과 각각 비교하여, 현재 사용자 자세와 매칭되는 캐릭터의 자세 데이터를 검색하는 자세 검색부; 및
상기 매 프레임 별 검색되는 자세 데이터를 기초로 현재 사용자 자세에 대응하여 표출되는 캐릭터의 자세를 실시간 제어하는 자세 제어부를 포함하며,
상기 데이터 구축부는,
상기 수집한 자세 데이터의 구성을 단순화하도록, 상기 자세 데이터 내 포함된 캐릭터의 각 관절의 위치값과 방향값 중 방향값을 소거하고, 캐릭터의 머리 및 양 손에 대응한 관절 부분을 제외한 나머지 관절의 위치값을 소거하여 상기 자세 데이터를 재정리하며,
상기 데이터 구축부는,
상기 캐릭터의 동작 별 기 저장된 동작 데이터로부터 해당 동작을 구성하는 시간별 자세 데이터를 수집하고, 전체 동작에 대응하여 수집된 전체 자세 데이터 중에서 일부의 자세 데이터들을 샘플링하여 상기 자세 검색 DB에 저장하되,
상기 샘플링 시에, 해당 동작을 구성한 시간별 자세 데이터 중 주변 시간 대비 속도가 지역적 최소 값을 가지는 적어도 하나의 자세 데이터를 1차적으로 샘플링하고, 시간 순으로 나열된 상기 시간별 자세 데이터 중에 일부를 설정 시간 간격에 따라 간헐적으로 선택하는 방식으로 2차적으로 샘플링하며,
상기 자세 검색부는,
상기 자세 검색 DB 내 저장된 자세 데이터(Pi) 중에서 현재 사용자 자세와 매칭되는 o번째 자세 데이터(Po)를 아래 수학식을 이용하여 검색하며,
Figure 112021153322564-pat00056

(여기서, S는 상기 각 모션 센서의 위치 값의 집합, i는 저장된 자세 데이터의 인덱스, d(S,Pi)는 S와 Pi 간 차이를 정의하는 함수, Ω은 상기 자세 검색 DB 내 저장된 자세 데이터의 집합을 나타낸다.)
상기 d(S,Pi)는 아래의 수학식으로 정의되며,
Figure 112021153322564-pat00057

(여기서, k는 상기 모션 센서의 개수, j는 사용자와 캐릭터 간 대응하는 신체 부위의 인덱스, pj는 자세 데이터(Pi)에 포함된 k개의 위치 값 중 j번째 위치 값, Ri는 S와 Pi를 전역 공간에서 정합하는 정합 행렬, Dj는 사용자에게 장착된 각 모션 센서 및 캐릭터의 각 관절 간의 위치와 방향에 대한 차이를 보정하는 보정 행렬, T는 캐릭터의 신체 크기와 상기 사용자의 신체 크기 간의 차이를 보정하는 크기 변환 행렬을 나타낸다.)
상기 자세 검색부는,
검색 대상이 되는 자세 데이터(Pi) 마다 상기 정합 행렬(Ri)을 각각 결정하되,
캐릭터와 사용자의 서로 대응한 신체 부위 간의 위치 오차를 최소화하는 위치 변환 행렬 R을 아래 수학식에 의해 연산하여 정합 행렬(Ri)을 결정한 후 상기 d(S,Pi) 연산 식에 대입하며,
Figure 112021153322564-pat00058

상기 위치 변환 행렬(R)은 설정 제약 조건에 따라 아래 수학식과 같은 호모지니어스 좌표계로 표현되며,
상기 설정 제약 조건은,
캐릭터의 크기, 이동 및 회전 변환 중에서 크기 변환을 금지하여 이동 및 회전 변환만 허용하는 조건, 지면과 수직한 y축을 기준으로 하는 회전만 허용하는 조건, y축 상의 이동을 금지하는 조건을 포함하며,
Figure 112021153322564-pat00059

(여기서, θ는 y축을 기준으로 하는 회전 각도, tx는 x축 방향 이동 거리, tz는 z축 방향 이동 거리이다.)
상기 정합 행렬(Ri)에 대한 수학식은 상수와 변수를 분리하여 정리하면 아래와 같이 각 변수 α, β, tx, ty에 대한 최적화 식으로 간소화되며,
Figure 112021153322564-pat00060

(여기서, A는 상수 행렬이고, b는 상수 벡터이다.)
상기 자세 제어부는,
현재 프레임과 직전 프레임에서 검색된 자세 데이터 간의 자세 변화의 비율을 아래의 수학식을 통하여 제한하는 캐릭터 동작 제어 장치:
Figure 112021153322564-pat00049

여기서, Pt'는 현재 프레임에 적용된 자세 변화의 비율, Po는 현재 프레임에서 검색된 자세 데이터, Pt-1는 이전 프레임에서 검색된 자세 데이터, ω는 가중치,
Figure 112021153322564-pat00050
는 캐릭터의 자세 데이터에서 위치 값의 경우 선형 보간법을 하고 방향 값의 경우 구면 보간법을 적용하는 연산을 나타낸다.
a data constructing unit that collects posture data for each time constituting a corresponding motion in response to each motion of the character and builds a posture search DB based on the collected posture data;
a sensor data acquisition unit that acquires position values from a plurality of motion sensors mounted on body parts including the user's head and hands for each frame;
a posture search unit that compares the position values of each motion sensor obtained in response to the current user posture with the position values of all motion data in the posture search DB to search for posture data of a character matching the current user posture; and
And a posture control unit for real-time control of the posture of the character expressed in response to the current user posture based on the posture data retrieved for each frame,
The data construction unit,
To simplify the configuration of the collected posture data, the direction values among the position values and direction values of each joint of the character included in the posture data are deleted, and the joint parts corresponding to the head and both hands of the character are removed. Clearing the position value to rearrange the posture data,
The data construction unit,
Collecting the posture data for each time constituting the corresponding motion from the previously stored motion data for each motion of the character, sampling some of the posture data from the total posture data collected in response to the entire motion and storing it in the posture search DB,
At the time of the sampling, at least one posture data having a local minimum value relative to the surrounding time among the posture data for each time constituting the corresponding motion is primarily sampled, and some of the posture data for each time listed in time order is set at a set time interval. Secondary sampling is performed in an intermittent selection method according to the
The posture search unit,
Among the posture data (P i ) stored in the posture search DB, the oth posture data (P o ) matching the current user posture is searched using the following equation,
Figure 112021153322564-pat00056

(Here, S is the set of position values of each motion sensor, i is the index of the stored posture data, d(S,P i ) is a function defining the difference between S and P i , Ω is the stored posture data stored in the DB It represents a set of posture data.)
The d(S,P i ) is defined by the following formula,
Figure 112021153322564-pat00057

(Here, k is the number of motion sensors, j is an index of a body part corresponding to a user and a character, p j is a j-th position value among k position values included in the posture data P i , and R i is S and P i in global space, a registration matrix, D j is a correction matrix that corrects differences in the position and direction between each motion sensor mounted on the user and each joint of the character, T is the body size of the character and the user's Represents a size transformation matrix that corrects for differences between body sizes.)
The posture search unit,
Determine the matching matrix (R i ) for each posture data (P i ) to be searched, respectively,
After determining the registration matrix (R i ) by calculating the position transformation matrix R that minimizes the position error between the character and the user's body parts corresponding to each other by the following equation, it is substituted into the d(S,Pi) operation equation,
Figure 112021153322564-pat00058

The position transformation matrix R is expressed in a homogeneous coordinate system as shown in the following equation according to setting constraints,
The setting constraint is,
Among the size, movement, and rotation transformations of the character, it includes a condition that only allows movement and rotation transformation by prohibiting size transformation, a condition that allows only rotation based on the y-axis perpendicular to the ground, and a condition that prohibits movement on the y-axis,
Figure 112021153322564-pat00059

(Here, θ is the rotation angle with respect to the y-axis, t x is the movement distance in the x-axis direction, and t z is the movement distance in the z-axis direction.)
The equation for the matching matrix (R i ) is simplified to an optimization equation for each variable α, β, t x , and t y as follows if constants and variables are separated and arranged,
Figure 112021153322564-pat00060

(Where A is a constant matrix and b is a constant vector.)
The posture control unit,
A character motion control device for limiting the rate of posture change between the current frame and the posture data retrieved from the previous frame through the following equation:
Figure 112021153322564-pat00049

Here, P t ' is the ratio of the posture change applied to the current frame, P o is the posture data retrieved from the current frame, P t-1 is the posture data retrieved from the previous frame, ω is the weight,
Figure 112021153322564-pat00050
represents an operation that applies linear interpolation for position values and spherical interpolation for direction values in the character's posture data.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020200040981A 2020-04-03 2020-04-03 Character motion control apparatus by using motion sensors and animation data and method thereof KR102359969B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200040981A KR102359969B1 (en) 2020-04-03 2020-04-03 Character motion control apparatus by using motion sensors and animation data and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200040981A KR102359969B1 (en) 2020-04-03 2020-04-03 Character motion control apparatus by using motion sensors and animation data and method thereof

Publications (2)

Publication Number Publication Date
KR20210123614A KR20210123614A (en) 2021-10-14
KR102359969B1 true KR102359969B1 (en) 2022-02-08

Family

ID=78151312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200040981A KR102359969B1 (en) 2020-04-03 2020-04-03 Character motion control apparatus by using motion sensors and animation data and method thereof

Country Status (1)

Country Link
KR (1) KR102359969B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075553A (en) 1999-09-08 2001-03-23 Namco Ltd Screen regenerating device and comuter readable recording medium
KR101757765B1 (en) 2016-05-24 2017-07-26 주식회사 글로브포인트 System and method for producing 3d animation based on motioncapture

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765208B1 (en) * 2014-01-07 2017-08-04 한국전자통신연구원 Method and apparatus of generating dance motion based on pose and timing constraints
KR101902192B1 (en) * 2016-03-07 2018-10-01 한국전자통신연구원 Method for searching similar choreography based on three dimensions and apparatus using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075553A (en) 1999-09-08 2001-03-23 Namco Ltd Screen regenerating device and comuter readable recording medium
KR101757765B1 (en) 2016-05-24 2017-07-26 주식회사 글로브포인트 System and method for producing 3d animation based on motioncapture

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Choi & Lee. Points-based user interface for character posing. Computer Animation and Virtual Worlds, 2016년 4월, pp. 213-220. 1부.*
Kim et al. Realtime Performance Animation Using Sparse 3D Motion Sensors. MIG, 2012년 11월, pp. 31-42. 1부.*

Also Published As

Publication number Publication date
KR20210123614A (en) 2021-10-14

Similar Documents

Publication Publication Date Title
JP6973388B2 (en) Information processing equipment, information processing methods and programs
US6552729B1 (en) Automatic generation of animation of synthetic characters
US20180070864A1 (en) Methods and devices for assessing a captured motion
CN109840947A (en) Implementation method, device, equipment and the storage medium of augmented reality scene
US20230008567A1 (en) Real-time system for generating 4d spatio-temporal model of a real world environment
KR20210058958A (en) Systems and methods for generating complementary data for visual display
WO2020054442A1 (en) Articulation position acquisition method and device, and motion acquisition method and device
CN108564643B (en) Performance capture system based on UE engine
KR20160096473A (en) System and method for motion evaluation
CN111194122A (en) Somatosensory interactive light control system
KR20210128943A (en) Apparatus and method for comparing and correcting sports posture using neural network
US20230267768A1 (en) Quantitative, biomechanical-based analysis with outcomes and context
KR102359969B1 (en) Character motion control apparatus by using motion sensors and animation data and method thereof
US20230245366A1 (en) 3d avatar generation using biomechanical analysis
US20200320719A1 (en) Determining a kinematic sequence
Nonnarit et al. Hand tracking interface for virtual reality interaction based on marg sensors
US11967101B2 (en) Method and system for obtaining joint positions, and method and system for motion capture
CN115862810B (en) VR rehabilitation training method and system with quantitative evaluation function
KR102342760B1 (en) The golf image learning apparatus based on the artificial intelligence, and the method thereof and recording medium
CN117101138A (en) Virtual character control method, device, electronic equipment and storage medium
JP5846138B2 (en) Subject tracking device, subject tracking method and program
CN102542140A (en) Control method and system of virtual taekwondo sport based on computer

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant