KR102547819B1 - Modeling method and modeling apparatus using fluid animation graph - Google Patents

Modeling method and modeling apparatus using fluid animation graph Download PDF

Info

Publication number
KR102547819B1
KR102547819B1 KR1020160014087A KR20160014087A KR102547819B1 KR 102547819 B1 KR102547819 B1 KR 102547819B1 KR 1020160014087 A KR1020160014087 A KR 1020160014087A KR 20160014087 A KR20160014087 A KR 20160014087A KR 102547819 B1 KR102547819 B1 KR 102547819B1
Authority
KR
South Korea
Prior art keywords
sequence
sequences
modeling
user input
frames
Prior art date
Application number
KR1020160014087A
Other languages
Korean (ko)
Other versions
KR20170026067A (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 US15/178,056 priority Critical patent/US10789750B2/en
Priority to CN201610740523.9A priority patent/CN106485775B/en
Priority to EP16186108.3A priority patent/EP3136347A1/en
Publication of KR20170026067A publication Critical patent/KR20170026067A/en
Priority to US16/998,166 priority patent/US11410363B2/en
Application granted granted Critical
Publication of KR102547819B1 publication Critical patent/KR102547819B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/603D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

시퀀스들에 포함된 프레임들 간의 유사도에 기초하여 생성된 유체 애니메이션 그래프를 이용하여 사용자 입력에 매칭되는 시퀀스를 탐색하고, 탐색 결과에 기초하여 사용자 입력에 대응되는 움직임을 모델링하는 모델링 방법 및 장치를 제공할 수 있다.Provided a modeling method and apparatus for searching for a sequence matching a user input using a fluid animation graph generated based on a similarity between frames included in the sequences, and modeling a motion corresponding to the user input based on the search result. can do.

Description

유체 애니메이션 그래프를 이용한 모델링 방법 및 모델링 장치{MODELING METHOD AND MODELING APPARATUS USING FLUID ANIMATION GRAPH}Modeling method and apparatus using fluid animation graph {MODELING METHOD AND MODELING APPARATUS USING FLUID ANIMATION GRAPH}

아래의 실시예들은 유체 애니메이션 그래프를 이용한 모델링 방법 및 모델링 장치에 관한 것이다.The following embodiments relate to a modeling method and a modeling apparatus using a fluid animation graph.

컴퓨터 그래픽스(Computer Graphics)의 시각 효과(Visual Effects) 분야에서는 강체(Rigid body), 변형체(Deformable body) 및 유체(Fluid) 중 어느 하나 또는 이들의 혼합 형태를 모델링 할 수 있다. 예를 들어, 유체 혹은 변형체와 유체의 혼합 형태를 모델링 하는 경우, 높이장 기반의 유체 운동 모델링 방식이 사용될 수 있다. 상기 방식은 단순한 모델링과 빠른 계산으로 실시간 모델링이 가능한 대신에 유체 표현 자체가 단순화 되거나, 모델링 규모가 작아져서 사실감이 떨어질 수 있다. 이와 같이 사실감을 유지한 채 실시간 모델링을 수행하는 데에는 많은 어려움이 있다.In the field of visual effects of computer graphics, any one of a rigid body, a deformable body, and a fluid, or a mixture thereof can be modeled. For example, when modeling a fluid or a mixture of a deformable body and a fluid, a height field-based fluid motion modeling method may be used. In the above method, real-time modeling is possible with simple modeling and fast calculation, but the fluid expression itself may be simplified or the modeling scale may be reduced, resulting in low realism. There are many difficulties in performing real-time modeling while maintaining such realism.

일 측에 따르면, 모델링 방법은 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여 생성된 유체 애니메이션 그래프를 이용하여 사용자 입력에 매칭되는 시퀀스를 탐색하는 단계; 및 상기 탐색 결과에 기초하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 단계를 포함한다. According to one aspect, the modeling method includes searching for a sequence matching a user input using a fluid animation graph generated based on a similarity between frames included in the sequences; and modeling a motion corresponding to the user input based on the search result.

상기 모델링하는 단계는 상기 사용자 입력에 매칭되는 시퀀스가 탐색되지 않은 경우, 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 유사한 시퀀스들을 블렌딩(blending)하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 단계를 포함할 수 있다. In the modeling step, if a sequence matching the user input is not found, a motion corresponding to the user input is obtained by blending sequences similar to the user input among a plurality of sequences included in the fluid animation graph. A modeling step may be included.

상기 모델링하는 단계는 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들의 형상 정보 및 속도 정보 중 적어도 하나에 기초하여, 상기 사용자 입력에 유사한 시퀀스들을 블렌딩하는 단계를 포함할 수 있다. The modeling may include blending sequences similar to the user input based on at least one of shape information and speed information of a plurality of sequences included in the fluid animation graph.

상기 모델링하는 단계는 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 유사한 시퀀스들을 검색하는 단계; 상기 검색된 시퀀스들을 블렌딩하여 상기 사용자 입력에 대응되는 블렌딩 시퀀스를 생성하는 단계; 및 상기 블렌딩 시퀀스를 이용하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 단계를 포함할 수 있다. The modeling may include retrieving sequences similar to the user input among a plurality of sequences included in the fluid animation graph; generating a blending sequence corresponding to the user input by blending the searched sequences; and modeling a motion corresponding to the user input using the blending sequence.

상기 사용자 입력에 유사한 시퀀스들을 검색하는 단계는 상기 복수의 시퀀스들에 부가된 적어도 하나의 태그에 기초하여, 상기 사용자 입력과 유사한 시퀀스들을 검색하는 단계를 포함할 수 있다. Searching for sequences similar to the user input may include searching for sequences similar to the user input based on at least one tag added to the plurality of sequences.

상기 블렌딩 시퀀스를 생성하는 단계는 상기 검색된 시퀀스들과 상기 사용자 입력에 기초하여 블렌딩 웨이트(blending weight)를 추출하는 단계; 및 상기 검색된 시퀀스들에 상기 블렌딩 웨이트를 부여하여 상기 블렌딩 시퀀스를 생성하는 단계를 포함할 수 있다. Generating the blending sequence may include extracting a blending weight based on the searched sequences and the user input; and generating the blending sequence by assigning the blending weight to the searched sequences.

상기 블렌딩 시퀀스를 생성하는 단계는 상기 검색된 시퀀스들 간의 전환 에지를 이용하여 상기 블렌딩 시퀀스와 상기 검색된 시퀀스들 간의 유사 전환 에지를 생성하는 단계를 포함할 수 있다. Generating the blending sequence may include generating similar transition edges between the blending sequence and the searched sequences by using transition edges between the searched sequences.

상기 블렌딩 시퀀스를 생성하는 단계는 상기 검색된 시퀀스들 간의 전환 에지를 통한 전환 시에 상기 블렌딩 시퀀스를 생성하는 단계를 포함할 수 있다. Generating the blending sequence may include generating the blending sequence when switching between the searched sequences through a transition edge.

상기 모델링하는 단계는 상기 검색된 시퀀스들 내 프레임들을 재생하는 단계; 재생 중인 프레임이 상기 검색된 시퀀스로부터 상기 블렌딩 시퀀스로 전환되는 프레임인지 여부를 판단하는 단계; 및 상기 검색된 시퀀스와 상기 블렌딩 시퀀스 사이를 전환하는 유사 전환 에지를 통해 상기 블렌딩 시퀀스 내 프레임들을 재생하는 단계를 포함할 수 있다. The modeling may include reproducing frames in the retrieved sequences; determining whether a frame being reproduced is a frame switched from the searched sequence to the blending sequence; and reproducing frames in the blending sequence through a similar transition edge that switches between the searched sequence and the blending sequence.

상기 모델링하는 단계는 상기 사용자 입력에 매칭되는 시퀀스가 탐색된 경우, 상기 탐색된 시퀀스를 재생하는 단계를 포함하고, 상기 탐색된 시퀀스는 상기 사용자의 입력에 대응하는 변형체의 움직임 및 상기 변형체의 움직임으로 인한 유체의 움직임을 표현하는 복수의 연속된 프레임들을 포함할 수 있다. The modeling step includes, when a sequence matching the user input is found, reproducing the searched sequence, and the searched sequence is composed of a motion of the deformable body corresponding to the user input and a motion of the deformable body. It may include a plurality of consecutive frames expressing the motion of the fluid due to

상기 탐색하는 단계는 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 매칭되는 태그를 가진 시퀀스를 선택하는 단계; 및 현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로를 탐색하는 단계를 포함할 수 있다. The searching may include selecting a sequence having a tag matching the user input among a plurality of sequences included in the fluid animation graph; and searching for a transition path from the currently playing sequence to the selected sequence.

상기 탐색하는 단계는 상기 사용자 입력에 기초하여 변형체가 제어되는 방향을 결정하는 단계; 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 방향에 대응하는 시퀀스를 선택하는 단계; 및 현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로를 탐색하는 단계를 포함할 수 있다. The searching may include determining a direction in which the deformable object is controlled based on the user input; selecting a sequence corresponding to the direction from among a plurality of sequences included in the fluid animation graph; and searching for a transition path from the currently playing sequence to the selected sequence.

상기 유체 애니메이션 그래프는 변형체의 움직임을 제어하고, 상기 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함할 수 있다. The fluid animation graph may include a plurality of sequences corresponding to a plurality of scenarios that control the motion of the deformable body and reflect the motion of the fluid caused by the motion of the deformable body.

상기 유체 애니메이션 그래프는 상기 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도에 기초하여 생성된 순환 시퀀스- 순환 시퀀스는 상기 어느 하나의 시퀀스 내에서 재귀함- ; 및 상기 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여 생성된 전환 에지(transition edge)- 상기 전환 에지는 상기 시퀀스들 간의 이동 가능 경로를 나타냄- 중 적어도 하나를 포함할 수 있다. The fluid animation graph may include a cyclic sequence generated based on a first similarity between frames included in any one of the sequences, wherein the cyclic sequence recurs within the any one sequence; And a transition edge generated based on a second similarity between frames included in any one of the sequences and frames included in the other sequences-The transition edge is a movable path between the sequences Representing - may include at least one of.

상기 모델링하는 단계는 현재 시퀀스 내 프레임들을 재생하는 단계; 현재 재생 중인 프레임이 상기 현재 시퀀스로부터 상기 사용자 입력에 매칭되는 시퀀스로 전환되는 프레임인지 여부를 판단하는 단계; 및 상기 현재 시퀀스와 상기 사용자 입력에 매칭되는 시퀀스 사이를 전환하는 전환 에지에 기초하여, 상기 사용자 입력에 매칭되는 시퀀스 내 프레임들을 재생하는 단계를 포함할 수 있다. The modeling may include reproducing frames in the current sequence; determining whether a frame currently being reproduced is a frame transitioning from the current sequence to a sequence matching the user input; and reproducing frames within a sequence matching the user input based on a transition edge for switching between the current sequence and the sequence matching the user input.

현재 시퀀스 내 프레임들을 재생하는 단계는 상기 현재 시퀀스 내 순환 시퀀스를 재귀적으로 재생하는 단계를 포함할 수 있다. Playing the frames in the current sequence may include recursively playing the recursive sequence in the current sequence.

상기 사용자 입력에 매칭되는 시퀀스 내 프레임들을 재생하는 단계는 추가적인 사용자 입력이 수신되기 전까지, 상기 사용자 입력에 매칭되는 시퀀스 내 순환 시퀀스를 재귀적으로 재생하는 단계를 포함할 수 있다. The playing of the frames in the sequence matching the user input may include recursively playing a cyclic sequence in the sequence matching the user input until an additional user input is received.

상기 사용자 입력은 사용자 장치와 결합 또는 연동되는 입력 수단에 의해 입력될 수 있다. The user input may be input by an input unit coupled to or interlocked with a user device.

일 측에 따르면, 모델링을 위한 전처리 방법은 미리 결정된 모델링 세트(modeling set)에 대응하는 시퀀스들(sequences)- 상기 시퀀스들 각각은 복수의 프레임들을 포함함-을 생성하는 단계; 및 상기 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여, 유체 애니메이션 그래프(fluid animation graph)를 생성하는 단계를 포함한다. According to one aspect, a preprocessing method for modeling includes generating sequences corresponding to a predetermined modeling set, each of the sequences including a plurality of frames; and generating a fluid animation graph based on similarities between frames included in the sequences.

상기 유사도는 형상 유사도, 에너지 유사도, 프레임 유사도 중 적어도 하나를 포함할 수 있다. The similarity may include at least one of shape similarity, energy similarity, and frame similarity.

상기 유체 애니메이션 그래프를 생성하는 단계는 상기 시퀀스들에 포함된 프레임들 간의 적어도 하나의 유사도를 산출하는 단계; 상기 적어도 하나의 유사도에 가중치를 부여하는 단계; 및 상기 가중치가 부여된 적어도 하나의 유사도의 가중합(weighted sum)에 기초하여 상기 유체 애니메이션 그래프를 생성하는 단계를 포함할 수 있다. Generating the fluid animation graph may include calculating at least one degree of similarity between frames included in the sequences; assigning a weight to the at least one degree of similarity; and generating the fluid animation graph based on a weighted sum of the at least one degree of similarity to which the weight is assigned.

상기 유체 애니메이션 그래프를 생성하는 단계는 상기 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도를 산출하는 단계; 및 상기 제1 유사도에 기초하여, 상기 어느 하나의 시퀀스 내에서 재귀(recursive)하는 순환 시퀀스(circulating sequence)를 생성하는 단계를 포함할 수 있다. The generating of the fluid animation graph may include calculating a first similarity between frames included in any one of the sequences; and generating a circulating sequence recursive within the one sequence based on the first similarity.

상기 유체 애니메이션 그래프를 생성하는 단계는 상기 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여, 상기 시퀀스들 간의 이동 가능 경로를 나타내는 전환 에지(transition edge)를 생성하는 단계; 및 상기 전환 에지를 이용하여 상기 유체 애니메이션 그래프를 생성하는 단계를 포함할 수 있다. The generating of the fluid animation graph may include a transition edge indicating a movable path between the sequences based on a second similarity between frames included in one of the sequences and frames included in the other sequences Generating (transition edge); and generating the fluid animation graph using the transition edge.

상기 전환 에지를 생성하는 단계는 상기 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도를 산출하는 단계; 및 상기 제2 유사도가 미리 설정된 기준에 해당하는 프레임들 사이에 상기 전환 에지를 생성하는 단계를 포함할 수 있다. The generating of the transition edge may include calculating a second similarity between frames included in one of the sequences and frames included in the other sequences; and generating the transition edge between frames having the second similarity corresponding to a preset criterion.

상기 유체 애니메이션 그래프를 생성하는 단계는 상기 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들의 동작 에너지를 분석하는 단계; 및 상기 동작 에너지에 기초하여 상기 시퀀스 별 전환 시점을 설정하는 단계를 포함할 수 있다. The generating of the fluid animation graph may include analyzing motion energy of frames included in any one of the sequences; and setting a switching time point for each sequence based on the operation energy.

상기 시퀀스들을 생성하는 단계는 상기 시퀀스들에 대응되는 적어도 하나의 태그를 부가하는 단계를 더 포함할 수 있다. Generating the sequences may further include adding at least one tag corresponding to the sequences.

상기 적어도 하나의 태그는 사용자 입력, 외력, 유체의 유입과 소실, 다른 개체와의 상호 작용 중 적어도 하나에 기초하여 정의될 수 있다. The at least one tag may be defined based on at least one of a user input, an external force, inflow and loss of fluid, and interaction with another entity.

상기 시퀀스들은 서로 다른 장면들(scenes)을 표현하는 프레임들을 포함할 수 있다. The sequences may include frames representing different scenes.

상기 시퀀스들은 복수의 서브 시퀀스(sub-sequence)들을 포함할 수 있다. The sequences may include a plurality of sub-sequences.

상기 모델링을 위한 전처리 방법은 미리 결정된 장면 요소(scene element)들에 기초하여, 상기 모델링 세트를 결정하는 단계를 더 포함할 수 있다. The preprocessing method for modeling may further include determining the modeling set based on predetermined scene elements.

일 측에 따르면, 모델링 장치는 모델링 세트에 대응하는 시퀀스- 상기 시퀀스는 복수의 프레임들을 포함함-들 및 상기 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여 미리 생성된 유체 애니메이션 그래프를 저장하는 메모리; 및 상기 유체 애니메이션 그래프를 이용하여 사용자 입력에 매칭되는 시퀀스를 탐색하고, 상기 탐색 결과에 기초하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 프로세서를 포함한다. According to one side, the modeling apparatus includes a memory for storing a sequence corresponding to a modeling set, wherein the sequence includes a plurality of frames, and a fluid animation graph generated in advance based on a similarity between frames included in the sequences. ; and a processor that searches for a sequence that matches a user input using the fluid animation graph, and models a motion corresponding to the user input based on a search result.

상기 프로세서는 상기 사용자 입력에 매칭되는 시퀀스가 탐색되지 않은 경우, 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 유사한 시퀀스들을 블렌딩하여 상기 사용자 입력에 대응되는 움직임을 모델링할 수 있다. When a sequence matching the user input is not found, the processor may model a motion corresponding to the user input by blending sequences similar to the user input among a plurality of sequences included in the fluid animation graph.

상기 프로세서는 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들의 형상 정보 및 속도 정보 중 적어도 하나에 기초하여, 상기 사용자 입력에 유사한 시퀀스들을 블렌딩할 수 있다. The processor may blend sequences similar to the user input based on at least one of shape information and speed information of a plurality of sequences included in the fluid animation graph.

상기 프로세서는 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 유사한 시퀀스들을 검색하고, 상기 검색된 시퀀스들을 블렌딩하여 상기 사용자 입력에 대응되는 블렌딩 시퀀스를 생성하며, 상기 블렌딩 시퀀스를 이용하여 상기 사용자 입력에 대응되는 움직임을 모델링할 수 있다. The processor searches for sequences similar to the user input among a plurality of sequences included in the fluid animation graph, blends the searched sequences to generate a blending sequence corresponding to the user input, and uses the blending sequence to generate the blending sequence. A movement corresponding to a user input may be modeled.

상기 프로세서는 상기 복수의 시퀀스들에 부가된 적어도 하나의 태그에 기초하여, 상기 사용자 입력과 유사한 시퀀스들을 검색할 수 있다. The processor may search for sequences similar to the user input based on at least one tag added to the plurality of sequences.

상기 프로세서는 상기 검색된 시퀀스들과 상기 사용자 입력에 기초하여 블렌딩 웨이트를 추출하고, 상기 검색된 시퀀스들에 상기 블렌딩 웨이트를 부여하여 상기 블렌딩 시퀀스를 생성할 수 있다. The processor may generate the blending sequence by extracting a blending weight based on the searched sequences and the user input and assigning the blending weight to the searched sequences.

상기 프로세서는 상기 검색된 시퀀스들 간의 전환 에지를 이용하여 상기 블렌딩 시퀀스와 상기 검색된 시퀀스들 간의 유사 전환 에지를 생성할 수 있다. The processor may generate similar transition edges between the blending sequence and the searched sequences by using transition edges between the searched sequences.

상기 프로세서는 상기 검색된 시퀀스들 내 프레임들을 재생하고, 재생 중인 프레임이 상기 검색된 시퀀스로부터 상기 블렌딩 시퀀스로 전환되는 프레임인지 여부를 판단하여 상기 검색된 시퀀스와 상기 블렌딩 시퀀스 사이를 전환하는 유사 전환 에지를 통해 상기 블렌딩 시퀀스 내 프레임들을 재생할 수 있다. The processor reproduces frames in the retrieved sequences, determines whether a frame being reproduced is a frame switched from the retrieved sequence to the blending sequence, and uses a similar transition edge for switching between the retrieved sequence and the blending sequence. Frames in the blending sequence can be played back.

상기 프로세서는 상기 사용자 입력에 매칭되는 시퀀스가 탐색된 경우, 상기 탐색된 시퀀스를 재생하고, 상기 탐색된 시퀀스는 상기 사용자의 입력에 대응하는 변형체의 움직임 및 상기 변형체의 움직임으로 인한 유체의 움직임을 표현하는 복수의 연속된 프레임들을 포함할 수 있다. When a sequence matching the user input is found, the processor reproduces the searched sequence, and the searched sequence expresses the motion of the deformable body corresponding to the user's input and the motion of the fluid due to the motion of the deformable body. It may include a plurality of consecutive frames that do.

상기 프로세서는 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 매칭되는 태그를 가진 시퀀스를 선택하고, 현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. The processor may select a sequence having a tag matching the user input among a plurality of sequences included in the fluid animation graph, and search a transition path from a currently playing sequence to the selected sequence.

상기 프로세서는 상기 사용자 입력에 기초하여 변형체가 제어되는 방향을 결정하고, 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 방향에 대응하는 시퀀스를 선택하며, 현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. The processor determines a direction in which the deformable object is controlled based on the user input, selects a sequence corresponding to the direction among a plurality of sequences included in the fluid animation graph, and transfers from a currently playing sequence to the selected sequence. Conversion paths can be explored.

상기 모델링 장치는 모델링 세트에 대응하는 시퀀스들을 생성하고, 상기 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여, 유체 애니메이션 그래프를 생성하는 전처리 프로세서를 더 포함할 수 있다. The modeling apparatus may further include a pre-processor generating sequences corresponding to the modeling set and generating a fluid animation graph based on a similarity between frames included in the sequences.

상기 전처리 프로세서는 상기 시퀀스들에 포함된 프레임들 간의 적어도 하나의 유사도를 산출하고, 상기 적어도 하나의 유사도에 가중치를 부여하며, 상기 가중치가 부여된 적어도 하나의 유사도의 가중합에 기초하여 상기 유체 애니메이션 그래프를 생성할 수 있다. The pre-processor calculates at least one degree of similarity between frames included in the sequences, assigns a weight to the at least one degree of similarity, and performs the fluid animation based on a weighted sum of the weighted at least one degree of similarity. graphs can be created.

상기 유체 애니메이션 그래프는 변형체의 움직임을 제어하고, 상기 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함할 수 있다. The fluid animation graph may include a plurality of sequences corresponding to a plurality of scenarios that control the motion of the deformable body and reflect the motion of the fluid caused by the motion of the deformable body.

도 1은 일 실시예에 따른 모델링의 전반적인 과정을 설명하기 위한 도면.
도 2는 일 실시예에 따른 사전 계산 과정을 나타낸 흐름도.
도 3은 일 실시예에 따른 사전 모델링 과정을 나타낸 흐름도.
도 4는 일 실시예에 따른 사전 모델링 과정에서 생성되는 시퀀스들을 나타낸 도면.
도 5는 일 실시예에 따른 유체 애니메이션 그래프 생성 과정을 나타낸 흐름도.
도 6은 일 실시예에 따른 순환 시퀀스를 생성하는 방법을 설명하기 위한 도면.
도 7은 일 실시예에 따른 유체 애니메이션 그래프를 생성하는 방법을 설명하기 위한 도면.
도 8은 일 실시예에 따른 시퀀스들 간의 유사도를 비교하는 방법을 설명하기 위한 도면.
도 9는 일 실시예에 따른 유사도들을 이용하여 유체 애니메이션 그래프를 생성하는 방법을 설명하기 위한 도면.
도 10은 일 실시예에 따른 시퀀스에 포함된 프레임들의 동작 에너지에 기초하여 시퀀스 별 전환 시점을 설정하는 방법을 설명하기 위한 도면.
도 11은 일 실시예에 따른 런 타임 처리 과정을 나타낸 흐름도.
도 12는 일 실시예에 따라 사용자 입력에 매칭되는 시퀀스를 탐색하는 방법을 나타낸 흐름도.
도 13은 일 실시예에 따른 런 타임 과정에서 사용자 입력에 매칭되는 시퀀스를 탐색하는 방법을 설명하기 위한 도면.
도 14는 다른 실시예에 따른 모델링 방법을 나타낸 흐름도.
도 15는 다른 실시예에 따른 런 타임 처리 과정을 나타낸 흐름도.
도 16은 일 실시예에 따라 사용자 입력에 유사한 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 움직임을 모델링하는 방법을 나타낸 흐름도.
도 17은 일 실시예에 따라 블렌딩 시퀀스를 생성하는 방법을 나타낸 흐름도.
도 18은 일 실시예에 따라 블렌딩 시퀀스를 생성하는 방법을 설명하기 위한 도면.
도 19는 다른 실시예에 따른 모델링 방법을 설명하기 위한 도면.
도 20은 일 실시예에 따른 모델링 장치의 블록도.
1 is a diagram for explaining an overall process of modeling according to an embodiment;
2 is a flow diagram illustrating a pre-computation process according to an embodiment;
3 is a flowchart illustrating a pre-modeling process according to an exemplary embodiment;
4 is a diagram illustrating sequences generated in a preliminary modeling process according to an embodiment.
5 is a flowchart illustrating a process of generating a fluid animation graph according to an exemplary embodiment;
6 is a diagram for explaining a method of generating a cyclic sequence according to an exemplary embodiment;
7 is a diagram for explaining a method of generating a fluid animation graph according to an exemplary embodiment;
8 is a diagram for explaining a method of comparing similarities between sequences according to an exemplary embodiment;
9 is a diagram for explaining a method of generating a fluid animation graph using similarities according to an exemplary embodiment;
10 is a diagram for explaining a method of setting a switching time point for each sequence based on motion energy of frames included in a sequence according to an exemplary embodiment;
11 is a flowchart illustrating a run-time processing process according to an embodiment;
12 is a flowchart illustrating a method of searching for a sequence matching a user input according to an embodiment.
13 is a diagram for explaining a method of searching for a sequence matching a user input in a run-time process according to an embodiment;
14 is a flowchart illustrating a modeling method according to another embodiment;
15 is a flowchart illustrating a run-time processing process according to another embodiment;
16 is a flowchart illustrating a method of modeling motion corresponding to a user input by blending sequences similar to the user input according to an embodiment.
17 is a flowchart illustrating a method of generating a blending sequence according to one embodiment.
18 is a diagram for explaining a method of generating a blending sequence according to an embodiment;
19 is a diagram for explaining a modeling method according to another embodiment;
20 is a block diagram of a modeling device according to an embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Like reference numerals in each figure indicate like elements.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various changes may be made to the embodiments described below. The embodiments described below are not intended to be limiting on the embodiments, and should be understood to include all modifications, equivalents or substitutes thereto.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are used only to describe specific examples, and are not intended to limit the examples. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description will be omitted.

도 1은 일 실시예에 따른 모델링의 전반적인 과정을 설명하기 위한 도면이다. 도 1을 참조하면, 일 실시예에 따른 모델링 장치는 사전 계산(pre-computation)(110) 과정 및 런 타임(run-time) 처리(130) 과정을 거쳐 사용자 입력에 대응되는 움직임을 모델링할 수 있다. 1 is a diagram for explaining an overall process of modeling according to an embodiment. Referring to FIG. 1 , a modeling apparatus according to an embodiment may model motion corresponding to a user input through a pre-computation process 110 and a run-time process 130. there is.

사전 계산(110) 과정은 사용자 입력을 처리하기 위해 필요한 모델링 세트에 대응하는 시퀀스를 생성하고, 사용자 입력에 따른 자연스러운 동작 전환을 모델링하기 위해 서로 연결 가능한 시퀀스들을 예를 들어, 유체 애니메이션 그래프의 형태로 미리 생성해 두는 과정으로 이해될 수 있다. 사전 계산(110) 과정은 예를 들어, 입자에 기반한 유체 및 변형체의 기하학적 구조(geometry)를 이용하여 수행될 수 있다. The pre-computation 110 process generates a sequence corresponding to the modeling set required to process the user input, and connects the sequences that can be connected to each other to model a natural motion transition according to the user input, for example, in the form of a fluid animation graph. It can be understood as a process of pre-creation. The pre-calculation 110 may be performed using, for example, particle-based geometry of fluids and deformable bodies.

런 타임 처리(130) 과정은 사전 계산(110) 과정에서 생성된 유체 애니메이션 그래프를 이용하여 실시간으로 수신되는 사용자 입력에 대응되는 움직임을 모델링 하는 과정으로 이해될 수 있다. The run-time processing 130 may be understood as a process of modeling motion corresponding to a user input received in real time using the fluid animation graph generated in the pre-calculation 110.

사전 계산(110) 과정은 예를 들어, 모델링 장치의 전처리 프로세서(도 21의 2140 참조) 또는 별도의 전처리 장치에서 수행되고, 사전에 오프 라인(Off-line)에서 수행되어 메모리 등에 저장될 수도 있다. 런 타임 처리(130) 과정은 예를 들어, 모델링 장치의 프로세서(도 20의 2020 참조)에서 수행될 수 있다. The pre-calculation 110 process may be performed, for example, in a pre-processor of the modeling device (see 2140 in FIG. 21 ) or in a separate pre-processor, and may be performed off-line in advance and stored in a memory or the like. . The process of run-time processing 130 may be performed, for example, in a processor (see 2020 of FIG. 20 ) of a modeling device.

사전 계산(110) 과정은 사전 모델링(112) 및 유체 애니메이션 그래프 생성(116)의 순서로 수행될 수 있다.The pre-calculation process (110) may be performed in the order of pre-modeling (112) and fluid animation graph generation (116).

사전 모델링(112)에서, 모델링 장치는 모델링 세트(modeling set)에 대응되는 시퀀스(들)(114)을 생성할 수 있다. 여기서, '모델링 세트'는 예를 들어, 파도와 물보라가 치는 바다에서 배가 오른쪽으로 회전하는 2초 간의 영상 등과 같이 일정 시간 이상의 분량을 가지는 의미 있는 영상 시퀀스들 또는 애니메이션들의 집합을 의미하는 것으로 이해될 수 있다. 본 명세서에서 사용되는 용어 '시퀀스(sequence)'는 복수의 (연속적인) 영상 프레임 또는 애니메이션과 같은 의미로 이해될 수 있다. 시퀀스들(114)은 서로 다른 장면들(scenes)을 표현하는 복수의 프레임들을 포함할 수 있다. 예를 들어, 시퀀스 A는 잔잔한 바다를 나타낸 복수의 프레임들을 포함할 수 있고, 시퀀스 B는 잔잔하다가 우측 수면이 점차적으로 상승하는 바다를 나타낸 복수의 프레임들을 포함할 수 있다. 또한, 시퀀스 C는 잔잔하다가 좌측 수면이 점차적으로 상승하는 바다를 나타내는 복수의 프레임들을 포함할 수 있다. In the preliminary modeling 112 , the modeling apparatus may generate sequence(s) 114 corresponding to a modeling set. Here, the 'modeling set' will be understood to mean a set of meaningful video sequences or animations having a length of more than a certain amount of time, such as, for example, a 2-second video of a ship turning right in a sea with waves and splashes. can The term 'sequence' used in this specification may be understood as synonymous with a plurality of (continuous) image frames or animation. Sequences 114 may include a plurality of frames representing different scenes. For example, sequence A may include a plurality of frames representing a calm sea, and sequence B may include a plurality of frames representing a calm sea with a right water surface gradually rising. In addition, sequence C may include a plurality of frames representing the sea where the water surface on the left is gradually rising while being calm.

모델링 세트는 복수의 모델링 시나리오들을 포함할 수 있다. 모델링 시나리오는 모델링하고자 하는 환경, 대상 등을 정의하는 시나리오일 수 있다. 예를 들어, 각각의 모델링 시나리오는 하나 또는 그 이상의 장면 요소(scene element)에 대응할 수 있다. '장면 요소들' 각각은 모델링 시나리오 중 적어도 일부를 구성하기 위해 필요한 프레임들로 이해될 수 있다. 프레임들은 영상 프레임들, 음향 프레임들, 특수효과 프레임들, 또는 이들의 다양한 조합 등을 포함할 수 있다. '장면 요소들' 각각은 하나의 의미 있는 장면(scene)을 구성하는 영상 프레임들을 포함할 수 있다. 예를 들어, '장면 요소들'은 바다 위에 배가 떠 있는 장면, 태풍 속에서 비행기가 나는 장면 등을 포함할 수 있다. 각각의 서로 다른 움직임들을 나타내는 프레임들 또는 영상들이 장면 요소들이 될 수 있다. 모델링 세트에 포함되는 모델링 시나리오들의 개수는 미리 결정될 수 있다. A modeling set may include a plurality of modeling scenarios. The modeling scenario may be a scenario defining an environment to be modeled, an object, and the like. For example, each modeling scenario may correspond to one or more scene elements. Each of the 'scene elements' may be understood as frames necessary to compose at least some of the modeling scenarios. The frames may include video frames, sound frames, special effect frames, or various combinations thereof. Each of the 'scene elements' may include image frames constituting one meaningful scene. For example, 'scene elements' may include a scene of a ship floating on the sea, a scene of an airplane flying in a typhoon, and the like. Frames or images representing different movements may be scene elements. The number of modeling scenarios included in the modeling set may be predetermined.

모델링 장치는 시퀀스들(114)마다에 대응되는 적어도 하나의 태그를 부가할 수 있다. 여기서, '태그(tag)'는 해당 시퀀스가 어떤 의미를 가지는지, 또는 해당 시퀀스가 어떤 장면을 묘사하기 위한 것인지에 대한 설명 또는 주석(annotation)으로 이해될 수 있다. 태그는 예를 들어, 사용자 입력, 외력, 유체의 유입과 소실, 다른 개체와의 상호 작용 등에 기초하여 정의될 수 있다.The modeling device may add at least one tag corresponding to each sequence 114 . Here, a 'tag' may be understood as a description or annotation of what meaning the corresponding sequence has or what scene the corresponding sequence is intended to describe. A tag may be defined based on, for example, a user input, an external force, inflow and outflow of fluid, interaction with another entity, and the like.

시퀀스들(114)마다에 부가된 태그는 예를 들어, 런 타임 처리(130) 과정에서 사용자 입력에 매칭되는 시퀀스를 검색하거나, 시퀀스들을 블렌딩(blending)하는 데에 이용될 수 있다. A tag added to each of the sequences 114 may be used, for example, to search for a sequence that matches a user input or to blend sequences during the run-time processing 130 .

유체 애니메이션 그래프 생성(116)에서, 모델링 장치는 시퀀스들(114)에 포함된 프레임들 간의 유사도를 비교하여 각 프레임과 유사한 최적의 프레임을 찾고, 프레임들 간의 이동 가능 여부를 표시한 유체 애니메이션 그래프를 생성한다. 유체 애니메이션 그래프의 일 예는 유체 애니메이션 그래프(118) 또는 도 7, 도 13과 같다. In the fluid animation graph generation 116, the modeling device compares the similarity between the frames included in the sequences 114 to find an optimal frame similar to each frame, and generates a fluid animation graph indicating whether movement between frames is possible. generate An example of the fluid animation graph is the fluid animation graph 118 or FIGS. 7 and 13 .

유체 애니메이션 그래프(118)는 변형체의 움직임을 제어하고, 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함할 수 있다. 여기서, 변형체는 강체(rigid body) 및 연체(soft body)를 모두 포함하는 의미로 이해될 수 있다. 유사도는 예를 들어, 형상 유사도, 에너지 유사도, 프레임 유사도 등을 포함할 수 있다. 여기서, 프레임 유사도는 시퀀스에 속한 연속된 프레임들 간의 유사도로서, 각 프레임의 에너지 유사도 및/또는 형상 유사도로부터 구할 수 있다. 보다 구체적으로, 프레임 유사도는 각 시퀀스에 속한 각 프레임 별 에너지 유사도 및 형상 유사도를 프레임 대 프레임으로 비교한 결과로부터 구할 수 있다. 예를 들어, A 시퀀스(애니메이션)이 100개의 프레임들로 구성되고, B 시퀀스(애니메이션)이 100개의 프레임들로 구성된다고 하자. 이 경우, 프레임 유사도는 A 시퀀스에 속한 100개의 프레임들과 B 시퀀스에 속한 100개의 프레임들의 모든 페어들, 즉, 10000 개의 페어들에 대해 계산될 수 있다. '유체 애니메이션 그래프'는 어느 하나의 시퀀스 내 및 서로 다른 시퀀스들 간의 이동 가능한 연결 관계들을 표시한 그래프 또는 테이블로 이해될 수 있다.The fluid animation graph 118 may include a plurality of sequences corresponding to a plurality of scenarios that control the motion of the deformable body and reflect the motion of the fluid due to the motion of the deformable body. Here, the deformable body may be understood as including both a rigid body and a soft body. The similarity may include, for example, shape similarity, energy similarity, frame similarity, and the like. Here, the frame similarity is a similarity between successive frames belonging to a sequence and can be obtained from energy similarity and/or shape similarity of each frame. More specifically, the frame similarity can be obtained from a result of comparing energy similarity and shape similarity for each frame belonging to each sequence frame by frame. For example, suppose that sequence A (animation) consists of 100 frames and sequence B (animation) consists of 100 frames. In this case, the frame similarity may be calculated for all pairs of 100 frames belonging to sequence A and 100 frames belonging to sequence B, that is, 10000 pairs. A 'fluid animation graph' may be understood as a graph or table displaying movable connection relationships within one sequence and between different sequences.

모델링 장치는 예를 들어, 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 유사도에 기초하여 하나의 시퀀스 내에서 재귀하는 순환 시퀀스를 생성할 수 있다. 이하에서, 어느 하나의 시퀀스에 포함된 프레임들 간의 유사도를 '제1 유사도'라고 부르기로 한다. 하나의 시퀀스 내에서 재귀하는 순환 시퀀스에 의해 예를 들어, 바다에서 연속하여 파도가 치는 장면 등이 모델링될 수 있다. The modeling apparatus may generate a recursive sequence within one sequence based on a similarity between frames included in any one of the sequences, for example. Hereinafter, the similarity between frames included in any one sequence will be referred to as 'first similarity'. For example, a scene in which waves continuously strike in the sea may be modeled by a recursive cycle sequence within one sequence.

모델링 장치는 예를 들어, 서로 다른 시퀀스들에 포함된 프레임들 간의 유사도를 비교하여 시퀀스들 간의 이동 가능 경로를 나타내는 전환 에지(transition edge)를 생성할 수 있다. 이하에서, 서로 다른 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 어느 하나를 제외한 나머지 시퀀스들에 포함된 프레임들 간의 유사도를 '제2 유사도'라고 부르기로 한다.For example, the modeling apparatus may compare similarities between frames included in different sequences to generate a transition edge indicating a path that can be moved between sequences. Hereinafter, the similarity between frames included in any one of the different sequences and frames included in the other sequences except for one will be referred to as 'second similarity'.

런 타임 처리(130) 과정에서, 모델링 장치는 유체 애니메이션 그래프(118)를 탐색(133)하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다. 런 타임 처리(130) 과정에서 사용자 입력이 수신되면, 모델링 장치는 유체 애니메이션 그래프(118)를 이용하여 사용자 입력에 매칭되는 시퀀스를 탐색하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다. 사용자 입력은 예를 들어, 사용자 단말, 조이스틱, 헤드 마운티드 디스플레이(Head-mounted display)와 같은 사용자 장치들과 결합 또는 연동된 입력 수단에 의해 입력될 수 있다. 사용자 입력은 예를 들어, 물과 같은 유체 위에서 움직이는 보트의 움직임을 제어하기 위한 것일 수 있다. During the run-time processing 130, the modeling device may model a movement corresponding to the user input by searching 133 the fluid animation graph 118. If a user input is received during the run-time processing 130, the modeling device may model a motion corresponding to the user input by searching for a sequence matching the user input using the fluid animation graph 118. The user input may be input by an input unit combined with or interlocked with user devices such as a user terminal, a joystick, or a head-mounted display. The user input may be, for example, to control the motion of a boat moving over a fluid such as water.

도 2는 일 실시예에 따른 사전 계산 과정을 나타낸 흐름도이다.2 is a flowchart illustrating a pre-calculation process according to an exemplary embodiment.

도 2를 참조하면, 일 실시예에 따른 모델링 장치(또는 전처리 장치)는 미리 결정된 모델링 세트에 대응하는 시퀀스를 생성한다(210). 시퀀스는 복수의 프레임들을 포함할 수 있다. 모델링 장치가 시퀀스를 생성하는 과정은 사전 계산(110) 과정 중 사전 모델링(113)에 해당할 수 있다. 모델링 장치가 시퀀스를 생성하는 방법에 대하여는 도 3 내지 도 4를 참조하여 구체적으로 설명한다. Referring to FIG. 2 , a modeling device (or pre-processing device) according to an embodiment generates a sequence corresponding to a predetermined modeling set (210). A sequence may include a plurality of frames. A process of generating a sequence by a modeling device may correspond to pre-modeling 113 of pre-calculation 110 . A method of generating a sequence by the modeling device will be described in detail with reference to FIGS. 3 and 4 .

모델링 장치는 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여, 유체 애니메이션 그래프를 생성한다(220). 모델링 장치가 유체 애니메이션 그래프를 생성하는 과정은 사전 계산(110) 과정 중 유체 애니메이션 그래프 생성(116)에 해당할 수 있다. 모델링 장치가 유체 애니메이션 그래프를 생성하는 방법은 도 5 내지 도 7을 참조하여 설명한다. 모델링 장치는 시퀀스들에 포함된 프레임들을 프레임 대 프레임(frame-by-frame)으로 비교하여 프레임들 간의 유사도를 비교할 수 있다. 모델링 장치가 프레임들 간의 유사도를 비교하는 방법은 도 8 내지 도 9를 참조하여 설명한다. The modeling device generates a fluid animation graph based on the similarity between frames included in the sequences (220). A process of generating the fluid animation graph by the modeling device may correspond to the fluid animation graph generation 116 of the pre-calculation 110 process. A method of generating a fluid animation graph by a modeling device will be described with reference to FIGS. 5 to 7 . The modeling apparatus may compare frames included in the sequences on a frame-by-frame basis to compare similarities between frames. A method of comparing similarities between frames by a modeling device will be described with reference to FIGS. 8 and 9 .

도 3은 일 실시예에 따른 사전 모델링 과정을 나타낸 흐름도이다.3 is a flowchart illustrating a pre-modeling process according to an embodiment.

도 3을 참조하면, 일 실시예에 따른 모델링 장치는 장면 요소들에 기초하여 모델링 세트를 결정할 수 있다(310). 모델링 장치는 다양한 상황에서의 서로 다른 움직임들을 표현하는 모델링 세트를 결정할 수 있다. 모델링 장치는 예를 들어, 모델링 하고자 하는 대상(배, 바다)에 가해지는 힘(중력, 사용자 외력, 유체에 의한 상호 작용력, 탄성력 등)에 대한 모델링 세트를 결정할 수 있다. 이때, 사용자 외력은 모델링 장치 외부로부터 수신되는 사용자 입력(제어)과 연동될 수 있다. 예를 들어, 일 실시예에 따른 모델링 장치가 HMD(Head Mount Display)에 결합되거나 연결된 경우, 사용자의 머리 움직임에 의해 대상에 가해지는 외력이 제어될 수 있다. 또한, 조이스틱(Joystick) 등으로 입력되는 제어 정보(힘의 방향, 크기, 각도 등)에 대응하여 대상의 동작이 제어될 수 있다. 일 실시예에 따른 모델링 장치는 상술한 방식으로 가상 현실(Virtual Reality) 혹은 증강 현실(Augmented Reality)을 구현할 수 있다. Referring to FIG. 3 , the modeling apparatus according to an embodiment may determine a modeling set based on scene elements (310). The modeling device may determine modeling sets representing different motions in various situations. For example, the modeling device may determine a modeling set for forces (gravity, user external force, interaction force by fluid, elastic force, etc.) applied to an object (ship, sea) to be modeled. In this case, the user external force may be interlocked with the user input (control) received from the outside of the modeling device. For example, when the modeling device according to an embodiment is coupled or connected to a Head Mount Display (HMD), an external force applied to the target may be controlled by a user's head movement. In addition, the motion of the target can be controlled in response to control information (direction, magnitude, angle, etc. of force) input by a joystick or the like. The modeling device according to an embodiment may implement virtual reality or augmented reality in the above-described manner.

모델링 세트에 포함되는 모델링 시나리오들의 개수는 사용자의 선택 또는 모델링 장치의 설정에 따라 미리 결정될 수 있다. 모델링 세트에 포함되는 모델링 시나리오들의 개수가 많은 경우, 모델링 장치는 사용자 입력에 대응하는 보다 구체적이고 자연스러운 움직임을 표현할 수 있다. The number of modeling scenarios included in the modeling set may be determined in advance according to a user's selection or a setting of a modeling device. When the number of modeling scenarios included in the modeling set is large, the modeling apparatus may express a more specific and natural motion corresponding to a user input.

모델링 장치는 미리 결정된 모델링 세트에 대응하는 시퀀스들을 생성할 수 있다(320). 모델링 장치는 예를 들어, 도 4에 도시된 것과 같은 시퀀스들을 생성할 수 있다. The modeling device may generate sequences corresponding to a predetermined modeling set (320). The modeling device may generate sequences as shown in FIG. 4 , for example.

모델링 장치는 시퀀스들에 대응되는 적어도 하나의 태그를 부가할 수 있다(330). 태그는 예를 들어, 하나의 시퀀스가 나타내는 의미 또는 주석을 나타내는 정보, 하나의 시퀀스와 관련된 식별 정보(들) 및 상기 정보들의 조합으로 표현될 수 있다. The modeling device may add at least one tag corresponding to the sequences (330). A tag may be expressed as, for example, information indicating a meaning or annotation indicated by one sequence, identification information(s) related to one sequence, and a combination of the above information.

도 4는 일 실시예에 따른 사전 모델링 과정에서 생성되는 시퀀스들을 나타낸 도면이다.4 is a diagram illustrating sequences generated in a preliminary modeling process according to an embodiment.

도 4를 참조하면, 모델링 장치에 의해 생성된 N 개의 시퀀스들(410, 420, 430, 440)이 도시된다. N 개의 시퀀스들(410, 420, 430, 440)은 도 4에 도시된 것과 같이 프레임 0부터 프레임 n까지 n+1 개의 프레임들을 포함할 수도 있고, 각 시퀀스들마다 서로 다른 장면들(scenes)을 표현하는 프레임들을 포함할 수도 있다. 이때, 서로 다른 장면들을 표현하는 프레임들의 개수는 시퀀스마다 서로 다를 수 있다. Referring to FIG. 4 , N sequences 410 , 420 , 430 , and 440 generated by a modeling device are illustrated. As shown in FIG. 4, the N sequences 410, 420, 430, and 440 may include n+1 frames from frame 0 to frame n, and each sequence may include different scenes. It may also include frames that represent it. In this case, the number of frames representing different scenes may be different for each sequence.

시퀀스들(410, 420, 430, 440)은 태그(405)를 포함할 수 있다. 태그(405)는 시퀀스마다 하나가 부가될 수도 있고, 복수 개가 부가될 수도 있다.Sequences 410 , 420 , 430 , 440 may include a tag 405 . One tag 405 may be added for each sequence, or a plurality of tags 405 may be added.

태그(405)는 예를 들어, '파도치는 바다에서 배가 우회전하는 4초 동안의 영상' 등과 같이 해당 시퀀스가 나타내는 의미 또는 주석을 포함할 수 있다. The tag 405 may include a meaning or annotation indicated by the corresponding sequence, such as, for example, 'an image for 4 seconds in which a ship turns right in a sea of waves'.

태그(405)의 내용은 예를 들어, 회전, 정지, 가속 등과 같은 사용자 입력에 직접 대응되는 것일 수 있다. 또한, 태그(405)의 내용은 사용자 입력에 대응되는 움직임에 의해 작용하는 다양한 힘(예를 들어, 중력, 충격 에너지, 운동 에너지 등), 모델링 되는 공간에서 사용자 입력에 대응되는 움직임에 따른 유체(기체)의 유입과 소실, 사용자 입력에 대응되는 움직임과 다른 개체와의 상호 작용 등 다양한 방식으로 정의될 수 있다. Contents of the tag 405 may directly correspond to user inputs such as rotation, stop, acceleration, and the like. In addition, the content of the tag 405 includes various forces (eg, gravity, impact energy, kinetic energy, etc.) acting by motions corresponding to user inputs, fluids (eg, motions corresponding to user inputs) in a modeling space. It can be defined in various ways, such as inflow and disappearance of gas), movement corresponding to user input, and interaction with other objects.

시퀀스는 시퀀스(440)와 같이 복수 개의 서브 시퀀스들을 포함할 수 있다. 시퀀스(440)은 예를 들어, 중력이 우측 방향으로 작용하는 때의 배의 움직임을 표현하는 서브 시퀀스(sub-sequence)(443) 및 중력이 아래에서 위로 작용하는 때의 배의 움직임을 표현하는 서브 시퀀스(446)를 포함할 수 있다. 복수 개의 서브 시퀀스들은 여러 개의 태그를 포함할 수 있다. 이와 같이 시퀀스는 하나의 시퀀스 내에 포함된 일부 구간(서브 시퀀스)마다의 의미를 나타내는 태그를 포함할 수 있다. A sequence may include a plurality of subsequences like sequence 440 . Sequence 440 includes, for example, a sub-sequence 443 representing the movement of the ship when gravity acts in the right direction and a sub-sequence 443 representing the movement of the ship when gravity acts from bottom to top. subsequence 446. A plurality of subsequences may include several tags. In this way, a sequence may include a tag indicating the meaning of each section (subsequence) included in one sequence.

도 5는 일 실시예에 따른 유체 애니메이션 그래프 생성 과정을 나타낸 흐름도이다. 도 5를 참조하면, 일 실시예에 따른 모델링 장치는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도를 산출할 수 있다(510). 모델링 장치는 제1 유사도에 기초하여, 어느 하나의 시퀀스 내에서 재귀(recursive)하는 순환 시퀀스(circulating sequence)를 생성할 수 있다(520). 5 is a flowchart illustrating a process of generating a fluid animation graph according to an exemplary embodiment. Referring to FIG. 5 , the modeling apparatus according to an embodiment may calculate a first similarity between frames included in any one of the sequences (510). Based on the first similarity, the modeling apparatus may generate a circulating sequence recursive within any one sequence (520).

예를 들어, 복수의 시퀀스들(A, B, C, D)의 중 어느 하나인 B 시퀀스에 10개의 프레임들이 포함되어 있다고 하자. 모델링 장치는 B 시퀀스에 포함된 10개의 프레임들 중 첫 번째 프레임과 나머지 9개의 프레임들 간의 유사도(제1 유사도)를 산출할 수 있다. 모델링 장치는 첫 번째 프레임과 나머지 9개의 프레임들 간의 유사도를 프레임 대 프레임으로 비교하여 B 시퀀스가 반복적으로 수행될 수 있는 최적의 전환을 찾을 수 있다. 모델링 장치는 최적의 전환에 따라 B 시퀀스 내에서 재귀하는 순환 시퀀스를 생성할 수 있다. 모델링 장치가 순환 시퀀스를 생성하는 방법은 도 6을 참조하여 설명한다. For example, it is assumed that sequence B, which is any one of a plurality of sequences A, B, C, and D, includes 10 frames. The modeling apparatus may calculate a similarity (first similarity) between a first frame and the remaining 9 frames among 10 frames included in the B sequence. The modeling device may compare similarities between the first frame and the remaining 9 frames on a frame-by-frame basis to find an optimal transition through which sequence B can be repeatedly performed. The modeling device may generate a recursive recursive sequence within the B sequence according to the optimal transition. A method of generating the cyclic sequence by the modeling device will be described with reference to FIG. 6 .

모델링 장치는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도를 산출할 수 있다(530). 모델링 장치는 제2 유사도가 미리 설정된 기준에 해당하는 프레임들 사이에 전환 에지를 생성할 수 있다(540). The modeling apparatus may calculate a second similarity between frames included in one of the sequences and frames included in the other sequences (530). The modeling device may generate a transition edge between frames having a second similarity corresponding to a preset criterion (540).

예를 들어, 복수의 시퀀스들(A, B, C, D) 중 A 시퀀스는 8개의 프레임들을 포함하고, B 시퀀스는 10개의 프레임들, C 시퀀스는 9개의 프레임들을, D 시퀀스는 10개의 프레임들을 포함한다고 하자.For example, among the plurality of sequences A, B, C, and D, sequence A includes 8 frames, sequence B includes 10 frames, sequence C includes 9 frames, and sequence D includes 10 frames. Let's say it contains

모델링 장치는 A 시퀀스에 포함된 8개의 프레임들과 B 시퀀스, C 시퀀스, D 시퀀스 각각에 포함된 프레임들 간의 유사도(제2 유사도)를 산출할 수 있다. 제2 유사도는 예를 들어, 0부터 1까지의 값을 가질 수 있으며, 제2 유사도가 완전히 일치하는 경우에는 '1'의 값을, 완전히 상이한 경우에는 '0'의 값을 가질 수 있다. 모델링 장치는 A 시퀀스에 포함된 8개의 프레임들과 다른 시퀀스에 포함된 프레임들 간의 제2 유사도가 미리 설정된 기준(예를 들어, 0.85)보다 큰 값을 가지는 프레임들 사이에 전환 에지를 연결할 수 있다. 전환 에지를 통해 시퀀스들 간의 전환이 가능해 질 수 있다. 전환 에지는 시퀀스들 간의 전환(Inter-Sequence Transition) 가능 여부를 나타내며, 시퀀스들 간의 이동 경로로서 작용할 수 있다. 제2 유사도를 비교하는 방법은 전술한 제1 유사도를 비교하는 때에도 동일하게 적용될 수 있다. The modeling apparatus may calculate a similarity (second similarity) between the eight frames included in sequence A and the frames included in each of sequence B, sequence C, and sequence D. The second similarity may have, for example, a value of 0 to 1, and may have a value of '1' when the second similarity is completely identical and a value of '0' when the second similarity is completely different. The modeling device may connect transition edges between frames having a second similarity between the 8 frames included in sequence A and the frames included in other sequences having a value greater than a preset criterion (eg, 0.85). . Switching between sequences may be possible through the switching edge. A transition edge indicates whether an inter-sequence transition is possible between sequences, and can act as a movement path between sequences. The method of comparing the second degree of similarity may be equally applied to the above-described comparison of the first degree of similarity.

모델링 장치는 전환 에지를 이용하여 유체 애니메이션 그래프를 생성할 수 있다(550). 모델링 장치가 전환 에지를 이용하여 유체 애니메이션 그래프를 생성하는 방법은 도 7을 참조하여 설명한다. The modeling device may generate a fluid animation graph using the transition edge (550). A method of generating a fluid animation graph using a transition edge by a modeling device will be described with reference to FIG. 7 .

도 6은 일 실시예에 따른 순환 시퀀스를 생성하는 방법을 설명하기 위한 도면이다.6 is a diagram for explaining a method of generating a cyclic sequence according to an exemplary embodiment.

도 6을 참조하면, 복수의 프레임들을 포함하는 하나의 시퀀스(610) 및 재귀하는 순환 시퀀스(630)가 도시된다. Referring to FIG. 6, a sequence 610 comprising a plurality of frames and a recursive recursive sequence 630 are shown.

예를 들어, 하나의 시퀀스(610)가 a, b, c, d, e, f, g, h, I, j, k의 총 11개의 프레임들을 포함한다고 하자. 모델링 장치는 시퀀스(610) 내에 포함된 어느 하나의 프레임(g 프레임)과 다른 10개의 프레임들 간의 유사도(제1 유사도)를 산출할 수 있다. For example, it is assumed that one sequence 610 includes a total of 11 frames of a, b, c, d, e, f, g, h, I, j, and k. The modeling apparatus may calculate a similarity (first similarity) between any one frame (g frame) included in the sequence 610 and other 10 frames.

유사도 산출 결과, 시퀀스(610)에서 프레임 g와 a간의 유사도 및 프레임 k와 e 간의 유사도가 미리 설정된 기준보다 높다고 하면, 모델링 장치는 시퀀스(610)에서 프레임 g에서 프레임 a로 재귀하거나, 프레임 k에서 프레임 e로 재귀하는 전환을 생성할 수 있다. 이때, 프레임 g에서 바로 프레임 a로 재귀하는 전환의 경우, 하나의 시퀀스(610) 내에 포함된 프레임들이 모두 재생되지 않을 뿐만 아니라 하나의 시퀀스의 수행 시간 또한 너무 짧아질 수 있다. As a result of calculating the similarity, if the similarity between frames g and a and the similarity between frames k and e in sequence 610 is higher than a preset standard, the modeling device recurses from frame g to frame a in sequence 610, or in frame k We can create a transition that recurses to frame e. In this case, in the case of recursive transition from frame g to frame a, not only are all the frames included in one sequence 610 not reproduced, but also the execution time of one sequence may be too short.

모델링 장치는 하나의 시퀀스(610) 내에 포함된 프레임들을 충분히 재생하되, 시퀀스(610)의 반복적인 재생이 가능하도록 하는 최적의 전환을 찾을 수 있다. 모델링 장치는 예를 들어, 프레임 a -> 프레임 k -> 프레임 e-> 프레임 g -> 프레임 a 순서를 가지는 프레임들의 전환을 찾을 수 있다.The modeling device may find an optimal transition that sufficiently reproduces the frames included in one sequence 610 and enables repetitive reproduction of the sequence 610 . For example, the modeling apparatus may find a transition of frames having an order of frame a -> frame k -> frame e -> frame g -> frame a.

모델링 장치는 프레임 a -> 프레임 k -> 프레임 e -> 프레임 g -> 프레임 a의 순서로 재귀하는 순환 시퀀스(630)를 생성할 수 있다. 순환 시퀀스(630)의 일부가 원 기둥 형태로 표시된 것은 해당 시퀀스가 재귀하는 순환 시퀀스임을 나타내기 위한 것이다. 모델링 장치는 새로운 사용자 입력이 수신되기 전까지 순환 시퀀스(630)에 의해 반복적인 동작을 모델링할 수 있다. The modeling apparatus may generate a circular sequence 630 recursively in the order of frame a -> frame k -> frame e -> frame g -> frame a. A part of the cyclic sequence 630 is displayed in a columnar shape to indicate that the corresponding sequence is a recursive cyclic sequence. The modeling device may model a repetitive motion by a circular sequence 630 until a new user input is received.

도 7은 일 실시예에 따른 유체 애니메이션 그래프를 생성하는 방법을 설명하기 위한 도면이다. 도 7을 참조하면, 일 실시예에 따른 모델링 장치는 복수의 시퀀스들 (710,720,730,740)이 전환 에지들(711,713,715,717)에 의해 연결된 유체 애니메이션 그래프가 도시된다. 7 is a diagram for explaining a method of generating a fluid animation graph according to an exemplary embodiment. Referring to FIG. 7 , a fluid animation graph in which a plurality of sequences 710 , 720 , 730 , and 740 are connected by transition edges 711 , 713 , 715 , and 717 is shown in the modeling device according to an exemplary embodiment.

시퀀스(710) 및 시퀀스(720)은 예를 들어, 힘이 위에서 아래 방향으로 작용하는 때에 바다에서의 배의 움직임을 표현한 시퀀스일 수 있다. 이때, 시퀀스(710) 및 시퀀스(720)은 힘이 아래 방향으로 작용하는 것 이외에 작용하는 외력 및 사용자의 입력이 서로 다른 태그 값을 가지는 상이한 시퀀스들일 수 있다. 시퀀스(730)은 힘이 오른쪽에서 왼쪽으로 작용하는 때에 배의 움직임을 표현하는 시퀀스이고, 시퀀스(740)은 힘이 오른쪽으로 작용한 후, 위로 작용하는 때에 배의 움직임을 표현한 시퀀스일 수 있다. 시퀀스(740)은 힘이 오른쪽으로 작용하는 때에 배의 움직임을 표현한 제1 서브 시퀀스와 힘이 위로 작용하는 때에 배의 움직임을 표현한 제2 서브 시퀀스를 포함할 수 있다. Sequences 710 and 720 may be sequences representing, for example, the movement of a ship in the sea when a force acts from top to bottom. In this case, the sequence 710 and the sequence 720 may be different sequences in which the force acts in a downward direction, and the external force acting and the user's input have different tag values. Sequence 730 may be a sequence representing the movement of the ship when force acts from right to left, and sequence 740 may be a sequence representing movement of the ship when force acts to the right and then upward. Sequence 740 may include a first subsequence representing the motion of the boat when the force acts to the right and a second subsequence representing the motion of the boat when the force acts upward.

모델링 장치는 서로 다른 복수의 시퀀스들(710,720,730,740) 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 유사도(제2 유사도)를 산출하고, 복수의 시퀀스들(710,720,730,740) 간에 산출된 제2 유사도가 미리 설정된 기준(예를 들어, 0.9)보다 큰 값을 가지는 프레임들 사이에 전환 에지를 생성할 수 있다.The modeling device calculates a similarity (second similarity) between frames included in any one sequence among a plurality of different sequences 710 , 720 , 730 , and 740 and frames included in the other sequences, A transition edge may be generated between frames having a calculated second similarity greater than a preset criterion (eg, 0.9).

모델링 장치는 서로 다른 시퀀스에 포함된 프레임들 간의 제2 유사도에 따라, 예를 들어, 시퀀스(710)에 포함된 프레임 c와 시퀀스(720)에 포함된 프레임 a 간에 전환 에지(711)을 생성하고, 시퀀스(710)에 포함된 프레임 h와 시퀀스(730)에 포함된 프레임 h 간에 전환 에지(713)을 생성할 수 있다. 또한, 모델링 장치는 시퀀스(710)에 포함된 프레임 g와 시퀀스(740)의 제1 서브 시퀀스에 포함된 프레임 a 간에 전환 에지(715)를 생성하고, 시퀀스(710)에 포함된 프레임 f와 시퀀스(740)의 제2 서브 시퀀스에 포함된 프레임 g 간에 전환 에지(717)을 생성할 수 있다. The modeling device generates a transition edge 711 between frame c included in sequence 710 and frame a included in sequence 720 according to the second similarity between frames included in different sequences, for example, , A transition edge 713 may be generated between frame h included in the sequence 710 and frame h included in the sequence 730 . In addition, the modeling device generates a transition edge 715 between the frame g included in the sequence 710 and the frame a included in the first subsequence of the sequence 740, and the frame f included in the sequence 710 and the sequence A transition edge 717 may be generated between frames g included in the second subsequence of step 740 .

여기서, '제2 유사도가 미리 설정된 기준보다 큰 값을 가지는 프레임들'은 비록 서로 다른 시퀀스에 속하지만 두 개의 프레임이 서로 유사하여 두 프레임을 연결하여 재생하는 경우에 서로 다른 시퀀스들이 자연스럽게 연결되는 움직임이 표현될 수 있는 프레임들에 해당한다는 의미로 이해될 수 있다. Here, 'frames whose second similarity is greater than a preset criterion' are motions in which different sequences are naturally connected when two frames are similar to each other even though they belong to different sequences and are reproduced by connecting the two frames. It can be understood as meaning that it corresponds to frames that can be expressed.

예를 들어, 90도 각도로 오른쪽으로 회전하는 배를 표현한 A 시퀀스에 속한 프레임 d와 45도 각도로 오른쪽으로 회전하는 배를 표현한 B 시퀀스에 속한 프레임 f 간의 제2 유사도가 0.9보다 크다면, 모델링 장치는 A 시퀀스에 속한 프레임 d와 B 시퀀스에 속한 프레임 f 간에 제1 전환 에지를 생성할 수 있다. 유체 애니메이션 그래프에서 제1 전환 에지를 따라 모델링이 수행되는 경우, 90도의 각도로 오른쪽으로 회전하던 배가 45도 각도로 회전하는 장면이 자연스럽게 재생될 수 있다. For example, if the second similarity between frame d belonging to sequence A representing a ship turning right at an angle of 90 degrees and frame f belonging to sequence B representing a ship turning right at an angle of 45 degrees is greater than 0.9, modeling The device may generate a first transition edge between frame d belonging to sequence A and frame f belonging to sequence B. When modeling is performed along the first transition edge in the fluid animation graph, a scene in which a ship rotating right at an angle of 90 degrees rotates at an angle of 45 degrees can be naturally reproduced.

도 8은 일 실시예에 따른 시퀀스들 간의 유사도를 비교하는 방법을 설명하기 위한 도면이다.8 is a diagram for explaining a method of comparing similarity between sequences according to an exemplary embodiment.

도 8을 참조하면, A 시퀀스와 B 시퀀스 간의 유사도를 나타낸 그래프가 도시된다. 여기서, A 시퀀스와 B 시퀀스는 각각 600개의 프레임들을 포함하고, 중력이 아래 방향으로 작용하는 동일한 시퀀스라고 가정하자. 유사도를 나타낸 그래프는 예를 들어, 0부터 1까지의 값을 가질 수 있으며, 유사도가 완전히 일치하는 경우에는 '1'의 값을, 완전히 상이한 경우에는 '0'의 값을 가질 수 있다. Referring to FIG. 8 , a graph showing the degree of similarity between sequences A and sequences B is shown. Here, it is assumed that the A sequence and the B sequence each contain 600 frames and are the same sequence in which gravity acts in a downward direction. The graph showing the degree of similarity may have a value ranging from 0 to 1, for example, a value of '1' when the degree of similarity is completely identical, and a value of '0' when the degree of similarity is completely different.

도 8의 그래프에서 흰색으로 밝게 표시될수록 프레임들 간의 유사도가 높은 부분을 나타내고, 검은색으로 어둡게 표시될수록 프레임들 간의 유사도가 낮은 부분으로 이해될 수 있다. In the graph of FIG. 8 , it can be understood that the brighter the white color indicates the higher similarity between the frames, and the darker the black color the lower the similarity between the frames.

영역(810)에서 B 시퀀스의 프레임 500에 해당하는 부분과 A 시퀀스의 프레임 320 간의 유사도가 높음을 파악할 수 있다. 모델링 장치는 B 시퀀스의 프레임 500과 A 시퀀스의 프레임 320 간에 순환 시퀀스를 생성할 수 있다. 이 경우, 만약 A 시퀀스와 B 시퀀스가 서로 상이한 시퀀스라면, 모델링 장치는 B 시퀀스의 프레임 500과 A 시퀀스의 프레임 320 간에 전환 에지를 생성할 수 있다. In the region 810, it can be seen that the similarity between the frame 500 of the B sequence and the frame 320 of the A sequence is high. The modeling device may generate a cyclic sequence between frame 500 of sequence B and frame 320 of sequence A. In this case, if sequence A and sequence B are different from each other, the modeling apparatus may generate a transition edge between frame 500 of sequence B and frame 320 of sequence A.

또한, 영역(830)에서 B 시퀀스의 프레임 320에 해당하는 부분과 프레임 500에 해당하는 부분과 A 시퀀스의 프레임 100 간의 유사도가 높음을 파악할 수 있다. 모델링 장치는 B 시퀀스의 프레임 320과 A 시퀀스의 프레임 100 간, 및 B 시퀀스의 프레임 500과 A 시퀀스의 프레임 100 간에 순환 시퀀스를 생성할 수 있다. 이 경우, 만약 A 시퀀스와 B 시퀀스가 서로 상이한 시퀀스라면, 모델링 장치는 B 시퀀스의 프레임 320과 A 시퀀스의 프레임 100 간, 및 B 시퀀스의 프레임 500과 A 시퀀스의 프레임 100 간에 전환 에지를 생성할 수 있다. 모델링 장치는 영역(830)에서와 마찬가지 방법으로 영역(850)에 대한 전환 에지를 생성할 수 있다. In addition, in the region 830, it can be seen that the similarity between the frame 320 and frame 500 of the B sequence and the frame 100 of the A sequence is high. The modeling apparatus may generate a cyclic sequence between frame 320 of sequence B and frame 100 of sequence A, and between frame 500 of sequence B and frame 100 of sequence A. In this case, if sequence A and sequence B are different from each other, the modeling device may generate transition edges between frame 320 of sequence B and frame 100 of sequence A, and between frame 500 of sequence B and frame 100 of sequence A. there is. The modeling device may generate a transition edge for the region 850 in the same way as for the region 830 .

도 9는 일 실시예에 따른 유사도들을 이용하여 유체 애니메이션 그래프를 생성하는 방법을 설명하기 위한 도면이다.9 is a diagram for explaining a method of generating a fluid animation graph using similarities according to an exemplary embodiment.

도 9를 참조하면, 모델링 장치가 프레임들 간의 유사도를 판별하는 데에 이용 가능한 다양한 유사도들을 나타낸 그래프들(910,930,950) 및 다양한 유사도들을 이용하여 생성한 유체 애니메이션 그래프(970)가 도시된다. Referring to FIG. 9 , graphs 910 , 930 , and 950 representing various degrees of similarity that can be used by a modeling device to determine the degree of similarity between frames and a fluid animation graph 970 generated using the various degrees of similarity are shown.

그래프(910)은 시퀀스들에 포함된 프레임들 간의 형상 유사도(shape similarity)를 나타내고, 그래프(930)은 프레임들 간의 위치 에너지 유사도(potential energy similarity)를 나타내며, 그래프(950)는 프레임들 간의 운동 에너지 유사도(kinetic energy similarity)를 나타낸다. Graph 910 represents shape similarity between frames included in the sequences, graph 930 represents potential energy similarity between frames, and graph 950 represents motion between frames. It represents the kinetic energy similarity.

프레임 a와 프레임 b의 간의 형상을 비교하는 경우, 모델링 장치는 예를 들어, (a ∩ b)/(a∪b)와 같은 영역 일치 비율을 이용하여 형상 유사도를 산출할 수 있다. 또한, 프레임 a와 프레임 b가 입자에 의해 사전 모델링된 경우, 모델링 장치는 모든 입자 에너지의 총합에 의해 각 프레임 별 위치 에너지(또는 운동 에너지)를 산출할 수 있다. When comparing the shapes of the frames a and b, the modeling apparatus may calculate the shape similarity using a region coincidence ratio such as (a ∩ b)/(a∪b), for example. In addition, when frame a and frame b are pre-modeled by particles, the modeling device may calculate potential energy (or kinetic energy) for each frame by summing all particle energies.

모델링 장치는 각각의 유사도에 대하여 서로 다른 가중치를 부여할 수 있다. 모델링 장치는 예를 들어, 형상 유사도에는 0.5의 가중치를 부여하고, 위치 에너지 유사도와 운동 에너지 유사도에는 각각 0.25의 가중치를 부여할 수 있다. The modeling device may assign different weights to each degree of similarity. For example, the modeling apparatus may assign a weight of 0.5 to shape similarity and a weight of 0.25 to potential energy similarity and kinetic energy similarity.

모델링 장치는 가중치가 부여된 유사도들을 가중합(weighted sum)하여 유체 애니메이션 그래프(970)를 생성할 수 있다. The modeling device may generate the fluid animation graph 970 by performing a weighted sum of the weighted similarities.

도 10은 일 실시예에 따른 시퀀스에 포함된 프레임들의 동작 에너지에 기초하여 시퀀스 별 전환 시점을 설정하는 방법을 설명하기 위한 도면이다. 도 10을 참조하면, 하나의 시퀀스에 포함된 복수의 프레임들이 가지는 서로 다른 동작 에너지를 나타낸 그래프가 도시된다. 여기서, 각 프레임의 동작 에너지는 해당 프레임이 나타내는 총 운동량, 다시 말해, 운동 에너지, 위치 에너지, 탄성 에너지, 및/또는 충돌 에너지 등의 합으로 이해될 수 있다. 10 is a diagram for explaining a method of setting a transition time point for each sequence based on motion energy of frames included in a sequence according to an exemplary embodiment. Referring to FIG. 10 , a graph showing different operating energies of a plurality of frames included in one sequence is shown. Here, the motion energy of each frame may be understood as the sum of total momentum represented by the corresponding frame, that is, kinetic energy, potential energy, elastic energy, and/or collision energy.

예를 들어, 시퀀스 A에 포함된 프레임들 중 프레임(1010)은 '10'의 동작 에너지를 가지는 10m 높이의 파도를 나타내고, 프레임(1020)은 '6'의 동작 에너지를 가지는 6m 높이의 파도를 나타내며, 프레임(1030)은 '1'의 동작 에너지를 가지는 1m 높이의 파도를 나타낸다고 하자. 모델링 장치는 시퀀스 A에 포함된 프레임들(1010,1020,1030)의 동작 에너지를 분석하고, 동작 에너지에 기초하여 시퀀스 A에서 다른 시퀀스 B로 전환되는 전환 시점(또는 전환 지점)을 설정할 수 있다. For example, among the frames included in sequence A, frame 1010 represents a 10m-high wave having a motion energy of '10', and frame 1020 represents a 6m-high wave having a motion energy of '6'. Let's assume that the frame 1030 represents a 1m-high wave having an operating energy of '1'. The modeling apparatus may analyze motion energy of the frames 1010 , 1020 , and 1030 included in sequence A, and set a transition point (or transition point) at which sequence A is switched to another sequence B based on the motion energy.

보다 구체적으로, 시퀀스 A에서 시퀀스 B로의 전환 시에, 시퀀스 B에 포함된 프레임들이 '4~5'의 동작 에너지를 가지는 4m 높이의 파도라고 하면, 모델링 장치는 시퀀스 A에 포함된 프레임들 중 전환되는 시퀀스 B와 동작 에너지가 유사한 프레임(1020)을 전환 시점으로 설정함으로써 시퀀스 A에서 시퀀스 B로의 장면이 자연스럽게 연결되도록 할 수 있다. More specifically, when switching from sequence A to sequence B, assuming that the frames included in sequence B are 4m-high waves having operating energies of '4 to 5', the modeling device converts among the frames included in sequence A. By setting the frame 1020 having similar operating energy to sequence B as the transition time, scenes from sequence A to sequence B can be naturally connected.

도 11은 일 실시예에 따른 런 타임 처리 과정을 나타낸 흐름도이다. 11 is a flowchart illustrating a run-time processing process according to an embodiment.

도 11을 참조하면, 일 실시예에 따른 모델링 장치는 유체 애니메이션 그래프를 이용하여 사용자 입력에 매칭(matching)되는 시퀀스를 탐색한다(1110). 단계(1110)에서 모델링 장치는 사용자 입력에 기초하여 변형체가 제어되는 방향을 결정하고, 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 방향에 대응하는 시퀀스를 선택할 수 있다. 모델링 장치는 현재 재생 중인 시퀀스로부터 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. 이때, 유체 애니메이션 그래프는 변형체의 움직임을 제어하고, 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함할 수 있다. Referring to FIG. 11 , the modeling apparatus according to an embodiment searches for a sequence matching a user input using a fluid animation graph (1110). In operation 1110, the modeling device may determine the direction in which the deformable body is controlled based on the user input, and may select a sequence corresponding to the direction from among a plurality of sequences included in the fluid animation graph. The modeling device may search for a transition path from the currently playing sequence to the selected sequence. In this case, the fluid animation graph may include a plurality of sequences corresponding to a plurality of scenarios that control the motion of the deformable body and reflect the motion of the fluid due to the motion of the deformable body.

유체 애니메이션 그래프는 도 1의 사전 계산 과정(110)을 통해 미리 생성되어 메모리 등에 저장될 수 있다. 유체 애니메이션 그래프는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도에 기초하여 생성된 순환 시퀀스와, 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여 생성된 전환 에지 중 적어도 하나를 포함할 수 있다. 이때, 순환 시퀀스는 어느 하나의 시퀀스 내에서 재귀할 수 있다. 또한, 전환 에지는 시퀀스들 간의 이동 가능 경로를 나타낼 수 있다. 모델링 장치가 시퀀스를 탐색하는 방법은 도 12 내지 도 13를 참조하여 설명한다. The fluid animation graph may be pre-generated through the pre-calculation process 110 of FIG. 1 and stored in a memory or the like. The fluid animation graph is a circular sequence generated based on a first similarity between frames included in any one of the sequences, frames included in any one of the sequences, and frames included in the remaining sequences. and at least one of transition edges generated based on the second similarity between the transition edges. In this case, the cyclic sequence may recurs within any one sequence. In addition, the transition edge may indicate a movable path between sequences. A method for the modeling device to search for a sequence will be described with reference to FIGS. 12 and 13 .

모델링 장치는 단계(1110)의 탐색 결과에 기초하여, 사용자 입력에 대응되는 움직임을 모델링한다(1120). 단계(1120)에서, 사용자 입력에 매칭되는 시퀀스가 탐색된 경우, 모델링 장치는 탐색된 시퀀스를 재생할 수 있다. 이때, 탐색된 시퀀스는 사용자의 입력에 대응하는 변형체의 움직임 및 변형체의 움직임으로 인한 유체의 움직임을 표현하는 복수의 연속된 프레임들을 포함할 수 있다. 사용자 입력에 매칭되는 시퀀스가 탐색된 경우에 사전 계산 과정부터 런 타임 처리 과정까지의 전체적인 동작의 일 예는 도 14에 도시된다. Based on the search result of step 1110, the modeling device models a motion corresponding to the user input (1120). In step 1120, when a sequence matching the user input is searched for, the modeling device may reproduce the searched sequence. In this case, the searched sequence may include a plurality of consecutive frames expressing the motion of the deformable body corresponding to the user's input and the motion of the fluid due to the motion of the deformable body. An example of an overall operation from a pre-computation process to a run-time process when a sequence matching a user input is searched for is shown in FIG. 14 .

단계(1120)에서, 사용자 입력에 매칭되는 시퀀스가 탐색되지 않은 경우, 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 유사한 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다. 모델링 장치가 시퀀스들을 블렌딩하는 방법은 도 16 내지 도 18을 참조하여 설명한다. In step 1120, if a sequence matching the user input is not found, the modeling device may model a movement corresponding to the user input by blending sequences similar to the user input among a plurality of sequences included in the fluid animation graph. there is. A method of blending the sequences by the modeling device will be described with reference to FIGS. 16 to 18 .

도 12는 일 실시예에 따라 사용자 입력에 매칭되는 시퀀스를 탐색하는 방법을 나타낸 흐름도이다.12 is a flowchart illustrating a method of searching for a sequence matching a user input according to an embodiment.

도 12를 참조하면, 일 실시예에 따른 모델링 장치는 사용자 입력을 수신할 수 있다(1210). Referring to FIG. 12 , the modeling device according to an embodiment may receive a user input (1210).

모델링 장치는 사전 계산 과정에서 생성된 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 매칭되는 태그를 가진 시퀀스를 선택하고(1220), 현재 재생 중인 시퀀스로부터 단계(1220)에서 선택된 시퀀스로의 전환 경로를 탐색할 수 있다(1230). 모델링 장치는 예를 들어, 사용자 입력을 태그의 표시 형태(미리 약속된 이진 코드, 또는 16진 코드 등)로 변경하여 사용자 입력에 매칭되는 태그를 가진 시퀀스를 검색할 수 있다. 모델링 장치는 검색된 시퀀스에 연결된 전환 에지를 통해 최단 전환 경로로 시퀀스를 재생할 수 있다. The modeling device selects a sequence having a tag matching the user input among a plurality of sequences included in the fluid animation graph generated in the pre-computation process (1220), and converts the currently playing sequence to the sequence selected in step 1220. A conversion path may be searched (1230). For example, the modeling device may search for a sequence having a tag matching the user input by changing the user input into a display form of a tag (binary code, hexadecimal code, etc. agreed in advance). The modeling device may reproduce the sequence through the shortest transition path through a transition edge connected to the searched sequence.

도 13은 일 실시예에 따른 런 타임 과정에서 사용자 입력에 매칭되는 시퀀스를 탐색하는 방법을 설명하기 위한 도면이다.13 is a diagram for explaining a method of searching for a sequence matching a user input in a run-time process according to an embodiment.

도 13a 및 13b를 참조하면, 복수의 시퀀스들(1310, 1320, 1330, 1340)을 포함하는 유체 애니메이션 그래프 내에서 새로운 사용자 입력에 대응하여 탐색된 경로 및 시퀀스가 도시된다. Referring to FIGS. 13A and 13B , a path and a sequence searched for in response to a new user input are shown in a fluid animation graph including a plurality of sequences 1310 , 1320 , 1330 , and 1340 .

예를 들어, 모델링 장치가 파도치는 바다에서 중력이 위에서 아래 방향으로 작용하는 때의 배의 움직임을 나타내는 현재 시퀀스(1310) 내에 포함된 프레임들을 재생하고 있던 중에 배를 왼쪽에서 오른쪽으로 움직이도록 하는 사용자 입력이 수신되었다고 하자.For example, a user who moves a boat from left to right while the modeling device is playing back frames included in the current sequence 1310 representing the motion of a boat when gravity acts from top to bottom in a wavy sea Suppose input is received.

모델링 장치는 도 13a에 도시된 복수의 시퀀스들(1310, 1320, 1330, 1340) 중 사용자 입력에 매칭되는 태그를 가진 시퀀스를 검색할 수 있다. 사용자 입력에 매칭되는 태그를 가진 시퀀스가 시퀀스(1330)라고 검색되면, 모델링 장치는 유체 애니메이션 그래프에서 현재 재생 중인 시퀀스(1310)에서 검색된 시퀀스(1330)로 가는 최단 전환 경로를 탐색할 수 있다. The modeling device may search for a sequence having a tag matching a user input among the plurality of sequences 1310, 1320, 1330, and 1340 shown in FIG. 13A. If a sequence having a tag matching the user input is searched for as the sequence 1330, the modeling device may search for the shortest transition path from the currently playing sequence 1310 to the searched sequence 1330 in the fluid animation graph.

모델링 장치는 현재 재생 중인 프레임이, 현재 시퀀스로부터 사용자 입력에 매칭되는 시퀀스로 전환되는 프레임인지 여부를 판단할 수 있다. 현재 재생 중인 프레임이, 현재 시퀀스로부터 사용자 입력에 매칭되는 시퀀스로 전환되는 프레임으로 판단되면, 모델링 장치는 현재 시퀀스와 상기 사용자 입력에 매칭되는 시퀀스 사이를 전환하는 전환 에지에 기초하여, 사용자 입력에 매칭되는 시퀀스 내 프레임들을 재생할 수 있다. 만약, 현재 재생 중인 프레임이, 현재 시퀀스로부터 사용자 입력에 매칭되는 시퀀스로 전환되는 프레임이 아니라고 판단되면, 모델링 장치는 사용자 입력에 매칭되는 시퀀스로 전환되는 프레임에 도달할 때까지 현재 시퀀스를 제공할 수 있다. The modeling device may determine whether a currently playing frame is a frame that is converted from a current sequence to a sequence matching a user input. If it is determined that the currently playing frame is a frame transitioning from the current sequence to a sequence matching the user input, the modeling device matches the user input based on the transition edge that switches between the current sequence and the sequence matching the user input. Frames in the sequence can be played back. If it is determined that the frame currently being reproduced is not a frame transitioning from the current sequence to a sequence matching the user input, the modeling device may provide the current sequence until reaching a frame transitioning to a sequence matching the user input. there is.

모델링 장치는 시퀀스(1310)의 프레임 c에서 시퀀스(1330)로 가는 전환 에지가 있음이 탐색되면, 시퀀스(1310)의 프레임 c에서 전환 에지를 통해 시퀀스(1330)로 가서 시퀀스(1330)를 재생할 수 있다. 시퀀스(1330)의 재생 중 추가적인 사용자 입력이 수신되지 않는 한, 모델링 장치는 사용자 입력에 매칭되는 시퀀스(1330) 내 순환 시퀀스를 재귀적으로 재생할 수 있다. When it is detected that there is a transition edge from frame c of the sequence 1310 to the sequence 1330, the modeling device can reproduce the sequence 1330 by going to the sequence 1330 through the transition edge from frame c of the sequence 1310. there is. As long as no additional user input is received during playback of the sequence 1330, the modeling device may recursively reproduce a cyclic sequence within the sequence 1330 that matches the user input.

또한, 모델링 장치가 파도치는 바다에서 중력이 위에서 아래 방향으로 작용하는 때의 배의 움직임을 나타내는 현재 시퀀스(1310)를 재생하고 있다고 하자. 이때, 모델링 장치는 사용자 입력이 수신되기 전까지 파도치는 바다에서 중력이 위에서 아래 방향으로 작용하는 때의 배의 움직임을 나타내는 현재 시퀀스(1310) 내 순환 시퀀스를 재귀적으로 재생할 수 있다. 현재 시퀀스(1310) 내 순환 시퀀스가 재귀적으로 재생되는 중에 배를 오른쪽에서 왼쪽으로 움직이도록 하는 사용자 입력이 수신되었다고 하자. Also, it is assumed that the modeling device reproduces a current sequence 1310 representing the motion of a ship when gravity acts from top to bottom in a wavey sea. In this case, the modeling device may recursively reproduce a circular sequence within the current sequence 1310 representing the motion of the ship when gravity acts from top to bottom in a wavey sea until a user input is received. Assume that a user input to move the ship from right to left is received while the cyclic sequence in the current sequence 1310 is being played recursively.

모델링 장치는 도 13b에 도시된 복수의 시퀀스들(1310, 1320, 1330, 1340) 중 사용자 입력에 매칭되는 태그를 가진 시퀀스를 검색할 수 있다. 사용자 입력에 매칭되는 태그를 가진 시퀀스가 시퀀스(1320)라고 검색되면, 모델링 장치는 유체 애니메이션 그래프에서 현재 재생 중인 시퀀스(1310)에서 검색된 시퀀스(1330)로 가는 최단 전환 경로를 탐색할 수 있다.The modeling device may search for a sequence having a tag matching the user input among the plurality of sequences 1310, 1320, 1330, and 1340 shown in FIG. 13B. If a sequence having a tag matching the user input is searched for as the sequence 1320, the modeling device may search for the shortest transition path from the currently playing sequence 1310 to the searched sequence 1330 in the fluid animation graph.

모델링 장치는 시퀀스(1310)의 프레임 d에서 시퀀스(1320)로 가는 전환 에지가 최단 전환 경로임이 탐색되면, 시퀀스(1310)의 프레임 d에서 전환 에지를 통해 시퀀스(1320)로 가서 시퀀스(1320)를 재생할 수 있다. 모델링 장치는 시퀀스(1320)의 재생 중 새로운 사용자 입력이 수신되지 않는 한, 시퀀스(1320)의 재생을 반복할 수 있다.When it is discovered that the transition edge from frame d of sequence 1310 to sequence 1320 is the shortest transition path, the modeling device goes to sequence 1320 through the transition edge from frame d of sequence 1310 to obtain sequence 1320. can be played The modeling device may repeat reproduction of the sequence 1320 unless a new user input is received during reproduction of the sequence 1320 .

도 14는 다른 실시예에 따른 모델링 방법을 나타낸 흐름도이다.14 is a flowchart illustrating a modeling method according to another embodiment.

도 14를 참조하면, 일 실시예에 따른 모델링 장치가 사전에 수행하는 사전 처리 과정 및 실시간으로 수행하는 런 타임 처리 과정을 모두 포함하는 과정이 도시된다. 모델링 장치는 미리 결정된 모델링 세트에 대응하는 시퀀스들을 생성할 수 있다(1410). 모델링 장치는 시퀀스들에 대응되는 적어도 하나의 태그를 부가할 수 있다(1420).Referring to FIG. 14 , a process including both a pre-processing process previously performed by a modeling device and a run-time process performed in real time is shown. The modeling device may generate sequences corresponding to a predetermined modeling set (1410). The modeling device may add at least one tag corresponding to the sequences (1420).

모델링 장치는 어느 하나의 시퀀스 내에서 재귀하는 순환 시퀀스를 생성할 수 있다(1430). 모델링 장치는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도에 기초하여, 순환 시퀀스를 생성할 수 있다.The modeling device may generate a recursive recursive sequence within any one sequence (1430). The modeling apparatus may generate a cyclic sequence based on a first similarity between frames included in any one of the sequences.

모델링 장치는 시퀀스들 간의 이동 가능 경로를 나타내는 전환 에지를 생성할 수 있다(1440). 모델링 장치는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여, 전환 에지를 생성할 수 있다.The modeling device may generate a transition edge representing a path that can be moved between sequences (1440). The modeling apparatus may generate a transition edge based on a second similarity between frames included in one of the sequences and frames included in the other sequences.

모델링 장치는 전환 에지를 이용하여 유체 애니메이션 그래프를 생성할 수 있다(1450). 상술한 단계(1410)부터 단계(1450)까지의 과정은 전 처리 과정으로서 미리 수행되고, 그 결과로서 생성된 유체 애니메이션 그래프는 모델링 장치의 메모리 등에 저장될 수 있다. The modeling device may generate a fluid animation graph using the transition edge (1450). The above-described processes from step 1410 to step 1450 are previously performed as a pre-processing process, and a fluid animation graph generated as a result may be stored in a memory of a modeling device or the like.

모델링 장치는 런타임 처리 과정에서 사용자 입력을 수신할 수 있다(1460). The modeling device may receive a user input during runtime processing (1460).

모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 매칭되는 태그를 가진 시퀀스를 선택하고(1470), 현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로(예를 들어, 최단 전환 경로)를 탐색할 수 있다(1480). The modeling device selects a sequence having a tag matching a user input among a plurality of sequences included in the fluid animation graph (1470), and a transition path (eg, the shortest transition path from the currently playing sequence to the selected sequence) ) can be searched (1480).

모델링 장치는 탐색된 최단 전환 경로를 따라 사용자 입력에 대응되는 움직임을 모델링할 수 있다(1490). 예를 들어, 바다 위에 배가 떠 있는 장면에서 모델링 장치로 수신된 사용자 입력에 따라 배의 움직임이 제어된다고 하자. 이때, 사용자 입력에 따라 제어되는 배와 함께, 배와 바다 간의 상호 작용에 의해 파도와 물보라가 치는 상황이 모델링될 수 있다. The modeling device may model a motion corresponding to the user input along the searched shortest transition path (1490). For example, suppose that the movement of a ship is controlled according to a user input received by a modeling device in a scene where a ship is floating on the sea. In this case, a situation in which waves and spray are generated by the interaction between the ship and the sea together with the ship controlled according to the user input may be modeled.

배의 움직임이 좌회전, 우회전, 및 무회전(직진)의 3가지 형태로 제어 가능하다면, 모델링 장치는 전처리 과정에서 3 가지 제어 형태들을 조합하여 사용자 입력에 따라 제어되는 총 7 개의 시퀀스들을 생성할 수 있다. 모델링 장치는 예를 들어, 좌회전 지속, 우회전 지속, 무회전 지속, 무회전 중 좌회전, 좌회전 중 무회전, 우회전 중 무회전, 및 무회전 중 우회전의 총 7 개 시퀀스들을 생성할 수 있다. 이때, 모델링 장치는 7개의 제어 가능 형태들 중 각 시퀀스에 해당하는 태그를 부가할 수 있다. If the movement of the ship can be controlled in three types of left turn, right turn, and no turn (straight), the modeling device can generate a total of seven sequences controlled according to user input by combining the three control types in the preprocessing process. there is. For example, the modeling apparatus may generate a total of 7 sequences of left turn continued, right turn continued, no turn continued, left turn during no turn, no turn during left turn, no turn during right turn, and right turn during no turn. In this case, the modeling device may add a tag corresponding to each sequence among the seven controllable shapes.

모델링 장치는 7개의 시퀀스들 각각에 대하여 하나의 시퀀스에 포함된 프레임들 간의 유사도를 비교하여 하나의 시퀀스 내에서의 연속 재생이 가능하도록 하는 최적의 순환 시퀀스를 생성할 수 있다. The modeling apparatus may compare similarities between frames included in one sequence for each of the seven sequences to generate an optimal cyclic sequence that enables continuous reproduction within one sequence.

모델링 장치는 7개의 서로 다른 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 6개의 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여, 전환 에지를 생성할 수 있다. 모델링 장치는 순환 시퀀스들 및 서로 다른 시퀀스들 간의 전환 에지를 조합하여 유체 애니메이션 그래프를 생성할 수 있다. The modeling apparatus may generate a transition edge based on a similarity between frames included in any one of the 7 different sequences and frames included in the remaining 6 sequences. The modeling device may generate a fluid animation graph by combining cyclic sequences and transition edges between different sequences.

이후, 런-타임 시에 사용자 입력이 사용자 단말, 조이스틱, 헤드 마운티드 디스플레이 등과 같은 사용자 장치들과 결합 또는 연동된 입력 수단에 의해 입력되면, 모델링 장치는 사용자 입력을 태그의 표시 형태(미리 약속된 이진 코드, 또는 16진 코드 등)로 변경하여 사용자 입력에 매칭되는 태그를 가진 시퀀스를 검색할 될 수 있다. 모델링 장치는 사용자 입력에 기초하여 변형체(예를 들어, 배)가 제어되는 방향을 결정할 수 있다. 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 기초하여 배가 제어되는 방향에 대응하는 시퀀스를 선택할 수 있다. 이때, 유체 애니메이션 그래프는 변형체의 움직임을 제어하고, 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함할 수 있다. Thereafter, when user input is input by an input means coupled or interlocked with user devices such as a user terminal, a joystick, a head-mounted display, etc. at run-time, the modeling device converts the user input into a display form of a tag (prearranged binary code, hexadecimal code, etc.) to search for a sequence with a tag that matches the user input. The modeling apparatus may determine a direction in which a deformable body (eg, a ship) is controlled based on a user input. The modeling device may select a sequence corresponding to a direction in which the ship is controlled based on a user input from among a plurality of sequences included in the fluid animation graph. In this case, the fluid animation graph may include a plurality of sequences corresponding to a plurality of scenarios that control the motion of the deformable body and reflect the motion of the fluid due to the motion of the deformable body.

모델링 장치는 현재 재생 중인 시퀀스로부터 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. 예를 들어, 무회전 지속에 해당하는 시퀀스의 재생 중에 사용자의 입력이 수신되면, 모델링 장치는 미리 생성된 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 좌회전 또는 우회전과 같이 사용자 입력에 기초하여 배가 제어되는 방향에 매칭되는 태그를 가진 시퀀스를 선택할 수 있다. 모델링 장치는 현재 재생 중인 시퀀스로부터 선택된 시퀀스로의 전환 경로를 탐색하고, 검색된 시퀀스로 가는 전환 에지를 따라 시퀀스를 전환하여 모델링을 지속할 수 있다. The modeling device may search for a transition path from the currently playing sequence to the selected sequence. For example, if a user's input is received during playback of a sequence corresponding to non-rotation duration, the modeling device controls doubling based on the user's input, such as left turn or right turn, among a plurality of sequences included in a previously generated fluid animation graph. You can select a sequence with a tag that matches the desired direction. The modeling device may continue modeling by searching for a transition path from the currently playing sequence to the selected sequence, and switching the sequence along a transition edge leading to the searched sequence.

도 15는 다른 실시예에 따른 런 타임 처리 과정을 나타낸 흐름도이다. 도 15를 참조하면, 일 실시예에 따른 모델링 장치는 사용자 입력을 수신하고(1510), 유체 애니메이션 그래프를 이용하여 사용자 입력에 매칭되는 시퀀스를 탐색할 수 있다(1520).15 is a flowchart illustrating a run-time processing process according to another embodiment. Referring to FIG. 15 , the modeling apparatus according to an embodiment may receive a user input (1510) and search for a sequence matching the user input using a fluid animation graph (1520).

모델링 장치는 사용자 입력에 매칭되는 시퀀스가 탐색되었는지 여부를 판단할 수 있다(1530). 모델링 장치는 예를 들어, 시퀀스에 부가된 태그 정보가 일치하는지 여부에 의해 사용자 입력에 매칭되는 시퀀스를 탐색할 수 있다. 단계(1530)의 판단 결과, 사용자 입력에 매칭되는 시퀀스가 탐색된 경우, 모델링 장치는 탐색된 시퀀스를 재생하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다(1540). The modeling device may determine whether a sequence matching the user input is searched for (1530). For example, the modeling device may search for a sequence matching the user input by determining whether tag information added to the sequence matches. As a result of the determination in operation 1530, when a sequence matching the user input is searched for, the modeling device may model a motion corresponding to the user input by reproducing the searched sequence (operation 1540).

단계(1530)의 판단 결과, 사용자 입력에 매칭되는 시퀀스가 탐색되지 않은 경우, 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 유사한 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다(1550). 이때, 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들의 형상 정보 및 속도 정보 중 적어도 하나에 기초하여, 사용자 입력에 유사한 시퀀스들을 블렌딩할 수 있다. 모델링 장치가 복수의 시퀀스들의 형상 정보에 기초하여 사용자 입력에 유사한 시퀀스들을 블렌딩 함으로써 사용자 입력에 대응되는 움직임을 모델링하는 방법은 도 16 내지 도 18을 참조하여 설명한다. As a result of the determination in step 1530, if a sequence matching the user input is not found, the modeling device models a motion corresponding to the user input by blending sequences similar to the user input among a plurality of sequences included in the fluid animation graph. can (1550). In this case, the modeling device may blend sequences similar to the user input based on at least one of shape information and speed information of a plurality of sequences included in the fluid animation graph. A method of modeling motion corresponding to a user input by blending sequences similar to the user input based on shape information of a plurality of sequences by the modeling device will be described with reference to FIGS. 16 to 18 .

도 16은 일 실시예에 따라 사용자 입력에 유사한 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 움직임을 모델링하는 방법을 나타낸 흐름도이다. 도 16을 참조하면, 일 실시예에 따른 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 유사한 시퀀스들을 검색할 수 있다(1610). 모델링 장치는 복수의 시퀀스들에 부가된 적어도 하나의 태그에 기초하여, 사용자 입력과 유사한 시퀀스들을 검색할 수 있다. 여기서, '사용자 입력에 유사한 시퀀스(들)'은 사용자 입력과 물리량이 유사한 시퀀스(들) 이외에 시퀀스들의 조합에 의해 사용자 입력에 해당하는 시퀀스의 생성이 가능한 시퀀스들을 포함하는 의미로 이해될 수 있다. 16 is a flowchart illustrating a method of modeling motion corresponding to a user input by blending sequences similar to the user input according to an embodiment. Referring to FIG. 16 , the modeling device according to an embodiment may search for sequences similar to a user input among a plurality of sequences included in a fluid animation graph (1610). The modeling device may search for sequences similar to the user input based on at least one tag added to the plurality of sequences. Here, 'sequence(s) similar to user input' may be understood to include sequences capable of generating a sequence corresponding to user input by a combination of sequences other than sequence(s) similar to user input and physical quantity.

예를 들어, 유체 애니메이션 그래프에 하향(↓)의 시퀀스, 우향(→)의 시퀀스, 좌향(←)의 시퀀스, 상향(↑)의 시퀀스가 포함되어 있고, 사용자 입력으로 우하향(↘) 45도가 입력되었다고 하자.For example, the fluid animation graph includes a downward (↓) sequence, a rightward (→) sequence, a leftward (←) sequence, and an upward (↑) sequence, and the user inputs 45 degrees downward (↘). Let's say it happened.

실시예에 따라서, 각 시퀀스들에 부가된 태그는 해당 시퀀스가 나타내는 의미(또는 주석) 및 시퀀스와 관련된 식별 정보(들)의 파라미터화 된 값(parameterized value)을 포함할 수 있다. 모델링 장치는 각 시퀀스에 부가된 태그 또는 태그에 포함된 파라미터화 된 값을 검색하여 우하향(↘) 45도에 유사한 시퀀스들(하향(↓)의 시퀀스, 및 우향(→)의 시퀀스)을 검색할 수 있다. Depending on the embodiment, a tag added to each sequence may include a meaning (or comment) indicated by the corresponding sequence and a parameterized value of identification information (s) related to the sequence. The modeling device searches tags attached to each sequence or parameterized values included in the tags to search for sequences similar to 45 degrees downward (↘) (downward (↓) sequence and rightward (→) sequence). can

또는, 예를 들어, 유체 애니메이션 그래프에 좌측에서 주어진 외력이 10인 시퀀스와 좌측에서 주어진 외력이 50인 시퀀스, 우측에서 주어진 외력이 20인 시퀀스가 포함되어 있다고 하자. 사용자 입력으로 좌측으로부터의 외력 35가 주어지면, 모델링 장치는 각 시퀀스에 부가된 태그를 검색하여 좌측에서 주어진 외력이 10인 시퀀스와 좌측에서 주어진 외력이 50인 시퀀스를 사용자 입력에 유사한 시퀀스로 검색할 수 있다. Or, for example, suppose that the fluid animation graph includes a sequence with an external force of 10 given from the left side, a sequence with an external force given from the left side of 50, and a sequence with an external force of 20 given from the right side. Given an external force of 35 from the left as a user input, the modeling device searches tags attached to each sequence to search for a sequence with an external force of 10 given from the left and a sequence with an external force of 50 given from the left as sequences similar to the user input. can

실시예에 따라서, 모델링 장치는 복수의 시퀀스들과 사용자 입력 간의 유사도(예를 들어, 형상 유사도, 에너지 유사도, 프레임 유사도 등)에 기초하여, 사용자 입력과 유사한 시퀀스들을 검색할 수도 있다.Depending on the embodiment, the modeling apparatus may search for sequences similar to the user input based on similarity (eg, shape similarity, energy similarity, frame similarity, etc.) between the plurality of sequences and the user input.

모델링 장치는 검색된 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 블렌딩 시퀀스를 생성할 수 있다(1620). 여기서, '블렌딩'은 시퀀스들 간의 믹싱(mixing) 이외에 시퀀스들에 의한 보간(interpolation)을 포함하는 의미로 이해될 수 있다. 모델링 장치가 블렌딩 시퀀스를 생성하는 방법은 도 17 내지 도 18을 참조하여 설명한다. The modeling device may generate a blending sequence corresponding to the user input by blending the searched sequences (1620). Here, 'blending' may be understood as including interpolation by sequences in addition to mixing between sequences. A method of generating a blending sequence by a modeling device will be described with reference to FIGS. 17 and 18 .

모델링 장치는 블렌딩 시퀀스를 이용하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다(1630). The modeling device may model a motion corresponding to the user input using the blending sequence (1630).

도 17은 일 실시예에 따라 블렌딩 시퀀스를 생성하는 방법을 나타낸 흐름도이고, 도 18은 일 실시예에 따라 블렌딩 시퀀스를 생성하는 방법을 설명하기 위한 도면이다. 17 is a flowchart illustrating a method of generating a blending sequence according to an exemplary embodiment, and FIG. 18 is a diagram for explaining a method of generating a blending sequence according to an exemplary embodiment.

도 17을 참조하면, 일 실시예에 따른 모델링 장치는 검색된 시퀀스들과 사용자 입력에 기초하여 블렌딩 웨이트(blending weight)를 추출하고(1710), 검색된 시퀀스들에 블렌딩 웨이트를 부여하여 블렌딩 시퀀스를 생성할 수 있다(1720). Referring to FIG. 17 , the modeling apparatus according to an embodiment extracts a blending weight based on the searched sequences and a user input (1710), and generates a blending sequence by assigning the blending weight to the searched sequences. can (1720).

예를 들어, 도 18에서 좌측에서 주어진 외력이 10인 경우를 나타내는 시퀀스 A(1810)와 좌측에서 주어진 외력이 50인 경우를 나타내는 시퀀스 B(1820)가 사용자 입력(좌측에서 주어진 외력 35)에 유사한 시퀀스들로 검색되었다고 하자. 이때, 시퀀스 A(1810)는 좌측에서 주어진 외력 10에 해당하는 파라미터화된 값을 포함하고, 시퀀스 B(1820)는 좌측에서 주어진 외력 50에 해당하는 파라미터화된 값을 포함할 수 있다. For example, in FIG. 18 , sequence A 1810 representing the case where the external force given from the left side is 10 and sequence B 1820 representing the case where the external force given from the left side is 50 are similar to the user input (the external force given from the left side 35). Suppose it is searched for sequences. In this case, sequence A 1810 may include a parameterized value corresponding to the external force 10 given from the left side, and sequence B 1820 may include a parameterized value corresponding to the external force 50 given from the left side.

모델링 장치는 외력 10인 경우를 나타내는 시퀀스 A(1810)에 3.5를 곱하거나, 또는 외력이 50인 경우를 나타내는 시퀀스 B(1820)에 0.7을 곱함으로써, 사용자 입력(좌측에서 주어진 외력 35)에 해당하는 시퀀스를 얻을 수 있다. 이때, 3.5 또는 0.7는 블렌딩 웨이트에 해당할 수 있다. The modeling device corresponds to the user input (external force 35 given from the left) by multiplying sequence A (1810) representing a case where the external force is 10 by 3.5 or by multiplying sequence B (1820) representing a case where the external force is 50 by 0.7. sequence can be obtained. In this case, 3.5 or 0.7 may correspond to the blending weight.

모델링 장치는 시퀀스 A(1810)에 대한 블렌딩 웨이트 3.5 또는 시퀀스 B(1820)에 대한 블렌딩 웨이트 0.7을 추출하고, 시퀀스 A(1810)의 파라미터화된 외력 10에 블렌딩 웨이트 3.5를 부여하거나, 또는 시퀀스 B(1820)의 파라미터화된 외력 50에 블렌딩 웨이트 0.7을 부여하여 블렌딩 시퀀스 AB(1840)를 새로이 생성할 수 있다. The modeling device extracts a blending weight of 3.5 for sequence A (1810) or a blending weight of 0.7 for sequence B (1820), and assigns a blending weight of 3.5 to the parameterized external force 10 of sequence A (1810), or sequence B A blending sequence AB 1840 may be newly generated by applying a blending weight of 0.7 to the parameterized external force 50 of 1820 .

모델링 장치는 검색된 시퀀스들 간의 전환 에지를 이용하여 블렌딩 시퀀스와 검색된 시퀀스들 간의 유사 전환 에지를 생성할 수 있다(1730). 예를 들어, 시퀀스 A(1810)와 시퀀스 B(1820) 간에는 전환 에지(1830)가 있다고 하자. 모델링 장치는 블렌딩 웨이트가 큰 시퀀스 A(1810)로부터 시작하여 블렌딩 시퀀스 AB(1840)를 거쳐 블렌딩 웨이트가 작은 시퀀스 B(1820)로 향하는 유사 전환 에지(1850)를 생성할 수 있다. 실시예에 따라서, 모델링 장치는 검색된 시퀀스들 간의 전환 에지를 통한 전환 시에 블렌딩 시퀀스를 생성할 수도 있다. 모델링 장치는 유사 전환 에지에 의해 유체 애니메이션 그래프에 포함된 시퀀스들과 블렌딩 시퀀스를 결합(combine)할 수 있다. The modeling device may generate similar transition edges between the blending sequence and the searched sequences by using transition edges between the searched sequences (1730). For example, assume that there is a transition edge 1830 between sequence A 1810 and sequence B 1820. The modeling device may generate a similar transition edge 1850 starting from sequence A (1810) having a large blending weight, passing through a blending sequence AB (1840) and moving toward a sequence B (1820) having a small blending weight. Depending on the embodiment, the modeling device may generate a blending sequence when switching between searched sequences through a transition edge. The modeling device may combine sequences included in the fluid animation graph with a blending sequence by means of a similar transition edge.

도 19는 다른 실시예에 따른 런 타임 처리 과정을 설명하기 위한 도면이다. 도 19를 참조하면, 일 실시예에 따른 모델링 장치는 사용자 입력이 수신되면, 데이터베이스(DB)(1905)에 저장된 유체 애니메이션 그래프를 탐색할 수 있다(1910). 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 매칭되는 시퀀스가 탐색되었는지를 판단할 수 있다(1920). 19 is a diagram for explaining a run-time processing process according to another embodiment. Referring to FIG. 19 , when a user input is received, the modeling apparatus according to an embodiment may search for a fluid animation graph stored in a database (DB) 1905 (1910). The modeling device may determine whether a sequence matching the user input is searched among a plurality of sequences included in the fluid animation graph (1920).

단계(1920)의 판단 결과, 사용자 입력에 매칭되는 시퀀스가 탐색된 경우, 모델링 장치는 탐색된 시퀀스에 세부적인 모델링 요소들을 융합하여 재생할 수 있다(1940). 세부적인 모델링 요소들은 예를 들어, 탐색된 시퀀스의 형상 곡률에 기반한 스플래시(Splash) 요소, 탐색된 시퀀스의 속도에 기반한 스프레이(spray) 요소, 탐색된 시퀀스의 형상 정보 및 속도 정보에 기반한 폼(form) 요소, 및 입자 추적에 의한 스프레이-폼 전환 요소 등을 포함할 수 있다. As a result of the determination in step 1920, when a sequence matching the user input is searched for, the modeling device may fuse detailed modeling elements with the searched sequence and reproduce them (1940). Detailed modeling elements include, for example, a splash element based on the shape curvature of the searched sequence, a spray element based on the speed of the searched sequence, and a form based on the shape and speed information of the searched sequence. ) element, and a spray-form conversion element by particle tracking.

단계(1920)의 판단 결과, 사용자 입력에 매칭되는 시퀀스가 탐색되지 않은 경우, 모델링 장치는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 유사한 시퀀스들을 블렌딩할 수 있다(1930). 블렌딩 단계(1930)에서 모델링 장치는 시퀀스들의 형상 정보 및 속도 정보(또는 시퀀스에 포함된 각 프레임마다의 형상 정보 및 속도 정보)를 기초로 사용자 입력에 유사한 시퀀스들을 블렌딩하여 블렌딩 시퀀스를 생성할 수 있다. 모델링 장치가 시퀀스들의 형상 정보에 기초하여 시퀀스들을 블렌딩하는 방법은 도 17 내지 도 18을 통해 전술한 설명을 참조하기로 한다. As a result of the determination in step 1920, if a sequence matching the user input is not searched for, the modeling device may blend sequences similar to the user input among a plurality of sequences included in the fluid animation graph (1930). In the blending step 1930, the modeling device may generate a blending sequence by blending sequences similar to the user input based on shape information and speed information of the sequences (or shape information and speed information for each frame included in the sequence). . A method for blending the sequences based on the shape information of the sequences by the modeling device will be described with reference to FIGS. 17 and 18 .

속도 정보는 형상 정보에 대비하여 가시적인 작용이 크지 않다. 그럼에도 속도 정보는 x,y,z 축의 3개의 영상을 저장해야 하므로 3배의 데이터 크기를 필요로 한다. 모델링 장치는 예를 들어, 현재 저장된 시퀀스와 관련된 속도 정보에 기초하여 가중치(weighting)를 주는 방식으로 시퀀스의 속도 정보에 기초하여, 사용자 입력에 유사한 시퀀스들을 블렌딩할 수 있다. Velocity information does not have a significant visible effect compared to shape information. Nevertheless, the speed information requires three times the data size because three images of the x, y, and z axes must be stored. For example, the modeling apparatus may blend sequences similar to the user input based on speed information of the sequence in a weighting method based on speed information related to the currently stored sequence.

모델링 장치는 형상 정보의 경우, 가시적인 작용이 크므로 고해상도로 블렌딩을 수행하고, 속도 정보의 경우, 가시적인 작용이 크지 않으므로 저해상도로 블렌딩을 수행할 수 있다.The modeling device may perform blending at high resolution in the case of shape information because it has a large visible effect, and may perform blending in low resolution because it does not have a large visible effect in the case of speed information.

모델링 장치는 블렌딩 시퀀스를 포함하는 시퀀스에 세부적인 모델링 요소들을 융합하여 재생할 수 있다(1940).The modeling device may fuse and reproduce detailed modeling elements in a sequence including a blending sequence (1940).

도 20은 일 실시예에 따른 모델링 장치의 블록도이다.20 is a block diagram of a modeling device according to an exemplary embodiment.

도 20을 참조하면, 일 실시예에 따른 모델링 장치(2000)는 메모리(2010), 프로세서(2020), 및 수신부(2030)를 포함할 수 있다. 실시예에 따라서, 모델링 장치(2000)는 전처리 프로세서(2040)를 포함할 수도 있고, 포함하지 않을 수도 있다. Referring to FIG. 20 , a modeling apparatus 2000 according to an embodiment may include a memory 2010, a processor 2020, and a receiver 2030. Depending on embodiments, the modeling device 2000 may or may not include the preprocessor 2040 .

메모리(2010)는 전처리 프로세서(2040)에서 생성된 시퀀스들 및 유체 애니메이션 그래프를 저장한다. 시퀀스는 복수의 프레임들을 포함한다. 메모리(2010)는 휘발성 메모리 또는 비 휘발성 메모리일 수 있다.The memory 2010 stores sequences and fluid animation graphs generated by the preprocessor 2040 . A sequence includes a plurality of frames. Memory 2010 may be volatile memory or non-volatile memory.

프로세서(2020)는 유체 애니메이션 그래프를 이용하여 사용자 입력에 매칭되는 시퀀스를 탐색하고, 탐색 결과에 기초하여 사용자 입력에 대응되는 움직임을 모델링한다. The processor 2020 searches for a sequence matching the user input using the fluid animation graph, and models a motion corresponding to the user input based on the search result.

프로세서(2020)는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 매칭되는 태그를 가진 시퀀스를 선택하고, 현재 재생 중인 시퀀스로부터 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. The processor 2020 may select a sequence having a tag matching a user input among a plurality of sequences included in the fluid animation graph, and search a transition path from the currently playing sequence to the selected sequence.

프로세서(2020)는 사용자 입력에 매칭되는 시퀀스를 탐색한 경우, 탐색된 시퀀스를 재생할 수 있다. 이때, 탐색된 시퀀스는 사용자의 입력에 대응하는 변형체의 움직임 및 변형체의 움직임으로 인한 유체의 움직임을 표현하는 복수의 연속된 프레임들을 포함할 수 있다. When a sequence matching the user input is searched for, the processor 2020 may reproduce the searched sequence. In this case, the searched sequence may include a plurality of consecutive frames expressing the motion of the deformable body corresponding to the user's input and the motion of the fluid due to the motion of the deformable body.

프로세서(2020)는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 매칭되는 태그를 가진 시퀀스를 선택하고, 현재 재생 중인 시퀀스로부터 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. The processor 2020 may select a sequence having a tag matching a user input among a plurality of sequences included in the fluid animation graph, and search a transition path from the currently playing sequence to the selected sequence.

프로세서(2020)는 사용자 입력에 기초하여 변형체가 제어되는 방향을 결정하고, 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 방향에 대응하는 시퀀스를 선택할 수 있다. 프로세서(2020)는 현재 재생 중인 시퀀스로부터 선택된 시퀀스로의 전환 경로를 탐색할 수 있다. The processor 2020 may determine a direction in which the deformable body is controlled based on a user input, and may select a sequence corresponding to the direction from among a plurality of sequences included in the fluid animation graph. The processor 2020 may search for a transition path from the currently playing sequence to the selected sequence.

프로세서(2020)는 사용자 입력에 매칭되는 시퀀스가 탐색되지 않은 경우, 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 유사한 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다. When a sequence matching the user input is not found, the processor 2020 may model a motion corresponding to the user input by blending sequences similar to the user input among a plurality of sequences included in the fluid animation graph.

프로세서(2020)는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들의 형상 정보 및 속도 정보 중 적어도 하나에 기초하여, 사용자 입력에 유사한 시퀀스들을 블렌딩할 수 있다. The processor 2020 may blend sequences similar to the user input based on at least one of shape information and speed information of a plurality of sequences included in the fluid animation graph.

프로세서(2020)는 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 사용자 입력에 유사한 시퀀스들을 검색하고, 검색된 시퀀스들을 블렌딩하여 사용자 입력에 대응되는 블렌딩 시퀀스를 생성할 수 있다. 프로세서(2020)는 블렌딩 시퀀스를 이용하여 사용자 입력에 대응되는 움직임을 모델링할 수 있다.The processor 2020 may search for sequences similar to a user input among a plurality of sequences included in the fluid animation graph, and may generate a blending sequence corresponding to the user input by blending the searched sequences. The processor 2020 may model a motion corresponding to a user input using a blending sequence.

프로세서(2020)는 복수의 시퀀스들에 부가된 적어도 하나의 태그에 기초하여, 사용자 입력과 유사한 시퀀스들을 검색할 수 있다. The processor 2020 may search for sequences similar to the user input based on at least one tag added to the plurality of sequences.

프로세서(2020)는 검색된 시퀀스들과 사용자 입력에 기초하여 블렌딩 웨이트를 추출하고, 검색된 시퀀스들에 블렌딩 웨이트를 부여하여 블렌딩 시퀀스를 생성할 수 있다. The processor 2020 may generate a blending sequence by extracting a blending weight based on the searched sequences and a user input, and assigning a blending weight to the searched sequences.

프로세서(2020)는 검색된 시퀀스들 간의 전환 에지를 이용하여 블렌딩 시퀀스와 검색된 시퀀스들 간의 유사 전환 에지를 생성할 수 있다. The processor 2020 may generate similar transition edges between the blending sequence and the searched sequences by using the transition edges between the searched sequences.

프로세서(2020)는 검색된 시퀀스들 내 프레임들을 재생하고, 재생 중인 프레임이 검색된 시퀀스로부터 상기 블렌딩 시퀀스로 전환되는 프레임인지 여부를 판단할 수 있다. 프로세서(2020)는 검색된 시퀀스와 블렌딩 시퀀스 사이를 전환하는 유사 전환 에지를 통해 블렌딩 시퀀스 내 프레임들을 재생할 수 있다. The processor 2020 may reproduce frames in the searched sequences and determine whether a frame being reproduced is a frame converted from the searched sequence to the blending sequence. The processor 2020 may reproduce frames in the blending sequence through a similar transition edge that switches between the searched sequence and the blending sequence.

수신부(2020)는 사용자 입력을 수신할 수 있다. The receiving unit 2020 may receive user input.

프로세서(2020)는 이 밖에도, 도 1 내지 도 19를 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. In addition to this, the processor 2020 may perform at least one method described above through FIGS. 1 to 19 .

프로세서(2020)는 (어플리케이션) 프로그램을 실행하고, 모델링 장치(2000)를 제어할 수 있다. 프로세서(2020)에 의하여 실행되는 프로그램 코드는 메모리(2010)에 저장될 수 있다. 모델링 장치(2000)은 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.The processor 2020 may execute (application) programs and control the modeling device 2000 . Program codes executed by the processor 2020 may be stored in the memory 2010 . The modeling device 2000 may be connected to an external device (eg, a personal computer or network) through an input/output device (not shown) and exchange data.

전처리 프로세서(2040)는 미리 결정된 모델링 세트에 대응하는 시퀀스들을 생성하고, 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여 유체 애니메이션 그래프를 생성한다. 전처리 프로세서(2040)는 시퀀스들에 대응되는 적어도 하나의 태그를 부가할 수 있다. 적어도 하나의 태그는 예를 들어, 사용자 입력, 외력, 유체의 유입과 소실, 다른 개체와의 상호 작용 등에 기초하여 정의될 수 있다. The pre-processor 2040 generates sequences corresponding to a predetermined modeling set, and generates a fluid animation graph based on a similarity between frames included in the sequences. The pre-processor 2040 may add at least one tag corresponding to the sequences. At least one tag may be defined based on, for example, a user input, an external force, inflow and loss of fluid, interaction with another entity, and the like.

전처리 프로세서(2040)는 시퀀스들에 포함된 프레임들 간의 적어도 하나의 유사도를 산출한다. 전처리 프로세서(2040)는 적어도 하나의 유사도에 가중치를 부여하며, 가중치가 부여된 적어도 하나의 유사도의 가중합에 기초하여 유체 애니메이션 그래프를 생성할 수 있다. The pre-processor 2040 calculates at least one degree of similarity between frames included in the sequences. The pre-processor 2040 may assign a weight to at least one degree of similarity and generate a fluid animation graph based on a weighted sum of the weighted at least one degree of similarity.

전처리 프로세서(2040)는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도를 산출하고, 제1 유사도에 기초하여 어느 하나의 시퀀스 내에서 재귀하는 순환 시퀀스를 생성할 수 있다. The preprocessor 2040 may calculate a first similarity between frames included in any one of the sequences, and generate a recursive sequence within any one sequence based on the first similarity.

전처리 프로세서(2040)는 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여, 시퀀스들 간의 이동 가능 경로를 나타내는 전환 에지를 생성할 수 있다. 전처리 프로세서(2040)는 전환 에지를 이용하여 유체 애니메이션 그래프를 생성할 수 있다. The preprocessor 2040 may generate a transition edge indicating a movable path between sequences based on a second similarity between frames included in one of the sequences and frames included in the other sequences. . The preprocessor 2040 may generate a fluid animation graph using the transition edge.

메모리(2010), 프로세서(2020), 수신부(2030) 및 전처리 프로세서(2040)는 버스(bus)(미도시)를 통해 서로 통신할 수 있다. The memory 2010, the processor 2020, the receiver 2030, and the pre-processor 2040 may communicate with each other through a bus (not shown).

실시예에 따라서, 모델링 장치(2000)는 메모리(2010), 프로세서(2020), 및 수신부(2030)에 의해 구성될 수도 있다. 이 경우, 전처리 프로세서(2040)는 모델링 장치(2000)의 외부에 별도의 전처리 장치로 구성되고, 전처리 장치에서 생성된 시퀀스 및 유체 애니메이션 그래프는 메모리(2020)에 저장 및 갱신될 수 있다. According to embodiments, the modeling device 2000 may be configured by a memory 2010, a processor 2020, and a receiver 2030. In this case, the preprocessor 2040 is configured as a separate preprocessor outside of the modeling device 2000, and sequences and fluid animation graphs generated by the preprocessor may be stored and updated in the memory 2020.

일 실시예에 따른 모델링 장치(2000)는 예를 들어, 모바일 기기와 같은 다양한 디지털 기기에 내장되거나 또는 연동되어 영상 어플리케이션에서 실시간으로 사용자의 입력에 따른 현실감 있는 움직임을 제공할 수 있다. The modeling apparatus 2000 according to an embodiment may be embedded in or interlocked with various digital devices such as, for example, mobile devices to provide realistic motion according to a user's input in real time in a video application.

이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. A processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 비록 한정된 도면을 이용해 실시예들을 설명하였으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능함을 알 수 있을 것이다. 예를 들어, 설명된 기술들이 기재된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 기재된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.As described above, although the embodiments have been described using limited drawings, those skilled in the art will recognize that various modifications and variations are possible from the above description. For example, the described techniques may be performed in an order different from the methods described, and/or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the methods described, or other components or equivalents may be used. Appropriate results can be achieved even when substituted or substituted by water. Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

2000: 모델링 장치
2010: 메모리
2020: 프로세서
2030: 수신부
2040: 전처리 프로세서
2000: modeling device
2010: Memory
2020: Processors
2030: receiver
2040: pre-processor

Claims (45)

복수의 시퀀스들에 포함된 프레임들 간의 유사도를 프레임 대 프레임으로 비교하여 상기 프레임들 중 연속된 둘 이상의 프레임 간의 유사도를 결정하고, 상기 결정된 유사도를 미리 설정된 기준과 비교하여 상기 복수의 시퀀스들 중 어느 하나의 시퀀스 내에서 재귀하는 순환 시퀀스를 생성함으로써 유체 애니메이션 그래프를 생성하는 단계;
사용자 장치와 결합 또는 연동되는 입력 수단에 의해 변형체의 움직임에 대응하는 사용자 입력을 수신하는 단계;
상기 유체 애니메이션 그래프에 포함된 상기 복수의 시퀀스들 중 상기 사용자 입력에 매칭되는 태그를 가진 시퀀스를 탐색하는 단계; 및
상기 탐색 결과에 기초하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 단계
를 포함하고,
상기 모델링하는 단계는
상기 사용자 입력에 매칭되는 태그를 가진 시퀀스가 탐색되지 않은 경우, 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 유사한 시퀀스들을 검색하고, 상기 검색된 시퀀스들을 블렌딩하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 단계; 및
상기 사용자 입력에 매칭되는 태그를 가진 시퀀스가 탐색된 경우, 상기 탐색된 시퀀스를 재생하는 단계
를 포함하는, 모델링 방법.
The similarity between the frames included in the plurality of sequences is compared frame by frame to determine the similarity between two or more consecutive frames among the frames, and the determined similarity is compared with a preset criterion to determine which one of the plurality of sequences. generating a fluid animation graph by creating a recursive cycle sequence within one sequence;
receiving a user input corresponding to the motion of the deformable body by means of an input means coupled to or interlocked with a user device;
searching for a sequence having a tag matching the user input among the plurality of sequences included in the fluid animation graph; and
modeling a motion corresponding to the user input based on the search result;
including,
The modeling step is
If a sequence having a tag matching the user input is not searched for, sequences similar to the user input are searched among a plurality of sequences included in the fluid animation graph, and the searched sequences are blended to obtain a sequence corresponding to the user input. modeling motion; and
If a sequence having a tag matching the user input is found, playing the searched sequence
Including, modeling method.
삭제delete 제1항에 있어서,
상기 모델링하는 단계는
상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들의 형상 정보 및 속도 정보 중 적어도 하나에 기초하여, 상기 사용자 입력에 유사한 시퀀스들을 블렌딩하는 단계
를 포함하는, 모델링 방법.
According to claim 1,
The modeling step is
Blending sequences similar to the user input based on at least one of shape information and speed information of a plurality of sequences included in the fluid animation graph.
Including, modeling method.
삭제delete 제1항에 있어서,
상기 사용자 입력에 유사한 시퀀스들을 검색하는 단계는
상기 복수의 시퀀스들에 부가된 적어도 하나의 태그에 기초하여, 상기 사용자 입력과 유사한 시퀀스들을 검색하는 단계
를 포함하는, 모델링 방법.
According to claim 1,
Retrieving sequences similar to the user input comprises:
Searching for sequences similar to the user input based on at least one tag added to the plurality of sequences
Including, modeling method.
제1항에 있어서,
상기 블렌딩 시퀀스를 생성하는 단계는
상기 검색된 시퀀스들과 상기 사용자 입력에 기초하여 블렌딩 웨이트(blending weight)를 추출하는 단계; 및
상기 검색된 시퀀스들에 상기 블렌딩 웨이트를 부여하여 상기 블렌딩 시퀀스를 생성하는 단계
를 포함하는, 모델링 방법.
According to claim 1,
Generating the blending sequence
extracting a blending weight based on the searched sequences and the user input; and
generating the blending sequence by assigning the blending weight to the searched sequences;
Including, modeling method.
제6항에 있어서,
상기 블렌딩 시퀀스를 생성하는 단계는
상기 검색된 시퀀스들 간의 전환 에지를 이용하여 상기 블렌딩 시퀀스와 상기 검색된 시퀀스들 간의 유사 전환 에지를 생성하는 단계
를 포함하는 모델링 방법.
According to claim 6,
Generating the blending sequence
Generating similar transition edges between the blending sequence and the searched sequences using transition edges between the searched sequences.
A modeling method comprising a.
제6항에 있어서,
상기 블렌딩 시퀀스를 생성하는 단계는
상기 검색된 시퀀스들 간의 전환 에지를 통한 전환 시에 상기 블렌딩 시퀀스를 생성하는 단계
를 포함하는, 모델링 방법.
According to claim 6,
Generating the blending sequence
Generating the blending sequence when switching between the searched sequences through a transition edge.
Including, modeling method.
제7항에 있어서,
상기 모델링하는 단계는
상기 검색된 시퀀스들 내 프레임들을 재생하는 단계;
재생 중인 프레임이 상기 검색된 시퀀스로부터 상기 블렌딩 시퀀스로 전환되는 프레임인지 여부를 판단하는 단계; 및
상기 검색된 시퀀스와 상기 블렌딩 시퀀스 사이를 전환하는 유사 전환 에지를 통해 상기 블렌딩 시퀀스 내 프레임들을 재생하는 단계
를 포함하는, 모델링 방법.
According to claim 7,
The modeling step is
playing frames in the retrieved sequences;
determining whether a frame being reproduced is a frame switched from the searched sequence to the blending sequence; and
Reproducing frames in the blending sequence through a similar transition edge switching between the retrieved sequence and the blending sequence.
Including, modeling method.
제1항에 있어서,
상기 탐색된 시퀀스는
상기 사용자의 입력에 대응하는 변형체의 움직임 및 상기 변형체의 움직임으로 인한 유체의 움직임을 표현하는 복수의 연속된 프레임들을 포함하는, 모델링 방법.
According to claim 1,
The searched sequence is
A modeling method comprising a plurality of consecutive frames expressing a motion of a deformable body corresponding to the user's input and a motion of a fluid due to the motion of the deformable body.
제1항에 있어서,
상기 탐색하는 단계는
현재 재생 중인 시퀀스로부터 상기 탐색된 시퀀스로의 전환 경로를 탐색하는 단계
를 포함하는, 모델링 방법.
According to claim 1,
The search step is
Searching for a transition path from the currently playing sequence to the searched sequence
Including, modeling method.
제1항에 있어서,
상기 탐색하는 단계는
상기 사용자 입력에 기초하여 변형체가 제어되는 방향을 결정하는 단계;
상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 방향에 대응하는 시퀀스를 선택하는 단계; 및
현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로를 탐색하는 단계
를 포함하는, 모델링 방법.
According to claim 1,
The search step is
determining a direction in which the deformable body is controlled based on the user input;
selecting a sequence corresponding to the direction from among a plurality of sequences included in the fluid animation graph; and
Searching for a transition path from the currently playing sequence to the selected sequence
Including, modeling method.
제1항에 있어서,
상기 유체 애니메이션 그래프는
변형체의 움직임을 제어하고, 상기 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함하는, 모델링 방법.
According to claim 1,
The fluid animation graph is
A modeling method comprising a plurality of sequences corresponding to a plurality of scenarios that control the motion of the deformable body and reflect the motion of fluid due to the motion of the deformable body.
제1항에 있어서,
상기 유체 애니메이션 그래프는
상기 복수의 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들 간의 제1 유사도에 기초하여 생성된 순환 시퀀스- 순환 시퀀스는 상기 어느 하나의 시퀀스 내에서 재귀함- ; 및
상기 복수의 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여 생성된 전환 에지(transition edge)- 상기 전환 에지는 상기 복수의 시퀀스들 간의 이동 가능 경로를 나타냄- 중 적어도 하나를 포함하는, 모델링 방법.
According to claim 1,
The fluid animation graph is
a cyclic sequence generated based on a first similarity between frames included in any one of the plurality of sequences, wherein the cyclic sequence recurs within the any one sequence; and
A transition edge generated based on a second similarity between frames included in any one of the plurality of sequences and frames included in the other sequences—the transition edge is a transition edge between the plurality of sequences. A modeling method comprising at least one of representing a moveable path.
제1항에 있어서,
상기 모델링하는 단계는
현재 시퀀스 내 프레임들을 재생하는 단계;
현재 재생 중인 프레임이 상기 현재 시퀀스로부터 상기 사용자 입력에 매칭되는 시퀀스로 전환되는 프레임인지 여부를 판단하는 단계; 및
상기 현재 시퀀스와 상기 사용자 입력에 매칭되는 시퀀스 사이를 전환하는 전환 에지에 기초하여, 상기 사용자 입력에 매칭되는 시퀀스 내 프레임들을 재생하는 단계
를 포함하는, 모델링 방법.
According to claim 1,
The modeling step is
playing frames in the current sequence;
determining whether a frame currently being reproduced is a frame transitioning from the current sequence to a sequence matching the user input; and
based on a transition edge for switching between the current sequence and a sequence matching the user input, playing frames in the sequence matching the user input;
Including, modeling method.
제15항에 있어서,
현재 시퀀스 내 프레임들을 재생하는 단계는
상기 현재 시퀀스 내 순환 시퀀스를 재귀적으로 재생하는 단계
를 포함하는, 모델링 방법.
According to claim 15,
The step of playing frames in the current sequence is
Recursively playing a recursive sequence in the current sequence
Including, modeling method.
제15항에 있어서,
상기 사용자 입력에 매칭되는 시퀀스 내 프레임들을 재생하는 단계는
추가적인 사용자 입력이 수신되기 전까지, 상기 사용자 입력에 매칭되는 시퀀스 내 순환 시퀀스를 재귀적으로 재생하는 단계
를 포함하는, 모델링 방법.
According to claim 15,
The step of playing frames in the sequence matching the user input is
recursively playing a recursive sequence within a sequence that matches the user input until further user input is received;
Including, modeling method.
삭제delete 미리 결정된 모델링 세트(modeling set)에 대응하는 복수의 시퀀스들(sequences)- 상기 복수의 시퀀스들 각각은 복수의 프레임들을 포함함-을 생성하는 단계; 및
상기 복수의 시퀀스들 중 어느 하나의 시퀀스 내에서 재귀하는 순환 시퀀스를 생성함으로써 유체 애니메이션 그래프(fluid animation graph)를 생성하는 단계
를 포함하고,
상기 유체 애니메이션 그래프를 생성하는 단계는
상기 복수의 시퀀스들에 포함된 프레임들을 프레임 대 프레임으로 비교하여 상기 프레임들 중 연속된 둘 이상의 프레임 간의 제1 유사도를 결정하는 단계;
상기 제1 유사도에 기초하여, 상기 어느 하나의 시퀀스 내에서 재귀하는 상기 순환 시퀀스를 생성하는 단계;
상기 복수의 시퀀스들 중 상기 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도에 기초하여, 상기 복수의 시퀀스들 간의 이동 가능 경로를 나타내는 전환 에지(transition edge)를 생성하는 단계; 및
상기 전환 에지를 이용하여 상기 유체 애니메이션 그래프를 생성하는 단계
를 포함하는 모델링을 위한 전처리 방법.
generating a plurality of sequences corresponding to a predetermined modeling set, each of the plurality of sequences including a plurality of frames; and
Generating a fluid animation graph by creating a cyclic sequence that recurs within any one of the plurality of sequences.
including,
Generating the fluid animation graph
comparing frames included in the plurality of sequences on a frame-by-frame basis to determine a first similarity between two or more consecutive frames among the frames;
generating the recursive sequence recursively within the one sequence based on the first similarity;
A transition edge indicating a movable path between the plurality of sequences based on a second similarity between frames included in any one of the plurality of sequences and frames included in the other sequences generating; and
generating the fluid animation graph using the transition edge;
A preprocessing method for modeling that includes.
제19항에 있어서,
상기 유사도는
형상 유사도, 에너지 유사도, 프레임 유사도 중 적어도 하나를 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
The degree of similarity
A preprocessing method for modeling, including at least one of shape similarity, energy similarity, and frame similarity.
제19항에 있어서,
상기 유체 애니메이션 그래프를 생성하는 단계는
상기 복수의 시퀀스들에 포함된 프레임들 간의 적어도 하나의 유사도를 산출하는 단계;
상기 적어도 하나의 유사도에 가중치를 부여하는 단계; 및
상기 가중치가 부여된 적어도 하나의 유사도의 가중합(weighted sum)에 기초하여 상기 유체 애니메이션 그래프를 생성하는 단계
를 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
Generating the fluid animation graph
calculating at least one degree of similarity between frames included in the plurality of sequences;
assigning a weight to the at least one degree of similarity; and
Generating the fluid animation graph based on a weighted sum of the at least one degree of similarity to which the weight is assigned.
Including, a preprocessing method for modeling.
삭제delete 삭제delete 제19항에 있어서,
상기 전환 에지를 생성하는 단계는
상기 복수의 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들과 나머지 시퀀스들에 포함된 프레임들 간의 제2 유사도를 산출하는 단계; 및
상기 제2 유사도가 미리 설정된 기준에 해당하는 프레임들 사이에 상기 전환 에지를 생성하는 단계
를 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
The step of generating the transition edge is
calculating a second similarity between frames included in one of the plurality of sequences and frames included in the remaining sequences; and
generating the transition edge between frames having the second similarity corresponding to a preset criterion;
Including, a preprocessing method for modeling.
제19항에 있어서,
상기 유체 애니메이션 그래프를 생성하는 단계는
상기 복수의 시퀀스들 중 어느 하나의 시퀀스에 포함된 프레임들의 동작 에너지를 분석하는 단계; 및
상기 동작 에너지에 기초하여 상기 시퀀스 별 전환 시점을 설정하는 단계
를 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
Generating the fluid animation graph
analyzing motion energy of frames included in any one of the plurality of sequences; and
Setting a switching time point for each sequence based on the operating energy
Including, a preprocessing method for modeling.
제19항에 있어서,
상기 복수의 시퀀스들을 생성하는 단계는
상기 복수의 시퀀스들에 대응되는 적어도 하나의 태그를 부가하는 단계
를 더 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
Generating the plurality of sequences
adding at least one tag corresponding to the plurality of sequences;
Further comprising a preprocessing method for modeling.
제26항에 있어서,
상기 적어도 하나의 태그는
사용자 입력, 외력, 유체의 유입과 소실, 다른 개체와의 상호 작용 중 적어도 하나에 기초하여 정의되는, 모델링을 위한 전처리 방법.
The method of claim 26,
the at least one tag
A preprocessing method for modeling, which is defined based on at least one of user input, external force, inflow and loss of fluid, and interaction with other entities.
제19항에 있어서,
상기 복수의 시퀀스들은
서로 다른 장면들(scenes)을 표현하는 프레임들을 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
The plurality of sequences
A preprocessing method for modeling, comprising frames representing different scenes.
제19항에 있어서,
상기 복수의 시퀀스들은
복수의 서브 시퀀스(sub-sequence)들을 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
The plurality of sequences
A preprocessing method for modeling, comprising a plurality of sub-sequences.
제19항에 있어서,
미리 결정된 장면 요소(scene element)들에 기초하여, 상기 모델링 세트를 결정하는 단계
를 더 포함하는, 모델링을 위한 전처리 방법.
According to claim 19,
determining the modeling set based on predetermined scene elements;
Further comprising a preprocessing method for modeling.
제1항, 제3항, 제5항 내지 제17항, 제19항 내지 제21항, 및 제24항 내지 제30항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable record in which a program for executing the method of any one of claims 1, 3, 5 to 17, 19 to 21, and 24 to 30 is recorded. media. 모델링 세트에 대응하는 복수의 시퀀스들- 상기 복수의 시퀀스들 각각은 복수의 프레임들을 포함함- 및 상기 복수의 시퀀스들에 포함된 프레임들 간의 유사도를 프레임 대 프레임으로 비교하여 상기 복수의 시퀀스들에 포함된 프레임들 중 연속된 둘 이상의 프레임 간의 유사도를 결정하며, 상기 결정된 유사도를 미리 설정된 기준과 비교하여 상기 복수의 시퀀스들 중 하나 이상의 시퀀스 내에서 재귀하는 순환 시퀀스를 생성함으로써 미리 생성된 유체 애니메이션 그래프를 저장하는 메모리; 및
사용자 장치와 결합 또는 연동되는 입력 수단에 의해 변형체의 움직임에 대응하는 사용자 입력을 수신하고, 상기 유체 애니메이션 그래프에 포함된 상기 복수의 시퀀스들 중 상기 사용자 입력에 매칭되는 태그를 가진 시퀀스를 탐색하고, 상기 탐색 결과에 기초하여 상기 사용자 입력에 대응되는 움직임을 모델링하는 프로세서
를 포함하고,
상기 프로세서는
상기 사용자 입력에 매칭되는 태그를 가진 시퀀스가 탐색되지 않은 경우, 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 사용자 입력에 유사한 시퀀스들을 검색하고, 상기 검색된 시퀀스들을 블렌딩하여 상기 사용자 입력에 대응되는 움직임을 모델링하고,
상기 사용자 입력에 매칭되는 태그를 가진 시퀀스가 탐색된 경우, 상기 탐색된 시퀀스를 재생하는, 모델링 장치.
A plurality of sequences corresponding to a modeling set (each of the plurality of sequences including a plurality of frames) and a similarity between frames included in the plurality of sequences are compared frame by frame to determine the plurality of sequences. A fluid animation graph created in advance by determining a similarity between two or more consecutive frames among included frames and comparing the determined similarity with a preset criterion to generate a circular sequence recursing within one or more sequences among the plurality of sequences. memory to store; and
Receiving a user input corresponding to the motion of the deformable body by an input means coupled to or interlocking with a user device, searching for a sequence having a tag matching the user input among the plurality of sequences included in the fluid animation graph; A processor modeling a motion corresponding to the user input based on the search result
including,
The processor
If a sequence having a tag matching the user input is not searched for, sequences similar to the user input are searched among a plurality of sequences included in the fluid animation graph, and the searched sequences are blended to obtain a sequence corresponding to the user input. modeling movement,
When a sequence having a tag matching the user input is found, the modeling device reproduces the searched sequence.
삭제delete 제32항에 있어서,
상기 프로세서는
상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들의 형상 정보 및 속도 정보 중 적어도 하나에 기초하여, 상기 사용자 입력에 유사한 시퀀스들을 블렌딩하는, 모델링 장치.
33. The method of claim 32,
The processor
Blending sequences similar to the user input based on at least one of shape information and speed information of a plurality of sequences included in the fluid animation graph.
삭제delete 제32항에 있어서,
상기 프로세서는
상기 복수의 시퀀스들에 부가된 적어도 하나의 태그에 기초하여, 상기 사용자 입력과 유사한 시퀀스들을 검색하는, 모델링 장치.
33. The method of claim 32,
The processor
Searching for sequences similar to the user input based on at least one tag added to the plurality of sequences.
제32항에 있어서,
상기 프로세서는
상기 검색된 시퀀스들과 상기 사용자 입력에 기초하여 블렌딩 웨이트(blending weight)를 추출하고, 상기 검색된 시퀀스들에 상기 블렌딩 웨이트를 부여하여 상기 블렌딩 시퀀스를 생성하는, 모델링 장치.
33. The method of claim 32,
The processor
A modeling device that extracts a blending weight based on the searched sequences and the user input, and generates the blending sequence by assigning the blending weight to the searched sequences.
제37항에 있어서,
상기 프로세서는
상기 검색된 시퀀스들 간의 전환 에지를 이용하여 상기 블렌딩 시퀀스와 상기 검색된 시퀀스들 간의 유사 전환 에지를 생성하는, 모델링 장치.
38. The method of claim 37,
The processor
A modeling device generating similar transition edges between the blending sequence and the searched sequences by using transition edges between the searched sequences.
제38항에 있어서,
상기 프로세서는
상기 검색된 시퀀스들 내 프레임들을 재생하고, 재생 중인 프레임이 상기 검색된 시퀀스로부터 상기 블렌딩 시퀀스로 전환되는 프레임인지 여부를 판단하여 상기 검색된 시퀀스와 상기 블렌딩 시퀀스 사이를 전환하는 유사 전환 에지를 통해 상기 블렌딩 시퀀스 내 프레임들을 재생하는, 모델링 장치.
39. The method of claim 38,
The processor
In the blending sequence through a similar transition edge that reproduces frames in the retrieved sequences and determines whether a frame being reproduced is a frame transitioned from the retrieved sequence to the blending sequence and switches between the retrieved sequence and the blending sequence. A modeling device, which reproduces frames.
제32항에 있어서,
상기 탐색된 시퀀스는
상기 사용자의 입력에 대응하는 변형체의 움직임 및 상기 변형체의 움직임으로 인한 유체의 움직임을 표현하는 복수의 연속된 프레임들을 포함하는, 모델링 장치.
33. The method of claim 32,
The searched sequence is
A modeling apparatus comprising a plurality of consecutive frames expressing a motion of a deformable body corresponding to the user's input and a motion of a fluid due to the motion of the deformable body.
제32항에 있어서,
상기 프로세서는
현재 재생 중인 시퀀스로부터 상기 탐색된 시퀀스로의 전환 경로를 탐색하는, 모델링 장치.
33. The method of claim 32,
The processor
A modeling device that searches for a transition path from a currently playing sequence to the searched sequence.
제32항에 있어서,
상기 프로세서는
상기 사용자 입력에 기초하여 변형체가 제어되는 방향을 결정하고, 상기 유체 애니메이션 그래프에 포함된 복수의 시퀀스들 중 상기 방향에 대응하는 시퀀스를 선택하며, 현재 재생 중인 시퀀스로부터 상기 선택된 시퀀스로의 전환 경로를 탐색하는. 모델링 장치.
33. The method of claim 32,
The processor
A direction in which the transform is controlled is determined based on the user input, a sequence corresponding to the direction is selected from among a plurality of sequences included in the fluid animation graph, and a transition path from a currently playing sequence to the selected sequence is determined. to explore. modeling device.
제32항에 있어서,
모델링 세트에 대응하는 시퀀스들을 생성하고, 상기 시퀀스들에 포함된 프레임들 간의 유사도에 기초하여, 유체 애니메이션 그래프를 생성하는 전처리 프로세서
를 더 포함하는, 모델링 장치.
33. The method of claim 32,
A preprocessor generating sequences corresponding to the modeling set and generating a fluid animation graph based on similarities between frames included in the sequences.
Further comprising a modeling device.
제43항에 있어서,
상기 전처리 프로세서는
상기 시퀀스들에 포함된 프레임들 간의 적어도 하나의 유사도를 산출하고, 상기 적어도 하나의 유사도에 가중치를 부여하며, 상기 가중치가 부여된 적어도 하나의 유사도의 가중합에 기초하여 상기 유체 애니메이션 그래프를 생성하는, 모델링 장치.
44. The method of claim 43,
The pre-processing process
Calculating at least one similarity between frames included in the sequences, assigning a weight to the at least one similarity, and generating the fluid animation graph based on a weighted sum of the weighted at least one similarity , modeling device.
제32항에 있어서,
상기 유체 애니메이션 그래프는
변형체의 움직임을 제어하고, 상기 변형체의 움직임으로 인한 유체의 움직임을 반영하는 복수의 시나리오들에 대응하는 복수의 시퀀스들을 포함하는, 모델링 장치.
33. The method of claim 32,
The fluid animation graph is
A modeling apparatus comprising a plurality of sequences corresponding to a plurality of scenarios that control the motion of a deformable body and reflect the motion of a fluid due to the motion of the deformable body.
KR1020160014087A 2015-08-27 2016-02-04 Modeling method and modeling apparatus using fluid animation graph KR102547819B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/178,056 US10789750B2 (en) 2015-08-27 2016-06-09 Modeling method and apparatus using fluid animation graph
CN201610740523.9A CN106485775B (en) 2015-08-27 2016-08-26 Modeling method and apparatus using fluid animation graph
EP16186108.3A EP3136347A1 (en) 2015-08-27 2016-08-29 Modeling method and apparatus using fluid animation graph
US16/998,166 US11410363B2 (en) 2015-08-27 2020-08-20 Modeling method and apparatus and apparatus using fluid animation graph

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150120663 2015-08-27
KR20150120663 2015-08-27

Publications (2)

Publication Number Publication Date
KR20170026067A KR20170026067A (en) 2017-03-08
KR102547819B1 true KR102547819B1 (en) 2023-06-27

Family

ID=58403997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160014087A KR102547819B1 (en) 2015-08-27 2016-02-04 Modeling method and modeling apparatus using fluid animation graph

Country Status (1)

Country Link
KR (1) KR102547819B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5731819A (en) * 1995-07-18 1998-03-24 Softimage Deformation of a graphic object to emphasize effects of motion

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Schodl, Arno, et al. "Video textures." Proceedings of the 27th annual conference on Computer graphics and interactive techniques. 2000.*
Stanton, Matt, et al. "Self-refining games using player analytics." ACM Transactions on Graphics (TOG) 33.4 (2014): 1-9.*

Also Published As

Publication number Publication date
KR20170026067A (en) 2017-03-08

Similar Documents

Publication Publication Date Title
US11113860B2 (en) Particle-based inverse kinematic rendering system
US10022628B1 (en) System for feature-based motion adaptation
US11836843B2 (en) Enhanced pose generation based on conditional modeling of inverse kinematics
US9741146B1 (en) Kinetic energy smoother
US11992768B2 (en) Enhanced pose generation based on generative modeling
US10964084B2 (en) Generating realistic animations for digital animation characters utilizing a generative adversarial network and a hip motion prediction network
Gu et al. Generating freestyle group formations in agent-based crowd simulations
KR20110099998A (en) System and method for interactive and real-time augmented reality, and the recording media storing the program performing the said method
Zhao et al. Synthesizing diverse human motions in 3d indoor scenes
Jiang et al. Camera keyframing with style and control
US20140225900A1 (en) Real-time goal space steering for data-driven character animation
US20230267668A1 (en) Joint twist generation for animation
US11410363B2 (en) Modeling method and apparatus and apparatus using fluid animation graph
US11830121B1 (en) Neural animation layering for synthesizing martial arts movements
Mousas et al. Performance-driven hybrid full-body character control for navigation and interaction in virtual environments
KR102547819B1 (en) Modeling method and modeling apparatus using fluid animation graph
Peng et al. 21‐2: exploring 3D interactive performance animation for VR/AR applications using low‐cost motion capture
Innamorati et al. Neural re-simulation for generating bounces in single images
US11587276B2 (en) Data-driven extraction and composition of secondary dynamics in facial performance capture
Xu et al. Human-Computer Natur al User Inter face Based on Hand Motion Detection and Tracking
US11398047B2 (en) Virtual reality simulations using surface tracking
Malek-Podjaski et al. Adversarial Attention for Human Motion Synthesis
Furukawa et al. Interactive 3D animation creation and viewing system based on motion graph and pose estimation method
Stanton et al. Large-scale finite state game engines.
Oshita et al. Generating hand motion from body motion using key hand poses

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)