KR102640247B1 - Character motion generating based on trajectories and computer apparatus - Google Patents

Character motion generating based on trajectories and computer apparatus Download PDF

Info

Publication number
KR102640247B1
KR102640247B1 KR1020210120031A KR20210120031A KR102640247B1 KR 102640247 B1 KR102640247 B1 KR 102640247B1 KR 1020210120031 A KR1020210120031 A KR 1020210120031A KR 20210120031 A KR20210120031 A KR 20210120031A KR 102640247 B1 KR102640247 B1 KR 102640247B1
Authority
KR
South Korea
Prior art keywords
character
movement path
motion information
computer device
speed
Prior art date
Application number
KR1020210120031A
Other languages
Korean (ko)
Other versions
KR20230036923A (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 KR1020210120031A priority Critical patent/KR102640247B1/en
Publication of KR20230036923A publication Critical patent/KR20230036923A/en
Application granted granted Critical
Publication of KR102640247B1 publication Critical patent/KR102640247B1/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • 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/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

이동 경로에 따라 캐릭터의 동작 정보를 생성하는 방법은 컴퓨터 장치가 캐릭터의 이동 경로를 입력받는 단계, 상기 컴퓨터 장치가 상기 이동 경로의 출발점에서 캐릭터의 특징들을 결정하는 단계, 상기 컴퓨터 장치가 상기 특징들을 기준으로 사전에 마련된 모션 데이터베이스에서 매칭되는 모션 정보를 결정하는 단계 및 상기 컴퓨터 장치가 상기 모션 정보 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작을 생성하는 단계를 포함한다. 상기 컴퓨터 장치는 일정한 시간 또는 프레임 간격으로 결정되는 상기 캐릭터의 특징들과 매칭되는 모션 정보를 반복적으로 결정하여 시간 경과에 따라 상기 캐릭터의 동작을 생성한다.A method of generating motion information of a character according to a movement path includes the following steps: receiving a movement path of a character by a computer device; determining characteristics of the character at a starting point of the movement path by the computer device; and determining characteristics of the character at a starting point of the movement path by the computer device. It includes determining matching motion information from a previously prepared motion database as a reference and generating, by the computer device, a character movement that moves along the movement path using the motion information. The computer device generates movements of the character over time by repeatedly determining motion information that matches the characteristics of the character determined at regular time or frame intervals.

Description

이동 경로에 따라 캐릭터의 동작 정보를 생성하는 방법 및 컴퓨터 장치{CHARACTER MOTION GENERATING BASED ON TRAJECTORIES AND COMPUTER APPARATUS}Method and computer device for generating motion information of a character according to a movement path {CHARACTER MOTION GENERATING BASED ON TRAJECTORIES AND COMPUTER APPARATUS}

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

영화, 게임 등의 디지털 콘텐츠에서 캐릭터의 움직임은 매우 중요하다. 가상 캐릭터의 움직임 제어를 위한 다양한 방법이 연구되고 있다. 모션 매칭(motion matching)은 모션 캡쳐 데이터를 활용해 캐릭터의 동작을 합성하는 기법 중 하나이다. 모션 매칭은 간단한 특성 데이터베이스를 생성해 복잡한 계산이나 인공지능 없이도 쉽고 빠르게 자연스러운 동작을 합성할 수 있다. Character movement is very important in digital content such as movies and games. Various methods for controlling the movement of virtual characters are being studied. Motion matching is one of the techniques for synthesizing character movements using motion capture data. Motion matching creates a simple feature database and allows you to easily and quickly synthesize natural movements without complex calculations or artificial intelligence.

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

이하 설명하는 기술은 2차원의 경로를 설정하는 방식으로 해당 경로를 이동하는 캐릭터의 동작을 생성하는 모션 매칭 기법을 제공하고자 한다. The technology described below seeks to provide a motion matching technique that creates the motion of a character moving along a two-dimensional path by setting it.

이동 경로에 따라 캐릭터의 동작 정보를 생성하는 방법은 컴퓨터 장치가 캐릭터의 이동 경로를 입력받는 단계, 상기 컴퓨터 장치가 상기 이동 경로의 특정 지점에서 캐릭터의 특징들을 결정하는 단계, 상기 컴퓨터 장치가 상기 특징들을 기준으로 사전에 마련된 모션 데이터베이스에서 매칭되는 모션 정보를 결정하는 단계 및 상기 컴퓨터 장치가 상기 모션 정보를 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작을 생성하는 단계를 포함한다.A method of generating motion information of a character according to a movement path includes the following steps: receiving a movement path of the character by a computer device; determining characteristics of the character at a specific point of the movement path by the computer device; and determining characteristics of the character at a specific point of the movement path by the computer device. It includes determining matching motion information from a previously prepared motion database based on the motion information and generating, by the computer device, a character movement that moves along the movement path using the motion information.

이동 경로에 따라 캐릭터의 동작 정보를 생성하는 컴퓨터 장치는 캐릭터의 이동 경로를 입력받은 입력장치, 상기 캐릭터의 특징들에 매칭되는 참조 모션들을 저장하는 저장장치 및 상기 이동 경로의 특정 지점에서 캐릭터의 특징들과 상기 저장장치에 저장된 특징들과 비교하여 상기 참조 모션들 중 매칭되는 모션 정보를 결정하고, 상기 모션 정보를 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작 정보를 생성하는 연산장치를 포함한다.A computer device that generates motion information of a character according to a movement path includes an input device that receives the character's movement path, a storage device that stores reference motions matching the characteristics of the character, and characteristics of the character at a specific point of the movement path. and a computing device that determines matching motion information among the reference motions by comparing them with the features stored in the storage device, and generates motion information of a character moving along the movement path using the motion information.

이하 설명하는 기술은 인터페이스 장치를 이용한 이동 경로 설정이라는 간단한 방법으로 캐릭터의 동작을 생성한다. 나아가, 이하 설명하는 기술은 캐릭터가 경로를 벗어나는 경우 자연스럽게 경로로 복귀하고, 이전 동작과 진행 방향에 맞는 자연스러운 동작을 생성한다.The technology described below creates character movements through a simple method of setting a movement path using an interface device. Furthermore, the technology described below naturally returns to the path when the character deviates from the path and creates natural motion that matches the previous motion and direction of progress.

도 1은 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 시스템에 대한 예이다.
도 2는 2D 경로에 따른 캐릭터의 동작을 생성하는 과정에 대한 예이다.
도 3은 캐릭터 이동 속도를 조절하는 경로 설정 과정에 대한 예이다
도 4는 캐릭터의 이동 경로를 수정하는 과정에 대한 예이다.
도 5는 캐릭터 진행 방향을 결정하는 인공신경망에 대한 예이다.
Figure 1 is an example of a system that generates motion information of a character according to a movement path.
Figure 2 is an example of the process of creating a character's movement along a 2D path.
Figure 3 is an example of a path setting process for controlling character movement speed.
Figure 4 is an example of a process for modifying a character's movement path.
Figure 5 is an example of an artificial neural network that determines the direction of character progression.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.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 include objects such as people, animals, robots, etc. that appear in games, animations, etc.

컴퓨터 장치는 데이터 처리가 가능한 다양한 장치로 구현될 수 있다. 예컨대, 컴퓨터 장치는 PC, 네트워크상의 서버, 스마트 기기, 전용 프로그램이 임베딩된 칩셋 등으로 구현될 수 있다. A computer device can be implemented as a variety of 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 motion information of a character according to a movement path. In Figure 1, computer devices 110 and 140 generate operation information. In Figure 1, the computer device is shown in the form of a server 130 and a computer terminal 110.

사용자는 컴퓨터 단말(110)에 캐릭터의 2D 이동 경로를 입력한다. 3D 이동 경로도 이용할 수 있지만, 설명의 편의를 위하여 2D 이동 경로를 기준으로 설명한다. 컴퓨터 단말(110)은 이동 경로에 따라 출발점부터 캐릭터의 특징들을 추출하고, 추출한 특징들을 모션 DB(140)에 쿼리하여 매칭되는 모션 데이터를 수신한다. The user inputs the character's 2D movement path into the computer terminal 110. A 3D movement path can also be used, but for convenience of explanation, the explanation is based on a 2D movement path. The computer terminal 110 extracts the characteristics of the character from the starting point according to 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 motion of the character moving along the movement path by repeating this process.

서버(130)는 사용자 단말(120)로부터 사용자가 입력한 캐릭터의 2D 이동 경로를 수신한다. 서버(130)는 이동 경로에 따라 출발점부터 캐릭터의 특징들을 추출하고, 추출한 특징들을 모션 DB(140)에 쿼리하여 매칭되는 모션 데이터를 수신한다. 서버(130)는 현재 시점의 모션 데이터를 이용하여 캐릭터의 동작을 생성할 수 있다. 또한, 서버(130)는 생성한 동작 데이터를 사용자 단말(120)에 전송할 수도 있다. 사용자 단말(120)은 해당 시점의 캐릭터 동작을 출력할 수 있다. 서버(130)는 이동 경로에 따라 이동하는 캐릭터의 동작을 이와 같은 과정을 반복하여 결정할 수 있다.The server 130 receives the 2D movement path of the character input by the user from the user terminal 120. The server 130 extracts the characteristics of the character from the starting point according to the movement path, queries the motion DB 140 for the extracted features, and receives matching motion data. The server 130 may generate character movements using motion data from 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's motion at that point in time. The server 130 may determine the motion 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 creating character movements at time t 0 , time t 1 , time t 2 , and time t 3 over time.

도 2는 2D 경로에 따른 캐릭터의 동작을 생성하는 과정(200)에 대한 예이다.Figure 2 is an example of a process 200 for generating a character's movement along a 2D path.

모션 매칭을 위한 모션 데이터는 모션 DB에 사전에 구축되어야 한다(210). 연구자는 구조화되지 않은 모션 캡쳐 데이터의 모든 동작 프레임에 대하여 27차원의 특성 데이터를 생성하였다. 연구자가 사용한 특성은 아래 수학식 1과 같다.Motion data for motion matching must be established in advance in the motion DB (210). The researcher generated 27-dimensional feature data for all motion frames of unstructured motion capture data. The characteristics used by the researcher are as shown in Equation 1 below.

모든 위치는 캐릭터의 루트(root) 좌표계로 표현될 수 있다. 특성들은 양발의 위치 , 양 발의 속도 , 루트의 속도 , 3개의 미래 프레임(20, 40 및 60 프레임 후의 시점)에서 평면상에 투사한 2차원 캐릭터 루트의 위치 ti 및 캐릭터가 바라보는 방향 di를 포함한다.All locations can be expressed in the character's root coordinate system. Characteristics are the position of both feet and , the speed of both feet and , the speed of the root , includes the position t i of the two-dimensional character root projected onto the plane at three future frames (views after 20, 40, and 60 frames) and the direction d i the character is facing.

컴퓨터 장치는 캐릭터의 이동 경로를 입력받는다(220). 사용자는 마우스, 터치 입력 등과 같은 인터페이스를 사용하여 이동 경로를 컴퓨터 장치에 입력할 수 있다. 캐릭터의 초기 상태는 이동 경로의 시작점에서 이동할 방향을 바라보는 상태일 수 있다.The computer device receives the character's movement path (220). A user may input a movement path into a computer device using an interface such as a mouse, touch input, etc. The initial state of the character may be looking in the direction of movement from the starting point of the movement path.

컴퓨터 장치는 현재 시점에서 캐릭터의 상태, 미래 시점의 목표 위치 및 캐릭터의 지향 방향을 기준으로 모션 DB에 쿼리하여 특징들이 가장 유사한 모션을 선택한다(230). The computer device queries the motion DB based on the character's state at the current time, the target position at the future time, and the character's orientation and selects the motion with the most similar characteristics (230).

컴퓨터 장치는 선택한 모션에 따라 캐릭터가 이동하면 경로를 이탈하는지 모니터링한다(240). 캐릭터가 이동 경로를 이탈하였다면, 컴퓨터 장치는 캐릭터의 이동 경로를 수정한다(250). 한편, 컴퓨터 장치는 캐릭터의 경로 이탈을 모니터링하지 않고, 항상 이동 경로를 수정하는 과정을 수행할 수도 있다. 이 경우 캐릭터가 이동 경로 상에 있다면 실제 이동 경로가 수정되지 않는다. 이동 경로 수정 과정은 후술한다.The computer device monitors whether the character deviates from the path as it moves according to the selected motion (240). If the character deviates from the movement path, the computer device corrects the character's movement path (250). Meanwhile, the computer device may always perform a process of modifying the movement path without monitoring the character's departure from the path. In this case, if the character is on the movement path, the actual movement path is not modified. The movement route modification process will be described later.

컴퓨터 장치는 이동 경로를 따른 캐릭터의 이동이 종료(목표 지점 도달)될 때(260)까지 모션 매칭 과정을 반복한다. 컴퓨터 장치는 일정한 시간 간격(예컨대, 매 10프레임)마다 캐릭터의 특성을 구성하여 매칭되는 모션을 선택하는 방식으로 캐릭터의 동작 정보를 반복적으로 생성할 수 있다.The computer device repeats the motion matching process until the movement of the character along the movement path ends (reaches the target point) (260). The computer device may repeatedly generate motion information of the character by configuring the characteristics of the character at regular time intervals (eg, every 10 frames) and selecting a matching motion.

도 3은 캐릭터 이동 속도를 조절하는 경로 설정 과정에 대한 예이다. 사용자는 일정한 이동 경로를 설정하는데, 이때 캐릭터의 이동 속도에 대한 정보를 동시에 설정할 수 있다. 예컨대, 사용자가 마우스로 이동 경로를 입력한다면 일정한 선으로 이동 경로를 입력하게 되는데, 마우스의 드래그 속도를 다르게 하여 속도에 대한 정보를 설정할 수 있다.Figure 3 is an example of a path setting process that adjusts the 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, if a user inputs a movement path with a mouse, the movement path is entered as a certain line. Information about speed can be set by varying the drag speed of the mouse.

도 3에서 화살표는 이동 경로를 의미한다. 사각 포인트는 일정한 시간 간격(예컨대, 10프레임)으로 샘플링한 지점을 나타낸다. 즉, 사용자가 빠른 속도로 이동 경로를 입력할수록 포인트의 간격이 좁아지고, 반대로 이동 속도를 느리게 입력할수록 포인트의 간격이 넓어진다. 도 3에서 출발점에서 일정한 간격을 갖는 구간을 일반 속도 구간이라고 하면, 포인트 간격이 넓어지는 구간은 저속 구간이고, 포인트 간격이 좁은 구간은 고속 구간이라고 할 수 있다. 예컨대, 고속 구간에서 캐릭터는 달리는 동작을 할 수 있다. 이와 같이 사용자는 이동 경로 설정과 함께 캐릭터의 속도 정보로 설정할 수 있다.In Figure 3, arrows indicate movement paths. Rectangular points represent points sampled at regular time intervals (eg, 10 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. In Figure 3, if the section with a constant interval from the starting point is called a general speed section, the section where the point intervals are wide can be said to be a low-speed section, and the section where the point intervals are narrow can be said to be a high-speed section. For example, in a high-speed section, the character may perform a running motion. In this way, the user can set the character's speed information along with the movement path setting.

이동 경로상의 점들로 미래 경로의 위치를 곧바로 계산한다면 현재 캐릭터의 위치를 고려하지 못한다. 또한, 미래 경로상의 캐릭터의 방향을 경로 각 지점에서의 접선의 방향으로써 간단히 구한다면 캐릭터가 과거에 바라본 방향을 모두 무시하게 된다. 따라서, 캐릭터가 이동 경로를 따라 가지만 동작은 부자연스러울 수 있다. 캐릭터의 자연스러운 동작을 위해 아래 3가지 조건을 고려할 수 있다.If the location of the future path is calculated directly from the points on the movement path, the current position of the character cannot be taken into consideration. Additionally, if the direction of the character on the future path is simply obtained from the direction of the tangent at each point of the path, all directions the character has looked in the past will be ignored. Therefore, although the character follows a movement path, its movements may be unnatural. The following three conditions can be considered for natural movement of the character.

(1) 경로를 벗어난 캐릭터는 다시 경로 위로 돌아오도록 해야 한다.(1) Characters who deviate from the path must return to the path.

(2) 캐릭터가 미래에 바라보고 있을 방향은 현재 캐릭터가 진행해온 동작을 반영해야 한다.(2) The direction the character will be facing in the future must reflect the character's current actions.

(3) 캐릭터의 현재 속도 및 미래 경로는 주어진 경로의 형태와 간격을 반영해야 한다.(3) The character's current speed and future path should reflect the shape and spacing of the given path.

캐릭터가 이동 경로를 벗어나는 경우, 컴퓨터 장치는 이동 경로를 수정하여 재설정할 수 있다. 도 4는 캐릭터의 이동 경로를 수정하는 과정에 대한 예이다. trajmouse는 마우스 입력으로 주어진 경로에서 현재 캐릭터의 위치와 가장 가까운 점(nearest point)으로부터 경로의 끝까지 잘라낸 단편이다. trajtranslated는 trajmouse을 이동 경로를 벗어난 캐릭터의 현재 위치에서 시작하도록 평행 이동 시킨 경로이다. 컴퓨터 장치는 두 경로 trajmouse와 trajtranslated를 적당한 스케일 함수로 합성하여 현재 위치에서 자연스럽게 설정된 경로까지 지나도록 하는 경로를 합성할 수 있다. 수정된 경로는 점선으로 표시하였다. 수정된 합성 경로는 아래 수학식 2와 같이 시간에 따른 위치 t* i로 표현할 수 있다. 이후 컴퓨터 장치는 새로운 위치 t* i를 이용하여 모션 DB에 매칭되는 모션을 쿼리하게 된다. 이 경우 현재 지점에서 목표 지점의 가장 가까운 점(nearest point)으로 직행하는 경우에 비하여 캐릭터 동작이 자연스러워 진다.If the character deviates from the movement path, the computer device can correct the movement path and reset it. Figure 4 is an example of a process for modifying a character's movement path. traj mouse is a fragment cut from the nearest point to the current character's position on the path given by mouse input to the end of the path. traj translated is a path that moves the traj mouse in parallel to start from the current position of the character that deviated from the movement path. The computer device can synthesize a path that naturally passes from the current location to the set path by combining the two paths traj mouse and traj translated with an appropriate scale function. The modified path is indicated by a dotted line. The modified synthesis path can be expressed as a position t * i according to time as shown in Equation 2 below. Afterwards, the computer device queries the motion DB for matching motion using the new position t * i . In this case, the character's movement becomes more natural compared to the case where the character moves directly from the current point to the nearest point of the target point.

이와 같이 마우스 경로의 위치 ti는 현재 위치를 기준으로 쉽게 구할 수 있지만, 해당 시점에서 캐릭터가 바라보는 방향 di은 현재 방향만 고려해서 자연스러운 값을 구하기 어렵다. 연구자는 캐릭터의 지향 방향을 결정하기 위한 인공신경망 모델을 이용하였다. In this way, the position t i of the mouse path can be easily obtained based on the current position, but the direction d i the character is facing at that point is difficult to obtain a natural value by considering only the current direction. The researcher used an artificial neural network model to determine the character's orientation.

도 5는 캐릭터 진행 방향을 결정하는 인공신경망(300)에 대한 예이다. 인공신경망(300)은 순환형 네트워크(Recurrent neural network) 구조를 갖는다. 순환형 네트워크는 시계열 데이터를 다루어 일정 시점 이후의 정보를 산출할 수 있다.Figure 5 is an example of an artificial neural network 300 that determines the character's progress direction. The artificial neural network 300 has a recurrent neural network structure. Circular networks can handle time series data and calculate information after a certain point in time.

연구자는 종래 연구되었던 QuaterNet (D. Pavllo et al.i, "Quaternet: A quaternion-based recurrent model for human motion., CoRR, vol. abs/1805.06485, 2018.)의 페이스 네트워크(Pace network) 구조를 사용하였다. 인공신경망(300)은 하나의 GRU(Gated recurrent units, 310)와 FC(fully connected layer, 320)로 구성된다. 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. The artificial neural network 300 consists of one GRU (Gated recurrent units, 310) and FC (fully connected layer, 320).

GRU(310)은 특정 시점에서 진행해 온 경로의 곡률과 캐릭터의 평균 속도를 입력받는다. FC(320)은 GRU(310)의 출력값을 입력받아 진행 방향(direction)을 출력한다. 물론, 인공신경망(300)은 학습 데이터로 사전에 학습된 모델을 사용한다. 인공신경망(300)이 캐릭터의 방향 d* i를 출력하면, 컴퓨터 장치는 새롭게 결정된 d* i를 기준으로 모션 DB에 매칭되는 모션을 쿼리하게 된다.The GRU 310 receives the curvature of the path taken at a specific point in time and the average speed of the character. FC 320 receives the output value of GRU 310 and outputs the direction. Of course, the artificial neural network 300 uses a pre-trained model as learning data. When the artificial neural network 300 outputs the character's direction d * i , the computer device queries the motion DB for matching motion based on the newly determined d * i .

캐릭터의 지향 방향을 미래 경로의 접선 방향으로 설정하는 경우 캐릭터가 향하는 방향이 고정되기 때문에 캐릭터의 동작이 제안되며 부자연스러울 수 있다. 실험적으로 확인한 결과 전술한 인공신경망(300)을 이용하여 캐릭터의 지향 방향을 검출하는 것이 훨씬 자연스러운 동작을 보였다.If the character's direction is set to be the tangential direction of the future path, the character's movement is suggested and may be unnatural because the direction the character is facing is fixed. As a result of experimental confirmation, detecting the character's orientation using the artificial neural network 300 described above showed much more natural operation.

도 6은 2D 이동 경로에 따라 캐릭터 동작을 생성하는 컴퓨터 장치(400)에 대한 예이다. 컴퓨터 장치(400)는 도 1의 컴퓨터 장치(110 또는 130)에 해당하는 장치이다. 컴퓨터 장치(400)는 물리적으로 다양한 형태로 구현될 수 있다. 예컨대, 컴퓨터 장치(400)는 PC, 스마트 기기, 네트워크상의 서버, 데이터 처리 전용 칩셋 등의 형태를 가질 수 있다.Figure 6 is an example of a computer device 400 that generates character movements according to a 2D 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 character characteristics and motion information of the character matching them in advance. Here, motion information refers to reference motions to be used for motion matching.

저장장치(410)는 특정 좌표계에서 캐릭터의 이동 경로에 대한 정보를 저장할 수 있다. 저장장치(410)는 캐릭터가 경로를 벗어나는 이동 경로 수정을 위한 프로그램(코드)를 저장할 수 있다. 저장장치(410)는 과거 이동 경로를 고려하여 향후 캐릭터의 지향 방향을 정하는 신경망 모델(300)을 저장할 수 있다.The storage device 410 can store information about the character's movement path in a specific coordinate system. The storage device 410 can store a program (code) for correcting the movement path of a character that deviates from the path. The storage device 410 may store a neural network model 300 that determines the future direction of the character by considering the past movement path.

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

저장장치(410)는 특정 시점에서 결정된 캐릭터의 동작 데이터를 저장할 수 있다.The storage device 410 may store motion data of a character determined at a specific point in time.

메모리(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)는 사용자가 설정한 캐릭터의 이동 경로를 입력받을 수 있다. 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.

인터페이스 장치(440)는 모션 DB 또는 저장장치(410)로부터 현재 시점에서 캐릭터의 특징들과 매칭되는 모션 정보(참조 모션)를 입력받을 수 있다.The interface device 440 may receive motion information (reference motion) matching the characteristics of the character at the current time from the motion DB or storage device 410.

인터페이스 장치(440)는 컴퓨터 장치(400) 내지 연산 장치(430)가 결정한 현재 시점의 모션 정보를 다른 장치에 전달할 수 있다.The interface device 440 may transmit motion information of the current point in time determined by the computer device 400 or the computing device 430 to another 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)는 모션 DB로부터 현재 시점에서 캐릭터의 특징들과 매칭되는 모션 정보(참조 모션)를 수신받을 수 있다.The communication device 450 may receive motion information (reference motion) matching the characteristics of the character at the current time from the motion DB.

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

통신장치(450) 내지 인터페이스 장치(440)는 외부로부터 일정한 데이터 내지 명령을 입출력하는 장치이다. 따라서, 통신장치(450) 내지 인터페이스 장치(440)를 포괄하여 입출력장치라고 명명할 수 있다. 입력만을 고려하여 통신장치(450) 내지 인터페이스 장치(440)를 입력 장치라고 할 수도 있다.The communication device 450 or interface device 440 is a device that inputs and outputs certain data or commands from the outside. Therefore, the communication device 450 to the interface device 440 can be collectively referred to as an input/output device. Considering only input, the communication device 450 to the interface device 440 may be referred to as an input device.

출력장치(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 may output the character's motion on the screen based on the character's motion information at the current time.

연산 장치(430)는 설정된 2D 이동 경로를 기준으로 수학식 1에 표현된 현재 캐릭터의 특징들을 추출할 수 있다.The computing device 430 can extract the features of the current character expressed in Equation 1 based on the set 2D movement path.

연산 장치(430)는 현재 시점에서 추출한 캐릭터의 특징들을 기분으로 모션 DB에서 매칭되는(최대한 가까운) 모션을 결정할 수 있다.The calculation unit 430 can determine a motion that matches (as close as possible) in the motion DB based on the characteristics of the character extracted at the current viewpoint.

연산 장치(430)는 결정한 모션을 출력장치(460)에 출력되게 제어할 수 있다.The calculation device 430 can control the determined motion to be output to the output device 460.

연산 장치(430)는 캐릭터가 설정된 경로를 벗어나는 경우, 수학식 2에서 설명한 새로운 합성 경로를 결정할 수 있다. 새로운 경로가 결정되면, 연산 장치(430)는 해당 시점에서의 새로운 특징들(갱신된 위치 포함)을 기준으로 매칭되는 동작 정보를 결정할 수 있다.If the character deviates from the set path, the computing device 430 may determine a new composite path described in Equation 2. When a new path is determined, the computing device 430 may determine matching operation information based on the new features (including the updated location) at that point in time.

연산 장치(430)는 신경망 모델(300)을 이용하여 과거 이동 경로를 고려하여 캐릭터의 지향 방향을 결정할 수 있다. 연산 장치(430)는 특정 시점에서 진행해 온 경로의 곡률과 캐릭터의 평균 속도를 신경망 모델(300)에 입력하여 캐릭터의 지향 방향을 결정할 수 있다. 새로운 지향 방향이 결정되면, 연산 장치(430)는 해당 시점에서의 새로운 특징들(갱신된 지향 방향 포함)을 기준으로 매칭되는 동장 정보를 결정할 수 있다.The computing device 430 may determine the direction of the character by considering the past movement path using the neural network model 300. The arithmetic unit 430 may determine the direction of the character by inputting the curvature of the path taken at a specific point in time and the average speed of the character into the neural network model 300. When a new orientation direction is determined, the computing device 430 may determine matching motion information based on the new features (including the updated orientation direction) at that point in time.

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

연산 장치(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.

또한, 상술한 바와 같은 2D 이동 경로 기준한 캐릭터 동작 정보 생성 방법 내지 동작 제어 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.Additionally, the method for generating character motion information or motion control method based on a 2D 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 (8)

컴퓨터 장치가 캐릭터의 이동 경로를 입력받는 단계;
상기 컴퓨터 장치가 상기 이동 경로의 특정 지점에서 캐릭터의 특징들을 결정하는 단계;
상기 컴퓨터 장치가 상기 특징들을 기준으로 사전에 마련된 모션 데이터베이스에서 매칭되는 모션 정보를 결정하는 단계; 및
상기 컴퓨터 장치가 상기 모션 정보를 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작을 생성하는 단계를 포함하되,
상기 이동 경로는 사용자로부터 인터페이스 장치를 통해 입력되고, 상기 이동 경로 상에서 일정 간격으로 속도 정보를 더 입력받고, 상기 특징들은 상기 캐릭터의 속도를 포함하고, 상기 컴퓨터 장치는 상기 입력되는 속도 정보와 상기 캐릭터의 속도를 더 매칭하여 상기 모션 정보를 결정하고,
상기 컴퓨터 장치는 일정한 시간 또는 프레임 간격으로 결정되는 상기 캐릭터의 특징들과 매칭되는 모션 정보를 반복적으로 결정하여 시간 경과에 따라 상기 캐릭터의 동작을 생성하고,
상기 컴퓨터 장치는 상기 캐릭터가 상기 이동 경로를 벗어나는 경우, 상기 이동 경로 중 상기 캐릭터가 이동 경로를 벗어난 지점에서 상기 이동 경로에 가장 가까운 점에서 경로의 끝까지 잘라낸 단편을 상기 가장 가까운 점과 상기 캐릭터의 현재 위치와 일치되도록 평행 이동한 경로 및 상기 이동 경로를 스케일 함수로 합성하여 상기 캐릭터가 상기 이동 경로로 이동하도록 새로운 이동 경로를 설정하고, 상기 새로운 이동 경로에서의 위치를 포함하는 특징들과 매칭되는 모션 정보를 결정하는 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 방법.
A computer device receiving input of a character's movement path;
determining, by the computer device, characteristics of a character at a specific point of the 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 moving along the movement path using the motion information,
The movement path is input from the user through an interface device, speed information is further input at regular intervals on the movement path, the characteristics include the speed of the character, and the computer device combines the input speed information with the character. Determine the motion information by further matching the speed of
The computer device generates movements of the character over time by repeatedly determining motion information matching the characteristics of the character determined at regular time or frame intervals,
When the character deviates from the movement path, the computer device generates a fragment cut from the point closest to the movement path to the end of the path at the point where the character deviates from the movement path, between the closest point and the current state of the character. A new movement path is set so that the character moves along the movement path by combining the parallel movement path and the movement path to match the position with a scale function, and a motion that matches the features including the position in the new movement path. A method of generating motion information for a character based on the movement path that determines the information.
제1항에 있어서,
상기 특징들은 해당 시점에서 상기 캐릭터의 발 위치, 발의 속도, 루트 속도, 복수의 미래 시점에서의 캐릭터 루트 위치 및 캐릭터의 지향 방향을 포함하는 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 방법.
According to paragraph 1,
The features include the character's foot position, foot speed, root speed, the character's root position at a plurality of future viewpoints, and the character's orientation at that point in time. A method of generating motion information of a character according to a movement path.
삭제delete 제1항에 있어서,
상기 컴퓨터 장치는 현재 시점까지 진행한 경로의 곡률 및 상기 캐릭터의 평균 속도를 사전에 학습한 신경망 모델에 입력하여 상기 현재 시점에서의 상기 캐릭터의 새로운 지향 방향을 결정하고, 상기 새로운 지향 방향을 포함하는 특징들과 매칭되는 모션 정보를 결정하는 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 방법.
According to paragraph 1,
The computer device inputs the curvature of the path taken up to the current point and the average speed of the character into a previously learned neural network model to determine a new orientation direction of the character at the current point, and includes the new orientation direction. A method of generating motion information of a character according to a movement path that determines motion information matching features.
캐릭터의 이동 경로를 입력받은 입력장치;
상기 캐릭터의 특징들에 매칭되는 참조 모션들을 저장하는 저장장치; 및
상기 이동 경로의 특정 지점에서 캐릭터의 특징들과 상기 저장장치에 저장된 특징들과 비교하여 상기 참조 모션들 중 매칭되는 모션 정보를 결정하고, 상기 모션 정보를 이용하여 상기 이동 경로에 따라 이동하는 캐릭터 동작 정보를 생성하는 연산장치를 포함하되,
상기 이동 경로는 사용자로부터 인터페이스 장치를 통해 입력되고, 이동 경로 상에서 일정 간격으로 속도 정보를 더 입력받고, 상기 특징들은 상기 캐릭터의 속도를 포함하고, 상기 연산장치는 상기 입력되는 속도 정보와 상기 캐릭터의 속도를 더 매칭하여 상기 모션 정보를 결정하는,
상기 연산장치는 일정한 시간 또는 프레임 간격으로 결정되는 상기 캐릭터의 특징들과 매칭되는 모션 정보를 반복적으로 결정하여 시간 경과에 따라 상기 캐릭터의 동작 정보를 생성하고,
상기 연산장치는 상기 캐릭터가 상기 이동 경로를 벗어나는 경우, 상기 이동 경로 중 상기 캐릭터가 이동 경로를 벗어난 지점에서 상기 이동 경로에 가장 가까운 점에서 경로의 끝까지 잘라낸 단편을 상기 가장 가까운 점과 상기 캐릭터의 현재 위치와 일치되도록 평행 이동한 경로 및 상기 이동 경로를 스케일 함수로 합성하여 상기 캐릭터가 상기 이동 경로로 이동하도록 새로운 이동 경로를 설정하고, 상기 새로운 이동 경로에서의 위치를 포함하는 특징들과 매칭되는 모션 정보를 결정하는 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
An input device that receives the character's movement path;
a storage device that stores reference motions matching the characteristics of the character; and
Compare the characteristics of the character at a specific point of the movement path with the characteristics stored in the storage device to determine matching motion information among the reference motions, and move the character along the movement path using the motion information. Includes a computing device that generates information,
The movement path is input from the user through an interface device, speed information is further input at regular intervals along the movement path, the characteristics include the speed of the character, and the computing device combines the input speed information and the character's Determining the motion information by further matching the speed,
The computing device generates motion information of the character over time by repeatedly determining motion information that matches the characteristics of the character determined at regular time or frame intervals,
When the character deviates from the movement path, the calculation device divides a fragment cut from the point closest to the movement path to the end of the path at the point where the character deviates from the movement path, between the closest point and the current state of the character. A new movement path is set so that the character moves along the movement path by combining the parallel movement path and the movement path to match the position with a scale function, and a motion that matches the features including the position in the new movement path. A computer device that generates motion information for a character based on its movement path, which determines the information.
제5항에 있어서,
상기 캐릭터의 특징들은 해당 시점에서 상기 캐릭터의 발 위치, 발의 속도, 루트 속도, 복수의 미래 시점에서의 캐릭터 루트 위치 및 캐릭터의 지향 방향을 포함하는 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
According to clause 5,
The character's characteristics include a computer device that generates motion information of the character according to a movement path including the character's foot position, foot speed, root speed, the character's root position at a plurality of future viewpoints, and the character's orientation at that point in time. .
삭제delete 제5항에 있어서,
상기 연산장치는 현재 시점까지 진행한 경로의 곡률 및 상기 캐릭터의 평균 속도를 사전에 학습한 신경망 모델에 입력하여 상기 현재 시점에서의 상기 캐릭터의 새로운 지향 방향을 결정하고, 상기 새로운 지향 방향을 포함하는 특징들과 매칭되는 모션 정보를 결정하는 이동 경로에 따라 캐릭터의 동작 정보를 생성하는 컴퓨터 장치.
According to clause 5,
The calculation device inputs the curvature of the path taken up to the current point and the average speed of the character into a previously learned neural network model to determine the new orientation direction of the character at the current point, and includes the new orientation direction. A computer device that generates motion information for a character according to its movement path, which determines the motion information that matches the features.
KR1020210120031A 2021-09-08 2021-09-08 Character motion generating based on trajectories and computer apparatus KR102640247B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210120031A KR102640247B1 (en) 2021-09-08 2021-09-08 Character motion generating based on trajectories and computer apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210120031A KR102640247B1 (en) 2021-09-08 2021-09-08 Character motion generating based on trajectories and computer apparatus

Publications (2)

Publication Number Publication Date
KR20230036923A KR20230036923A (en) 2023-03-15
KR102640247B1 true KR102640247B1 (en) 2024-02-22

Family

ID=85512065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210120031A KR102640247B1 (en) 2021-09-08 2021-09-08 Character motion generating based on trajectories and computer apparatus

Country Status (1)

Country Link
KR (1) KR102640247B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102061976B1 (en) * 2018-07-17 2020-01-02 계명대학교 산학협력단 Apparatus for three-dimensional multi-character motion and motion control method of three-dimentional character using the same
KR102254290B1 (en) * 2020-11-18 2021-05-21 한국과학기술원 Motion processing method and apparatus

Family Cites Families (3)

* 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
KR101179496B1 (en) * 2008-12-22 2012-09-07 한국전자통신연구원 Method for constructing motion-capture database and method for motion synthesis by using the motion-capture database
KR20210025324A (en) * 2019-08-27 2021-03-09 주식회사 엔씨소프트 Device and method for generating animation using deep neural network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102061976B1 (en) * 2018-07-17 2020-01-02 계명대학교 산학협력단 Apparatus for three-dimensional multi-character motion and motion control method of three-dimentional character using the same
KR102254290B1 (en) * 2020-11-18 2021-05-21 한국과학기술원 Motion processing method and apparatus

Also Published As

Publication number Publication date
KR20230036923A (en) 2023-03-15

Similar Documents

Publication Publication Date Title
US10860838B1 (en) Universal facial expression translation and character rendering system
US10888785B2 (en) Method and system for real-time animation generation using machine learning
JP7357706B2 (en) Avatar generator and computer program
US11670027B2 (en) Automated dance animation
US11282253B2 (en) Matching audio to a state-space model for pseudorandom animation
US11810236B2 (en) Management of pseudorandom animation system
WO2014113346A1 (en) Part and state detection for gesture recognition
US11790585B2 (en) State-space system for pseudorandom animation
US9811937B2 (en) Coordinated gesture and locomotion for virtual pedestrians
US10553009B2 (en) Automatically generating quadruped locomotion controllers
KR20220074912A (en) Automated Dance Animation
KR100889854B1 (en) Method and Apparatus for creating caricature Video
KR102256314B1 (en) Method and system for providing dynamic content of face recognition camera
KR102640247B1 (en) Character motion generating based on trajectories and computer apparatus
KR101014852B1 (en) Apparatus and method for generating motions of character based on artificial intelligent
KR102108422B1 (en) System and Method for Optimizing Facial Expression of Virtual Characters through AI-based Facial Expression Classification and Retargeting, and Computer Readable Storage Medium
KR101515845B1 (en) Method and device for gesture recognition
Lee et al. Interactive character path-following using long-horizon motion matching with revised future queries
KR20240013613A (en) Method for generating AI human 3D motion only with video and its recording medium
KR102580138B1 (en) Character motion generating method for moving to target position and computer apparatus
KR102143227B1 (en) Method for generating 3d shape information of object and apparatus thereof
KR20240008225A (en) Motion matching method for generating character motion based on trajectory and velocity and computer apparatus
KR20060065417A (en) Marker-free motion capture apparatus and method for correcting tracking error
KR102612586B1 (en) Control method of electronic device removing abnormal image frame and restoring according to joint recognition in video
KR102532848B1 (en) Method and apparatus for creating avatar based on body shape

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant