KR20080028732A - Pipeline architecture and method for digital character motion making - Google Patents

Pipeline architecture and method for digital character motion making Download PDF

Info

Publication number
KR20080028732A
KR20080028732A KR1020060124005A KR20060124005A KR20080028732A KR 20080028732 A KR20080028732 A KR 20080028732A KR 1020060124005 A KR1020060124005 A KR 1020060124005A KR 20060124005 A KR20060124005 A KR 20060124005A KR 20080028732 A KR20080028732 A KR 20080028732A
Authority
KR
South Korea
Prior art keywords
motion
level
data
module
character
Prior art date
Application number
KR1020060124005A
Other languages
Korean (ko)
Other versions
KR100841925B1 (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 한국전자통신연구원
Publication of KR20080028732A publication Critical patent/KR20080028732A/en
Application granted granted Critical
Publication of KR100841925B1 publication Critical patent/KR100841925B1/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
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • 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/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

A system and a method for creating digital character motion are provided to create the motions of characters automatically by using an instinctive script such as a scenario to reduce the amount of producing a proto-type animation about a computer animation, thereby improving the entire work productivity and improving the quality of the computer animation. A motion analyzer module(3) analyzes a script(2) characterized by a grammatical expression and a logical structure for motion creation, inputted by a user(1), to enable a motion command to embody instructions for reflecting an individual characteristic and a current feeling state applied to a character in the script. A motion organizer module(5) analyzes the result of the motion analyzer module to divide the result into parallel motion and sequential motion and adjust the motion. A motion scheduler module(6) analyzes motion commands, applied by the result of the motion organizer module, to manage the motion commands so that the motion commands can be completed. A motion adaptation module(7) enables the motion commands, applied by the result of the motion scheduler module, to instruct a motion change method according to an adaptation method for surroundings. A motion performance module converts middle motion data corresponding to the motion commands, applied by the result of the motion adaptation module, into result motion data and applies motion to the character.

Description

디지털 캐릭터 동작생성 파이프라인 구조 및 생성 방법{Pipeline Architecture and Method For Digital Character Motion Making}Pipeline Architecture and Method For Digital Character Motion Making}

도 1은 디지털 캐릭터의 동작생성 파이프라인의 구성과 동작데이터의 생성 흐름을 나타내는 구조도.1 is a structural diagram showing a configuration of a motion generation pipeline of a digital character and a flow of generation of motion data.

도 2는 본 발명의 일실시예에 따른 디지털 캐릭터 동작을 레벨에 따라 분류한 상태를 나타낸 표. 2 is a table showing a state classified according to the level of the digital character motion according to an embodiment of the present invention.

<도면의 주요부분에 대한 부호의 간단한 설명><Brief description of symbols for the main parts of the drawings>

1: 사용자 2: 스크립트1: user 2: script

3: 동작해석기 4: 응용동작 데이터베이스3: motion interpreter 4: application motion database

5: 동작구성기 6: 동작계획기5: motion planner 6: motion planner

7: 동작적응기 8: 복합동작 데이터베이스7: motion adaptor 8: compound motion database

9: 주변환경 데이터베이스 10: 동작수행기9: Environment Database 10: Action Performer

11: 동작데이터 데이터베이스 12: 결과동작데이터11: motion data database 12: result motion data

13: 캐릭터 골격13: character skeleton

본 발명은 컴퓨터 애니메이션에 사용되는 디지털 캐릭터 동작생성 파이프라인에 관한것으로, 보다 상세하게는 컴퓨터 애니메이션에서 사용되는 디지털 캐릭터의 동작생성을 위한 파이프라인을 정의하고 표현하기 위한 디지털 캐릭터 동작생성 파이프라인 구조 및 방법에 관한 것이다.The present invention relates to a digital character motion generation pipeline used for computer animation, and more particularly, to a digital character motion generation pipeline structure for defining and representing a pipeline for motion generation of a digital character used in computer animation. It is about a method.

컴퓨터 애니메이션에 있어 주요작업은 디지털 캐릭터의 제작과 표현이다. 캐릭터가 한번 제작되면 재활용할 수 있다는 면에서 전통 애니메이션과 구별되나, 결국 애니메이션 전반에 걸쳐 캐릭터의 표현을 수작업으로 처리하는 데 있어 변함이 없다.The main task in computer animation is the production and presentation of digital characters. Once a character is produced, it is distinguished from traditional animation in that it can be recycled, but in the end there is no change in the manual processing of the expression of the character throughout the animation.

전통적인 애니메이션의 캐릭터가 이미지만으로 존재하는데 비해 디지털화된 캐릭터는 자체적으로 실제 인간과 유사하게 골격구조(Skeleton)과 골격구조를 덮는 피부(Skin)를 갖는다. 디지털 캐릭터의 동작표현은 이러한 골격구조를 제어하는 것이 주요 내용이다. 전통적인 애니메이션에서 각 프레임의 캐릭터 이미지들을 그리는 것이 애니메이터들의 역할이었다면 디지털화된 애니메이션에서 그 역할은 각 프레임의 캐릭터 골격 구조를 형성하는 각 분절(Bone 또는 Segment)들의 위치와 방향을 결정하는 것으로 바뀌었다.While characters of traditional animation exist only as images, the digitized characters themselves have skeletons and skins that cover the skeletons similar to real humans. The motion expression of digital characters is to control this skeletal structure. In traditional animation, drawing the character images of each frame was the role of the animator. In digitized animation, the role was changed to determine the location and orientation of each segment (Bone or Segment) that forms the character skeleton of each frame.

디지털화된 캐릭터의 동작표현을 모두 수작업으로 진행할 수 있지만 작업의 많은 부분이 컴퓨터에 의해 자동으로 생성될 수 있다. 이러한 내용은 전문 애니메 이터의 생산성을 높이고 애니메이션 제작의 문턱을 낮추어 다양한 작품들이 제작될 수 있는 기회를 제공하며, 이전에 수작업을 처리해야될 작업시간의 상당부분을 작품의 완성도 등을 고려하는 보다 창의적인 작업을 수행하는데 전념할 수 있게 한다.All of the motion representation of the digitized characters can be done manually, but much of the work can be generated automatically by the computer. This content increases the productivity of professional animators, lowers the threshold of animation production, and provides the opportunity for various works to be produced. Allows you to concentrate on performing your work.

디지털 캐릭터의 동작을 자동으로 생성하는 방법은 여러가지가 있다. 다음에는 캐릭터의 동작을 자동으로 생성하는 몇 가지 방법에 대하여 기술하고자 한다. There are several ways to automatically generate the motion of a digital character. Next, we will describe some ways to automatically generate the behavior of a character.

<키프레임><Key frame>

키프레임 시스템이란 이름은 월트 디즈니에 의해서 최초로 개발된 "Hierarchical Production System"에서 유래했다. 이 시스템은 숙련된 애니메이터가 키프레임이란 애니메이션을 만들기 위해 프레임들을 그려서 특정 프레임들의 시퀀스를 디자인한다. 이후, 숙련도가 떨어지는 애니메이터들이 중간 프레임들을 만들어 내므로서 전체 프레임 시퀀스를 완성한다. 이 작업이 컴퓨터를 이용하면서 중간 프레임들을 그리는 작업을 보간기술(Interpolation)을 이용하여 대체하게 되었다. 또한 이 작업은 동작에 영향을 끼치는 모든 파라미터들을 보간할 수 있게 하므로서 고 수준의 제어 방법을 제공하여 보다 일반화 되었다. 현재 거의 모든 애니메이션 영화라든지 컴퓨터 애니메이션 들은 이 기법을 이용하여 제작된다.The name keyframe system comes from the "Hierarchical Production System" originally developed by Walt Disney. This system allows a skilled animator to design a sequence of specific frames by drawing frames to animate a keyframe. Lack of skill animators then complete the entire frame sequence by creating intermediate frames. This work replaced the task of drawing intermediate frames using interpolation using a computer. This task is also more generalized by providing a high level of control by allowing interpolation of all parameters affecting motion. Almost all animated movies and computer animations are produced using this technique.

<운동학 애니메이션>Kinematics Animation

이 방법은 동작을 생성하는 힘과 관계없이 분절의 위치와 속도 가속도를 이 용하여 동작을 표현하는 방법이다. 그리고, 이 방법은 다음 두 가지로 나뉜다.This method expresses motion using segment position and velocity acceleration irrespective of the force generating motion. This method is divided into two parts.

* 운동학(Forward Kinematics) - X= f(Q) * Forward Kinematics- X = f (Q)

캐릭터가 갖는 모든 분절의 움직임이 애니메이터에 의해서 결정되는 방식이다. 손과 발과 같은 말단의 움직임은 캐릭터의 중심에서 말단에 이르는 도중에 존재하는 모든 분절에 관련된 값들의 누적에 의해서 결정된다. 즉, 각 분절의 위치(X)는 중간 분절들의 회전값(Q)에 의해 결정된다.The movement of every segment of a character is determined by the animator. End movements, such as hands and feet, are determined by the accumulation of values associated with all segments that exist from the center to the end of the character. That is, the position X of each segment is determined by the rotation value Q of the intermediate segments.

* 역운동학(Inverse Kinematics) - Q = f -1 (X) Inverse Kinematics- Q = f -1 (X)

애니메이터가 말단의 위치를 결정하면 중간 분절들의 회전값들을 자동으로 계산해낸다. 즉, 위치(X)가 결정되면, 회전값(Q)이 결정된다.When the animator determines the position of the distal end, it automatically calculates the rotations of the middle segments. That is, when the position X is determined, the rotation value Q is determined.

역운동학 애니메이션의 경우 말단의 위치를 결정하는 것이 매우 직관적이어서 애니메이터가 다루는데 매우 편리하지만 운동학 애니메이션의 경우 속도와 가속도를 조절하여 이후 동작을 예측해 내는 것이 매우 비직관적인 문제가 있다.In the case of inverse kinematics animation, it is very intuitive to determine the end position, which is very convenient for the animator to deal with, but in the case of kinematic animation, it is very intuitive to predict the future motion by adjusting the speed and acceleration.

<동역학 애니메이션>Dynamic Animation

이 방법은 동작을 생성하는 힘 등을 모두 고려하여 동작을 표현하는 방법이다. 그리고, 운동학 애니메이션과 마찬가지로 다음 두 가지로 나뉜다.This method expresses a motion by considering all the forces that generate the motion. And, like kinematic animation, it is divided into two parts.

* 동역학(Forward Dynamics) - F= MA * Forward Dynamics- F = MA

분절에 대한 위치와 속도, 가속도 값을 주어서 분절에 주어지는 힘을 계산하는 것이다.The force given to the segment is calculated by giving the position, velocity, and acceleration values for the segment.

*역동역학(Inverse Dynamics) - A=F/MInverse Dynamics-A = F / M

분절에 힘을 가하면, 이로부터 분절에 대한 위치와 속도, 가속도 값을 구한다.When you apply a force to the segment, you find the position, velocity, and acceleration values for the segment.

부분적으로 중력 효과만을 이용하여 현실감을 높이는 부분동역학(Partial Dynamics)을 이용하기도한다.Partial dynamics may be used to enhance reality by using only gravity effects.

<모션 캡쳐(Motion Capturing)><Motion Capturing>

실제 인간 배우의 동작을 데이터로 기록하고 이 데이터로부터 동작을 생성하는 기술을 이용한다. 인간의 동작을 취득하는 방법에 있어 광학인식을 이용하거나 자기센서를 이용하거나 초음파 센서를 이용한다. 이 방법의 단점으로 동작 생성 중간 중간에 동작제어를 할 수 없다는데 있다. 즉, 동작제어 방식이 아니라 단순히 동작의 재생(replay)만을 한다는데 있다. 원하는 동작이 획득되어 있지 않았다면, 동작생성이 불가능하다는 것이다. 이런 점을 해결하기위해 "Motion Transition"이라고 해서 캡춰된 동작 데이터를 조금씩 변형하여 다른 유사한 동작을 보여주는 시도가 있다.It uses technology to record the motion of a real human actor as data and to generate motion from this data. In the method of acquiring human motion, optical recognition, magnetic sensor or ultrasonic sensor is used. The disadvantage of this method is that you cannot control the motion in the middle of the motion creation. In other words, the present invention is not merely an operation control method but merely a replay of an operation. If the desired action has not been obtained, then action creation is impossible. To address this, there are attempts to transform the motion data captured by "Motion Transition" little by little to show other similar motions.

디지털 캐릭터와 유사한 아바타에 대해 동작생성 파이프라인의 일부 기능글이 적용된 사례들이 논문 ("The real-time motion generation of human avatars" Proc. of 13th symposium on Human Interface, 1997, pp435~438)("The Avatar's Behavior and Interaction for Virtual World" Proc. of VRSJAC'97, pp242-249)에 서 찾아볼 수 있다.Some of the features of the motion creation pipeline applied to avatars similar to digital characters are described in the paper ("The real-time motion generation of human avatars" Proc. Of 13 th symposium on Human Interface, 1997, pp435-438) (" The Avatar's Behavior and Interaction for Virtual World "Proc. Of VRSJAC'97, pp242-249).

따라서, 전술한 디지털 캐릭터의 동작을 자동으로 생성하는 다수의 방법에 디지털 캐릭터의 동작을 생성시키기 위한 정형화된 파이프라인을 구성하여 보다 빠르고 편리하게 캐릭터의 동작을 생성시킬 필요성이 있다. Therefore, there is a need to create a character's motion more quickly and conveniently by constructing a standardized pipeline for generating the motion of the digital character in a plurality of methods for automatically generating the motion of the digital character described above.

본 발명은 전술한 필요성을 충족시키기 위하여 제안된 것으로서, 그 목적은 캐릭터의 분절들을 일일이 제어하여 모든 동작을 생성하는 방법 대신에 사용자에 의해 작성된 동작생성을 위하여 시나리오처럼 작성된 스크립트를 사용하여 보다 직관적이고 쉽게 캐릭터들의 동작을 자동으로 생성하는 디지털 캐릭터 동작생성 파이프라인 구조 및 방법을 제공하는 데에 있는 것이다. The present invention has been proposed to meet the above-mentioned needs, and its object is to use a script written as a scenario for generating motions written by the user instead of a method of generating all the motions by controlling the segment of the character one by one. It is to provide a digital character motion creation pipeline structure and method that automatically generates the motion of characters easily.

본 발명의 다른 목적은 사용자가 사용하는 상위의 언어로부터 하위의 동작 생성으로 데이터의 변환과 생성을 처리하는 디지털 캐릭터 동작생성 파이프라인을 제공하는 데에 있는 것이다. Another object of the present invention is to provide a digital character motion generation pipeline that handles the transformation and generation of data from the higher language used by the user to the lower motion generation.

본 발명의 또 다른 목적은 캐릭터 동작의 다양한 면을 표현하기 위해 일상적인 동작들과 일상적인 동작들 상에서 어떠한 의도나 목적을 달성할 수 있도록 하였으며, 캐릭터의 개인적인 특징이나 현재의 감정상태 등이 동작에 영향을 줄 수 있도록 구성한 디지털 캐릭터 동작생성 파이프라인을 제공하는 데에 있는 것이다. It is another object of the present invention to achieve various intentions and purposes in everyday motions and everyday motions in order to express various aspects of the character motions. It's about providing a pipeline of digital character motion creation that's been structured to make an impact.

본 발명의 디지털 캐릭터를 위한 동작생성파이프라인 구조는, 사용자로부터 입력된 동작생성을 위한 문법적 표현과 논리적 구조를 특징으로하는 스크립트를 해석하여 동작명령들이 캐릭터에 주어진 개별 특징이나 현재 감정상태를 반영하는 지시사항들을 스크립트에 구체화하는 동작해석기 모듈과, 동작해석기 모듈의 결과를 분석하여 병렬동작과 순차동작을 분리하고 조정하는 일을 하는 동작구성기 모듈과, 동작구성기 모듈의 결과에서 주어지는 동작명령들을 분석하여 이 동작명령들이 완수될 수 있도록 동작명령들을 관리하는 동작계획기 모듈과, 동작계획기 모듈의 결과에서 주어지는 동작명령들이 주변환경에 대한 적응방법에 따른 동작 변형 방법을 지시하는 동작적응기 모듈과, 동작적응기 모듈의 결과에서 주어지는 동작명령들에 해당하는 중간동작데이터들을 결과동작데이터로 변환 후 캐릭터에 실제로 동작을 적용하는 동작 수행기를 포함하여 이루어진 것을 특징으로 한다. The motion generation pipeline structure for the digital character of the present invention analyzes a script characterized by a grammatical expression and a logical structure for motion generation input from a user, so that motion commands reflect individual characteristics or current emotional state given to the character. Analyzes the motion interpreter module that embodies the instructions in the script, the motion composer module that separates and adjusts parallel and sequential motions by analyzing the results of the motion interpreter module, and analyzes the operation commands given in the results of the motion composer module. A motion planner module that manages the motion commands so that the motion commands can be completed, a motion adaptor module for instructing how motion commands given in the results of the motion planner module are adapted to the environment, and Corresponds to the operating instructions given in the output of the adaptor module. Characterized in that made in fact include the operation suhaenggi applying operation after converting the operation data into the intermediate operation result data character.

본 발명의 디지털 캐릭터를 위한 동작생성파이프라인 생성 방법은, 캐릭터에 주어진 개별 특징이나 현재 감정상태정보들이 저장된 응용동작 데이터베이스를 참조하여 캐릭터에 동작을 해석하는 해석단계와, 캐릭터를 동작명령을 처리하는데 필요한 규칙정보들이 저장된 복합동작 데이터베이스를 참조하여 캐릭터 동작을 구성하는 구성단계와, 캐릭터를 주변환경에 대한 정보들이 저장된 주변환경 데이터베이스를 참조하여 주변 환경에 적응시키는 적응단계와, 결과동작데이터 생성을 위해 중간동작데이터들이 저장된 동작데이터 데이터베이스를 참조하여 결과동작데이터를 생성하는 생성단계로 구성된다. The method for generating a motion generation pipeline for a digital character of the present invention includes an analysis step of interpreting a motion to a character by referring to an application motion database in which individual characteristics given to the character or current emotional state information are stored, and a character to process a motion command. The composition step of constructing the character motion by referring to the complex motion database in which necessary rule information is stored, the adaptation step of adapting the character to the surrounding environment by referring to the environment database in which the information about the environment is stored, and for generating the result motion data. And generating a result motion data by referring to the motion data database in which the intermediate motion data are stored.

이하, 본 발명의 디지털 캐릭터 동작생성 파이프라인에 대하여 첨부된 도면 을 참조하여 상세히 설명하기로 한다. Hereinafter, the digital character motion generation pipeline of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 디지털 캐릭터의 동작생성 파이프라인의 구성과 동작데이터의 생성 흐름을 나타내는 구조도이다. 1 is a structural diagram showing a configuration of a motion generation pipeline of a digital character and a generation flow of motion data.

도 1을 참조하여 보면, 본 발명에서 제시하는 동작 생성 파이프라인은 전술한 요구사항들을 만족시키기 위해서 세 단계(하위 단계는 요소동작, 중간단계는 복합동작, 상위단계는 응용동작)의 계층구조로 구성하고 각각의 단계에 대해서 보다 상세히 설명한다.Referring to Figure 1, the motion generation pipeline proposed in the present invention is a hierarchical structure of three stages (lower stage is element operation, intermediate stage is complex operation, upper stage is application operation) in order to satisfy the above requirements. Configure and describe each step in more detail.

<요소동작><Element operation>

캐릭터가 표현할 수 있는 기본이 되는 동작을 의미하며 보다 상세히는 문법에서 단일 '동사'에 의해서 표현될 수 있는 동작들을 말한다. 즉, '걷다', '뛰다', '앉다' 등이 여기에 속한다.This refers to the basic movements that can be expressed by the character, and more specifically the movements that can be represented by a single 'verb' in grammar. That is, 'walk', 'run' and 'sit' belong to this category.

문법에서 동사는 자동사와 타동사로 나뉘는데, 자동사는 '걷다'와 같이 그 자체로 의미를 갖는다. 이에 비해 타동사는 다른 무언가에 의지하기 때문에 하나의 동작이 다양하게 표현될 수 있다. 예를들어, '춤을 추다'라는 하나의 동작의미에 대해 춤의 종류에 따라 여러 가지의 동작들이 포함될 수 있다. '무언가를 열다'의 경우 무언가의 종류나 위치 등에 따라 무한대의 여는 방법이 존재할 수 있다. '앉다'의 경우 자동사로 제자리에 앉는 동작일 수 있지만 '의자에'라는 수식어가 붙으면 앞서와 같이 다양한 앉는 방법들이 존재하게 될 것이다. 타동사에 의해 표현되는 동작들이 복잡해보여도 결국은 자동사 동작들에 대한 선택과 수정에 의해 표현 될 수 있음을 알 수 있다.In grammar, verbs are divided into intransitive verbs and transitive verbs, which have a meaning in itself, such as 'walk'. In contrast, transitive verbs rely on something different, so one motion can be expressed in various ways. For example, a movement meaning 'to dance' may include various movements depending on the type of dance. In the case of 'opening something', there may be an infinite way of opening depending on the kind or location of something. 'Sit' may be an action to sit in place as an intransitive verb, but if the suffix is attached to the chair, there will be various ways to sit as before. Although the operations represented by the transitive verbs seem complicated, it can be seen that they can be expressed by the selection and modification of the intransitive verbs.

요소동작은 자동사적 동작들과 이러한 동작들을 선택과 수정이라는 방법으로 처리하여 구현되는 타동사적 동작들의 집합으로 정의한다.Element behavior is defined as a set of automatic private behaviors and other passive behaviors implemented by processing these behaviors in a manner of selection and modification.

<복합동작><Composite action>

요소동작이 한번에 하나의 일만을 할 수 있는 반면 이들을 조합한다면 매우 다양하면서도 일반적인 일들을 할 수 있다. 예를 들어, '걷다' 동작과 체조하는 동작을 이용하여 "문밖으로 나가 체조하라"와 같은 일을 할 수 있다. (동작구성-Motion Composition)While element operations can only do one thing at a time, combining them can do a wide variety of common tasks. For example, you can do things like "go out and do gymnastics" using "walk" and gymnastic moves. (Motion Composition)

요소동작끼리 서로 완전 독립이라면 한 번에 한 개의 동작만을 할 수밖에 없다. 그러나, 현실에서는 '걷다' 동작과 '손을 흔들다' 동작을 함께 수행하여 "걸으면서 손을 흔들다"와 같은 일을 한다. 또한, '걷다' 동작과 '방향을 틀다' 동작이 서로 별개라면, 한걸음 걷고, 방향을 틀고, 다시 한걸음 걷고, 방향을 트는 일을 되풀이해야 한다. 그러나 디지털 캐릭터가 두 개 이상의 요소동작을 함께 수행할 수 있다면, 단순히 걸으면서 순간순간 방향만 조금씩 틀면 된다. 따라서, 한번에 두 개 이상의 요소동작을 함께 수행할 수 있어야 한다. 물론 요소 동작 중에는 '걷다'와 '손을 흔들다'처럼 동시 수행이 가능한 동작의 조합이 있는 반면, '걷다'와 '앉다'처럼 동시 수행을 해서는 안 되는 동작의 조합이 있다.If element movements are completely independent of each other, only one movement can be performed at a time. In reality, however, the walk and wave movements are performed together to do things like "walk and shake hands." Also, if the 'walk' action and the 'turn direction' action are separate from each other, you must repeat one step, change direction, take another step and turn. However, if a digital character can perform two or more element movements together, it is only necessary to walk a little bit in a moment while walking. Therefore, it should be possible to perform two or more element operations together at a time. Of course, there are combinations of actions that can be performed simultaneously such as 'walk' and 'hand shake', while there are combinations of actions that should not be performed simultaneously such as 'walk' and 'sit'.

"걷다가 뛴다"라는 상황을 요소동작을 이용하여 수행한다고 하자. 두 동작, '걷다'와 '뛴다'는 동시 수행 조합이 아니므로, 우선 '걷다'라는 동작을 완료해서 멈춘 다음, 뛰는 동작을 수행하여야 한다. 그러나, 현실에서는 걷다가 뛰는 동작으로 갈 때 중간에 멈추지 않는다. 따라서, 요소동작을 보다 현실적으로 수행하기 위해서 연결된 요소 동작을 부드럽게 연결시켜주는 중간 동작의 생성이 필요하다.Let's say you run a "walk and run" situation using element actions. Since the two actions, 'walk' and 'run' are not a combination of simultaneous executions, first of all, the action of 'walk' must be completed and stopped. In reality, however, it does not stop in the middle of walking and running. Therefore, in order to perform the element operation more realistically, it is necessary to generate an intermediate operation that smoothly connects the connected element operations.

캐릭터를 원하는 장소까지 이동시키고 싶다면, '걷다'와 '방향을 틀다' 등의 요소 동작들을 일일이 제어하는 방법이 있고, 원하는 이동 위치 등의 목적을 알리면 이를 해결하기 위해 자동으로 필요한 요소 동작들을 생성해주는 고 수준의 제어 방법이 있다. 이 방법은 진행 방향 중에 있게 되는 환경의 변화 즉, 갑작스러운 방해물의 출현 등을 해결하는 방법 등을 기본으로 제공해야 한다. (동작계획-Motion Planning)If you want to move the character to the place you want, there is a way to control element movements such as 'walk' and 'turn direction'. There is a high level of control. This method should basically provide a way to solve changes in the environment that are in the direction of progress, that is, sudden appearance of obstacles. (Motion Planning)

한편, 평면을 걸어가는 동작과 평면이 아닌 지형을 걸어가는 동작들이 서로 별개로 존재한다면, 캐릭터에게 필요한 모든 요소동작들을 제공하는 것이 어려워진다. 따라서, 하나의 동작에 대해 이 동작과 연관된 환경 요소를 고려되어, 환경이 바뀌더라도 동작이 거기에 적응하여 생성된다면 필요한 요소 동작의 수를 줄일 뿐만 아니라 보다 자연스러운 동작의 생성이 가능해진다. (동작적응-Motion Adaptation)On the other hand, if the motion of walking the plane and the motion of the terrain other than the plane exist separately from each other, it becomes difficult to provide all the element motions required for the character. Therefore, the environmental element associated with this operation is considered for one operation, so that even if the environment changes, if the operation is generated by adapting to it, the number of required element operations is reduced as well as the creation of a more natural operation. (Motion Adaptation)

이와 같이 요소 동작들을 다양한 방법으로 조합하거나 변형하여 보다 일반적인 일을 수행할 수 있는 동작을 복합 동작이라 정의한다.In this way, an operation that can perform more general work by combining or modifying element operations in various ways is defined as a compound operation.

<응용동작><Application operation>

현실에서 인간이 같은 동작을 수행하더라도 조금씩 다른 동작을 수행하고 있는 것을 관찰할 수 있다. 이와 같이 동작에 어떠한 영향을 미쳐 조금 다른 결과를 내게 하는 요인들이 있다.In reality, even if humans perform the same movements, we can observe that they are performing slightly different movements. As such, there are factors that affect behavior and give slightly different results.

첫번째 원인은 개인적인 특징에 있다. 이는 매우 포괄적인 개념으로, 우선 신체적인 특징으로 다리가 부자연스러운 경우 등이 있다. 다음으로 정신적인 특징으로 성격을 들 수 있는데 난폭하거나 유순한 경우 등이 있다.The first cause is in personal features. This is a very comprehensive concept. First of all, the physical characteristics include unnatural legs. Next, there are mental characteristics, such as violent or docile cases.

두번째 원인은 현재의 감정 상태이다. 인간의 감정이 즐겁다면, 걸을 때 활기차게 걸을 것이고, 감정이 슬프다면, 힘없이 걸을 것이다.The second cause is the current emotional state. If human emotions are pleasant, they will walk vigorously when walking, and if they are sad, they will walk without power.

보다 현실적이고 인간적인 동작을 생성하기 위해 캐릭터가 갖는 개인적인 특징이나 감정이 반영된 동작을 응용동작으로 정의한다.In order to create more realistic and human motions, we define motions that reflect personal characteristics or emotions of characters as application motions.

이와 같이 정의된 동작파이프라인이 갖는 각 계층구조를 구현하기 위한 바람직한 실시예를 다음과 같이 상세히 설명한다.A preferred embodiment for implementing each hierarchical structure of the operation pipeline defined as described above will be described in detail as follows.

<응용동작 처리 계층><Application Action Layer>

응용동작 처리 계층(20)에는 동작해석기 모듈(3)이 있어 사용자(1)로부터 입력된 스크립트를 분석하여 이후 동작들이 수행될 세부적인 방향들을 결정한다. 이는 현재 캐릭터의 개인적인 특징이나 감정 상태에 대한 정보가 저장된 응용동작 데 이터베이스(4)를 참고하여 이후 모듈에서 참고될 세부적인 지시사항들을 생성한다. In the application operation processing layer 20, there is an operation interpreter module 3 to analyze the script input from the user 1 to determine detailed directions in which subsequent operations will be performed. This refers to the application database (4), which stores information on the personal characteristics or emotional state of the current character, and generates detailed instructions for future reference.

이후 후술하는 동작계획기 모듈(6)은 주어진 동작을 완료하기 위해 동작계획의 규칙을 선택하는 문제나 중간에 발생하는 문제 해결의 대처방안의 선택에 대해서 동작해석기 모듈(3)에서 주어는 지시사항들이 참고된다. The motion planner module 6, which will be described later, is an instruction given by the motion interpreter module 3 with respect to a problem of selecting a rule of the motion plan to complete a given motion or a solution for solving a problem occurring in the middle. Are referenced.

또한, 동작적응기 모듈(7)은 결과동작데이터(12)를 생성할 때 부가되는 변형방법에 있어 감정상태 등이 고려되는 문제 등에 있어 동작해석기 모듈(3)에서 주어는 지시사항들이 참고된다. In addition, the instructions given by the motion interpreter module 3 are referred to in the motion adaptor module 7 in terms of a problem in which an emotional state or the like is considered in the deformation method added when the resultant motion data 12 are generated.

<복합동작 처리><Complex Motion Processing>

복합동작 처리 계층(30)에는 동작구성기 모듈(5), 동작계획기 모듈(6) 및 동작적응기 모듈(7)의 3개의 모듈이 필요하다.The composite motion processing layer 30 requires three modules: the motion configurator module 5, the motion planner module 6, and the motion adaptor module 7.

동작구성기 모듈(5)은 응용동작 처리 계층(20)에서 넘어온 동작 지시 내용을 분석하여 병렬동작과 순차동작으로 분리하고 조정하는 일을 수행한다. 동작구성기 모듈(5)이 사용하는 동작구성 및 동작계획에 관련된 규칙 정보가 저장된 복합동작 데이터베이스(8)는 등록된 각 동작명령 간에 병렬수행여부와 수행순서에 대한 규칙들을 포함한다. 예를 들어, "손을 흔들다"와 "걷다"는 병렬수행이 가능하지만 "걷다"와 "뛰다"는 순차수행해야만 한다. 또한, "일어서다" 동작의 경우, "앉다"라든지 "눕다"등의 동작이 선행되서 수행되어야만 한다. The operation configurator module 5 analyzes the operation instruction content transmitted from the application operation processing layer 20 to separate and adjust the parallel operation and the sequential operation. The composite motion database 8, in which the rule information related to the motion configuration and the motion plan used by the motion configurator module 5, is stored, includes rules for parallel execution between each registered motion command and execution order. For example, "shake" and "walk" can be done in parallel, but "walk" and "run" must be performed sequentially. In addition, in the case of a "stand up" operation, an action such as "sit" or "lie down" must be performed in advance.

동작계획기 모듈(6)은 응용동작 처리 계층(20)에서 넘어온 동작 지시 내용을 분석하여 지시사항이 성공적으로 완료될 수 있도록 세부 동작들을 구성하는 일을 수행한다. 예를 들어, "문밖으로 나가라"라는 동작은 "문으로 걷다"와 "문을 열어라"와 "문을 지나서 걷다"의 세개의 동작이 순차적으로 수행되는 것이 필요하다. 심지어 "저 위치로 걸어가라"라는 단순한 동작조차 "(저위치를 향해) 몸을 틀다"와 "(저위치까지) 걷다"의 두 개의 동작이 계획되는 것이 필요함을 알 수 있다. 동작계획기 모듈(6)은 하나의 동작 명령에 대해 이를 수행하기 위한 세부적인 동작명령의 시퀀스에 대한 규칙들의 데이터베이스가 필요하다. 따라서, 동작계획기 모듈(6)은 세부적인 동작명령의 시퀀스에 대한 규칙들 정보를 포함하고 있는 복합동작 데이터베이스(8)를 사용하여 복합동작 명령에 대한 동작을 계획하고 이를 동작적응기 모듈(7)을 통해 요소동작 처리 계층으로 전송한다. The motion planner module 6 analyzes the motion instruction content from the application motion processing layer 20 and configures detailed operations so that the instruction can be completed successfully. For example, the "go out door" action requires that the three actions "walk through the door", "open the door" and "walk through the door" be performed sequentially. Even a simple motion of "walk to that position" shows that two movements, "to swing to the position" and "to walk", need to be planned. The motion planner module 6 needs a database of rules for a detailed sequence of action commands to perform this for one action command. Therefore, the motion planner module 6 uses the compound motion database 8, which contains rules information on the sequence of detailed action commands, to plan the action for the compound motion command and to adapt the motion adaptor module 7 to it. Send to the element operation processing layer through.

동작계획기 모듈(6)은 두가지 특징적인 점이 있는데, 첫째는 하나의 동작명령을 수행하기 위한 여러가지 계획이 가능하다는 것이다. 예를 들어, "저위치로 걸어가라"라는 동작명령의 경우 앞서처럼 몸을 튼 다음에 걸을 수 있지만 몸을 트는 각도가 크지 않을 경우 먼저 걷기 시작하고 걷는 도중에 몸을 트는 동작을 병렬동작으로 수행하게 할 수 있다. 이는 동작계획에 대한 규칙에 논리적인 면이 포함될 수 있음을 의미하며 더불어 응용동작의 개인적인 선호사항이 여기에 적용될 수 있음을 의미한다. The motion planner module 6 has two distinctive features, the first being that various schemes are possible for carrying out one operation command. For example, the "walk to the lower position" action command can walk after turning on the body as before, but if the angle of the body is not big, start walking first and perform the body movement in parallel while walking. can do. This means that the rules for action plans can include logical aspects, and that personal preferences of application actions can be applied here.

두번째 특징은 원래 동작 지시사항이 완료될 때까지 처음 생성된 동작명령의 시퀀스들이 계속적으로 수정될 수 있다는 것이다. 예를 들어, "저위치로 걸어가라"라는 동작명령을 수행해서 걷고 있는대 도중에 방해물이 나타난다면 이를 극복하기 위해서 회피하는 새로운 동작계획이 중간에 삽입되어야한다. 동작계획기 모듈(6)은 처음 동작 명령시퀀스를 생성해서 그 결과를 다음 모듈에 넘기는 것으로 끝나는 것이 아니라 지속적으로 완료사항을 조사하고 주변환경 등에 의해 영향을 받으면 이를 해결하기 위한 방법을 수행하는 일을 해야한다.The second feature is that the sequences of the first generated operation instructions can be modified continuously until the original operation instructions are completed. For example, if an obstacle appears in the middle of walking while performing the "walk to low position" operation, a new operation plan to avoid it must be inserted in the middle. The action planner module (6) does not end with generating the first action command sequence and passing the result to the next module. Instead, the action planner module (6) continuously investigates the completion and performs a method for resolving it when affected by the environment. Should be.

동작적응기 모듈(7)은 주변환경에 적응하기 위한 요소동작의 변형방법을 지정하는 일을 수행한다. 예를 들어, "걷다" 동작의 경우, 평면을 걷는 동작데이터를 사용하지만 주어진 주변환경에 따라 거기에 적응된 형태로 변형되어 결과동작데이터(12)를 생성하는 것이 필요하다. 따라서, 동작계획기 모듈(6)과 동작적응기 모듈(7)은 주변환경 정보가 저장된 주변환경 데이터베이스(9)를 이용하여 주변환경에 적응한 동작을 생성한다. The motion adaptor module 7 performs a task of specifying a method of modifying element motion to adapt to the surrounding environment. For example, in the case of a "walk" motion, it is necessary to use motion data that walks a plane, but to transform it into a form adapted to it according to a given surrounding environment to generate the result motion data 12. Therefore, the motion planner module 6 and the motion adaptor module 7 generate an operation adapted to the surrounding environment by using the surrounding environment database 9 in which the surrounding environment information is stored.

동작적응기 모듈(7)로부터 전송된 동작명령들에서 결과동작데이터(12)를 생성하는 동작수행기 모듈(10)이 필요하다. 전술한 바와 같이 동작수행기 모듈(10)은 결과동작데이터(12)를 생성하기 위해 전술한 각각의 동작해석기 모듈(3), 동작구성기 모듈(5), 동작계획기 모듈(6) 및 동작적응기 모듈(7)로보터 입력된 캐릭터 동작명령을 수신하고 동작명령에 대응되는 중간동작데이터들이 저장된 동작데이터 데이터베이스(11)를 사용하여 결과동작데이터(12)를 생성한다. There is a need for an operator executor module 10 that generates resultant motion data 12 from operation instructions sent from the motion adaptor module 7. As described above, the motion executor module 10 includes the motion interpreter module 3, the motion configurator module 5, the motion planner module 6 and the motion adaptor module described above to generate the result motion data 12. (7) The robot receives the input character motion command and generates the result motion data 12 using the motion data database 11 in which intermediate motion data corresponding to the motion command are stored.

<요소동작 처리 계층><Element action processing layer>

요소동작의 처리 계층(40)에는 동작수행기 모듈(10)이 필요한데 여기서 처리되는 동작데이터들에 대해서 다음의 5개의 레벨로 구분하여 처리하며, 각각의 레벨에 대해서는 후술하는 도 2에서 보다 상세하게 설명하기로 한다. The operation executor module 10 is required for the processing layer 40 of the element operation. The operation data processed here are divided into five levels of processing, and each level is described in more detail in FIG. Let's do it.

도 2는 본 발명의 일실시예에 따른 동작수행기 모듈에서 요소동작을 처리하는 레벨에 따라 분류한 상태를 나타낸 표이다. 2 is a table showing a state classified according to the level of processing the element operation in the operation executor module according to an embodiment of the present invention.

도 2를 참조하여 보면, 이러한 동작 데이터들은 다음의 도 2에 도시된 도면에 따라 분류해 볼 수 있다. 각 요소동작에 사용될 수 있는 동작 데이터의 종류는 다양하다. 이 요소동작 데이터들은 앞서 언급된 동작 자동 생성 방법에서 열거된 기술들을 이용하여 생성될 수 있다. Referring to FIG. 2, such operation data may be classified according to the following FIG. 2. There are various types of motion data that can be used for each element motion. These element motion data may be generated using the techniques listed in the aforementioned method for automatically generating motion.

먼저, 레벨 1은 요소 동작과 일대일 매칭이 되는 동작명령을 의미한다. 따라서, 동작 데이터는 '걷다', '앉다' 등으로 바로 표현된다. 레벨 2는 역운동학 기술이 사용되는 말단들의 위치 데이터들의 시퀀스들을 의미한다. 레벨 3은 운동학 기술이 사용되는 캐릭터 골격구조를 이루는 각 분절의 속도와 가속도 값을 의미한다. 레벨 4는 키프레임에서 각 분절의 위치 데이터들의 시퀀스들을 의미한다. 레벨 5는 모든 프레임에서 각 분절들의 위치 데이터들의 시퀀스를 의미한다. 모션캡춰에 의해서 얻어지는 동작데이터는 레벨 5에 해당한다.First, level 1 means an operation command that is one-to-one matching with element operation. Therefore, the motion data is directly expressed as 'walk', 'sit' and the like. Level 2 refers to sequences of positional data of the ends at which inverse kinematics techniques are used. Level 3 refers to the velocity and acceleration values of each segment of the character skeleton in which kinematics techniques are used. Level 4 means sequences of position data of each segment in a keyframe. Level 5 means a sequence of position data of each segment in every frame. The motion data obtained by motion capture corresponds to level 5.

한편, 동작수행기 모듈(10)로부터 결과동작데이터(12)가 출력되면, 이 값은 캐릭터 골격(13)에 적용되어 그 움직임이 반영된다. On the other hand, when the resultant motion data 12 is output from the motion executor module 10, this value is applied to the character skeleton 13 to reflect the movement.

하나의 애니메이션을 레벨 5에서 수많은 동작데이터로 표현되지만 레벨 1에서 몇 개의 단어들에 의해서 간단히 표현될 수 있다. 레벨 5에서 표현된 데이터들은 바로 재생(Play)이 가능하지만, 레벨 1에서 표현된 데이터들은 수많은 연산과정을 통해 레벨 5로 변환된 다음 플레이가 가능하다.An animation is represented by a lot of motion data at level 5, but can be simply expressed by a few words at level 1. The data expressed in level 5 can be played directly, but the data expressed in level 1 can be converted to level 5 through a number of operations and then played.

이러한 동작 데이터들이 앞으로 타동사적 동작, 복합동작, 응용동작 등에서 사용되려면 동작들이 변형될 수 있어야 한다. 이러한 점에서 동작 데이터들을 분석하면 다음과 같다. In order for these motion data to be used in other motions, compound motions, and application motions in the future, they must be able to be modified. In this regard, the motion data are analyzed as follows.

레벨 2의 경우 말단의 궤적에 대한 제어점(Control Point)을 파라미터로 사용하여 레벨 5로의 변형이 가능하다. In the case of level 2, it is possible to change to level 5 using a control point for the end trajectory as a parameter.

레벨 3의 경우 각 분절의 속도, 가속도 또는 힘의 값을 파라미터로 사용하여 레벨 5로의 변형이 가능하다. In level 3, the transition to level 5 is possible by using the velocity, acceleration, or force values of each segment as parameters.

레벨 4의 경우 키프레임의 데이터를 파라미터로 사용하여 레벨 5로의 변형이 가능하다. In the case of level 4, the transformation to level 5 is possible using the data of the keyframe as a parameter.

레벨 5의 경우 결과 동작 데이터 그 자체이므로 파라미터로 사용될 수 있는 것이 없다. 단지 모션 캡춰 데이터에 대한 모션블렌딩(Motion Blending)과 모션와핑(Motion Warping)을 이용하여 모션의 변형을 연구하는 시도할 수 있다. In the case of level 5, there is nothing that can be used as a parameter since the resulting motion data itself. Only motion blending and motion warping on motion capture data can be used to study the deformation of motion.

레벨 1에서 표현되는 자동사에 의해 표현되는 동작 명령들에서 레벨 5의 동작데이터로 바로 변화된다면 동작 변환이 어려워 동작 표현이 힘들게 된다. 따라서 중간에 이러한 변형을 지원하면서 자동사 동작 데이터와 1대1로 매칭되는 동작 데이터들이 요구된다. 이러한 동작 데이터로서 레벨 2~4사이의 동작 데이터들이 사용될 수 있다. 레벨 2의 동작 데이터는 어떤 대상을 조작하는데(Manipulation)에 적합하다. 레벨 3은 상대적으로 파라미터의 수가 많고 연산과정을 통해 제어하기가 편리하여 자동화하기 쉽다. 다만 운동학 동작 데이터를 생성하는 문제가 남아있는데 이는 모션 캡쳐데이터로부터 쉽게 얻어낼 수 있는 방법이 있다.If the operation instructions expressed by the intransitive verb expressed in level 1 are directly changed to the operation data of level 5, the operation conversion becomes difficult and the operation expression becomes difficult. Therefore, there is a need for one-to-one motion data matching the intransitive motion data while supporting such a transformation in the middle. As the operation data, operation data between levels 2 and 4 may be used. Level 2 motion data is suitable for manipulating certain objects. Level 3 has a relatively large number of parameters and is easy to automate because it is easy to control through the process. However, there remains a problem of generating kinematic motion data, which can be easily obtained from motion capture data.

운동학 동작 데이터에서 속도 및 가속도 값은 결국 결과 동작 데이터가 그리 는 커브(Curve)의 기울기와 기울기들의 미분값을 의미한다. 따라서 속도 및 가속도 데이터들은 결과 동작 데이터가 그리는 커브(Curve)를 근사(fitting)하는 인터폴레이션(Interpolation)의 결과로서 구분적 3차 다항식(Piecewise cubic polinomials)을 구함으로서 얻어질 수 있다. 여기서 구간의 문제는 커브의 극점과 변곡점들을 계산하여 얻어질 수 있다.In kinematic motion data, the velocity and acceleration values mean the derivative of the slope and the slope of the curve that the resulting motion data draws. Therefore, the velocity and acceleration data can be obtained by obtaining a piecewise cubic polinomials as a result of interpolation that approximates a curve drawn by the resulting motion data. The problem of the interval can be obtained by calculating the poles and inflection points of the curve.

지금까지 레벨 3을 운동학 동작 데이터로 기술해왔지만 동역학 동작 데이터도 레벨 3에 속할 수 있다. 이때 각 분절들은 각각 무게에 대한 정보를 미리 갖고 있으므로 속도와 가속도라는 파라미터는 힘(Force)으로 대체될 수 있다. 역시 동역학 동작 데이터를 구하는 문제가 있는데, 모션캡춰를 통해 얻어질 수 있는 결과 데이터로부터 역동역학을 계산하여 각 분절에서 주어질 힘에 대한 동작 데이터를 구함으로써 해결될 수 있다. So far, level 3 has been described as kinematic motion data, but kinetic motion data can also belong to level 3. In this case, since each segment has information on weight in advance, parameters such as velocity and acceleration can be replaced by force. There is also a problem of obtaining dynamic motion data, which can be solved by calculating the dynamics from the result data that can be obtained through motion capture and obtaining the motion data for the force given in each segment.

이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. Although the present invention has been described in more detail with reference to some embodiments, the present invention is not necessarily limited to these embodiments, and various modifications can be made without departing from the spirit of the present invention.

본 발명은 사용자에게 시나리오와 같은 보다 직관적인 스크립트를 사용하여 캐릭터들의 동작을 자동으로 생성하는 기능을 제공하여 컴퓨터애니메이션에 대한 빠른 프로토 타입 제작과 애니메이터들이 작업해야될 내용을 획기적으로 줄여 전체적인 작업 생산성을 높이고 여기서 얻어질 수 있는 잉여시간을 캐릭터의 세부적인 감정 표현 등에 할당해 보다 품질을 높이는데 기여할 수 있는 효과가 있다. The present invention provides the user with the ability to automatically generate the movements of characters using more intuitive scripts such as scenarios, resulting in faster prototyping for computer animation and dramatically reducing the content that animators need to work on, thereby improving overall productivity. There is an effect that can contribute to higher quality by assigning the surplus time that can be obtained here and the detailed emotional expression of the character.

또한, 본 발명은 독립적인 소프트웨어 어플리케이션으로 구현될 수 있으며, 컴퓨터 애니메이션과 관련된 소프트웨어 어플리케이션에 대한 플러그인으로 구현될 수 있으므로 에니메이션 이외에 게임, 영화의 특수 효과 등의 다양한 분야에 적용 가능한 효과가 있다.In addition, the present invention may be implemented as an independent software application, and may be implemented as a plug-in for a software application related to computer animation, and thus, the present invention may be applied to various fields such as games and special effects of movies.

또한, 본 발명은 레벨 1 내지 레벨 5까지 구성하여 레벨 1의 경우에는 단순히 동사로 구성되어 동작을 단순화할 수 있으며 다시 레벨 1은 레벨 2 내지 레벨 4를 거쳐 레벨 5로 변환되어 실질적인 결과동작데이터로 출력되며 반대로 결과동작 데이터는 레벨 5에서 다시 레벨1로 반대의 과정으로 변환하면 쉽게 동사 형태로 변환할 수 있으므로, 동작을 간편하게 기술할 수 있는 효과가 있다. In addition, the present invention can be configured to level 1 to level 5, in the case of level 1 is simply composed of verbs to simplify the operation, and again, level 1 is converted to level 5 through level 2 to level 4 to the actual result motion data. On the contrary, the resultant motion data can be easily converted into verb form by converting the level 5 from the level 5 back to the level 1 in the opposite process, so that the motion can be easily described.

Claims (16)

디지털 캐릭터를 위한 동작생성파이프라인에 있어서,In the motion creation pipeline for digital characters, 사용자로부터 입력된 동작생성을 위한 문법적 표현과 논리적 구조를 특징으로하는 스크립트를 해석하여 동작명령들이 캐릭터에 주어진 개별 특징이나 현재 감정상태를 반영하는 지시사항들을 스크립트에 구체화시키는 동작해석기 모듈;A motion interpreter module for interpreting a script characterized by a grammatical expression and a logical structure for generating a motion input from a user, and incorporating instructions in the script to reflect the individual characteristics given to the character or the current emotional state; 상기 동작해석기 모듈의 결과를 분석하여 병렬동작과 순차동작을 분리하고 조정하는 동작구성기 모듈;An operation configurator module analyzing the results of the operation interpreter module to separate and adjust the parallel operation and the sequential operation; 상기 동작구성기 모듈의 결과에서 주어지는 동작명령들을 분석하여 이 동작명령들이 완수될 수 있도록 동작명령들을 관리하는 동작계획기 모듈; An operation planner module for analyzing operation instructions given in the result of the operation configurator module and managing operation instructions so that the operation instructions can be completed; 상기 동작계획기 모듈의 결과에서 주어지는 동작명령들이 주변환경에 대한 적응방법에 따른 동작 변형 방법을 지시하는 동작적응기 모듈; 및A motion adaptor module for instructing a motion transformation method according to an adaptation method to the surrounding environment with the operation commands given in the result of the motion planner module; And 상기 동작적응기 모듈의 결과에서 주어지는 동작명령들에 해당하는 중간동작데이터들을 결과동작데이터로 변환 후 캐릭터에 실제로 동작을 적용하는 동작 수행기 모듈을 포함하여 이루어지는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And a motion executor module for converting intermediate motion data corresponding to motion commands given from the result of the motion adaptor module into result motion data and actually applying motion to the character. 제1항에 있어서, The method of claim 1, 상기 동작해석기 모듈은 캐릭터에 주어진 개별 특징이나 현재 감정상태정보 들이 저장된 응용동작 데이터베이스를 참조하여 상기 캐릭터 동작을 해석하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인. And the motion interpreter module interprets the character motion with reference to an application motion database in which individual characteristics given to the character or current emotional state information are stored. 제1항에 있어서, The method of claim 1, 상기 동작구성기 모듈, 상기 동작계획기 모듈 및 상기 동작적응기 모듈이 동작명령을 처리하는데 필요한 규칙정보들이 저장된 복합동작 데이터베이스를 참조하여 상기 캐릭터 동작을 구성하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And a motion controller module, the motion planner module, and the motion adaptor module, configured to refer to a complex motion database storing rule information necessary for processing a motion command. 제1항에 있어서, The method of claim 1, 상기 동작계획기 모듈과 상기 동작적응기 모듈은 동작명령을 처리하는데 있어 필요한 주변환경에 대한 정보들이 저장된 주변환경 데이터베이스를 참조하여 주변 환경에 적응하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And the motion planner module and the motion adaptor module adapt to the surrounding environment by referring to the surrounding environment database in which information on the surrounding environment necessary for processing the operation command is stored. 제1항에 있어서, The method of claim 1, 상기 동작수행기 모듈은 결과동작데이터 생성을 위해 중간동작데이터들이 저장된 동작데이터 데이터베이스를 참조하여 동작을 수행하기 위한 결과동작데이터를 생성하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And the motion executor module generates result motion data for performing motion by referring to a motion data database in which intermediate motion data is stored for generating motion motion data. 제1항에 있어서, The method of claim 1, 상기 동작 생성 파이프라인은 The action creation pipeline 상기 동작명령들을 구체화시키기 위하여 하위 단계는 요소동작, 중간단계는 복합동작, 상위단계는 응용동작으로 구분하고 각각 요소동작을 처리하는 요소동작 처리 계층, 복합동작을 처리하는 복합동작 처리 계층 및 응용동작을 처리하는 응용동작 처리 계층에서 각각 처리하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.In order to embody the operation instructions, the lower level is divided into element operations, the intermediate level is compound operations, and the upper level is divided into application operations. Digital character motion generation pipeline, characterized in that each processing in the application motion processing layer processing. 제6항에 있어서, The method of claim 6, 상기 요소동작 처리 계층은 레벨 1 내지 레벨 5로 구분하고, 상기 동작수행기 모듈에서 캐릭터의 요소동작을 상기 레벨 1 내지 상기 레벨 5에 따라 처리하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And the element motion processing layer is divided into levels 1 to 5, and the element performer module processes the element motion of the character according to the level 1 to level 5. 제7항에 있어서, The method of claim 7, wherein 상기 요소동작 처리 계층은, The element operation processing layer, 요소 동작과 일대일 매칭이 되는 동작명령을 의미하는 레벨 1; Level 1, which indicates an operation command that has a one-to-one correspondence with element operation; 역운동학 기술이 사용되는 말단들의 위치 데이터들의 시퀀스들을 의미하는 레벨 2; Level 2 meaning sequences of positional data of the ends at which inverse kinematics technique is used; 운동학 기술이 사용되는 캐릭터 골격구조를 이루는 각 분절의 속도와 가속도 값을 의미하는 레벨 3; Level 3 meaning a velocity and acceleration value of each segment constituting the character skeletal structure in which kinematic technique is used; 키프레임에서 각 분절의 위치 데이터들의 시퀀스들을 의미하는 레벨 4; 및Level 4 meaning sequences of position data of each segment in the keyframe; And 모든 프레임에서 각 분절들의 위치 데이터들의 시퀀스를 의미하는 레벨 5로 이루어지는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.A digital character motion creation pipeline comprising level 5, which represents a sequence of position data of respective segments in every frame. 제8항에 있어서, The method of claim 8, 상기 레벨 2의 경우 말단의 궤적에 대한 제어점(Control Point)을 파라미터로 사용하여 상기 레벨 5로 변형하고, 상기 레벨 3의 경우 각 분절의 속도, 가속도 또는 힘의 값을 파라미터로 사용하여 상기 레벨 5로의 변형하며, 상기 레벨 4의 경우 키프레임의 데이터를 파라미터로 사용하여 레벨 5로의 변형하고, 상기 레벨 1의 경우에는 상기 제2 레벨 내지 제4 레벨 사이의 동작 데이터로 변환한 이후에 상기 상기 레벨 5로 변환하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.In the case of the level 2, the control point (Control Point) for the trajectory of the end as a parameter is transformed to the level 5, and in the case of the level 3 using the value of the velocity, acceleration or force of each segment as a parameter the level 5 In the case of the level 4, the level 4 is transformed into a level 5 using the data of a keyframe as a parameter, and the level 1 is converted into motion data between the second and fourth levels. Digital character motion generation pipeline, characterized in that the conversion to 5. 제9항에 있어서, The method of claim 9, 상기 레벨 3은 상기 속도 및 상기 가속도 데이터들은 결과 동작 데이터가 그리는 커브를 근사하는 인터폴레이션의 결과로서 구분적 3차 다항식을 구함으로서 운동학 동작 데이터로 구성된 상기 레벨 3을 상기 레벨 5로 변환하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.In the level 3, the speed and the acceleration data are converted into the level 5 of the kinematic motion data by obtaining a differential third-order polynomial as a result of interpolation approximating a curve drawn by the resulting motion data. Digital character motion creation pipeline. 제5항에 있어서, The method of claim 5, 모션캡춰에 의해서 얻어지는 동작데이터는 상기 레벨 5에 포함되는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.The motion data obtained by motion capture is included in the level 5 digital character motion generation pipeline. 제11항에 있어서, The method of claim 11, 상기 레벨 5의 모션 캡춰 데이터에 대하여 모션블렌딩 또는 모션와핑을 이용하여 모션을 변형하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And transform the motion by using motion blending or motion warping on the level 5 motion capture data. 디지털 캐릭터를 위한 동작생성파이프라인 생성 방법으로서, As a method of generating a motion generation pipeline for digital characters, 상기 캐릭터에 주어진 개별 특징이나 현재 감정상태정보들이 저장된 응용동 작 데이터베이스를 참조하여 상기 캐릭터에 동작을 해석하는 해석단계; An analysis step of interpreting an operation on the character with reference to an application operation database in which individual characteristics given to the character or current emotional state information are stored; 상기 캐릭터를 동작명령을 처리하는데 필요한 규칙정보들이 저장된 복합동작 데이터베이스를 참조하여 상기 캐릭터 동작을 구성하는 구성단계; A configuration step of configuring the character motion by referring to a complex motion database in which rule information necessary for processing the motion command is stored in the character; 상기 캐릭터를 주변환경에 대한 정보들이 저장된 주변환경 데이터베이스를 참조하여 주변 환경에 적응시키는 적응단계; 및An adapting step of adapting the character to the surrounding environment with reference to the surrounding environment database in which information about the surrounding environment is stored; And 결과동작데이터 생성을 위해 중간동작데이터들이 저장된 동작데이터 데이터베이스를 참조하여 결과동작데이터를 생성하는 생성단계를 포함하여 이루어지는 것을 특징으로 하는 디지털 캐릭터를 위한 동작생성파이프라인 생성 방법. And generating a result motion data by referring to a motion data database in which intermediate motion data are stored for generating result motion data. 제13항에 있어서, The method of claim 13, 상기 구성단계에서, 상기 동작명령들을 구체화시키기 위하여 하위 단계는 요소동작, 중간단계는 복합동작, 상위단계는 응용동작으로 구분하여 처리하는 처리 단계를 더 포함하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인 생성 방법. In the constructing step, a digital character motion generation pipeline further comprises a processing step of processing the sub-steps into elementary operations, intermediate steps of complex operations, and upper steps of application operations to specify the operation instructions. How to produce. 제7항에 있어서, The method of claim 7, wherein 상기 요소동작은 요소 동작과 일대일 매칭이 되는 동작명령을 처리하는 레벨 1과, 역운동학 기술이 사용되는 말단들의 위치 데이터들의 시퀀스들을 의미하는 레 벨 2와, 운동학 기술이 사용되는 캐릭터 골격구조를 이루는 각 분절의 속도와 가속도 값을 의미하는 레벨 3과, 키프레임에서 각 분절의 위치 데이터들의 시퀀스들을 의미하는 레벨 4 및 모든 프레임에서 각 분절들의 위치 데이터들의 시퀀스를 의미하는 레벨 5로 구분하여 처리하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.The element motion is composed of a level 1 for processing an operation command that is one-to-one matching with the element motion, a level 2 for sequences of positional data of the ends at which inverse kinematics technology is used, and a character skeleton structure at which kinematics technology is used. Level 3 means the speed and acceleration value of each segment, level 4 means the sequence of position data of each segment in key frame, and level 5 means the sequence of position data of each segment in every frame. Digital character motion generation pipeline, characterized in that. 제15항에 있어서, The method of claim 15, 상기 레벨 1에서 상기 제2 레벨 내지 제4 레벨 사이의 동작 데이터로 변환하는 단계; Converting at the level 1 into operational data between the second and fourth levels; 상기 레벨 2에서 말단의 궤적에 대한 제어점(Control Point)을 파라미터로 사용하여 상기 레벨 5로 변형하는 단계; Transforming at level 2 to level 5 using a control point for the trailing edge as a parameter; 상기 레벨 3에서 각 분절의 속도, 가속도 또는 힘의 값을 파라미터로 사용하여 상기 레벨 5로의 변형하는 단계; Deforming to the level 5 using the value of the velocity, acceleration or force of each segment at the level 3 as a parameter; 상기 레벨 4에서 키프레임의 데이터를 파라미터로 사용하여 레벨 5로의 변형하는 단계; 및Transforming to level 5 using data of a keyframe as a parameter at level 4; And 상기 레벨 5의 데이터 시퀀스를 처리하는 단계를 더 포함하는 것을 특징으로 하는 디지털 캐릭터 동작생성 파이프라인.And processing said level 5 data sequence.
KR1020060124005A 2006-09-27 2006-12-07 System andd method for making digital character motion KR100841925B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060094268 2006-09-27
KR1020060094268 2006-09-27

Publications (2)

Publication Number Publication Date
KR20080028732A true KR20080028732A (en) 2008-04-01
KR100841925B1 KR100841925B1 (en) 2008-06-30

Family

ID=39531612

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060124005A KR100841925B1 (en) 2006-09-27 2006-12-07 System andd method for making digital character motion

Country Status (1)

Country Link
KR (1) KR100841925B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011099731A3 (en) * 2010-02-12 2011-12-15 주식회사 블루사이드 Method for synchronising character information according to data-type classification
KR20120041086A (en) * 2010-10-20 2012-04-30 삼성전자주식회사 Processing apparatus and method for creating avatar
WO2015170850A1 (en) * 2014-05-09 2015-11-12 주식회사 소울핑거 3d character-based voice sns system and method
KR20170090856A (en) * 2016-01-29 2017-08-08 부경대학교 산학협력단 Method for generating open scenario

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09147134A (en) * 1995-11-17 1997-06-06 Matsushita Electric Ind Co Ltd Animation generating device
JP3955756B2 (en) 2001-12-05 2007-08-08 日本電信電話株式会社 Operation control apparatus, method and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011099731A3 (en) * 2010-02-12 2011-12-15 주식회사 블루사이드 Method for synchronising character information according to data-type classification
KR20120041086A (en) * 2010-10-20 2012-04-30 삼성전자주식회사 Processing apparatus and method for creating avatar
WO2015170850A1 (en) * 2014-05-09 2015-11-12 주식회사 소울핑거 3d character-based voice sns system and method
KR20150129224A (en) * 2014-05-09 2015-11-19 주식회사 소울핑거 System and Method of Voice SNS of 3D Character-based
KR20170090856A (en) * 2016-01-29 2017-08-08 부경대학교 산학협력단 Method for generating open scenario

Also Published As

Publication number Publication date
KR100841925B1 (en) 2008-06-30

Similar Documents

Publication Publication Date Title
Agrawal et al. Task-based locomotion
Shapiro Building a character animation system
US20090091563A1 (en) Character animation framework
Prendinger et al. MPML3D: Scripting agents for the 3D internet
KR100841925B1 (en) System andd method for making digital character motion
Buttussi et al. H-animator: a visual tool for modeling, reuse and sharing of X3D humanoid animations
Čereković et al. Multimodal behavior realization for embodied conversational agents
Geng et al. Reuse of motion capture data in animation: A review
US8237719B1 (en) Pose-structured animation interface
Young et al. Style by demonstration: teaching interactive movement style to robots
Badler Animation 2000++
Saerbeck et al. Design guidelines and tools for creating believable motion for personal robots
Zhao et al. Interpreting movement manner
Cui et al. Digital media animation control technology based on maya
Cui et al. Master of puppets: an animation-by-demonstration computer puppetry authoring framework
Piman et al. Puppet modeling for real-time and interactive virtual shadow puppet play
Magnenat-Thalmann et al. Interactive Virtual Humans in Real-time Virtual Environment
Ritschel et al. Implementing Parallel and Independent Movements for a Social Robot's Affective Expressions
Gillies et al. Piavca: a framework for heterogeneous interactions with virtual characters
Mousas Towards developing an easy-to-use scripting environment for animating virtual characters
de Jong et al. From mental network models to virtualisation by avatars: a first software implementation
Leandro Parreira Duarte et al. Coarticulation and speech synchronization in MPEG-4 based facial animation
Borer et al. Animating an autonomous 3d talking avatar
JP2003196679A (en) Method for creating photo-realistic animation that expresses a plurality of emotions
Jochum et al. INTERACT: Applying Theory and Methods from the Visual and Performing Arts to Robots

Legal Events

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

Payment date: 20130527

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150527

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170529

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190527

Year of fee payment: 12