KR20240008225A - Motion matching method for generating character motion based on trajectory and velocity and computer apparatus - Google Patents

Motion matching method for generating character motion based on trajectory and velocity and computer apparatus Download PDF

Info

Publication number
KR20240008225A
KR20240008225A KR1020220117362A KR20220117362A KR20240008225A KR 20240008225 A KR20240008225 A KR 20240008225A KR 1020220117362 A KR1020220117362 A KR 1020220117362A KR 20220117362 A KR20220117362 A KR 20220117362A KR 20240008225 A KR20240008225 A KR 20240008225A
Authority
KR
South Korea
Prior art keywords
character
point
movement
points
movement path
Prior art date
Application number
KR1020220117362A
Other languages
Korean (ko)
Inventor
이윤상
이정민
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20240008225A publication Critical patent/KR20240008225A/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • 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/38Registration of image sequences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20182Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법은 컴퓨터 장치가 캐릭터의 이동 경로 및 시간 정보를 입력받는 단계, 상기 컴퓨터 장치가 상기 이동 경로를 전처리하는 단계, 상기 컴퓨터 장치가 상기 전처리된 이동 경로의 특정 지점에서 캐릭터의 특징을 결정하는 단계, 상기 컴퓨터 장치가 상기 특징을 기준으로 사전에 마련된 모션 데이터베이스에서 매칭되는 움직임 정보를 결정하는 단계 및 상기 컴퓨터 장치가 상기 움직임 정보를 이용하여 상기 이동 경로를 기준으로 이동하는 캐릭터 동작을 생성하는 단계를 포함한다. 상기 특징은 해당 시점에서 상기 캐릭터의 위치, 상기 캐릭터의 위치 속도, 상기 이동 경로 상에서 복수의 미래 시점의 지점들 및 상기 지점들에서의 상기 캐릭터의 지향 방향을 포함한다.A motion matching method for generating character movement using a movement path and speed includes the steps of a computer device receiving the character's movement path and time information, the computer device preprocessing the movement path, and the computer device performing the preprocessing. Determining a characteristic of a character at a specific point of a movement path, determining, by the computer device, movement information matching in a previously prepared motion database based on the characteristic, and determining, by the computer device, movement information using the motion information. It includes the step of creating character movement that moves based on the path. The characteristics include the position of the character at that point, the position speed of the character, a plurality of future viewpoint points on the movement path, and the orientation direction of the character at the points.

Description

이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법 및 컴퓨터 장치{MOTION MATCHING METHOD FOR GENERATING CHARACTER MOTION BASED ON TRAJECTORY AND VELOCITY AND COMPUTER APPARATUS}Motion matching method and computer device for generating character movement using movement path and speed {MOTION MATCHING METHOD FOR GENERATING CHARACTER MOTION BASED ON TRAJECTORY AND VELOCITY AND COMPUTER APPARATUS}

이하 설명하는 기술은 가상 캐릭터의 동작을 생성하는 모션 매칭 기법에 관한 것이다.The technology described below relates to a motion matching technique that generates the movements of a virtual character.

영화, 게임 등의 디지털 콘텐츠에서 캐릭터는 일정하게 움직인다. 캐릭터는 사전에 설정된 정보에 따라 경로를 이동하면서 움직이기도 하고, 사용자가 입력하는 정보를 참조하여 경로를 이동하기도 한다. 따라서, 캐릭터가 자연스러운 움직임을 갖도록 제어하는 것이 중요하다. 모션 매칭(motion matching)은 모션 캡쳐 데이터를 활용해 캐릭터의 동작을 합성하는 기법 중 하나이다. 모션 매칭은 간단한 특성 데이터베이스를 생성해 복잡한 계산이나 인공지능 없이도 쉽고 빠르게 자연스러운 동작을 합성할 수 있다.In digital content such as movies and games, characters move constantly. The character moves along a path according to pre-set information, and sometimes moves along a path by referring to information entered by the user. Therefore, it is important to control the character so that it moves naturally. Motion matching is one of the techniques for synthesizing character movements using motion capture data. Motion matching creates a simple characteristic database and allows you to easily and quickly synthesize natural movements without complex calculations or artificial intelligence.

한국등록특허 제10-0408428호Korean Patent No. 10-0408428

이하 설명하는 기술은 사용자 입력하는 이동 경로 및 캐릭터의 속도를 기준으로 캐릭터 움직임을 생성하는 모션 매칭 기법을 제공하고자 한다.The technology described below seeks to provide a motion matching technique that generates character movement based on the movement path input by the user and the speed of the character.

이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법은 컴퓨터 장치가 캐릭터의 이동 경로 및 시간 정보를 입력받는 단계, 상기 컴퓨터 장치가 상기 이동 경로를 전처리하는 단계, 상기 컴퓨터 장치가 상기 전처리된 이동 경로의 특정 지점에서 캐릭터의 특징을 결정하는 단계, 상기 컴퓨터 장치가 상기 특징을 기준으로 사전에 마련된 모션 데이터베이스에서 매칭되는 움직임 정보를 결정하는 단계; 및 상기 컴퓨터 장치가 상기 움직임 정보를 이용하여 상기 이동 경로를 기준으로 이동하는 캐릭터 동작을 생성하는 단계를 포함한다.A motion matching method for generating character movement using a movement path and speed includes the steps of a computer device receiving the character's movement path and time information, the computer device preprocessing the movement path, and the computer device performing the preprocessing. Determining a characteristic of a character at a specific point of a movement path, and determining, by the computer device, matching movement information in a previously prepared motion database based on the characteristic; and generating, by the computer device, a character movement based on the movement path using the movement information.

이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치는 캐릭터의 이동 경로 및 시간 정보를 입력받은 입력장치, 상기 캐릭터의 특징들에 매칭되는 참조 모션들을 저장하는 저장장치 및 상기 이동 경로를 전처리하고, 상기 전처리된 이동 경로의 특정 지점에서 캐릭터의 특징들과 상기 저장장치에 저장된 특징들과 비교하여 상기 참조 모션들 중 매칭되는 모션 정보를 결정하고, 상기 모션 정보를 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작 정보를 생성하는 연산장치를 포함하한다.A computer device that generates character movement using the movement path and speed includes an input device that receives the character's movement path and time information, a storage device that stores reference motions matching the character's characteristics, and preprocesses the movement path. , Compare the characteristics of the character at a specific point of the preprocessed movement path with the characteristics stored in the storage device to determine matching motion information among the reference motions, and move along the movement path using the motion information. It includes an arithmetic device that generates character motion information.

상기 특징은 해당 시점에서 상기 캐릭터의 위치, 상기 캐릭터의 위치 속도, 상기 이동 경로 상에서 복수의 미래 시점의 지점들 및 상기 지점들에서의 상기 캐릭터의 지향 방향을 포함한다.The characteristics include the position of the character at that point, the position speed of the character, a plurality of future viewpoint points on the movement path, and the orientation direction of the character at the points.

이하 설명하는 기술은 이동 경로 및 속도를 기준으로 캐릭터의 움직임을 생성하면서 이동 경로를 따라 최대한 자연스러운 움직임 생성이 가능하다.The technology described below generates the character's movement based on the movement path and speed, while creating movement as natural as possible along the movement path.

도 1은 이동 경로에 따라 캐릭터의 움직임을 생성하는 시스템에 대한 예이다.
도 2는 캐릭터 이동 속도를 입력하는 경로 설정 과정에 대한 예이다.
도 3은 이동 경로를 따라 캐릭터의 움직임을 생성하는 과정에 대한 예이다.
도 5는 캐릭터의 최대 속도를 제안하여 미래 경로 지점을 결정하는 예이다.
도 6은 이동 경로에서 급격한 모서리가 있는 경우 캐릭터의 이동에 대한 예이다.
도 7은 급격한 모서리에 있는 미래 경로 지점들을 조절하는 예이다.
도 8는 캐릭터 지향 방향을 결정하는 인공신경망에 대한 예이다.
도 9는 이동 경로에 따라 캐릭터 움직임을 생성하는 컴퓨터 장치에 대한 예이다.
Figure 1 is an example of a system that generates character movement according to a movement path.
Figure 2 is an example of a path setting process for inputting character movement speed.
Figure 3 is an example of a process for generating character movement along a movement path.
Figure 5 is an example of determining a future path point by proposing the maximum speed of a character.
Figure 6 is an example of character movement when there are sharp corners in the movement path.
Figure 7 is an example of adjusting future path points at sharp corners.
Figure 8 is an example of an artificial neural network that determines the character orientation.
9 is an example of a computer device that generates character movement according to a movement path.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The technology described below may be subject to various changes and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the technology described below to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the technology described below.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. may be used to describe various components, but the components are not limited by the terms, and are only used for the purpose of distinguishing one component from other components. It is used only as For example, a first component may be named a second component without departing from the scope of the technology described below, and similarly, the second component may also be named a first component. The term and/or includes any of a plurality of related stated items or a combination of a plurality of related stated items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설명된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms used in this specification, singular expressions should be understood to include plural expressions, unless clearly interpreted differently from the context, and terms such as “including” refer to the described features, numbers, steps, operations, and components. , it means the existence of parts or a combination thereof, but should be understood as not excluding the possibility of the presence or addition of one or more other features, numbers, step operation components, parts, or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Before providing a detailed description of the drawings, it would be clarified that the division of components in this specification is merely a division according to the main function each component is responsible for. That is, two or more components, which will be described below, may be combined into one component, or one component may be divided into two or more components for more detailed functions. In addition to the main functions it is responsible for, each of the components described below may additionally perform some or all of the functions handled by other components, and some of the main functions handled by each component may be performed by other components. Of course, it can also be carried out exclusively by .

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, when performing a method or operation method, each process forming the method may occur in a different order from the specified order unless a specific order is clearly stated in the context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the opposite order.

이하 설명하는 기술은 컴퓨터 장치를 이용하여 가상공간에서 특정 객체의 동작 정보를 생성한다. 이하 설명하는 기술은 가상공간에서 특정 객체가 이동 경로를 따라 이동하는 동작을 생성한다.The technology described below generates motion information of a specific object in virtual space using a computer device. The technology described below creates an action in which a specific object moves along a movement path in virtual space.

이하 컴퓨터 장치가 동작을 제어하는 대상을 캐릭터(character)라고 명명한다. 캐릭터는 게임, 애니메이션 등에 등장하는 사람, 동물, 로봇 등과 같은 객체를 의미한다.Hereinafter, the object whose operation is controlled by a computer device is called a character. Characters refer to objects such as people, animals, robots, etc. that appear in games, animations, etc.

컴퓨터 장치는 캐릭터의 이동 경로를 따라 이동하면서 일정한 움직임(motion) 갖도록 제어한다. 이때 이동 경로는 2차원(2D) 또는 3차원(3D) 공간상의 경로일 수 있다. 컴퓨터 장치는 캐릭터 움직임 제어를 위하여 이동 경로 및 특정 시점에서 해당 경로를 따라 이동하는 캐릭터의 특징(feature)이 필요하다.The computer device controls the character to have constant motion while moving along the character's movement path. At this time, the movement path may be a path in two-dimensional (2D) or three-dimensional (3D) space. In order to control character movement, a computer device requires a movement path and the characteristics of a character moving along that path at a specific point in time.

한편, 컴퓨터 장치는 데이터 처리가 가능한 다양한 장치로 구현될 수 있다. 예컨대, 컴퓨터 장치는 PC, 네트워크상의 서버, 스마트 기기, 전용 프로그램이 임베딩된 칩셋 등으로 구현될 수 있다.Meanwhile, computer devices can be implemented as various devices capable of processing data. For example, a computer device may be implemented as a PC, a server on a network, a smart device, or a chipset with a dedicated program embedded therein.

도 1은 이동 경로에 따라 캐릭터의 움직임을 생성하는 시스템(100)에 대한 예이다. 도 1에서 컴퓨터 장치(110, 140)가 캐릭터의 움직임을 생성한다. 도 1에서 컴퓨터 장치는 서버(130) 및 컴퓨터 단말(110) 형태로 도시하였다.Figure 1 is an example of a system 100 that generates character movement according to a movement path. In Figure 1, computer devices 110 and 140 generate character movements. In Figure 1, the computer device is shown in the form of a server 130 and a computer terminal 110.

컴퓨터 단말(110)은 사용자로부터 캐릭터의 이동 경로를 입력받는다. 이때 공간은 2D 또는 3D일 수 있다. 컴퓨터 단말(110)은 캐릭터의 이동 경로뿐만 아니라 해당 경로를 이동하는 속도도 입력받는다. 컴퓨터 단말(110)은 이동 경로에 따른 위치 및 속도에 따라 출발점부터 캐릭터의 특징들을 추출하고, 추출한 특징들을 모션 DB(140)에 쿼리하여 매칭되는 모션 데이터를 수신한다. The computer terminal 110 receives the character's movement path input from the user. At this time, the space may be 2D or 3D. The computer terminal 110 receives input not only of the character's movement path but also of the speed at which the character moves along the path. The computer terminal 110 extracts the characteristics of the character from the starting point according to the position and speed along the movement path, queries the motion DB 140 for the extracted features, and receives matching motion data.

모션 DB(140)는 사전에 캐릭터의 참조 모션들을 저장한다. 모션 DB(140)는 캐릭터의 특징들 및 해당 특징들에 매칭되는 참조 모션을 저장한다. 참조 모션을 사용자가 사전에 캡쳐하거나 생성한 데이터이다.The motion DB 140 stores reference motions of the character in advance. The motion DB 140 stores character characteristics and reference motions matching the characteristics. Reference motion is data captured or created in advance by the user.

컴퓨터 단말(110)은 현재 시점의 모션 데이터를 이용하여 캐릭터의 움직임을 생성하고 출력할 수 있다. 컴퓨터 단말(110)은 이동 경로에 따라 이동하는 캐릭터의 움직임을 이와 같은 과정을 반복하여 결정할 수 있다.The computer terminal 110 can generate and output character movements using motion data from the current viewpoint. The computer terminal 110 may determine the movement of the character moving along the movement path by repeating this process.

서버(130)는 사용자 단말(120)로부터 사용자가 입력한 캐릭터의 이동 경로를 수신한다. 또한, 서버(130)는 사용자 단말(120)로부터 캐릭터의 이동 경로뿐만 아니라 해당 경로를 이동하는 속도도 수신한다. 서버(130)는 이동 경로에 따른 위치 및 속도에 따라 출발점부터 캐릭터의 특징들을 추출하고, 추출한 특징들을 모션 DB(140)에 쿼리하여 매칭되는 모션 데이터를 수신한다. 서버(130)는 현재 시점의 모션 데이터를 이용하여 캐릭터의 움직임을 생성할 수 있다. 또한, 서버(130)는 생성한 움직임 데이터를 사용자 단말(120)에 전송할 수도 있다. 사용자 단말(120)은 해당 시점의 캐릭터 움직임을 출력할 수 있다. 서버(130)는 이동 경로에 따라 이동하는 캐릭터의 움직임을 이와 같은 과정을 반복하여 결정할 수 있다.The server 130 receives the movement path of the character input by the user from the user terminal 120. Additionally, the server 130 receives from the user terminal 120 not only the character's movement path but also the speed at which the character moves along the path. The server 130 extracts the characteristics of the character from the starting point according to the position and speed along the movement path, queries the motion DB 140 for the extracted features, and receives matching motion data. The server 130 may generate character movement using motion data of the current viewpoint. Additionally, the server 130 may transmit the generated motion data to the user terminal 120. The user terminal 120 may output the character movement at that point in time. The server 130 may determine the movement of the character moving along the movement path by repeating this process.

도 1의 상단에는 컴퓨터 단말(110) 또는 서버(130)가 이동 경로에 따라 생성하는 캐릭터 움직임을 예시한다. 도 1은 시간 경과에 따라 t0 시점, t1 시점, t2 시점 및 t3 시점에서의 캐릭터 움직임을 생성한 예를 도시한다.The upper part of FIG. 1 illustrates character movements generated by the computer terminal 110 or the server 130 according to the movement path. Figure 1 shows an example of generating character movements at times t 0 , t 1 , t 2 , and t 3 over time.

연구자는 모션 캡쳐 데이터의 모든 움직임 프레임에 대하여 27차원의 특성 데이터를 생성하였다. 연구자는 아래 수학식 1과 같은 특성을 정의하였다. 다만, 이하 설명하는 기술은 27차원의 특성 설계에만 한정되는 것은 아니며, 특성에 미래 일정 시점 후의 캐릭터의 위치 및 방향이 포함되기만 하면 적용가능하다. 연구자는 인간과 같이 2족 보행을 하는 객체를 대상으로 연구하였다. 다만, 이하 설명하는 모션 매칭이 반드시 2족 보행 객체에 적용되는 것은 아니다.The researcher generated 27-dimensional characteristic data for all movement frames of motion capture data. The researcher defined the characteristics as shown in Equation 1 below. However, the technology described below is not limited to 27-dimensional characteristic design, and is applicable as long as the characteristics include the position and direction of the character after a certain point in the future. The researcher studied objects that walk on two legs, like humans. However, motion matching described below is not necessarily applied to bipedal objects.

캐릭터의 위치는 일정한 좌표계에서 정의될 수 있다. i는 i 번째 프레임을 말한다. 특성은 왼발의 위치 , 왼발의 속도 , 오른발의 위치 ,오른발의 속도 및 루트(root)의 속도 를 포함한다. 루트는 2족 보행 객체의 골반 영역을 말한다. 나머지 특성은 3개의 미래(i 번째 프레임 후) 프레임들의 미래 경로를 나타내는 루트 위치 및 캐릭터가 바라보는(향하는) 방향 이다. ti는 캐릭터의 루트를 바닥면에 투사하여 획득되는 평면상의 위치이다. 연구자는 30Hz 샘플링 기준으로 모션 데이터베이스를 구축하였다. 연구자는 3개의 미래 프레임은 i+10 프레임, i+20 프레임 및 i+30 프레임으로 설정하였다. 이하 설명에서도 3개의 미래 프레임은 i+10 프레임, i+20 프레임 및 i+30 프레임이라고 가정한다.The character's position can be defined in a certain coordinate system. i refers to the ith frame. The characteristic is the position of the left foot , left foot speed , position of the right foot ,Speed of right foot and speed of root Includes. The root refers to the pelvic region of a bipedal object. The remaining properties are the root position indicating the future path of the three future (after the i-th frame) frames. and the direction the character is facing (facing) am. t i is the position on the plane obtained by projecting the character's route onto the floor. The researcher built a motion database based on 30Hz sampling. The researcher set the three future frames as i+10 frame, i+20 frame, and i+30 frame. In the following description, it is assumed that the three future frames are the i+10 frame, the i+20 frame, and the i+30 frame.

모션 매칭은 기본적으로 다음 프레임*에서 쿼리 특징 에 가장 가까운 특징 xj를 모션 데이터베이스에서 찾는 것이다. 특징 중 는 현재 캐릭터 상태에서 추출되고, (ti, di) 사용자가 입력한 경로에서 추출된다. 컴퓨터 장치는 아래 수학식 2에 따라 프레임 j*에서 쿼리 에 따라 매칭되는 모션을 찾을 수 있다.Motion matching basically queries features in the next frame * The closest feature x j to is found in the motion database. Among the features is extracted from the current character state, and (t i , d i ) is extracted from the path entered by the user. The computer device queries frame j * according to equation 2 below: You can find a matching motion according to .

컴퓨터 장치는 일정한 시간 간격을 모션 매칭을 반복적으로 수행하면서 캐릭터의 움직임을 결정할 수 있다. 컴퓨터 장치가 j*를 찾게되면 캐릭터 움직임은 j* 번째 프레임으로 변경(jump)되고, 다음 매칭 시간까지 모션 데이터베이스에서 j* 번째 프레임 이후 연속되는 프레임들을 사용하여 캐릭터 움직임을 재생한다. 연구자는 매칭 간격을 0.2초(6개의 프레임)로 설정하였다.A computer device can determine the character's movement by repeatedly performing motion matching at regular time intervals. When the computer device finds j * , the character movement is changed (jumped) to the j * th frame, and the character movement is reproduced using consecutive frames after the j * th frame in the motion database until the next matching time. The researcher set the matching interval to 0.2 seconds (6 frames).

컴퓨터 장치는 사용자로부터 이동 경로를 입력받는다. 이때 컴퓨터 장치는 경로를 구성하는 위치(지점)과 해당 위치에서의 속도를 입력받는다. 사용자는 인터페이스 장치(펜, 마우스, 터치 등)로 이동 경로를 입력하면서 속도 정보를 입력한다. 도 2는 캐릭터 이동 속도를 입력하는 경로 설정 과정에 대한 예이다. 사용자는 일정한 이동 경로를 설정하는데, 이때 캐릭터의 이동 속도에 대한 정보를 동시에 설정할 수 있다. 예컨대, 사용자가 마우스로 이동 경로를 입력한다면 일정한 선으로 이동 경로를 입력하는데, 이때 마우스의 드래그 속도를 다르게 하여 특정 위치에서의 속도를 입력할 수 있다. 도 2에서 화살표는 이동 경로를 의미한다. 사각 포인트는 일정한 시간 간격(예컨대, 6프레임)으로 샘플링한 지점을 나타낸다. 즉, 사용자가 빠른 속도로 이동 경로를 입력할수록 포인트의 간격이 좁아지고, 반대로 이동 속도를 느리게 입력할수록 포인트의 간격이 넓어진다. 도 2의 이동 경로는 출발점에서 일정한 간격을 갖는 구간(일반 속도 구간), 포인트 간격이 넓어지는 구간(저속 구간) 및 포인트 간격이 좁은 구간(고속 구간)으로 구성된다. 물론, 컴퓨터 장치는 도 2와 다른 방식으로 이동 경로 상의 속도 정보를 입력받을 수도 있다.The computer device receives a movement path input from the user. At this time, the computer device receives input of the location (point) that makes up the path and the speed at that location. The user inputs speed information while entering the movement path using an interface device (pen, mouse, touch, etc.). Figure 2 is an example of a path setting process for inputting character movement speed. The user sets a certain movement path, and at this time, information about the character's movement speed can be set at the same time. For example, when a user inputs a movement path with a mouse, the movement path is entered as a certain line. In this case, the speed at a specific location can be input by varying the drag speed of the mouse. In Figure 2, arrows indicate movement paths. Rectangular points represent points sampled at regular time intervals (eg, 6 frames). In other words, the faster the user enters the movement path, the narrower the spacing between points becomes. Conversely, the slower the user enters the movement path, the wider the spacing between points becomes. The movement path in FIG. 2 consists of a section with a constant interval from the starting point (normal speed section), a section with widening point intervals (low-speed section), and a section with narrow point intervals (high-speed section). Of course, the computer device may receive speed information on the movement path in a manner different from that of FIG. 2.

도 3은 이동 경로를 따라 캐릭터의 움직임을 생성하는 과정(200)에 대한 예이다. 도 3은 캐릭터의 움직임을 생성하는 과정에 대한 개략적인 예이다.Figure 3 is an example of a process 200 for generating movement of a character along a movement path. Figure 3 is a schematic example of the process of generating character movement.

모션 매칭을 위한 모션 데이터는 모션 데이터베이스에 사전에 구축되어야 한다(210). Motion data for motion matching must be established in advance in the motion database (210).

컴퓨터 장치는 사용자로부터 이동 경로 및 속도 정보를 입력받는다(220). 여기서 속도 정보는 속도 연산을 위한 지점별 시간일 수 있다. 컴퓨터 장치는 사용자가 인터페이스 장치를 사용하여 이동 경로를 입력하면 커서(cursor) 위치와 해당 위치가 입력되는 시간을 기록한다. 설명의 편의를 위하여 이하 설명에서 시간은 초(second) 단위를 사용하지 않고 프레임 단위를 사용한다.The computer device receives movement path and speed information from the user (220). Here, the speed information may be the time for each point for speed calculation. When a user enters a movement path using an interface device, the computer device records the cursor position and the time the position is entered. For convenience of explanation, in the following description, time is used in frames rather than seconds.

사용자는 연속된 경로를 입력하지만, 실제 컴퓨터 장치는 불연속적 시간(discrete time)에서 커서 위치를 기록할 수 있다. 이는 입력 인터페이스의 이벤트 핸들러가 균일한 간격으로 호출되지 않을 수 있기 때문이다. 따라서, 컴퓨터 장치는 사용자가 입력한 이동 경로를 일정하게 전처리 한다(230). 구체적인 전처리 과정은 후술한다.Although the user enters a continuous path, a real computing device may record the cursor position at discrete times. This is because the event handler of the input interface may not be called at even intervals. Accordingly, the computer device consistently preprocesses the movement path entered by the user (230). The specific preprocessing process is described later.

컴퓨터 장치는 이동 경로 기반하여 미래 지점들 및 지향 방향을 결정한다(240). 전술한 바와 같이 컴퓨터 장치는 속도를 고려하여 캐릭터의 움직임을 결정한다. 이때 컴퓨터 장치는 속도라는 요소가 반영되면서 미래 경로 지점들을 일정하게 조정할 경우가 발생한다. 이 과정은 캐릭터의 특징을 쿼리하기 위한 특징값을 결정 내지 쿼리 구성 과정에 해당한다. 상세한 쿼리 구성 과정은 후술한다.The computer device determines future points and orientation based on the movement path (240). As described above, the computer device determines the character's movement by considering speed. At this time, the computer device may adjust future route points to a certain extent, reflecting the factor of speed. This process corresponds to the process of determining feature values or constructing a query to query the character's features. The detailed query construction process is described later.

컴퓨터 장치는 현재 위치에서 캐릭터의 상태(위치 및 속도), 미래 경로 지점들 및 캐릭터의 지향 방향이라는 특징을 모션 데이터베이스에 쿼리하여 특징들이 가장 유사한 모션 데이터를 선택한다(240). The computer device queries the motion database for features such as the character's state (position and speed) at the current location, future path points, and the character's orientation direction to select motion data with the most similar features (240).

컴퓨터 장치는 현재 위치에서의 특징을 기준으로 모션 데이터베이스에서 가장 유사한 모션 데이터를 선택하는 과정을 경로 이동이 종료할 때까지 반복하여 수행한다(240~260).The computer device repeatedly performs the process of selecting the most similar motion data from the motion database based on the characteristics at the current location until the path movement ends (240-260).

전술한 이동 경로 전처리 과정에 대하여 설명한다. The above-described movement path preprocessing process will be described.

컴퓨터 장치는 속도를 산출하는 기준이되는 지점들을 보정할 필요가 있다. 이동 경로 입력이 완료되면, 컴퓨터 장치는 이동 경로 상에서 연속된 지점들을 보간할 수 있다. 예컨대, 컴퓨터 장치는 이동 경로 상에서 두 개의 인접 지점들 사이의 선형 보간을 수행하여 전체 지점들을 고정된 프레임율(예컨대, 150Hz)로 리샘플링(resampling)할 수 있다. 즉 컴퓨터 장치가 인접 지점들 사이의 시간 간격이 일정하도록 조절할 수 있다.The computer device needs to calibrate the reference points from which the speed is calculated. Once the movement path input is completed, the computer device can interpolate consecutive points on the movement path. For example, a computer device may perform linear interpolation between two adjacent points on a movement path, resampling all points to a fixed frame rate (eg, 150 Hz). That is, the computer device can adjust the time interval between adjacent points to be constant.

도 4는 이동 경로의 지점들을 리샘플링한 예이다. 도 4(A)는 컴퓨터 장치가 최초 입력받은 이동 경로에서 지점들(사각형) 및 해당 지점들이 입력된 시간의 예이다. 도 4(B)는 전술한 선형 보간을 이용하여 150Hz로 리샘플링된 지점들의 예이다. 도 4(B)에서 사각형 박스는 도 4(A)의 지점들이고, 원형 점은 연속된 지점들을 기준으로 고정된 프레임율로 보간된 지점들을 나타낸다. Figure 4 is an example of resampling points on a movement path. Figure 4(A) is an example of points (squares) on a movement path initially input by a computer device and the times at which the points were input. Figure 4(B) is an example of points resampled to 150Hz using the linear interpolation described above. In FIG. 4(B), square boxes represent points in FIG. 4(A), and circular dots represent points interpolated at a fixed frame rate based on consecutive points.

한편, 사용자가 입력하는 이동 경로에서 속도가 실제 사람과 같은 객체가 이동하는 속도보다 더 빠르다. 따라서, 컴퓨터 장치는 이동 경로에서 지점들을 150Hz로 리샘플링하고, 객체의 속도를 고려하여 해당 지점들 사이의 간격을 30Hz로 설정할 수 있다. Meanwhile, the speed of the movement path entered by the user is faster than the speed at which an object, such as an actual person, moves. Accordingly, the computer device may resample points in the movement path to 150 Hz and set the interval between those points to 30 Hz considering the speed of the object.

또한, 사용자가 입력하는 경로와 실제 사람과 같은 객체가 이동하는 경로는 그 형태나 모양이 다를 수 있다. 예컨대, 마우스와 같은 장치로 입력되는 경로는 모서리 근처의 모양, 속도 변화의 형태 등이 실제 사람의 경로와 다를 수 있다. 이는 인터페이스 장치의 무게와 경로 이동시의 마찰이 실제 객체와 상이하기 때문이다.Additionally, the path entered by the user and the path along which an object, such as an actual person, moves may differ in shape or form. For example, the path input through a device such as a mouse may differ from the actual human path in terms of the shape near the edges and the type of speed change. This is because the weight of the interface device and the friction when moving the path are different from those of the actual object.

따라서, 컴퓨터 장치는 사용자가 입력한 경로를 실제 객체의 이동 형태를 고려하여 일정하게 전처리할 수 있다(230). 예컨대, 컴퓨터 장치는 가우시안 필터(Gaussian filter)를 이용하여 경로를 스무딩(smoothing)할 수 있다. Accordingly, the computer device can consistently preprocess the path entered by the user by considering the movement pattern of the actual object (230). For example, a computer device can smooth a path using a Gaussian filter.

또한 컴퓨터 장치는 가우시안 필터링에 따라 경로가 짧아지는 문제를 해결하고자 이동 경로의 시작 부분과 마지막 부분을 일정하게 전처리할 수 있다. 컴퓨터 장치는 이동 경로의 처음 두 개의 지점들 및 마지막 두 개의 지점들에 대하여 보외(extrapolation)를 수행할 수 있다. 이때 보외 대상은 두 개 이상의 지점들이 될 수도 있다.In addition, the computer device can consistently preprocess the beginning and end of the movement path to solve the problem of path shortening due to Gaussian filtering. The computer device may perform extrapolation on the first two points and the last two points of the travel path. At this time, the extrapolation target may be two or more points.

전술한 바와 같이 모션 매칭을 위한 캐릭터의 특징은 전술한 바와 같이 미래 경로의 정보(위치 및 캐릭터의 지향 방향)를 포함한다. 컴퓨터 장치는 미래 경로의 정보를 사용자가 입력한 이동 경로로부터 추출한다. 미래 경로를 계산하기 위하여 컴퓨터 장치는 캐릭터의 현재 위치에 대응되는 바람직한 경로 지점 pd를 알아야 한다. As described above, the character's characteristics for motion matching include information on the future path (position and direction of the character). The computer device extracts information about the future route from the movement route entered by the user. In order to calculate the future path, the computer device must know the desired path point p d corresponding to the character's current location.

이상적으로 캐릭터가 프레임마다 경로 위의 다음 점에 위치한다면 컴퓨터 장치는 매번 다음 위치를 확인하면 된다. 그러나, 경로가 빠르게 그려진 경우 캐릭터의 움직임을 결정하는 과정에서 경로상의 지점들이 지나치게 빨리 소진될 수 있다. 이때 컴퓨터 장치는 이동 경로 중 현재 캐릭터의 위치에서 가장 가까운 지점을 가정할 수 있지만 경로가 서로 중첩되는 경우 지점을 무작위로 건너뛰거나 무한히 같은 경로를 쿼리할 수도 있다.Ideally, if the character were positioned at the next point on the path each frame, the computing device would only need to check the next position each time. However, if the path is drawn quickly, the points on the path may be exhausted too quickly in the process of determining the character's movement. At this time, the computer device may assume the point on the movement path that is closest to the current character's location, but if the paths overlap, it may randomly skip the point or query the same path infinitely.

컴퓨터 장치가 경로 지점들을 조기에 소모하지 않고 효과적으로 이용하기 위하여 아래 수학식 3과 같은 최적화 조건을 만족하는 캐릭터의 현재 위치를 찾을 수 있다. 컴퓨터 장치는 수학식 3을 이용하여 캐릭터의 현재 위치에서 제한된 탐색 범위 내에서 가장 가까운 점 p(i)를 찾아 경로 위의 id 번째 점인 pd를 찾을 수 있다.In order for a computer device to effectively use route points without prematurely consuming them, the current location of the character that satisfies the optimization conditions shown in Equation 3 below can be found. The computer device can use Equation 3 to find the closest point p(i) within a limited search range from the character's current location and find p d , which is the i d point on the path.

수학식 3에서 pc는 캐릭터 루트의 현재 위치, 는 이전 프레임에서 획득한 위치에 대응하는 프레임 번호이다. 검색 범위는 α 및 β로 제한된다. 연구자는 α= 0 및 β = 10으로 설정하여 모션 매칭을 하였다. In Equation 3, p c is the current position of the character root, is the frame number corresponding to the position obtained in the previous frame. The search range is limited to α and β. The researcher performed motion matching by setting α = 0 and β = 10.

이는 캐릭터의 위치 pd가 과거 위치로 돌아가지 않고 가까운 미래의 위치로부터 결정된다고 가정한 것이다.This assumes that the character's position p d is determined from the near future position rather than returning to the past position.

모션 매칭은 캐릭터가 프레임 id의 이후 경로를 따라가기 위하여 쿼리를 필요로한다. 컴퓨터 장치는 3개의 미래 경로 지점들을 샘플링할 때 캐릭터의 특징을 추출하기 위하여 동일한 프레임 간격을 사용할 수 있다. 예컨대, 3개의 미래 경로 지점들 , , 일 수 있다. 그러나, 이 방식은 입력 이동 경로가 모션 데이터베이스에 있는 움직임들보다 훨씬 빠르게 그려진다면 미래 경로의 지점들 사이 간격이 너무 넓어지게 한다. 이 경우 캐릭터가 경로를 제대로 따라가지 못할 수 있다. Motion matching requires a query for the character to follow the path after frame i d . The computer device may use the same frame interval to extract the character's features when sampling three future path points. For example, 3 future path points , and silver , and It can be. However, this method causes the spacing between points on the future path to become too wide if the input movement path is drawn much faster than the movements in the motion database. In this case, the character may not be able to follow the path properly.

이 문제를 해결하고자 연구자는 캐릭터의 최대 속도를 제한하였다. 캐릭터의 최대 속도는 vmax로 제한된다. 결과적으로 3개의 미래 경로 지점들 , 의 위치가 제한된다.To solve this problem, the researcher limited the character's maximum speed. The character's maximum speed is limited to v max . Resulting in 3 future path points , and location is limited.

p(ivmax)는 현재 프레임에서 마지막 프레임까지 30 프레임 동안 최대 속도 vmax로 이동해서 이르는 경로 지점이라고 가정한다. 쿼리에서 마지막 미래 경로 지점 이 이동 경로를 따라 pd보다 p(ivmax) 만큼 먼 거리에 위치하게 된다면, 는 p(ivmax)로 변경된다. 그리고, 는 일정한 시간 간격으로 리샘플링될 수 있다. 컴퓨터 장치는 미래 경로 지점 중 마지막 지점 을 최대 속도로 이동하는 지점 p(ivmax)으로 변경하고, 첫 번째 지점을 =(p(id +(ivmax -id)/3)으로 변경하고, 두 번째 지점을 = (p(id + 2(ivmax -id)/3)으로 변경할 수 있다. 도 5는 캐릭터의 최대 속도를 제안하여 미래 경로 지점을 결정하는 예이다. 도 5(A)는 사용자가 입력한 캐릭터의 이동 속도가 모션 데이터베이스에 있는 움직임보다 빠른 경우이다. 도 5(A)를 살펴보면, 미래 경로 지점들 중 2개의 지점들이 최대 속도 vmax로 이를 수 있는 지점 p(ivmax)보다 멀리 위치한다. 도 5(B)는 전술한 속도 제한 조건에 따라 미래 경로 지점들 3개의 위치를 조정한 예이다.Assume that p(i vmax ) is a path point reached by moving at the maximum speed v max for 30 frames from the current frame to the last frame. Last future path point in query If you are located at a distance greater than p(i vmax ) along this movement path, is changed to p(i vmax ). and, and may be resampled at regular time intervals. The computer device is the last point on the future path Change to the point p(i vmax ) moving at maximum speed, and change the first point to Change =(p(i d +(i vmax -i d )/3), and change the second point to It can be changed to = (p(i d + 2(i vmax -i d )/3). Figure 5 is an example of determining the future route point by proposing the maximum speed of the character. Figure 5(A) shows the user's This is a case where the movement speed of the input character is faster than the movement in the motion database. Looking at Figure 5(A), two of the future path points are farther than the point p(i vmax ) that can be reached at the maximum speed v max . Figure 5(B) is an example of adjusting the positions of three future route points according to the speed limit conditions described above.

한편, 최대 속도 vmax는 모션 데이터베이스에 있는 움직임의 속도 분포를 참고하여 결정될 수 있다. 또한 최대 속도는 고정된 값을 사용하지 않고 사용자가 입력하는 경로의 속도를 기준으로 동적으로 변경되는 값을 이용할 수도 있다.Meanwhile, the maximum speed v max can be determined by referring to the speed distribution of movement in the motion database. Additionally, the maximum speed may not use a fixed value but may use a value that changes dynamically based on the speed of the route entered by the user.

사용자가 설정한 이동 경로에 급격한 모서리(sharp corner)가 있다면, 해당 모서리를 지나가는 미래 경로 지점들은 급격한 모서리를 표현하기 어렵다. 이 경우 캐릭터는 급격한 모서리를 따라가기 어려울 수 있다. 도 6은 이동 경로에서 급격한 모서리가 있는 경우 캐릭터의 이동에 대한 예이다. 도 6은 현재 경로 Pc와 미래 경로 지점들이 모서리를 따라 위치한 경우이다. 도 6(A) 및 도 6(B)를 살펴보면 캐릭터는 모서리까지 이르지 않고 화살표로 표시한 경로를 따라 이동하게 된다. 이와 같은 문제를 해결하기 위한 방법을 설명한다.If there is a sharp corner in the travel path set by the user, it is difficult to express the sharp corner at future path points that pass through that corner. In this case, the character may have difficulty following sharp edges. Figure 6 is an example of character movement when there are sharp corners in the movement path. Figure 6 shows a case where the current path Pc and future path points are located along an edge. Looking at Figures 6(A) and 6(B), the character moves along the path indicated by the arrow without reaching the edge. A method for solving this problem is explained.

미래 경로들이 급격한 모서리를 지난다면, 컴퓨터 장치는 해당 모서리를 지나는 지점들을 조절하여 새로운 쿼리를 생성한다. If future paths pass through a sharp edge, the computing device generates a new query by adjusting the points that pass through that edge.

컴퓨터 장치는 미래 경로 지점들이 급격한 모서리에 위치하는지 판단한다.The computer device determines whether future path points are located on sharp corners.

급격한 모서리를 사이에 두는 두 개의 미래 경로 지점들을 라고 명명한다. 급격한 모서리는 모서리의 각도가 임계값을 초과하는지로 판단될 수 있다. 연구자는 두 개의 접선(tangent) 벡터 가 이루는 각도가 90도를 초과하면 급격한 모서리로 결정하였다. 두 개의 접선이 가장 큰 각도를 이루는 순간을 icorner라고 하면, p(icorner)는 급격한 모서리 직전의 지점이 된다. Two future path points with a sharp edge between them and It is named. A sharp corner can be determined by whether the angle of the corner exceeds a threshold. The researcher determined that the two tangent vectors and If the angle formed by exceeds 90 degrees, it was determined to be a sharp corner. If the moment when two tangent lines form the greatest angle is called i corner , then p(i corner ) is the point just before the sharp corner.

컴퓨터 장치는 J+1 번째 지점에 대한 새로운 지점 은 결정한다. 는 아래 수학식 4와 같이 연산될 수 있다.The computer device is a new point for the J+1th point decides. Can be calculated as in Equation 4 below.

컴퓨터 장치는 와 p(icorner)를 연결한 직선 상에서 를 결정한다. 컴퓨터 장치는 해당 직선에서 p(icorner)로부터 일정한 거리의 지점을 로 결정한다. k는 사이의 거리가 시간 동안 로부터 이동한 거리가 되게 한다. computer devices On the straight line connecting and p(i corner ) Decide. The computer device identifies a point at a certain distance from p(i corner ) on the corresponding straight line. decide. k is and the distance between for time Let it be the distance traveled from .

컴퓨터 장치는 새로운 J+1 번째 미래 지점을 설정하고, J+1 번째 후의 미래 지점들도 동일한 거리만큼 조절한다. The computer device sets a new J+1th future point and adjusts future points after the J+1th by the same distance.

도 7은 급격한 모서리에 있는 미래 경로 지점들을 조절하는 예이다. 도 7에서 미래 경로 리점들은 전술한 바와 같이 최대 속도 제한에 따라 조절된 지점들일 수 있다. 설명의 편의를 위하여 도 7에서 pd라고 표시한다. 도 7은 미래 경로 지점들 , 을 도시한 예이다. 도 7(A)는 미래 경로 지점들 사이에 모서리가 있는 상황을 도시한다. 도 7(B)는 급격한 모서리 직전의 지점 p(icorner)을 도시한다. 도 7(C)는 에 대하여 새로운 지점 을 설정한 예이다. 는 전술한 수학식 4를 통해 결정될 수 있다. 도 7(D)는 의 위치를 새롭게 조정한 예이다. 은 해당 좌표에서 로 이동한 거리 및 방향 만큼 의 위치를 변경한 지점이다. 도 7(E)는 도 7(A)의 미래 지점들의 위치가 변경된 결과이다.Figure 7 is an example of adjusting future path points at sharp corners. The future path points in FIG. 7 may be points adjusted according to the maximum speed limit as described above. For convenience of explanation, p d in FIG. 7 It is displayed as Figure 7 shows future route points , and This is an example showing. Figure 7(A) shows future path points and It shows a situation where there is an edge in between. Figure 7(B) shows the point p(i corner ) just before the sharp corner. Figure 7(C) shows person About new branch This is an example of setting. Can be determined through Equation 4 described above. Figure 7(D) shows This is an example of newly adjusting the position of . is at the corresponding coordinates go As much as the distance and direction traveled This is the point where the location of was changed. Figure 7(E) is the result of changing the positions of future points in Figure 7(A).

나아가, 도 6 및 도 7에서 설명한 미래 경로 지점들을 조정하는 방법 외에 컴퓨터 장치는 다른 알고리즘을 이용하여 급격한 모서리의 미래 경로 지점을 조절할 수 있다. 컴퓨터 장치는 현재 지점 Pd과 미래 지점들 , 사이에 급격한 모서리가 존재하는 경우, 현재 지점 Pd를 새롭게 설정할 수 있다. 이는 캐릭터가 급격한 모서리에서 머물게 되는 오류를 해결하기 위한 것이다. Furthermore, in addition to the method of adjusting future path points described in FIGS. 6 and 7, the computer device may adjust future path points of sharp corners using other algorithms. The computer device has a current point P d and a future point , and If there is a sharp edge between them, the current point P d can be newly set. This is to solve an error where the character stays on a sharp corner.

컴퓨터 장치는 직전 프레임(id_prev)에서 구한 Pd가 P(id_prev)라고 하면, Pd = P(id_prev+n)로 새롭게 설정할 수 있다. 이때 id_prev+n은 직전 프레임(id_prev) 후 n번째 프레임을 나타낸다. n은 실험적으로 결정되는 최적의 값일 수 있다. 이후 컴퓨터 장치는 새로운 Pd 를 기준으로 미래 지점들을 구하고, 이후 도 6 및 도 7에서 설명한 방식에 따라 미래 지점들을 조절할 수 있다.If P d obtained from the previous frame (i d_prev ) is P(i d_prev ), the computer device can newly set P d = P(i d_prev+n ). At this time, i d_prev+n represents the nth frame after the previous frame (i d_prev ). n may be an optimal value determined experimentally. Afterwards, the computer device can obtain future points based on the new P d and then adjust the future points according to the method described in FIGS. 6 and 7.

전술한 바와 같이 모션 매칭은 미래 경로 지점들뿐만 아니라, 캐릭터의 지향 방향 di도 필요하다. 3개의 미래 프레임에서 캐릭터의 지행 방향을 결정하는 방법을 설명한다. 미래 지점들은 이동 경로를 따라 연속적인 지점이지만, 캐릭터는 해당 지점을 따라가면서도 얼굴 방향 내지 지향 방향이 다를 수 있다. 연구자는 두 가지 방법으로 캐릭터의 지향 방향을 결정하였다. 실험 결과 두 가지 방법 모두 캐릭터 지향 방향으로 표현하는데 적절한 것으로 평가되었다.As described above, motion matching requires not only future path points but also the character's orientation d i . This explains how to determine the character's direction of movement in three future frames. Future points are continuous points along the movement path, but the character may have different facial or orientation directions while following the points. The researcher determined the direction of the character in two ways. As a result of the experiment, both methods were evaluated as appropriate for character-oriented expression.

하나의 방법은 접선 방향(tangential direction)을 사용하는 것이다. 프레임 i에서 입력 경로의 접선 방향 벡터 는 아래 수학식 5와 같이 연산될 수 있다. 즉 접선 방향은 연속된 2개의 미래 경로 지점들의 위치를 기준으로 결정될 수 있다.One way is to use the tangential direction. The tangent direction vector of the input path at frame i Can be calculated as in Equation 5 below. That is, the tangent direction can be determined based on the positions of two consecutive future path points.

다른 하나의 방법은 캐릭터의 지향 방향을 결정하는 인공신경망을 사용하는 것이다. 이때 지향 방향은 미래 경로를 구성하는 지점에 대한 지향 방향이다. 연구자는 종래 연구되었던 QuaterNet (D. Pavllo et al.i, "Quaternet: A quaternion-based recurrent model for human motion., CoRR, vol. abs/1805.06485, 2018.)의 페이스 네트워크(Pace network) 구조를 사용하여 지향 방향 결정을 위한 인공신경망을 구축하였다. 도 8는 캐릭터 지향 방향을 결정하는 인공신경망(300)에 대한 예이다. 인공신경망(300)은 하나의 GRU(Gated recurrent units, 310)와 FC(fully connected layer, 320)로 구성된다. GRU(310)은 직전의 지점과 해당 지점에서의 캐릭터 지향 방향을 입력받는다. FC(320)은 GRU(310)의 출력값을 입력받아 현재 지점에서의 캐릭터 지향 방향을 출력한다. Another method is to use an artificial neural network to determine the character's orientation. At this time, the direction is the direction toward the point that constitutes the future path. The researcher used the Pace network structure of QuaterNet (D. Pavllo et al.i, "Quaternet: A quaternion-based recurrent model for human motion., CoRR, vol. abs/1805.06485, 2018.), which was previously studied. An artificial neural network was constructed to determine the orientation direction. Figure 8 is an example of the artificial neural network 300 for determining the character orientation direction. The artificial neural network 300 includes one GRU (Gated recurrent units, 310) and FC ( It consists of a fully connected layer, 320. The GRU (310) receives the previous point and the character orientation direction at that point. The FC (320) receives the output value of the GRU (310) and receives the character orientation at the current point. Output the direction.

전술한 바와 같이 컴퓨터 장치는 사용자가 이동 경로 및 속도 정보를 입력하면 이동 경로를 일정하게 전처리(보간 및 보외)하고, 일정한 프레임 간격으로 쿼리를 구성한 후 모션 매칭을 수행한다. 이와 같은 캐릭터 움직임 생성은 사용자와 캐릭터 동작이 상호작용(interactive)하는 방식을 제공할 수 있다. 즉, 컴퓨터 장치는 캐릭터가 이동하고 있는 중 또는 이동 경로를 따라 이동하는 중에 새로운 이동 경로를 입력하여 향후 움직임을 제어할 수 있다.As described above, when a user inputs movement path and speed information, the computer device regularly preprocesses (interpolates and extrapolates) the movement path, constructs a query at regular frame intervals, and then performs motion matching. Generating character movements like this can provide a way for the user and character movements to interact. In other words, the computer device can control future movement by inputting a new movement path while the character is moving or moving along the movement path.

예컨대, (i) 사용자는 인터페이스 장치를 기준으로 캐릭터의 이동 경로를 입력할 수 있다. 이때 캐릭터의 현재 위치가 입력된 이동 경로의 출발점에 해당하고, 캐릭터는 이동 경로를 따라 이동하게 된다. 이 방식은 사용자가 실시간으로 캐릭터를 제어하는데 유용할 수 있다. (ii) 나아가, 사용자는 캐릭터가 위치한 공간을 기준으로 이동 경로를 입력하는 방식으로 캐릭터를 제어할 수도 있다. 즉 캐릭터가 이동 경로의 출발점으로 이동한 후 이동 경로를 따라 이동하는 방식이다. 이 방식은 캐릭터가 특정한 목적지에 이르게 하거나, 또는 다수의 캐릭터를 동시에 제어하는데 활용할 수 있다.For example, (i) the user can input the character's movement path based on the interface device. At this time, the character's current location corresponds to the starting point of the entered movement path, and the character moves along the movement path. This method can be useful for the user to control the character in real time. (ii) Furthermore, the user can control the character by inputting a movement path based on the space where the character is located. In other words, the character moves to the starting point of the movement path and then moves along the movement path. This method can be used to help a character reach a specific destination, or to control multiple characters simultaneously.

도 9는 이동 경로에 따라 캐릭터 움직임을 생성하는 컴퓨터 장치(400)에 대한 예이다. 컴퓨터 장치(400)는 도 1의 컴퓨터 장치(110 또는 130)에 해당하는 장치이다. 컴퓨터 장치(400)는 물리적으로 다양한 형태로 구현될 수 있다. 예컨대, 컴퓨터 장치(400)는 PC, 스마트 기기, 네트워크상의 서버, 데이터 처리 전용 칩셋 등의 형태를 가질 수 있다.Figure 9 is an example of a computer device 400 that generates character movement according to a movement path. The computer device 400 is a device corresponding to the computer device 110 or 130 of FIG. 1. The computer device 400 may be physically implemented in various forms. For example, the computer device 400 may take the form of a PC, a smart device, a server on a network, or a chipset dedicated to data processing.

컴퓨터 장치(400)는 저장장치(410), 메모리(420), 연산장치(430), 인터페이스 장치(440), 통신장치(450) 및 출력장치(460)를 포함할 수 있다.The computer device 400 may include a storage device 410, a memory 420, an arithmetic device 430, an interface device 440, a communication device 450, and an output device 460.

저장장치(410)는 모션 매칭을 위한 모션 데이터베이스를 저장할 수 있다. 모션 데이버베이스는 모션 매칭을 위한 참조 영상 내지 참조 움직임 데이터를 저장한다.The storage device 410 may store a motion database for motion matching. The motion database stores reference images or reference movement data for motion matching.

저장장치(410)는 특정 좌표계에서 캐릭터의 이동 경로를 저장할 수 있다. The storage device 410 can store the character's movement path in a specific coordinate system.

저장장치(410)는 이동 경로와 함께 해당 경로를 구성하는 지점이 입력되는 시간을 저장할 수 있다.The storage device 410 can store the time at which points forming the route are input along with the movement route.

저장장치(410)는 이동 경로 전처리, 미래 경로 지점 결정, 모션 매칭을 위한 쿼리 생성, 캐릭터의 지향 방향 결정, 특징값 기반한 모션 매칭을 위한 프로그램(코드)을 저장할 수 있다. The storage device 410 may store programs (code) for preprocessing the movement path, determining future path points, generating queries for motion matching, determining the character's orientation, and motion matching based on feature values.

저장장치(410)는 캐릭터의 지향 방향을 정하는 신경망 모델을 저장할 수 있다.The storage device 410 may store a neural network model that determines the character's orientation.

또한, 저장장치(410)는 데이터 처리에 필요한 프로그램 내지 소스 코드 등을 저장할 수 있다. Additionally, the storage device 410 can store programs or source codes necessary for data processing.

메모리(420)는 컴퓨터 장치(400)가 캐릭터의 동작을 결정하는 과정에서 생성되는 데이터 및 정보 등을 저장할 수 있다.The memory 420 may store data and information generated during the process of the computer device 400 determining the character's actions.

인터페이스 장치(440)는 외부로부터 일정한 명령 및 데이터를 입력받는 장치이다. 인터페이스 장치(440)는 사용자가 설정한 캐릭터의 이동 경로를 입력받을 수 있다. 여기서 인터페이스 장치(440)는 마우스, 태블릿과 팬 마웃, 터치 장치 등 다양할 수 있다.The interface device 440 is a device that receives certain commands and data from the outside. The interface device 440 may receive an input of the character's movement path set by the user. Here, the interface device 440 may be diverse, such as a mouse, tablet, pan mouse, or touch device.

통신장치(450)는 유선 또는 무선 네트워크를 통해 일정한 정보를 수신하고 전송하는 구성을 의미한다. 통신장치(450)는 사용자가 설정한 캐릭터의 이동 경로를 수신할 수 있다. The communication device 450 refers to a configuration that receives and transmits certain information through a wired or wireless network. The communication device 450 can receive the character's movement path set by the user.

통신장치(450)는 모션 데이터베이스부터 현재 시점에서 캐릭터의 특징들과 매칭되는 움직임 정보(참조 움직임)를 수신받을 수 있다.The communication device 450 can receive movement information (reference movement) matching the characteristics of the character at the current time from the motion database.

통신장치(450)는 컴퓨터 장치(400) 내지 연산 장치(430)가 결정한 현재 시점의 움직임 정보를 외부 객체로 송신할 수 있다. The communication device 450 may transmit motion information at the current time determined by the computer device 400 or the computing device 430 to an external object.

출력장치(460)는 일정한 정보를 출력하는 장치이다. 출력장치(460)는 데이터 처리 과정에 필요한 인터페이스를 출력할 수 있다. 출력장치(460)는 사용자가 입력한 이동 경로, 이동 경로와 일정 간격 지점들의 입력 시간 등을 출력할 수 있다. 또한 출력장치(460)는 모션 매칭을 통하여 일정한 공간을 이동하는 캐릭터를 화면에 출력할 수도 있다.The output device 460 is a device that outputs certain information. The output device 460 can output an interface required for the data processing process. The output device 460 can output the movement path input by the user, the movement path, and the input times of points at regular intervals. Additionally, the output device 460 may output a character moving in a certain space on the screen through motion matching.

연산 장치(430)는 사용자가 입력한 이동 경로 및 속도 정보를 기준으로 캐릭터의 움직임을 생성할 수 있다.The computing device 430 may generate character movement based on the movement path and speed information input by the user.

연산 장치(430)는 사용자가 입력한 이동 경로를 일정하게 전처리할 수 있다. 전처리는 이동 경로 지점들 사이의 선형 보간, 가우시안 스무딩 및 끝 부분의 보외 처리를 포함할 수 있다. 전처리 과정은 전술한 바와 같다.The computing device 430 may consistently preprocess the movement path entered by the user. Preprocessing may include linear interpolation between movement path points, Gaussian smoothing, and end extrapolation. The preprocessing process is the same as described above.

연산 장치(430)는 현재 시점에서 추출한 캐릭터의 특징들을 기준으로 모션 데이터베이스에서 매칭되는(최대한 가까운) 움직임을 결정할 수 있다.The arithmetic unit 430 may determine a matching (as close as possible) movement in the motion database based on the characteristics of the character extracted at the current viewpoint.

연산 장치(430)는 쿼리를 위한 특징값을 일정하게 결정할 수 있다. 전술한 바와 같이 연산 장치(430)는 이동 경로 기준으로 미래 경로 지점들을 결정할 수 있다. 연산 장치(430)는 캐릭터의 현재 위치에서 입력된 이동 경로의 가장 가까운 지점을 찾을 수 있다. 이때 연산 장치(430)는 제한된 검색 범위 내에서 이동 경로의 가까운 지점을 찾을 수 있다. 또한, 연산 장치(430)는 캐릭터의 속도를 일정하게 제한한 상태에서 미래 경로 지점을 결정할 수 있다. 또한, 연산 장치(430)는 급격한 모서리에서 미래 경로 지점의 위치를 일정하게 조정할 수 있다. 미래 경로 지점 조정 과정은 전술한 바와 같다.The computing device 430 may consistently determine feature values for a query. As described above, the computing device 430 may determine future route points based on the movement route. The calculation device 430 can find the closest point of the input movement path to the character's current location. At this time, the computing device 430 can find a nearby point on the movement path within a limited search range. Additionally, the computing device 430 can determine the future path point while limiting the character's speed to a certain level. Additionally, the computing device 430 may constantly adjust the position of future path points at sharp corners. The future route point adjustment process is as described above.

연산 장치(430)는 현재 시점에서 캐릭터의 지향 방향을 결정할 수 있다. 전술한 바와 같이 연산 장치(430)는 접선 방향을 연산하거나, 인공신경망을 이용하여 캐릭터의 현재 지향 방향을 결정할 수 있다.The computing device 430 may determine the character's orientation at the current point in time. As described above, the calculation device 430 can calculate the tangential direction or determine the character's current orientation using an artificial neural network.

연산 장치(430)는 일정한 시간 간격으로 캐릭터의 특징을 추출하여 모션 정보를 반복적으로 결정하여 캐릭터의 동작을 연속적으로 생성할 수 있다.The arithmetic device 430 extracts the characteristics of the character at regular time intervals and repeatedly determines the motion information to continuously generate the character's movements.

연산 장치(430)는 데이터를 처리하고, 일정한 연산을 처리하는 프로세서, AP, 프로그램이 임베디드된 칩과 같은 장치일 수 있다.The computing device 430 may be a device such as a processor that processes data and performs certain operations, an AP, or a chip with an embedded program.

또한, 상술한 바와 같은 이동 경로 기준한 캐릭터 동작 정보 생성 방법 내지 동작 제어 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.Additionally, the method of generating character motion information or motion control method based on the movement path as described above may be implemented as a program (or application) including an executable algorithm that can be executed on a computer. The program may be stored and provided in a temporary or non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM (read-only memory), PROM (programmable read only memory), EPROM(Erasable PROM, EPROM) 또는 EEPROM(Electrically EPROM) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.A non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories. Specifically, the various applications or programs described above include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM (read-only memory), PROM (programmable read only memory), and EPROM (Erasable PROM, EPROM). Alternatively, it may be stored and provided in a non-transitory readable medium such as EEPROM (Electrically EPROM) or flash memory.

일시적 판독 가능 매체는 스태틱 램(Static RAM,SRAM), 다이내믹 램(Dynamic RAM,DRAM), 싱크로너스 디램 (Synchronous DRAM,SDRAM), 2배속 SDRAM(Double Data Rate SDRAM,DDR SDRAM), 증강형 SDRAM(Enhanced SDRAM,ESDRAM), 동기화 DRAM(Synclink DRAM,SLDRAM) 및 직접 램버스 램(Direct Rambus RAM,DRRAM) 과 같은 다양한 RAM을 의미한다.Temporarily readable media include Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), and Enhanced SDRAM (Enhanced RAM). It refers to various types of RAM, such as SDRAM (ESDRAM), Synchronous DRAM (Synclink DRAM, SLDRAM), and Direct Rambus RAM (DRRAM).

본 실시예 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.This embodiment and the drawings attached to this specification only clearly show some of the technical ideas included in the above-described technology, and those skilled in the art can easily understand them within the scope of the technical ideas included in the specification and drawings of the above-described technology. It is self-evident that all inferable variations and specific embodiments are included in the scope of rights of the above-mentioned technology.

Claims (16)

컴퓨터 장치가 캐릭터의 이동 경로 및 시간 정보를 입력받는 단계;
상기 컴퓨터 장치가 상기 이동 경로를 전처리하는 단계;
상기 컴퓨터 장치가 상기 전처리된 이동 경로의 특정 지점에서 캐릭터의 특징을 결정하는 단계;
상기 컴퓨터 장치가 상기 특징을 기준으로 사전에 마련된 모션 데이터베이스에서 매칭되는 움직임 정보를 결정하는 단계; 및
상기 컴퓨터 장치가 상기 움직임 정보를 이용하여 상기 이동 경로를 기준으로 이동하는 캐릭터 동작을 생성하는 단계를 포함하되,
상기 시간 정보는 상기 이동 경로를 구성하는 지점들이 입력되는 시간들을 포함하고,
상기 특징은 해당 시점에서 상기 캐릭터의 위치, 상기 캐릭터의 위치 속도, 상기 이동 경로 상에서 복수의 미래 시점의 지점들 및 상기 지점들에서의 상기 캐릭터의 지향 방향을 포함하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
A computer device receiving information on the character's movement path and time;
Preprocessing, by the computer device, the movement path;
determining, by the computer device, characteristics of a character at a specific point of the preprocessed movement path;
determining, by the computer device, matching motion information in a previously prepared motion database based on the characteristics; and
Including the step of the computer device generating a character movement based on the movement path using the movement information,
The time information includes times at which points constituting the movement route are input,
The feature is achieved by using the movement path and speed of the character including the position of the character at the corresponding point in time, the position speed of the character, a plurality of future viewpoint points on the movement path, and the orientation direction of the character at the points. Motion matching method to generate movement.
제1항에 있어서,
상기 미래 시점은 상기 해당 시점을 시작으로 일정한 시간 간격을 갖는 1개 이상의 시점들인 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
A motion matching method for generating character movement using a movement path and speed, wherein the future viewpoint is one or more viewpoints with a certain time interval starting from the corresponding viewpoint.
제1항에 있어서,
상기 컴퓨터 장치는 상기 지점들 중 인접한 두 개의 지점들 사이를 연속적으로 선형 보간하여 상기 지점들 전체를 고정된 시간 기준으로 리샘플링하는 상기 전처리를 수행하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device performs the preprocessing of resampling all of the points on a fixed time basis by continuously linearly interpolating between two adjacent points among the points, and generates character movement using the movement path and speed. Matching method.
제1항에 있어서,
상기 컴퓨터 장치는 상기 이동 경로에 대한 가우시안 스무딩을하고, 상기 가우시안 스무딩이 완료된 이동 경로를 구성하는 지점들 중 시작 부분에 위치한 복수의 지점과 마지막 부분에 위치한 복수의 지점들에 대한 보외(extrapolation)를 하여 상기 전처리를 수행하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device performs Gaussian smoothing on the movement path, and performs extrapolation on a plurality of points located at the beginning and a plurality of points located at the end among the points constituting the movement path for which the Gaussian smoothing has been completed. A motion matching method that generates character movement using the movement path and speed for which the preprocessing is performed.
제1항에 있어서,
상기 컴퓨터 장치는 상기 캐릭터의 현재 위치를 기준으로 상기 이동 경로에서 가장 가까운 상기 특정 위치를 탐색하되, 상기 특정 위치를 탐색하는 범위를 상기 캐릭터의 직전 위치 기준으로 일정하게 제한하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device searches for the specific location closest to the moving path based on the current location of the character, but uses a moving path and speed that constantly limits the search range for the specific location based on the character's previous position. A motion matching method that generates character movement.
제1항에 있어서,
상기 컴퓨터 장치는
상기 이동 경로를 구성하는 지점들의 입력 시간을 기준으로 상기 지점들을 이용하는 속도를 결정하고,
상기 결정한 속도가 사전에 설정한 최대 속도를 초과하는 경우 상기 컴퓨터 장치는 상기 특징 중 상기 복수의 미래 시점에서의 지점들을 조정하되, 상기 복수의 미래 시점 중 마지막 시점의 지점을 상기 최대 속도로 이동한 경우의 위치로 조정하고, 상기 복수의 미래 시점 중 상기 마지막 시점을 제외한 나머지 시점들의 지점들을 동일 간격으로 조정하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device is
Determining the speed of using the points based on the input time of the points constituting the movement path,
If the determined speed exceeds the preset maximum speed, the computer device adjusts the points at the plurality of future points of time among the features, and moves the point at the last point of the plurality of future points of view at the maximum speed. A motion matching method for generating character movement using the movement path and speed of adjusting the position of the case and adjusting the points of the remaining viewpoints except the last viewpoint among the plurality of future viewpoints at equal intervals.
제1항에 있어서,
상기 컴퓨터 장치는
상기 복수의 미래 시점 중 연속된 제1 시점 및 제2 시점의 지점들에 대한 접선들이 형성하는 각도가 임계값을 초과하는 경우,
상기 제1 시점의 제1 지점 및 상기 제1 지점과 상기 제2 시점의 제2 지점 사이의 경로에서 가장 깊은 각도를 형성하는 특정 지점을 연결한 직선에서 상기 캐릭터가 상기 제1 지점을 시작으로 일정 시간 이동한 지점을 상기 제2 지점의 새로운 위치로 조정하고,
상기 일정 시간은 상기 이동 경로상에서 상기 제1 지점에서 상기 특정 지점에 이르는 시간인 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device is
When the angle formed by the tangent lines to the points of the first and second consecutive viewpoints among the plurality of future viewpoints exceeds the threshold,
The character starts from the first point on a straight line connecting a first point at the first viewpoint and a specific point forming the deepest angle on the path between the first point and the second point at the second viewpoint. Adjusting the time-shifted point to the new location of the second point,
A motion matching method for generating character movement using a movement path and speed, where the predetermined time is the time from the first point to the specific point on the movement route.
제7항에 있어서,
상기 컴퓨터 장치는 해당 시점에서 상기 캐릭터의 위치를 상기 해당 시점 후의 시점으로 새롭게 설정하고, 새롭게 설정한 상기 캐릭터의 위치를 기준으로 상기 복수의 미래 시점들을 설정하고, 상기 제2 지점의 위치를 조정하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
In clause 7,
The computer device newly sets the position of the character at a corresponding point in time to a point after the point in time, sets the plurality of future viewpoints based on the newly set position of the character, and adjusts the position of the second point. A motion matching method that creates character movement using movement path and speed.
제1항에 있어서,
상기 컴퓨터 장치는 (i) 현재 상기 캐릭터의 현재 위치를 상기 이동 경로의 시작점으로 설정하고 상기 이동 경로에 따른 캐릭터 동작을 생성하거나, (i) 현재 상기 캐릭터가 현재 위치에서 상기 이동 경로의 시작점으로 이동한 후 상기 이동 경로에 따른 캐릭터 동작을 생성하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device (i) currently sets the current location of the character as the starting point of the moving path and generates a character motion according to the moving path, or (i) currently moves the character from the current location to the starting point of the moving path. A motion matching method that generates character movement using the movement path and speed and then generates character movement according to the movement path.
제1항에 있어서,
상기 컴퓨터 장치는
상기 복수의 미래 시점의 지점들 중 어느 하나의 지점에 대하여,
상기 어느 하나의 지점의 직전 지점 및 상기 직전 지점의 상기 캐릭터의 지향 방향을 사전에 학습한 신경망 모델에 입력하여 상기 어느 하나의 지점에서의 상기 캐릭터의 지향 방향을 결정하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 모션 매칭 방법.
According to paragraph 1,
The computer device is
Regarding any one of the plurality of future points,
By inputting the point immediately before the point and the direction of the character at the point immediately before the point into a previously learned neural network model, the movement path and speed are used to determine the direction of the character at the point. Motion matching method to generate character movement.
캐릭터의 이동 경로 및 시간 정보를 입력받은 입력장치;
상기 캐릭터의 특징들에 매칭되는 참조 모션들을 저장하는 저장장치; 및
상기 이동 경로를 전처리하고, 상기 전처리된 이동 경로의 특정 지점에서 캐릭터의 특징들과 상기 저장장치에 저장된 특징들과 비교하여 상기 참조 모션들 중 매칭되는 모션 정보를 결정하고, 상기 모션 정보를 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작 정보를 생성하는 연산장치를 포함하되,
상기 시간 정보는 상기 이동 경로를 구성하는 지점들이 입력되는 시간들을 포함하고,
상기 특징은 해당 시점에서 상기 캐릭터의 위치, 상기 캐릭터의 위치 속도, 상기 이동 경로 상에서 복수의 미래 시점의 지점들 및 상기 지점들에서의 상기 캐릭터의 지향 방향을 포함하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치.
An input device that receives the character's movement path and time information;
a storage device that stores reference motions matching the characteristics of the character; and
Preprocess the movement path, compare the characteristics of the character at a specific point of the preprocessed movement path with the characteristics stored in the storage device, determine matching motion information among the reference motions, and use the motion information to determine matching motion information. Includes a computing device that generates character motion information moving along the movement path,
The time information includes times at which points constituting the movement route are input,
The feature is achieved by using the movement path and speed of the character including the position of the character at the corresponding point in time, the position speed of the character, a plurality of future viewpoint points on the movement path, and the orientation direction of the character at the points. A computer device that generates movement.
제11항에 있어서,
상기 연산장치는 상기 지점들 중 인접한 두 개의 지점들 사이를 연속적으로 선형 보간하여 상기 지점들 전체를 고정된 시간 기준으로 리샘플링하는 상기 전처리를 수행하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치.
According to clause 11,
The processing unit is a computer that generates character movement using the movement path and speed that performs the preprocessing of continuously linear interpolating between two adjacent points among the points and resampling all of the points on a fixed time basis. Device.
제11항에 있어서,
상기 연산장치는 상기 이동 경로에 대한 가우시안 스무딩을하고, 상기 가우시안 스무딩이 완료된 이동 경로를 구성하는 지점들 중 시작 부분에 위치한 복수의 지점과 마지막 부분에 위치한 복수의 지점들에 대한 보외(extrapolation)를 하여 상기 전처리를 수행하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치.
According to clause 11,
The computing device performs Gaussian smoothing on the movement path and extrapolates a plurality of points located at the beginning and a plurality of points located at the end among the points constituting the movement path for which the Gaussian smoothing has been completed. A computer device that generates character movement using the movement path and speed that performs the preprocessing.
제11항에 있어서,
상기 연산장치는 상기 이동 경로를 구성하는 지점들의 입력 시간을 기준으로 상기 지점들을 이용하는 속도를 결정하고,
상기 결정한 속도가 사전에 설정한 최대 속도를 초과하는 경우 상기 컴퓨터 장치는 상기 특징 중 상기 복수의 미래 시점에서의 지점들을 조정하되, 상기 복수의 미래 시점 중 마지막 시점의 지점을 상기 최대 속도로 이동한 경우의 위치로 조정하고, 상기 복수의 미래 시점 중 상기 마지막 시점을 제외한 나머지 시점들의 지점들을 동일 간격으로 조정하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치.
According to clause 11,
The computing device determines the speed of using the points based on the input time of the points constituting the movement path,
If the determined speed exceeds the preset maximum speed, the computer device adjusts the points at the plurality of future points of time among the features, and moves the point at the last point of the plurality of future points of view at the maximum speed. A computer device that generates character movement using a movement path and speed that are adjusted to the position of the case and the points of the remaining viewpoints except the last viewpoint among the plurality of future viewpoints are adjusted at equal intervals.
제11항에 있어서,
상기 연산장치는 상기 복수의 미래 시점 중 연속된 제1 시점 및 제2 시점의 지점들에 대한 접선들이 형성하는 각도가 임계값을 초과하는 경우, 상기 제1 시점의 제1 지점 및 상기 제1 지점과 상기 제2 시점의 제2 지점 사이의 경로에서 가장 깊은 각도를 형성하는 특정 지점을 연결한 직선에서 상기 캐릭터가 상기 제1 지점을 시작으로 일정 시간 이동한 지점을 상기 제2 지점의 새로운 위치로 조정하되,
상기 일정 시간은 상기 이동 경로상에서 상기 제1 지점에서 상기 특정 지점에 이르는 시간인 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치.
According to clause 11,
When the angle formed by the tangent lines to points at consecutive first and second viewpoints among the plurality of future viewpoints exceeds a threshold, the first point at the first viewpoint and the first point and the point where the character moves for a certain period of time starting from the first point on a straight line connecting a specific point forming the deepest angle on the path between the second point at the second viewpoint and the new location of the second point. Adjust,
The predetermined time is a computer device that generates character movement using a movement path and speed, which is the time from the first point to the specific point on the movement route.
제11항에 있어서,
상기 연산장치는
상기 복수의 미래 시점의 지점들 중 어느 하나의 지점에 대하여,
상기 어느 하나의 지점의 직전 지점 및 상기 직전 지점의 상기 캐릭터의 지향 방향을 사전에 학습한 신경망 모델에 입력하여 상기 어느 하나의 지점에서의 상기 캐릭터의 지향 방향을 결정하는 이동 경로 및 속도를 이용하여 캐릭터 움직임을 생성하는 컴퓨터 장치.
According to clause 11,
The computing device is
Regarding any one of the plurality of future points,
By inputting the point immediately before the point and the direction of the character at the point immediately before the point into a previously learned neural network model, the movement path and speed are used to determine the direction of the character at the point. A computer device that generates character movements.
KR1020220117362A 2022-07-11 2022-09-16 Motion matching method for generating character motion based on trajectory and velocity and computer apparatus KR20240008225A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220085042 2022-07-11
KR20220085042 2022-07-11

Publications (1)

Publication Number Publication Date
KR20240008225A true KR20240008225A (en) 2024-01-18

Family

ID=89716239

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220117362A KR20240008225A (en) 2022-07-11 2022-09-16 Motion matching method for generating character motion based on trajectory and velocity and computer apparatus
KR1020230070812A KR20240008243A (en) 2022-07-11 2023-06-01 Motion matching method for generating character motion based on future feature on trajectory and computer apparatus

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020230070812A KR20240008243A (en) 2022-07-11 2023-06-01 Motion matching method for generating character motion based on future feature on trajectory and computer apparatus

Country Status (1)

Country Link
KR (2) KR20240008225A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100408428B1 (en) 2001-06-15 2003-12-06 한국과학기술원 A probabilistic approach to planning biped locomotion with prescibed motions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100408428B1 (en) 2001-06-15 2003-12-06 한국과학기술원 A probabilistic approach to planning biped locomotion with prescibed motions

Also Published As

Publication number Publication date
KR20240008243A (en) 2024-01-18

Similar Documents

Publication Publication Date Title
Starke et al. Neural state machine for character-scene interactions
US20150002419A1 (en) Recognizing interactions with hot zones
US9747668B2 (en) Reconstruction of articulated objects from a moving camera
US10783716B2 (en) Three dimensional facial expression generation
US7872654B2 (en) Animating hair using pose controllers
US10403020B2 (en) Techniques for generating dynamic illustrations using principles of animation
Ho et al. Topology aware data‐driven inverse kinematics
Silveira et al. Natural steering behaviors for virtual pedestrians
US9892485B2 (en) System and method for mesh distance based geometry deformation
Berio et al. Generating calligraphic trajectories with model predictive control
Mousas et al. Performance-driven hybrid full-body character control for navigation and interaction in virtual environments
US10373373B2 (en) Systems and methods for reducing the stimulation time of physics based garment simulations
KR20240008225A (en) Motion matching method for generating character motion based on trajectory and velocity and computer apparatus
KR100889854B1 (en) Method and Apparatus for creating caricature Video
KR102580138B1 (en) Character motion generating method for moving to target position and computer apparatus
Lee et al. Interactive character path-following using long-horizon motion matching with revised future queries
KR102640247B1 (en) Character motion generating based on trajectories and computer apparatus
EP4181072A1 (en) Method of generating facial expression and threee-dimensional (3d) graphic interface device using the same
Li et al. Robot brush-writing system of Chinese calligraphy characters
Nam et al. SPACESKETCH: Shape modeling with 3D meshes and control curves in stereoscopic environments
JP2010108319A (en) Drawing control unit, drawing control method, and drawing control program
KR102113745B1 (en) Method and apparatus for transporting textures of a 3d model
US10607387B2 (en) Techniques for generating dynamic illustrations using principles of animation
Li et al. Pose synthesis using the inverse of jacobian matrix learned from examples
Kim et al. Keyframe-based multi-contact motion synthesis

Legal Events

Date Code Title Description
E902 Notification of reason for refusal