KR102638841B1 - Method for improving prediction performance of interference between body parts of animated character and device thereof - Google Patents

Method for improving prediction performance of interference between body parts of animated character and device thereof Download PDF

Info

Publication number
KR102638841B1
KR102638841B1 KR1020230053932A KR20230053932A KR102638841B1 KR 102638841 B1 KR102638841 B1 KR 102638841B1 KR 1020230053932 A KR1020230053932 A KR 1020230053932A KR 20230053932 A KR20230053932 A KR 20230053932A KR 102638841 B1 KR102638841 B1 KR 102638841B1
Authority
KR
South Korea
Prior art keywords
character
bone
collision
speed
length
Prior art date
Application number
KR1020230053932A
Other languages
Korean (ko)
Inventor
이현우
Original Assignee
블래스트 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 블래스트 주식회사 filed Critical 블래스트 주식회사
Priority to KR1020230053932A priority Critical patent/KR102638841B1/en
Application granted granted Critical
Publication of KR102638841B1 publication Critical patent/KR102638841B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법은, 사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계; 상기 캐릭터의 본 상에 기준점을 설정하고 상기 기준점을 기준으로 상기 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 검사 길이를 설정하는 단계; 상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하는 단계; 및 상기 검사 길이를 통해 충돌 가능성을 예측하는 단계;를 포함한다.An operating method for avoiding interference between the bodies of a character, executed by at least one processor of a device, includes: generating a bone of a character corresponding to the user based on an image of the user; Setting a reference point on the character's bones and setting a test length for performing a collision risk test between the character's bodies based on the reference point; correcting the inspection length according to the bone speed of the character; and predicting the possibility of collision through the inspection length.

Description

애니메이션 캐릭터의 신체 간 간섭 예측 성능 향상 방법 및 장치{METHOD FOR IMPROVING PREDICTION PERFORMANCE OF INTERFERENCE BETWEEN BODY PARTS OF ANIMATED CHARACTER AND DEVICE THEREOF}Method and device for improving inter-body interference prediction performance of animated characters {METHOD FOR IMPROVING PREDICTION PERFORMANCE OF INTERFERENCE BETWEEN BODY PARTS OF ANIMATED CHARACTER AND DEVICE THEREOF}

본 발명은 애니메이션 캐릭터의 신체 간 간섭 회피 방법 및 장치에 관한 것으로, 보다 상세하게는 모션 캡처 기술을 실시간으로 이용하여 생성되는 애니메이션 캐릭터의 신체 간 간섭 예측 성능을 향상하는 방법 및 장치에 관한 것이다. The present invention relates to a method and device for avoiding interference between the bodies of an animation character and, more specifically, to a method and device for improving the prediction performance of interference between the bodies of an animation character created using motion capture technology in real time.

모션 캡처(Motion Capture)는 몸에 센서를 부착하거나, 이미지 센서 등을 이용하여, 인체의 움직임을 디지털 형태로 기록하는 작업을 지칭한다. 또는 모션 캡처는 사용자의 모션을 캡처하여, 컴퓨터 그래픽(computer graphic, CG) 애니메이션 등의 형태로 기록 및 가공하는 기술을 지칭할 수 있다. 즉, 모션 캡처 시스템은 실제 사용자의 움직임(movement)을 캡처하고 캡처한 움직임을 컴퓨터로 생성한 오브젝트에 맵핑(mapping)시킴으로써, 애니메이션 캐릭터를 생성할 수 있다. Motion capture refers to the process of recording human body movements in digital form by attaching a sensor to the body or using an image sensor. Alternatively, motion capture may refer to a technology that captures a user's motion and records and processes it in the form of computer graphic (CG) animation, etc. In other words, the motion capture system can create an animated character by capturing the actual user's movements and mapping the captured movements to a computer-generated object.

종래의 모션 캡쳐 방식을 이용하여 애니메이션 캐릭터를 생성하는 방식은 오브젝트와 캐릭터 사이의 신체 비율 차이를 고려하지 않고, 단순히 모션 데이터를 캐릭터에 그대로 적용하는 방식이다. 따라서, 종래의 모션 캡처 방식을 이용하는 경우, 캐릭터의 팔과 같은 신체 부위가 다른 신체 부위와 쉽게 충돌할 수 있다. 예를 들어 오브젝트의 팔보다 캐릭터의 팔이 긴 경우, 오브젝트는 손으로 허리를 짚고 있지만, 오브젝트의 움직임 정보를 기초로 생성된 캐릭터의 손이 골반에 파묻히는 오류가 발생할 수 있다. The method of creating an animation character using a conventional motion capture method is to simply apply motion data to the character as is, without considering the difference in body proportions between the object and the character. Therefore, when using a conventional motion capture method, body parts such as the character's arms may easily collide with other body parts. For example, if the character's arm is longer than the object's arm, the object is holding its hand on the waist, but an error may occur in which the character's hand, which was created based on the object's movement information, is buried in the pelvis.

종래의 모션 캡처 방식은 대부분 영화와 같은 사전 렌더링 영상에 적용되었다. 사전 렌더링 영상의 경우, 모션 캡쳐 데이터를 획득한 후, 애니메이터들이 수작업으로 바로잡는 후처리 공정을 거치기 때문에, 애니메이션 캐릭터의 신체 부위간 충돌을 보정할 수 있다. Conventional motion capture methods are mostly applied to pre-rendered images such as movies. In the case of pre-rendered images, after obtaining motion capture data, animators go through a post-processing process to correct them manually, so collisions between body parts of animated characters can be corrected.

하지만 게임 엔진 등을 이용한 실시간 가상 콘텐츠의 수요가 증가하고, 모션 캡쳐 방식을 캐릭터에 실시간으로 적용하려는 시도가 늘어나는 상황이다. 이로 인하여, 모션 캡쳐 데이터를 실시간으로 캐릭터에 적용하는 콘텐츠를 생성하기 위해서는 별도의 후처리 공정 없이 모션 캡쳐 데이터를 캐릭터에 곧바로 적용해야 한다. 따라서, 기존의 모션 캡쳐 방식은 한계점을 보인다. However, the demand for real-time virtual content using game engines is increasing, and attempts to apply motion capture methods to characters in real time are increasing. Because of this, in order to create content that applies motion capture data to a character in real time, motion capture data must be applied directly to the character without a separate post-processing process. Therefore, existing motion capture methods have limitations.

이에, 실시간 모션 캡처 방식을 위한 애니메이션 캐릭터의 신체 간 간섭 회피 방법의 필요성이 대두되고 있다. 본 발명은 이와 관련된 것이다.Accordingly, the need for a method to avoid interference between the bodies of animation characters for real-time motion capture is emerging. The present invention relates to this.

본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 팔이 다른 신체와 충돌하지 않도록 애니메이션 신체 간 충돌 예측 성능을 향상시켜 캐릭터 애니메이션에 적용하는 애니메이션 캐릭터의 신체 간 간섭 회피 방법을 제공하는 것이다. The present invention was created to solve the above problems, and the purpose of the present invention is to provide a method of avoiding interference between the bodies of animation characters applied to character animation by improving collision prediction performance between animation bodies to prevent arms from colliding with other bodies. It is done.

본 발명을 통해 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved through the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the description below. It could be.

본 발명의 일 실시예에 따른 장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법은, 사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계; 상기 캐릭터의 본 상에 기준점을 설정하고 상기 기준점을 기준으로 상기 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 검사 길이를 설정하는 단계; 상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하는 단계; 및 상기 검사 길이를 통해 충돌 가능성을 예측하는 단계;를 포함할 수 있다.An operating method for avoiding interference between the body of a character executed by at least one processor of a device according to an embodiment of the present invention includes generating a bone of a character corresponding to the user based on the user's image. step; Setting a reference point on the character's bones and setting a test length for performing a collision risk test between the character's bodies based on the reference point; correcting the inspection length according to the bone speed of the character; and predicting the possibility of collision through the inspection length.

여기서, 상기 검사 길이는, 상기 캐릭터의 제1 본의 일 지점으로부터 상기 캐릭터의 제2 본의 일 지점으로 향하는 일 벡터의 길이로 적용되고, 상기 일 벡터는 검사 벡터로 정의되는 것을 특징으로 할 수 있다.Here, the inspection length may be applied as the length of a vector heading from a point of the first bone of the character to a point of the second bone of the character, and the one vector may be defined as an inspection vector. there is.

여기서, 상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하는 단계는, 상기 캐릭터의 본의 속력이 증가하면 상기 검사 길이를 증가시키고, 상기 캐릭터의 본의 속력이 감소하면 상기 검사 길이를 감소시키는 것을 특징으로 할 수 있다.Here, the step of correcting the inspection length according to the speed of the character's bones increases the inspection length when the speed of the character's bones increases, and decreases the inspection length when the speed of the character's bones decreases. It can be characterized as:

여기서, 상기 검사 길이를 통해 상기 충돌 가능성을 예측하는 단계는, 상기 검사 벡터와 동일한 방향으로 측정된 상기 캐릭터의 본의 일 지점으로부터 상기 캐릭터의 표면까지의 거리가 상기 검사 길이보다 짧은 경우, 상기 충돌 가능성이 있는 것으로 예측하는 것을 특징으로 할 수 있다.Here, the step of predicting the possibility of collision through the inspection length includes, when the distance from a point of the character's bone measured in the same direction as the inspection vector to the surface of the character is shorter than the inspection length, the collision It can be characterized as a prediction that is likely.

여기서, 상기 동작 방법은 상기 충돌 가능성을 기초로 회피 벡터를 산출하는 단계를 더 포함하고, 상기 충돌 가능성을 기초로 상기 회피 벡터를 산출하는 단계는, 상기 충돌 가능성이 있는 것으로 예측된 경우, 상기 캐릭터의 표면 및 상기 캐릭터의 상지의 이동 방향 중 적어도 하나를 기초로 상기 회피 벡터를 산출하는 단계를 포함하는 것을 특징으로 할 수 있다.Here, the operating method further includes calculating an avoidance vector based on the collision possibility, and calculating the avoidance vector based on the collision possibility includes, when it is predicted that there is a collision possibility, the character It may be characterized by including calculating the avoidance vector based on at least one of the surface of and the movement direction of the upper limb of the character.

여기서, 상기 동작 방법은 상기 캐릭터의 본의 속력을 산출하는 단계를 더 포함하고, 상기 캐릭터의 본의 속력을 산출하는 단계는, 프레임당 본의 이동 거리를 산출하는 단계; 및 상기 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환하는 단계를 포함하는 것을 특징으로 할 수 있다.Here, the operating method further includes calculating the speed of the bone of the character, and calculating the speed of the bone of the character includes calculating a moving distance of the bone per frame; and converting the bone movement distance per frame into the bone movement distance per second.

여기서, 상기 프레임당 본의 이동 거리를 상기 초당 본의 이동 거리로 변환하는 단계는, 초당 프레임 수를 산출하는 단계; 및 상기 초당 프레임 수와 상기 프레임당 본의 이동 거리를 곱한 값을 산출하는 단계를 더 포함하는 것을 특징으로 할 수 있다.Here, converting the bone movement distance per frame into the bone movement distance per second includes calculating the number of frames per second; and calculating a value obtained by multiplying the number of frames per second by the moving distance of the bone per frame.

여기서, 상기 초당 프레임 수를 산출하는 단계는, 하나의 프레임을 렌더링하는 데 걸리는 시간인 델타 타임을 산출하는 단계; 및 1을 상기 델타 타임으로 나눈 값을 산출하는 단계를 더 포함하는 것을 특징으로 할 수 있다.Here, calculating the number of frames per second includes calculating delta time, which is the time it takes to render one frame; and calculating a value obtained by dividing 1 by the delta time.

본 발명의 일 실시예에 따른 캐릭터의 신체 간 간섭 회피를 위한 동작 방법을 실행하기 위한 시스템의 장치는, 적어도 하나의 프로그램 명령이 저장된 메모리; 및 상기 적어도 하나의 프로그램 명령을 수행하는 프로세서를 포함하고, 상기 적어도 하나의 프로그램 명령은, 사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하고; 상기 캐릭터의 본 상에 기준점을 설정하고 상기 기준점을 기준으로 상기 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 검사 길이를 설정하고; 상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하고; 그리고 상기 검사 길이를 통해 충돌 가능성을 예측하도록 실행될 수 있다.An apparatus for a system for executing an operation method for avoiding interference between characters' bodies according to an embodiment of the present invention includes: a memory storing at least one program command; and a processor that executes the at least one program command, wherein the at least one program command generates a bone of a character corresponding to the user based on the user's image; Setting a reference point on the character's bones and setting a test length for performing a collision risk test between the character's bodies based on the reference point; correct the inspection length according to the bone speed of the character; And it can be implemented to predict the possibility of collision through the inspection length.

여기서, 상기 검사 길이는, 상기 캐릭터의 제1 본의 일 지점으로부터 상기 캐릭터의 제2 본의 일 지점으로 향하는 일 벡터의 길이로 적용되고, 상기 일 벡터는 검사 벡터로 정의되는 것을 특징으로 할 수 있다.Here, the inspection length may be applied as the length of a vector heading from a point of the first bone of the character to a point of the second bone of the character, and the one vector may be defined as an inspection vector. there is.

여기서, 상기 적어도 하나의 프로그램 명령은, 상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하도록 실행됨에 있어, 상기 캐릭터의 본의 속력이 증가하면 상기 검사 길이를 증가시키고, 상기 캐릭터의 본의 속력이 감소하면 상기 검사 길이를 감소시키도록 실행되는 것을 특징으로 할 수 있다.Here, the at least one program command is executed to correct the inspection length according to the speed of the bone of the character, increasing the inspection length when the speed of the bone of the character increases, and increasing the inspection length according to the speed of the bone of the character. When this decreases, the test length may be reduced.

여기서, 상기 적어도 하나의 프로그램 명령은, 상기 검사 길이를 통해 상기 충돌 가능성을 예측하도록 실행됨에 있어, 상기 검사 벡터와 동일한 방향으로 측정된 상기 캐릭터의 본의 일 지점으로부터 상기 캐릭터의 표면까지의 거리가 상기 검사 길이보다 짧은 경우, 상기 충돌 가능성이 있는 것으로 예측하는 것을 특징으로 할 수 있다.Here, the at least one program command is executed to predict the possibility of collision through the check length, so that the distance from a point of the bone of the character to the surface of the character measured in the same direction as the check vector is If it is shorter than the inspection length, it may be characterized as predicting that there is a possibility of the collision.

여기서, 상기 적어도 하나의 프로그램 명령은, 상기 충돌 가능성을 기초로 회피 벡터를 산출하도록 실행되고, 상기 충돌 가능성을 기초로 상기 회피 벡터를 산출하도록 실행됨에 있어, 상기 충돌 가능성이 있는 것으로 예측된 경우, 상기 캐릭터의 표면 및 상기 캐릭터의 상지의 이동 방향 중 적어도 하나를 기초로 상기 회피 벡터를 산출하도록 실행되는 것을 특징으로 할 수 있다.Here, the at least one program command is executed to calculate the avoidance vector based on the collision possibility, and when it is executed to calculate the avoidance vector based on the collision possibility, if it is predicted that the collision possibility exists, The avoidance vector may be calculated based on at least one of the surface of the character and the movement direction of the upper limbs of the character.

여기서, 상기 적어도 하나의 프로그램 명령은, 상기 캐릭터의 본의 속력을 산출하도록 실행되고, 상기 캐릭터의 본의 속력을 산출하도록 실행됨에 있어, 프레임당 본의 이동 거리를 산출하고; 그리고 상기 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환하도록 실행되는 것을 특징으로 할 수 있다.Here, the at least one program command is executed to calculate the speed of the bone of the character, and in being executed to calculate the speed of the bone of the character, calculates the moving distance of the bone per frame; Additionally, the process may be performed to convert the bone movement distance per frame into the bone movement distance per second.

여기서, 상기 적어도 하나의 프로그램 명령은, 상기 프레임당 본의 이동 거리를 상기 초당 본의 이동 거리로 변환하도록 실행됨에 있어, 초당 프레임 수를 산출하고; 그리고 상기 초당 프레임 수와 상기 프레임당 본의 이동 거리를 곱한 값을 산출하도록 실행되는 것을 특징으로 할 수 있다.Here, the at least one program command is executed to convert the bone movement distance per frame into the bone movement distance per second, thereby calculating the number of frames per second; And it may be characterized in that it is executed to calculate a value obtained by multiplying the number of frames per second and the moving distance of the bone per frame.

여기서, 상기 적어도 하나의 프로그램 명령은, 상기 초당 프레임 수를 산출하도록 실행됨에 있어, 하나의 프레임을 렌더링하는 데 걸리는 시간인 델타 타임을 산출하고; 그리고 1을 상기 델타 타임으로 나눈 값을 산출하도록 실행되는 것을 특징으로 할 수 있다.Here, the at least one program command, when executed to calculate the number of frames per second, calculates delta time, which is the time it takes to render one frame; And it may be executed to calculate a value obtained by dividing 1 by the delta time.

상술한 본 개시의 양태들은 본 개시의 바람직한 실시 예들 중 일부에 불과하며, 본 개시의 기술적 특징들이 반영된 다양한 실시 예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 개시의 상세한 설명을 기반으로 도출되고 이해될 수 있다. The above-described aspects of the present disclosure are only some of the preferred embodiments of the present disclosure, and various embodiments reflecting the technical features of the present disclosure will be described in detail by those skilled in the art. It can be derived and understood based on.

본 발명의 실시예에 따르면, 캐릭터의 본의 속력에 따라 검사 길이를 보정함으로써, 캐릭터의 본의 속력에 무관하게 일관된 검사 결과를 도출할 수 있다. 따라서, 캐릭터의 신체 간 충돌 예측률의 정확도가 향상될 수 있고, 캐릭터의 신체 간 간섭 회피 동작의 신뢰성이 향상될 수 있다.According to an embodiment of the present invention, by correcting the test length according to the speed of the character's bones, consistent test results can be derived regardless of the speed of the character's bones. Accordingly, the accuracy of the collision prediction rate between the character's bodies can be improved, and the reliability of the collision avoidance operation between the character's bodies can be improved.

본 발명의 실시예에 따르면, 디바이스가 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환함으로써, 디바이스는 프레임레이트와 무관하게 일관된 속력을 얻을 수 있다. 따라서, 실시간으로 프레임레이트가 변화하는 영상에서도 캐릭터의 본의 속력을 비교적 정확하게 측정할 수 있다. 이로 인해 캐릭터의 신체 간 충돌 예측률의 정확도가 향상될 수 있다.According to an embodiment of the present invention, the device can obtain consistent speed regardless of the frame rate by converting the bone movement distance per frame into the bone movement distance per second. Therefore, even in videos where the frame rate changes in real time, the speed of the character's bones can be measured relatively accurately. As a result, the accuracy of the collision prediction rate between the characters' bodies can be improved.

본 발명을 통해 얻을 수 있는 효과는 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The effects that can be obtained through the present invention are not limited to the mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the description below. .

도 1은 본 개시에 따른 전체 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시에 따른 시스템을 구성하는 디바이스의 구성의 실시예를 도시한 블록도이다.
도 3은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 일 실시예를 도시한 흐름도이다.
도 4는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본의 일 실시예를 도시한 도면이다.
도 5는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 검사 시작 선분 및 목표 선분의 일 실시예를 도시한 도면이다.
도 6은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 시작점 및 목표점의 일 실시예를 도시한 도면이다.
도 7은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 위한 충돌 가능성을 예측하는 검사 길이를 설명하기 위한 도면이다.
도 8은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 위한 충돌 가능성을 예측하는 검사 길이를 설명하기 위한 도면이다.
도 9는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 위한 충돌 가능성을 예측하는 검사 길이의 일 실시예를 도시한 도면이다.
도 10은 본 개시에 따른 캐릭터의 본의 속력을 산출하는 동작의 일 실시예를 도시한 흐름도이다.
도 11은 본 개시에 따른 캐릭터의 본의 속력이 동일하고, 서로 다른 프레임레이트를 가진 두 이미지를 도시한 도면이다.
1 is a diagram schematically showing the entire system according to the present disclosure.
Figure 2 is a block diagram showing an embodiment of the configuration of a device constituting a system according to the present disclosure.
Figure 3 is a flowchart illustrating an embodiment of an interference avoidance operation between the bodies of an animation character according to the present disclosure.
FIG. 4 is a diagram illustrating an example of character bones generated as a result of an interference avoidance operation between the bodies of an animation character according to the present disclosure.
FIG. 5 is a diagram illustrating an example of an inspection start line segment and a target line segment set on the bones of an animation character generated as a result of an interference avoidance operation between the bodies of an animation character according to the present disclosure.
FIG. 6 is a diagram illustrating an example of a starting point and a target point set on the bones of an animation character generated as a result of an interference avoidance operation between the bodies of an animation character according to the present disclosure.
FIG. 7 is a diagram illustrating a test length for predicting the possibility of collision for the interference avoidance operation between the bodies of an animation character according to the present disclosure.
FIG. 8 is a diagram illustrating a test length for predicting the possibility of collision for the interference avoidance operation between the bodies of an animation character according to the present disclosure.
FIG. 9 is a diagram illustrating an example of a test length for predicting the possibility of collision for the interference avoidance operation between the bodies of an animation character according to the present disclosure.
Figure 10 is a flowchart illustrating an example of an operation for calculating the bone speed of a character according to the present disclosure.
FIG. 11 is a diagram illustrating two images with the same bone speed and different frame rates of a character according to the present disclosure.

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

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

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is said to be "connected" or "connected" to another component, it is understood that it may be directly connected to or connected to the other component, but that other components may exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.

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

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

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the attached drawings. In order to facilitate overall understanding when describing the present invention, the same reference numerals are used for the same components in the drawings, and duplicate descriptions for the same components are omitted.

도 1은 본 개시에 따른 전체 시스템을 개략적으로 나타낸 도면이다.1 is a diagram schematically showing the entire system according to the present disclosure.

도 1을 참조하면, 전체 시스템은 사용자 디바이스(102), 서버(104), 이미지 캡처 디바이스(106), 객체(108), 디스플레이 디바이스(110), 및 통신 네트워크(112)를 포함할 수 있다. 사용자 디바이스(102)는, 통신 네트워크(112)를 통해, 서버(104), 이미지 캡처 디바이스(106), 및 디스플레이 디바이스(110)와 연결될 수 있다. Referring to FIG. 1 , the overall system may include a user device 102, a server 104, an image capture device 106, an object 108, a display device 110, and a communication network 112. User device 102 may be coupled with server 104, image capture device 106, and display device 110 via communications network 112.

사용자 디바이스(102)는, 애니메이션을 생성하기 위한 로직, 회로, 인터페이스, 및/또는 코드를 포함할 수 있다. 사용자 디바이스(102)는, 이미지 캡처 디바이스(106)에 의해 추적된 객체(108)의 움직임에 기초하여 캐릭터의 애니메이션을 생성하고, 생성한 애니메이션을 디스플레이 디바이스(110)를 통해 출력할 수 있다. 사용자 디바이스(102)는, 게임 디바이스, 화상 회의 시스템, 증강 현실-기반 디바이스, 컴퓨팅 디바이스, 서버, 컴퓨터 워크스테이션, 메인 프레임 기계, 및/또는 기타의 사용자 디바이스를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.User device 102 may include logic, circuitry, interfaces, and/or code to create animations. The user device 102 may generate an animation of a character based on the movement of the object 108 tracked by the image capture device 106 and output the generated animation through the display device 110 . User devices 102 may include, but are not limited to, gaming devices, video conferencing systems, augmented reality-based devices, computing devices, servers, computer workstations, mainframe machines, and/or other user devices. That is not the case.

서버(104)는, 하나 이상의 애니메이션 모델을 저장할 수 있는 회로, 인터페이스 및/또는 코드를 포함할 수 있다. 일 실시예에 따르면, 서버(104)는, 애플리케이션 서버, 클라우드 서버, 웹 서버, 데이터베이스 서버, 파일 서버, 게임 서버, 메인 프레임 서버, 또는 이들의 조합을 포함할 수 있으나, 이것으로 제한되는 것은 아니다.Server 104 may include circuitry, interfaces, and/or code capable of storing one or more animation models. According to one embodiment, server 104 may include, but is not limited to, an application server, cloud server, web server, database server, file server, game server, mainframe server, or a combination thereof. .

이미지 캡처 디바이스(106)는, 객체(108)의 이미지 및 움직임을 캡처하기 위한 로직, 회로, 인터페이스, 및/또는 코드를 포함할 수 있다. 이미지 캡처 디바이스(106)는, 객체(108)의 하나 이상의 이미지 및/또는 자세를 실시간, 또는 지연된 시간 이내에 캡처할 수 있다. 또한, 이미지 캡처 디바이스(106)는 캡처한 이미지를 기초로 객체(108)의 본 구조 정보를 결정할 수 있다. 본 구조 정보는 객체(108)의 골격 정보를 포함할 수 있다. 이미지 캡처 디바이스(106)는 결정된 본 구조 정보를 통신 네트워크(112)를 통해 사용자 디바이스(102)에 전송할 수 있다. 이미지 캡처 디바이스(106)는, 하나의 시점으로부터 객체(108)의 하나 이상의 자세를 캡처하는, 깊이 센서, 적외선(IR) 센서, 및/또는 (적색-녹색-파랑(RGB) 센서 등의) 컬러 센서, 3D 메시 구조 생성기, 이미지 센서, 및/또는 모션 검출 센서 등을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.Image capture device 106 may include logic, circuitry, interfaces, and/or code to capture images and movements of objects 108 . Image capture device 106 may capture one or more images and/or poses of object 108 in real time or within a delayed period of time. Additionally, the image capture device 106 may determine the original structural information of the object 108 based on the captured image. This structural information may include skeleton information of the object 108. Image capture device 106 may transmit the determined structural information to user device 102 via communication network 112. Image capture device 106 may include a depth sensor, an infrared (IR) sensor, and/or a color sensor (such as a red-green-blue (RGB) sensor) to capture one or more poses of an object 108 from a single viewpoint. It may include, but is not limited to, a sensor, a 3D mesh structure generator, an image sensor, and/or a motion detection sensor.

객체(108)란, 이미지 캡처 디바이스(106)에 의해 캡처되는 대상 객체를 지칭할 수 있다. 객체(108)는, 인간, 동물, 또는 실제 인간이나 동물의 자연스러운 신체 움직임을 흉내낼 수 있는 로봇일 수 있다. 인체는, 신체를 지탱하고 그 형상을 유지하는 프레임워크를 제공하는 골격을 포함한다. 인간의 골격은 계층적 세트의 상호 연결된 뼈대들을 포함하며, 뼈대 사이의 관절(관절이라고도 함)은, 머리, 손, 발 등의 인체 부분들의 소정 정도의 움직임을 허용할 수 있다.Object 108 may refer to a target object captured by image capture device 106. Object 108 may be a human, an animal, or a robot that can mimic the natural body movements of an actual human or animal. The human body includes a skeleton that provides a framework to support the body and maintain its shape. The human skeleton includes a hierarchical set of interconnected bones, and the joints (also called joints) between the bones can allow some degree of movement of body parts such as the head, hands, and feet.

디스플레이 디바이스(110)는 사용자 디바이스(102)로부터 수신된 캐릭터의 애니메이션 모델을 렌더링하도록 구성될 수 있는 적절한 로직, 회로, 인터페이스 및/또는 코드를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 디바이스(110)는 사용자로부터 명령 및/또는 입력 신호를 획득할 수 있다. 이러한 시나리오에서, 디스플레이 디바이스(110)는 사용자의 명령을 입력할 수 있는 터치 스크린일 수 있다. 다른 실시예에 따르면, 디스플레이 디바이스(110)는, 가상 키패드, 스타일러스, 제스쳐 기반 입력, 및/또는 터치 기반 입력을 통해 입력을 수신할 수 있다. 디스플레이 디바이스(110)는, 액정 디스플레이(LCD) 디스플레이, 발광 다이오드(LED) 디스플레이, 플라즈마 디스플레이, 및/또는 유기 LED(OLED) 디스플레이 기술 등을 포함할 수 있으나, 이것으로 제한되지 않는 수 개의 공지된 기술을 통해 실현될 수 있다. 또 다른 실시예에 따르면, 디스플레이 디바이스(110)는, 스마트-안경 디바이스의 디스플레이 스크린, 시스루(see-through) 디스플레이, 프로젝션-기반 디스플레이, 전기 변색(electro-chromic) 디스플레이, 및/또는 투명 디스플레이 중 하나일 수 있다. Display device 110 may include suitable logic, circuitry, interfaces, and/or code that may be configured to render an animated model of a character received from user device 102 . According to one embodiment, the display device 110 may obtain a command and/or input signal from the user. In this scenario, display device 110 may be a touch screen through which a user can input commands. According to another embodiment, the display device 110 may receive input through a virtual keypad, stylus, gesture-based input, and/or touch-based input. Display device 110 may include, but is not limited to, a liquid crystal display (LCD) display, a light emitting diode (LED) display, a plasma display, and/or an organic LED (OLED) display technology, and the like. It can be realized through technology. According to another embodiment, display device 110 may be one of a display screen of a smart-glasses device, a see-through display, a projection-based display, an electrochromic display, and/or a transparent display. It could be one.

통신 네트워크(112)는, 사용자 디바이스(102)가 서버(104) 및/또는 디스플레이 디바이스(110)에 연결되기 위한 통신 매체를 포함할 수 있다. 통신 네트워크(112)의 예로서는, 인터넷, 클라우드 네트워크, Wi-Fi 네트워크, 근거리 통신망(LAN; Local Area Network), 및/또는 MAN(Metropolitan Area Network)이 포함될 수 있지만, 이것으로 제한되는 것은 아니다. 시스템 내의 다양한 디바이스들은 다양한 유선 및 무선 통신 프로토콜에 따라 통신 네트워크(112)에 접속할 수 있다. 일 실시예에 따르면, 유선 및 무선 통신 프로토콜은 TCP/IP(Transmission Control Protocol and Internet Protocol), UDP(User Datagram Protocol), HTTP(Hypertext Transfer Protocol), FTP(File Transfer Protocol), ZigBee, EDGE, IEEE 802.11, Li-Fi(light fidelity), 802.16, IEEE 802.11s, IEEE 802.11g, 멀티-홉 통신, 무선 액세스 포인트(AP), 디바이스 대 디바이스 통신, 셀룰러 통신 프로토콜, 및/또는 Bluetooth(BT) 통신 프로토콜, 또는 이들의 조합 중 적어도 하나가 포함될 수 있지만, 이것으로 제한되는 것은 아니다.Communication network 112 may include a communication medium for user device 102 to couple to server 104 and/or display device 110 . Examples of communications networks 112 may include, but are not limited to, the Internet, cloud networks, Wi-Fi networks, local area networks (LANs), and/or metropolitan area networks (MANs). Various devices within the system may connect to communication network 112 according to various wired and wireless communication protocols. According to one embodiment, the wired and wireless communication protocols include Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), ZigBee, EDGE, and IEEE 802.11, light fidelity (Li-Fi), 802.16, IEEE 802.11s, IEEE 802.11g, multi-hop communication, wireless access point (AP), device-to-device communication, cellular communication protocol, and/or Bluetooth (BT) communication protocol. , or a combination thereof may be included, but is not limited to this.

도 1의 시스템은 적어도 하나 이상의 디바이스를 포함할 수 있으며, 디바이스의 구성은 아래에 설명하는 바와 같을 수 있다. The system of FIG. 1 may include at least one device, and the configuration of the device may be as described below.

도 2는 본 개시에 따른 시스템을 구성하는 디바이스의 구성의 실시예를 도시한 블록도이다. Figure 2 is a block diagram showing an embodiment of the configuration of a device constituting a system according to the present disclosure.

시스템에 포함된 디바이스(200)는, 적어도 하나의 프로세서(210) 및 적어도 하나의 프로세서(210)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(220)를 포함할 수 있다.The device 200 included in the system may include at least one processor 210 and a memory 220 that stores instructions that instruct the at least one processor 210 to perform at least one step. You can.

여기서 적어도 하나의 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.Here, the at least one processor 210 may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed. You can. Each of the memory 220 and the storage device 260 may be comprised of at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory 220 may be comprised of at least one of read only memory (ROM) and random access memory (RAM).

또한, 시스템에 포함된 디바이스(200)는, 무선 네트워크를 통해 통신을 수행하는 송수신 장치(transceiver)(230)를 포함할 수 있다. 또한, 시스템에 포함된 디바이스(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 시스템에 포함된 디바이스(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.Additionally, the device 200 included in the system may include a transceiver 230 that performs communication through a wireless network. Additionally, the device 200 included in the system may further include an input interface device 240, an output interface device 250, a storage device 260, etc. Each component included in the device 200 included in the system is connected by a bus 270 and can communicate with each other.

또한 시스템에 포함된 디바이스(200)는 특정한 기능을 구현/구동하기 위한 소프트웨어적인 구성요소들을 더 포함할 수 있다. 예를 들어, 소프트웨어적인 구성요소들은 프레임워크(framework), 커널(kernel) 또는 장치 드라이버(device driver), 미들웨어(middleware), 어플리케이션 프로그래밍 인터페이스(application programming interface, API), 어플리케이션 프로그램(또는 어플리케이션) 등을 포함할 수 있다. Additionally, the device 200 included in the system may further include software components to implement/operate specific functions. For example, software components include framework, kernel or device driver, middleware, application programming interface (API), application program (or application), etc. may include.

도 2의 디바이스를 이용하여, 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 수행하기 위한 시스템은 아래에 설명하는 바와 같이 구현될 수 있다. Using the device of FIG. 2, a system for performing interference avoidance operations between the bodies of an animation character can be implemented as described below.

도 3은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 일 실시예를 도시한 흐름도이다. Figure 3 is a flowchart illustrating an embodiment of an interference avoidance operation between the bodies of an animation character according to the present disclosure.

S2201 단계에서, 디바이스는 사용자의 이미지를 기초로 사용자에 대응하는 캐릭터의 본(bone)을 생성할 수 있다. 캐릭터의 본은 캐릭터의 뼈대에 해당하는 객체일 수 있다. 디바이스는 사용자의 이미지를 획득하고 획득한 사용자의 미리 설정된 주요 골격 또는 구동부를 결정하고, 결정된 주요 골격 또는 주요 구동부에 대응되는 객체를 생성할 수 있다. 여기서, 주요 골격은 인체의 두부, 척추, 상지 및 하지를 포함할 수 있다. 그리고 주요 구동부는 인체의 목, 어깨, 팔꿈치, 손목, 골반, 및 무릎 등의 관절을 포함할 수 있다. 그리고 디바이스는 사용자의 이미지를 기초로, 캐릭터의 표면 상에 메시를 생성할 수 있다. In step S2201, the device may generate a bone of a character corresponding to the user based on the user's image. The character's bone may be an object corresponding to the character's skeleton. The device may acquire an image of the user, determine a preset main skeleton or driving part of the acquired user, and create an object corresponding to the determined main skeleton or main driving part. Here, the main skeleton may include the head, spine, upper and lower limbs of the human body. And the main moving parts may include joints of the human body such as the neck, shoulder, elbow, wrist, pelvis, and knee. The device can then create a mesh on the character's surface based on the user's image.

S2203 단계에서, 디바이스는 캐릭터의 본 상에 기준점을 설정하고, 기준점을 기준으로 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 검사 길이를 설정할 수 있다. 사용자와 캐릭터 간의 신체 비율 차이로 인한 충돌은 상지의 하박 상에서 주로 발생할 수 있다. 따라서, 디바이스는 상기 기준점을 상지의 하박 상에 설정할 수 있다.In step S2203, the device may set a reference point on the character's bones and set a test length for performing a collision risk test between the character's bodies based on the reference point. Collisions due to differences in body proportions between the user and the character can mainly occur on the lower limbs of the upper limbs. Accordingly, the device can set the reference point on the lower arm of the upper limb.

디바이스는 기준점을 기준으로 검사 길이를 설정할 수 있다. 상기 검사 길이는 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 스칼라 값일 수 있다. 구체적으로, 상기 검사 길이는 캐릭터의 제1 본의 일 지점으로부터 캐릭터의 제2 본의 일 지점으로 향하는 일 벡터의 길이로 적용될 수 있다. 이 경우 상기 일 벡터는 검사 벡터로 정의될 수 있다. 즉, 검사 벡터의 크기가 검사 길이에 해당할 수 있다. 이때, 제1 본과 제2 본은 캐릭터의 본 중 서로 다른 부분일 수 있다.The device can set the inspection length based on the reference point. The test length may be a scalar value for performing a collision risk test between the character's bodies. Specifically, the inspection length may be applied as the length of a vector heading from a point of the first bone of the character to a point of the second bone of the character. In this case, the work vector may be defined as a check vector. That is, the size of the test vector may correspond to the test length. At this time, the first bone and the second bone may be different parts of the character's bones.

구체적으로, 디바이스는 캐릭터의 본의 하박을 시작 선분으로 설정할 수 있다. 그리고 디바이스는 캐릭터의 본의 주요 골격에 해당하는 두부, 몸통 및 하지를 목표 선분으로 설정할 수 있다. 따라서, 제1 본은 상지의 하박에 해당할 수 있고, 제2 본은 두부, 몸통, 또는 하지일 수 있다.Specifically, the device can set the lower arm of the character's bone as the starting line segment. And the device can set the head, torso, and lower extremities corresponding to the main skeleton of the character's bones as target line segments. Accordingly, the first bone may correspond to the lower arm of the upper limb, and the second bone may correspond to the head, torso, or lower limb.

그리고 디바이스는 본 상에 설정된 시작 선분과 목표 선분 간의 위치 관계를 기초로, 충돌 위험 검사를 위한 시작점 및 목표점을 캐릭터의 본 상에 설정할 수 있다. 구체적으로, 디바이스는 목표 선분에 가장 가까운 시작 선분의 점을 시작점으로 설정할 수 있다. 그리고 디바이스는 시작 선분에 가장 가까운 목표 선분의 점을 목표점으로 설정할 수 있다. Additionally, the device can set the starting point and target point for collision risk inspection on the character's bone, based on the positional relationship between the start line segment and target line segment set on the bone. Specifically, the device can set the point of the starting line segment closest to the target line segment as the starting point. And the device can set the point of the target line segment closest to the start line segment as the target point.

이 경우 제1 본의 일 지점은 시작점에 해당하고, 제2 본의 일 지점은 목표점에 해당할 수 있으며, 상기 시작점은 상기 기준점에 해당할 수 있다. 즉, 검사 길이는 시작점을 기준으로 설정된 스칼라 값일 수 있으며, 검사 벡터는 시작점으로부터 목표점으로 향하는 검사 방향 및 검사 길이에 해당하는 스칼라 값을 가지는 벡터 값일 수 있다. 따라서, 검사 벡터의 일단은 시작점 상에 고정되어 있을 수 있고, 검사 벡터의 타단은 검사 방향으로 시작점으로부터 검사 길이만큼 이격될 수 있다.In this case, a point of the first bone may correspond to the starting point, a point of the second bone may correspond to the target point, and the starting point may correspond to the reference point. That is, the inspection length may be a scalar value set based on the starting point, and the inspection vector may be a vector value having a scalar value corresponding to the inspection direction and inspection length from the starting point to the target point. Accordingly, one end of the test vector may be fixed on the starting point, and the other end of the test vector may be spaced apart from the starting point in the test direction by the test length.

또한, 디바이스는 시작점 및 목표점 간에 충돌 테스트를 수행하여 시작점 및 목표점 사이의 충돌 면을 산출할 수 있다. 여기서, 시작점으로부터 검사 방향 상의 미리 설정된 구간 이내에 존재하는 메시는 충돌 면으로 지칭될 수 있다. Additionally, the device may perform a collision test between the starting point and the target point to calculate the collision surface between the starting point and the target point. Here, a mesh existing within a preset section in the inspection direction from the starting point may be referred to as a collision surface.

S2205 단계에서, 디바이스는 캐릭터의 본의 속력을 산출할 수 있다. 캐릭터의 본이 움직이는 속력에 따라 충돌 예측률이 달라질 수 있다. 충돌 예측률이란 디바이스가 충돌을 예측할 수 있는 가능성을 의미할 수 있다. 따라서, 충돌 예측률이 높으면, 디바이스가 캐릭터의 신체 간 충돌을 예측할 가능성이 높은 것을 의미하고, 충돌 예측률이 낮으면, 디바이스가 충돌을 예측할 가능성이 낮은 것을 의미한다. In step S2205, the device may calculate the speed of the character's bones. The collision prediction rate may vary depending on the speed at which the character's bones move. Collision prediction rate may refer to the possibility that a device can predict a collision. Therefore, a high collision prediction rate means that the device is highly likely to predict a collision between the characters' bodies, and a low collision prediction rate means that the device is unlikely to predict a collision.

예를 들어, 캐릭터의 본이 느리게 움직이는 경우에는 충돌 예측률이 높을 수 있다. 매 프레임마다 본의 위치가 조금씩 움직이므로 충돌 위험 검사에서도 조금씩 가까워지는 캐릭터의 메시(예를 들어, 캐릭터의 표면)를 디바이스가 곧바로 인식할 수 있다. 다만, 캐릭터의 본이 빠르게 움직이는 경우에는 충돌 예측률이 낮아질 수 있다. 즉, 이전 프레임에서는 디바이스가 본과 캐릭터의 메시 사이의 거리가 충분히 멀어 충돌 위험이 없다고 판단할 수 있으나, 바로 다음 프레임에서는 본의 위치가 급변하므로 이미 캐릭터의 메시와 본이 충돌해 있는 상황이 발생할 수 있다.For example, if the character's bones move slowly, the collision prediction rate may be high. Since the position of the bone moves slightly every frame, the device can immediately recognize the character's mesh (for example, the character's surface) that is gradually getting closer during collision risk inspection. However, if the character's bones move quickly, the collision prediction rate may be low. In other words, in the previous frame, the device may determine that there is no risk of collision because the distance between the bone and the character's mesh is sufficiently large, but in the very next frame, the position of the bone changes suddenly, so a situation may occur where the character's mesh and the bone have already collided. You can.

즉, 본의 속력에 따라 충돌 예측률이 달라지므로, 디바이스는 본의 속력을 우선적으로 산출할 수 있다.In other words, since the collision prediction rate varies depending on the bone's speed, the device can preferentially calculate the bone's speed.

S2207 단계에서, 디바이스는 캐릭터의 본의 속력에 따라 검사 길이를 보정할 수 있다. 즉, S2205단계에서 산출된 본의 속력을 기초로 검사 길이를 보정할 수 있다. 디바이스는 캐릭터의 본의 속력이 증가하면 검사 길이를 증가시키고, 캐릭터의 본의 속력이 감소하면 검사 길이를 감소시킬 수 있다.In step S2207, the device may correct the inspection length according to the speed of the character's bones. In other words, the inspection length can be corrected based on the bone speed calculated in step S2205. The device can increase the inspection length when the speed of the character's bones increases, and decrease the inspection length when the speed of the character's bones decreases.

캐릭터의 본의 속력이 감소하는 경우에는 캐릭터의 본이 느리게 움직이므로, 충돌 예측률이 높을 수 있다. 따라서, 검사 길이가 짧아지더라도 충돌 위험 검사에서 디바이스가 충돌 위험을 곧바로 인식하여 충돌을 회피할 수 있다. 오히려 검사 길이가 긴 경우에는 충돌 위험이 낮음에도 디바이스가 충돌 위험이 있다고 판단할 수 있다. 이로 인해 캐릭터의 신체 간 충돌을 회피하더라도 캐릭터의 움직임이 부자연스러워질 수 있다.When the speed of the character's bones decreases, the collision prediction rate may be high because the character's bones move slowly. Therefore, even if the test length is shortened, the device can immediately recognize the risk of collision in the collision risk test and avoid collision. Rather, if the test length is long, the device may be judged to be at risk of collision even though the risk of collision is low. Because of this, even if collisions between the characters' bodies are avoided, the character's movements may become unnatural.

또한, 캐릭터의 본의 속력이 증가하는 경우에는 캐릭터의 본이 빠르게 움직이므로, 충돌 예측률이 낮아질 수 있다. 따라서, 검사 길이를 증가시켜 충돌 위험 검사에서 보다 빠르게 디바이스가 충돌 위험을 인식할 수 있다. 만약 캐릭터의 본의 속력이 증가함에도 불구하고 검사 길이가 짧게 유지되는 경우, 충돌 위험이 높음에도 디바이스가 충돌 직전까지 충돌 위험이 있다는 것을 인식하지 못할 수 있다. 이로 인해 디바이스가 충돌 회피를 위한 동작을 적용하지 못하고 캐릭터의 신체 간 충돌이 발생할 수 있다.Additionally, when the speed of the character's bones increases, the collision prediction rate may decrease because the character's bones move quickly. Therefore, by increasing the test length, the device can recognize the risk of collision more quickly in the collision risk test. If the inspection length remains short despite the character's bone speed increasing, the device may not recognize that there is a risk of collision until just before the collision, even though the risk of collision is high. As a result, the device may not be able to apply collision avoidance actions and a collision between the characters' bodies may occur.

S2209단계에서, 디바이스는 검사 길이를 통해 충돌 가능성을 예측할 수 있다. 즉, 디바이스는 검사 벡터와 동일한 방향으로 측정된 캐릭터의 본의 일 지점으로부터 캐릭터의 표면(예를 들어, 캐릭터의 메시)까지의 거리가 검사 길이보다 짧은 경우, 충돌 가능성이 있는 것으로 예측할 수 있다. 이때, 검사 벡터의 일단은 충돌 위험을 측정하기 위한 캐릭터의 본 상에 고정되어 있을 수 있고, 검사 벡터의 타단은 검사 벡터의 일단으로부터 검사 방향으로 검사 길이만큼 이격될 수 있다. 디바이스는 프레임 상에서 검사 벡터의 타단이 캐릭터의 메시와 접촉하는 경우, 캐릭터의 신체 간 충돌 가능성이 있는 것으로 예측할 수 있다.In step S2209, the device can predict the possibility of collision through the inspection length. That is, if the distance from a point of the character's bone measured in the same direction as the inspection vector to the surface of the character (eg, the character's mesh) is shorter than the inspection length, the device may predict that there is a possibility of collision. At this time, one end of the test vector may be fixed on the main body of the character for measuring the risk of collision, and the other end of the test vector may be spaced apart from one end of the test vector by the test length in the test direction. If the other end of the inspection vector in the frame contacts the character's mesh, the device may predict that there is a possibility of collision between the character's bodies.

S2211단계에서, 디바이스는 충돌 가능성을 기초로 회피 벡터를 산출할 수 있다. 디바이스는 충돌 가능성이 있는 것으로 예측된 경우, 캐릭터의 표면 및 캐릭터의 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출할 수 있다. 여기서, 회피 벡터는 방향성을 가지는 벡터일 수 있으며, 회피 벡터의 크기는 1일 수 있다.In step S2211, the device may calculate an avoidance vector based on the possibility of collision. If it is predicted that there is a possibility of collision, the device may calculate an avoidance vector based on at least one of the character's surface and the movement direction of the character's upper limbs. Here, the avoidance vector may be a vector with direction, and the size of the avoidance vector may be 1.

일 실시예에 따르면, 디바이스는 충돌 검사 결과 도출된 충돌 면의 법선 벡터를 회피 벡터로 산출할 수 있다. 다른 실시예에 따르면, 디바이스는 충돌 면의 법선 벡터 및 캐릭터의 상지 또는 하박의 이동 방향과 동일한 방향을 가지는 벡터를 이용하여 회피 벡터를 산출할 수 있다. 또 다른 실시예에 따르면, 디바이스는 충돌 면의 법선 벡터, 캐릭터의 상지 또는 하박의 이동 방향과 동일한 방향을 가지는 벡터, 및 캐릭터의 중심 면의 법선 벡터를 이용하여 회피 벡터를 산출할 수 있다. According to one embodiment, the device may calculate the normal vector of the collision surface derived as a collision test result as an avoidance vector. According to another embodiment, the device may calculate the avoidance vector using a normal vector of the collision surface and a vector having the same direction as the movement direction of the character's upper or lower arm. According to another embodiment, the device may calculate the avoidance vector using the normal vector of the collision surface, a vector having the same direction as the movement direction of the character's upper or lower arm, and the normal vector of the central surface of the character.

그 결과, 디바이스는 회피 벡터 및 가중치를 기초로 회피 오프셋을 산출할 수 있다. 회피 오프셋은 모션 캡처 원본 데이터로부터 캐릭터의 본의 위치를 조정하기 위한 벡터 값을 지시할 수 있다. 그리고, 디바이스는 매 프레임마다 회피 오프셋에 가산하거나 감산할 증감 벡터를 산출할 수 있다. 그리고, 디바이스는 이전 프레임의 회피 오프셋의 크기에 산출된 벡터를 누적하는 방식으로 회피 오프셋을 산출할 수 있다.As a result, the device can calculate the avoidance offset based on the avoidance vector and weight. The avoidance offset may indicate a vector value for adjusting the position of the character's bones from the motion capture original data. Additionally, the device can calculate an increase/decrease vector to be added to or subtracted from the avoidance offset every frame. Additionally, the device can calculate the avoidance offset by accumulating the calculated vector to the size of the avoidance offset of the previous frame.

이후, 디바이스는 캐릭터의 본에 회피 오프셋을 적용할 수 있다. 일 실시예에 따르면, 디바이스는 캐릭터의 상지에 해당하는 본에 회피 오프셋을 적용할 수 있다. 캐릭터의 본의 상지의 위치는 모션 캡처 원본 이미지에 대응되는 기존의 캐릭터의 본의 상지의 위치에 회피 오프셋을 가산한 값으로 결정될 수 있다. The device can then apply an avoidance offset to the character's bones. According to one embodiment, the device may apply an avoidance offset to the bone corresponding to the upper limb of the character. The position of the upper limb of the character's bone may be determined by adding an avoidance offset to the position of the upper limb of the existing character's bone corresponding to the motion capture original image.

디바이스는 캐릭터의 본을 기초로 캐릭터의 이미지를 생성할 수 있다. 즉, 디바이스는 회피 오프셋을 적용한 캐릭터의 본을 기초로 캐릭터의 이미지를 생성할 수 있다. The device can create an image of a character based on the character's bones. In other words, the device can create an image of a character based on the character's bones to which an avoidance offset has been applied.

캐릭터의 본을 생성하고, 생성한 본을 기초로 캐릭터의 신체 간 충돌 위험을 예측하는 구체적인 실시예 및 동작은 아래에 설명되는 바와 같을 수 있다. Specific embodiments and operations for generating a character's bone and predicting the risk of collision between the character's bodies based on the generated bone may be as described below.

도 4는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본의 일 실시예를 도시한 도면이다. FIG. 4 is a diagram illustrating an example of character bones generated as a result of an interference avoidance operation between the bodies of an animation character according to the present disclosure.

도 4를 참조하면, 사용자의 이미지를 기초로 생성된 캐릭터(400)의 본 및 메시가 도시된 바와 같이 생성될 수 있다. Referring to FIG. 4, the bones and mesh of the character 400 created based on the user's image may be generated as shown.

캐릭터(400)의 신체 간 충돌의 위험을 검사하기 위해서, 디바이스는 모션 캡쳐 데이터를 그대로 적용했을 때 캐릭터의 손의 위치를 확인할 수 있다. 다만, 기존의 애니메이션 생성 방식을 이용하는 디바이스는 생성한 캐릭터의 애니메이션의 트랜스 폼 값 만을 획득할 수 있다. 즉, 생성된 캐릭터의 본에 곧바로 간섭 회피 솔루션을 적용할 경우, 디바이스는 간섭 회피 솔루션 적용 이후의 트랜스 폼 값 만을 획득한다. 따라서, 디바이스는 원본 모션 캡쳐 데이터에 기초한 사용자의 손의 위치를 획득할 수 없다. In order to check the risk of collision between the bodies of the character 400, the device can check the position of the character's hands when motion capture data is applied as is. However, devices using existing animation generation methods can only obtain the transform value of the animation of the created character. In other words, when an interference avoidance solution is applied directly to the bones of a created character, the device acquires only the transform value after applying the interference avoidance solution. Therefore, the device cannot obtain the position of the user's hand based on the original motion capture data.

따라서, 원본 모션 캡처 데이터에 기초한 사용자의 손의 위치 정보를 획득하기 위해서, 디바이스는 캐릭터의 메시에 스키닝되지 않으면서 모션 캡쳐 데이터를 그대로 반영하는 별도의 본을 사용할 수 있다. 일 실시예에 따르면, 디바이스는 게임 엔진의 가상 본 기능을 사용해 캐릭터(400)의 실제 본(410)과는 다른 별도의 본(420)을 생성할 수 있다. 구체적으로, 디바이스는 모션 캡처 데이터 중에서, 쇄골부터 손까지의 이미지를 기초로 캐릭터(400)의 상지에 해당하는 별도의 본(420)을 생성할 수 있다. 그리고 캐릭터(400)의 신체 간 간섭의 위험을 감지한 경우, 디바이스는 스트리밍 중인 모션 캡쳐 데이터를 기초로 생성된 별도의 본(420)을 연산에 이용할 수 있다. 그리고 디바이스는 별도의 본(420)을 이용하여 회피 솔루션을 적용하고, 회피 솔루션 적용 결과 값을 캐릭터(400)에 적용할 수 있다. Therefore, in order to obtain location information of the user's hand based on the original motion capture data, the device can use a separate bone that reflects the motion capture data without being skinned to the character's mesh. According to one embodiment, the device may use the virtual bone function of the game engine to create a separate bone 420 that is different from the actual bone 410 of the character 400. Specifically, the device may generate a separate bone 420 corresponding to the upper limb of the character 400 based on the image from the collarbone to the hand among the motion capture data. And when a risk of interference between the bodies of the character 400 is detected, the device can use a separate bone 420 generated based on streaming motion capture data for calculation. Additionally, the device can apply an avoidance solution using a separate bone 420 and apply the resulting value of the avoidance solution application to the character 400.

도 5는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 검사 시작 선분 및 목표 선분의 일 실시예를 도시한 도면이다. FIG. 5 is a diagram illustrating an example of an inspection start line segment and a target line segment set on the bones of an animation character generated as a result of an interference avoidance operation between the bodies of an animation character according to the present disclosure.

도 5를 참조하면, 신체 비율 차이에 의해 충돌이 발생하는 가장 주된 위치는 팔꿈치부터 손까지, 즉 상지의 하박(510) 부위일 수 있다. 그리고 하박(510)과 충돌할 가능성이 높은 다른 신체 부위는 머리(521), 몸통(522), 하지(523) 부위일 수 있다. 따라서, 디바이스는 캐릭터의 하박(510)에 해당하는 본을 검사 시작 선분으로 설정할 수 있다. 그리고, 하박(510)과 충돌할 가능성이 높은 신체 부위인 머리(5210), 몸통(522) 및 하지(523)에 해당하는 본을 검사 목표점 및 검사 목표 선분으로 설정할 수 있다. Referring to FIG. 5, the main location where collision occurs due to differences in body proportions may be from the elbow to the hand, that is, the lower arm 510 of the upper limb. And other body parts that are likely to collide with the lower arm 510 may be the head 521, torso 522, and lower limbs 523. Accordingly, the device can set the bone corresponding to the character's lower arm 510 as the inspection start line segment. Additionally, bones corresponding to the head 5210, torso 522, and lower extremities 523, which are body parts likely to collide with the lower arm 510, can be set as the test target point and test target line segment.

도 5에 도시된 캐릭터의 본의 검사 시작 선분 및 검사 목표 선분 상에서 충돌 위험 검사를 위한 시작점 및 목표점을 설정한 구체적인 실시예는 아래에 설명하는 바와 같을 수 있다. A specific embodiment of setting the starting point and target point for the collision risk inspection on the inspection start line segment and inspection target line segment of the character's bone shown in FIG. 5 may be as described below.

도 6은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 시작점 및 목표점의 일 실시예를 도시한 도면이다. FIG. 6 is a diagram illustrating an example of a starting point and a target point set on the bones of an animation character generated as a result of an interference avoidance operation between the bodies of an animation character according to the present disclosure.

디바이스는 캐릭터(600)의 본의 시작 선분으로부터 목표 선분을 향해 충돌 위험 검사를 수행할 수 있다. 여기서, 디바이스는 시작 선분과 목표 선분 사이에서 가장 가까운 점을 시작점과 목표점으로 설정할 수 있다. The device may perform a collision risk check from the starting line segment of the bone of the character 600 toward the target line segment. Here, the device can set the closest point between the start line segment and the target line segment as the start point and target point.

일 실시예에 따르면, 디바이스는 캐릭터(600)의 하박의 점들 중에서, 캐릭터의 머리와 가장 가까운 점을 제1 시작점(611)으로 설정하고, 캐릭터의 머리를 제1 목표점(621)으로 설정할 수 있다. 또한, 디바이스는 캐릭터의 하박의 점들 중에서 몸통에 가장 가까운 점을 제2 시작점(612)으로 설정하고, 캐릭터의 몸통의 점들 중에서, 제2 시작점(612)에서 가장 가까운 점을 제2 목표점(622)으로 설정할 수 있다. 그리고, 디바이스는 캐릭터의 하박의 점들 중에서 하지에 가장 가까운 점을 제3 시작점(613)으로 설정하고, 캐릭터의 하지의 점들 중에서, 제3 시작점(613)에서 가장 가까운 점을 제3 목표점(623)으로 설정할 수 있다. According to one embodiment, the device may set the point closest to the character's head among the lower arm points of the character 600 as the first starting point 611 and set the character's head as the first target point 621. . Additionally, the device sets the point closest to the torso among the points on the character's lower arm as the second starting point 612, and sets the point closest to the second starting point 612 among the points on the character's torso as the second target point 622. It can be set to . Then, the device sets the point closest to the lower limb of the character as the third starting point 613, and sets the point closest to the third starting point 613 among the points of the character's lower arm as the third target point 623. It can be set to .

즉, 디바이스는 캐릭터(600)의 시작 선분과 목표 선분들 각각 사이의 최근접점을 충돌 위험 검사를 위한 시작점과 목표점으로 설정할 수 있다. 그리고 디바이스는 시작점으로부터 목표점을 향하는 방향을 충돌 위험 검사를 위한 검사 방향으로 설정할 수 있다. That is, the device can set the closest point between each of the start line segments and target line segments of the character 600 as the start point and target point for the collision risk test. And the device can set the direction from the starting point to the target point as the inspection direction for collision risk inspection.

도 6에 도시된 충돌 위험 검사를 위해 설정된 시작점 및 목표점을 기초로 충돌 가능성을 예측하는 구체적인 실시예는 아래에 설명하는 바와 같을 수 있다. A specific embodiment of predicting the possibility of collision based on the starting point and target point set for the collision risk inspection shown in FIG. 6 may be as described below.

도 7은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 위한 충돌 가능성을 예측하는 검사 길이를 설명하기 위한 도면이다.FIG. 7 is a diagram illustrating a test length for predicting the possibility of collision for the interference avoidance operation between the bodies of an animation character according to the present disclosure.

도 7을 참조하면, 디바이스는 캐릭터(2300)의 하박과 캐릭터(2300)의 하지 사이의 충돌 가능성을 예측할 수 있다. 이 경우, 디바이스는 캐릭터(2300)의 본 상에 제3 시작점(예를 들어, 도 6의 제3 시작점(613))을 기준점(2310)으로 설정할 수 있다. 다만, 본 발명은 이에 한정되지 않으며, 다른 실시예에 따르면, 디바이스는 캐릭터(2300)의 하박과 캐릭터(2300)의 머리 또는 몸통 사이의 충돌 가능성을 예측할 수 있다. 이 경우, 디바이스는 캐릭터(2300)의 본 상에 제1 시작점(예를 들어, 캐릭터의 머리와의 충돌 가능성을 예측하는 경우, 도 6의 제1 시작점(611)) 또는 제2 시작점(예를 들어, 캐릭터의 몸통과의 충돌 가능성을 예측하는 경우, 도 6의 제2 시작점(612))을 기준점으로 설정할 수 있다.Referring to FIG. 7 , the device can predict the possibility of a collision between the lower arm of the character 2300 and the lower arm of the character 2300. In this case, the device may set the third starting point (eg, the third starting point 613 in FIG. 6) on the main character 2300 as the reference point 2310. However, the present invention is not limited to this, and according to another embodiment, the device may predict the possibility of a collision between the lower arm of the character 2300 and the head or body of the character 2300. In this case, the device determines a first starting point (e.g., the first starting point 611 in FIG. 6 when predicting the possibility of collision with the character's head) or a second starting point (e.g., For example, when predicting the possibility of collision with the character's torso, the second starting point 612 in FIG. 6 can be set as a reference point.

디바이스는 기준점(2310)을 기준으로 캐릭터의 신체 간 충돌 위험 검사를 수행할 수 있다. 구체적으로, 디바이스는 검사 벡터(2320)를 설정할 수 있다. 검사 벡터(2320)는 기준점(2310)으로부터 검사 방향으로 연장될 수 있으며, 검사 길이(2321)는 검사 벡터(2320)가 연장된 길이를 의미할 수 있다.The device may perform a collision risk check between the character's bodies based on the reference point 2310. Specifically, the device may set the test vector 2320. The test vector 2320 may extend from the reference point 2310 in the test direction, and the test length 2321 may refer to the length to which the test vector 2320 is extended.

이때, 검사 벡터(2320)의 일단(2320a)은 기준점(2310) 상에 고정되어 있을 수 있고, 검사 벡터(2320)의 타단(2320b)은 검사 벡터(2320)의 일단(2320a)으로부터 검사 방향으로 검사 길이(2321)만큼 이격될 수 있다. 검사 벡터(2320)의 타단(2320b)이 캐릭터(2300)의 메시(예컨대, 캐릭터(2300)의 표면)에 접촉한 경우, 디바이스는 충돌 가능성이 있는 것으로 예측할 수 있다. 즉, 검사 방향으로 측정된 캐릭터(2300)의 기준점(2310)으로부터 캐릭터(2300)의 메시까지의 거리가 검사 길이(2321)보다 짧은 경우, 디바이스는 충돌 가능성이 있는 것으로 예측할 수 있다.At this time, one end (2320a) of the test vector 2320 may be fixed on the reference point 2310, and the other end (2320b) of the test vector 2320 may be moved in the test direction from one end (2320a) of the test vector 2320. They can be spaced apart by an inspection length (2321). When the other end 2320b of the test vector 2320 touches the mesh of the character 2300 (eg, the surface of the character 2300), the device may predict that there is a possibility of collision. That is, if the distance from the reference point 2310 of the character 2300 measured in the inspection direction to the mesh of the character 2300 is shorter than the inspection length 2321, the device can predict that there is a possibility of collision.

캐릭터(2300)의 본의 속력이 느리거나 느려지는 경우에는 충돌 예측률이 높아질 수 있다. 즉, 캐릭터(2300)의 본의 속력이 느리거나 느려지는 경우, 매 프레임마다 손의 위치가 조금씩 이동할 수 있다. 따라서, 검사 밀도가 높아지므로 검사 길이(2321)가 일정하더라도 디바이스는 검사 벡터(2320)의 타단(2320b)이 캐릭터(2300)의 메시에 접촉할 때 충돌 가능성을 예측하여 충돌 회피를 위한 동작을 수행할 수 있다. 즉, 캐릭터(2300)의 신체 간 충돌이 발생하기 전에 검사 벡터(2320)를 통해 충돌 가능성을 예측하므로, 디바이스가 충돌 가능성을 예측한 직후에 충돌 회피를 위한 동작을 수행하더라도 캐릭터(2300)의 신체 간 충돌을 회피할 수 있다.If the speed of the bone of the character 2300 is slow or slows down, the collision prediction rate may increase. That is, if the speed of the bone of the character 2300 is slow or slows down, the hand position may move slightly every frame. Therefore, because the inspection density increases, even if the inspection length 2321 is constant, the device predicts the possibility of collision when the other end 2320b of the inspection vector 2320 contacts the mesh of the character 2300 and performs an operation to avoid collision. can do. In other words, since the possibility of collision is predicted through the check vector 2320 before a collision occurs between the bodies of the character 2300, even if the device performs an action to avoid collision immediately after predicting the possibility of collision, the body of the character 2300 Conflicts can be avoided.

다만, 캐릭터(2300)의 본의 속력이 빠른 경우에는 속력이 느린 경우와 달리 충돌 가능성 예측이 어려울 수 있다. 따라서, 검사 길이(2321)가 일정한 경우 충돌 예측률이 낮아질 수 있다.However, when the speed of the bone of the character 2300 is high, it may be difficult to predict the possibility of collision, unlike when the speed is slow. Therefore, if the inspection length 2321 is constant, the collision prediction rate may be lowered.

도 8은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 위한 충돌 가능성을 예측하는 검사 길이를 설명하기 위한 도면이다.FIG. 8 is a diagram illustrating a test length for predicting the possibility of collision for the interference avoidance operation between the bodies of an animation character according to the present disclosure.

도 8을 참조하면, 캐릭터(2400)의 본의 속력이 빠르거나 빨라지는 경우에는 충돌 예측률이 낮아질 수 있다. 즉, 캐릭터(2400)의 본의 속력이 빠르거나 빨라지는 경우, 매 프레임마다 본의 위치가 크게 이동할 수 있다. 따라서, 검사 밀도가 낮아지므로 검사 길이(2421)가 일정한 경우, 검사 벡터(2420)의 타단(2420b)이 캐릭터(2400)의 메시에 접촉할 때 이미 캐릭터(2400)의 신체 간 충돌이 발생한 상태일 수 있다. 따라서, 디바이스가 충돌 가능성을 예측하여 충돌 회피를 위한 동작을 수행하기에 늦은 상태이므로, 캐릭터(2400)의 신체 간 충돌을 회피할 수 없다.Referring to FIG. 8, when the speed of the bone of the character 2400 is fast or increases, the collision prediction rate may be lowered. That is, when the speed of the bone of the character 2400 is fast or increases, the position of the bone may move significantly every frame. Therefore, when the inspection density 2421 is constant because the inspection density is lowered, a collision between the bodies of the character 2400 may have already occurred when the other end 2420b of the inspection vector 2420 contacts the mesh of the character 2400. You can. Accordingly, since it is late for the device to predict the possibility of collision and perform actions to avoid collision, it is not possible to avoid collision between the bodies of the character 2400.

이와 같이 검사 길이(2421)가 일정하게 유지되는 경우, 디바이스는 캐릭터(2400)의 본의 속력에 따라 일관되지 못한 검사 결과(예를 들어, 충돌 가능성 예측 결과)를 도출할 수 있다. 따라서, 캐릭터(2400)의 신체 간 간섭 회피 동작의 신뢰성이 저하될 수 있다. 따라서, 디바이스는 캐릭터(2400)의 본의 속력에 따라 검사 길이(2421)를 보정하는 동작을 수행할 수 있다.In this way, when the test length 2421 is maintained constant, the device may produce inconsistent test results (for example, collision possibility prediction results) depending on the speed of the bone of the character 2400. Accordingly, the reliability of the inter-body interference avoidance operation of the character 2400 may be reduced. Accordingly, the device can perform an operation to correct the test length 2421 according to the speed of the bone of the character 2400.

도 9는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 위한 충돌 가능성을 예측하는 검사 길이의 일 실시예를 도시한 도면이다.FIG. 9 is a diagram illustrating an example of a test length for predicting the possibility of collision for the interference avoidance operation between the bodies of an animation character according to the present disclosure.

도 9를 참조하면, 캐릭터(2500)의 본의 속력에 따라 검사 길이를 보정할 수 있다. 예를 들어, 캐릭터(2500)의 본의 속력이 증가하는 경우, 디바이스는 검사 길이(2521)를 증가시킬 수 있다.Referring to FIG. 9, the test length can be corrected according to the speed of the bone of the character 2500. For example, if the speed of the bone of the character 2500 increases, the device may increase the inspection length 2521.

캐릭터(2500)의 본의 속력이 느린 초반에는 검사 길이(2521)가 짧을 수 있다. 이후, 캐릭터(2500)의 본의 속력이 증가하면서 검사 길이(2521') 또한 증가할 수 있다. 이때, 검사 길이(2521)는 캐릭터(2500)의 본의 속력에 비례하여 증가할 수 있다. 따라서, 캐릭터(2500)의 본의 속력이 빨라지더라도 디바이스가 검사 길이(2521') 및 검사 벡터(2520)를 통해 보다 빨리 충돌 가능성을 예측할 수 있다. 즉, 디바이스가 충돌 가능성을 보다 빨리 예측하므로, 기존보다 캐릭터(2500)의 신체 간 거리가 먼 경우부터 디바이스가 충돌 회피를 위한 동작을 수행할 수 있다. 따라서, 캐릭터(2500)의 본의 속력이 빠르거나, 빨라지는 경우에도 디바이스의 충돌 예측률이 높게 유지될 수 있다. In the beginning, when the bone speed of the character 2500 is slow, the inspection length 2521 may be short. Thereafter, as the speed of the bone of the character 2500 increases, the inspection length 2521' may also increase. At this time, the inspection length 2521 may increase in proportion to the speed of the bone of the character 2500. Therefore, even if the speed of the bone of the character 2500 increases, the device can predict the possibility of collision more quickly through the test length 2521' and the test vector 2520. In other words, since the device predicts the possibility of collision more quickly, the device can perform actions to avoid collision even when the distance between the bodies of the characters 2500 is greater than before. Accordingly, even when the bone speed of the character 2500 is fast or becomes faster, the collision prediction rate of the device can be maintained high.

또한, 캐릭터(2500)의 본의 속력이 감소하는 경우, 디바이스는 검사 길이(2521)를 감소시킬 수 있다. 즉, 캐릭터(2500)의 본의 속력이 감소하면서 검사 길이(2521) 또한 감소할 수 있다. 검사 길이(2521)가 짧아짐으로써, 디바이스가 충돌 가능성을 보다 나중에 예측하여 충돌 회피를 위한 동작을 수행할 수 있다. 따라서, 디바이스가 캐릭터(2500)의 신체 간 충돌 가능성을 미리 예측하여 캐릭터(2500)에 충돌 회피를 위한 동작을 미리 적용함으로써 발생하는 부자연스러움을 방지할 수 있다. 즉, 캐릭터(2500)의 본의 위치가 실제 사용자의 신체의 위치와 유사해질 수 있다. 다만, 본 발명은 이에 한정되지 않으며, 다른 실시예에 따르면, 디바이스는 캐릭터(2500)의 본의 속력이 감소하는 경우에는 검사 길이(2521)를 일정하게 유지할 수 있다.Additionally, when the speed of the bone of the character 2500 decreases, the device may decrease the inspection length 2521. That is, as the speed of the bone of the character 2500 decreases, the inspection length 2521 may also decrease. As the test length 2521 is shortened, the device can predict the possibility of collision at a later date and perform operations to avoid collision. Therefore, the device can prevent unnaturalness that occurs by predicting the possibility of collision between the bodies of the character 2500 in advance and applying a collision avoidance motion to the character 2500 in advance. In other words, the position of the bones of the character 2500 may become similar to the position of the actual user's body. However, the present invention is not limited to this, and according to another embodiment, the device may maintain the inspection length 2521 constant when the speed of the bone of the character 2500 decreases.

디바이스가 캐릭터(2500)의 본의 속력에 따라 검사 길이(2521)를 보정함으로써, 디바이스는 캐릭터(2500)의 본의 속력에 무관하게 일관된 검사 결과를 도출할 수 있다. 따라서, 캐릭터(2500)의 신체 간 충돌 예측률의 정확도가 향상될 수 있다.By correcting the test length 2521 according to the speed of the bone of the character 2500, the device can derive consistent test results regardless of the speed of the bone of the character 2500. Accordingly, the accuracy of the collision prediction rate between the bodies of the character 2500 can be improved.

그리고 캐릭터(2500)의 본의 속력을 산출하는 동작은 아래와 같이 수행될 수 있다.And the operation of calculating the bone speed of the character 2500 can be performed as follows.

도 10은 본 개시에 따른 캐릭터의 본의 속력을 산출하는 동작의 일 실시예를 도시한 흐름도이다. Figure 10 is a flowchart illustrating an example of an operation for calculating the bone speed of a character according to the present disclosure.

도 10을 참조하면, S2601 단계에서, 디바이스는 프레임당 본의 이동 거리를 산출할 수 있다. 즉, 디바이스는 이전 프레임과 다음 프레임 사이에 캐릭터의 본이 이동한 거리를 계산할 수 있다. 프레임당 본의 이동 거리는 이전 프레임과 다음 프레임 각각에서 캐릭터의 본의 동일한 지점 사이의 거리일 수 있다.Referring to FIG. 10, in step S2601, the device can calculate the moving distance of the bone per frame. That is, the device can calculate the distance the character's bones moved between the previous frame and the next frame. The distance a bone moves per frame may be the distance between the same point of the character's bone in each of the previous and next frames.

다만, 단순히 두 프레임 사이에서 캐릭터의 본이 이동한 거리만을 기초로 캐릭터의 본의 속력을 산출한다면 가변적인 프레임레이트가 문제가 될 수 있다. 실시간으로 렌더링되는 영상에서는 매 순간마다 프레임레이트가 변화할 수 있다. 예를 들어, 캐릭터의 움직임이 많지 않은 정적인 장면에서는 렌더링할 양이 적으므로, 많은 프레임레이트가 나올 수 있다. 다만, 캐릭터의 움직임이 많은 역동적인 장면에서는 렌더링할 양이 많으므로 적은 프레임레이트가 나올 수 있다.However, if the speed of a character's bone is calculated simply based on the distance the character's bone moves between two frames, the variable frame rate can be a problem. In videos rendered in real time, the frame rate may change at every moment. For example, in a static scene where the character does not move much, the amount to be rendered is small, so a high frame rate can occur. However, in dynamic scenes with a lot of character movement, there may be a low frame rate due to the large amount of rendering.

따라서, 캐릭터의 본이 일정한 속도로 움직인다고 하더라도 프레임레이트에 따라 서로 다른 결과가 얻어질 수 있다. 즉, 캐릭터의 본이 동일한 속력으로 움직이지만, 프레임레이트가 서로 다른 경우 프레임당 본의 이동 거리가 서로 다르므로, 디바이스는 서로 다른 속력이라고 판단할 수 있다.Therefore, even if the character's bones move at a constant speed, different results may be obtained depending on the frame rate. In other words, the character's bones move at the same speed, but when the frame rates are different, the moving distances of the bones per frame are different, so the device can determine that they are moving at different speeds.

이와 같이 프레임당 본의 이동 거리만으로 캐릭터의 본의 속력을 산출한다면 속력의 시간 단위는 1 프레임이 되며, 프레임레이트에 따라 일관된 속력을 얻을 수 없다. 따라서, 프레임레이트와 무관하게 일관된 속력을 얻기 위해서는 속력의 시간 단위를 1초로 변환해야 한다.In this way, if the speed of a character's bones is calculated only based on the bone's movement distance per frame, the time unit of speed is 1 frame, and consistent speed cannot be obtained depending on the frame rate. Therefore, in order to obtain consistent speed regardless of frame rate, the time unit of speed must be converted to 1 second.

S2603 단계 및 S2605 단계에서, 디바이스는 프레임당 본의 이동 거리를 초 당 본의 이동 거리로 변환할 수 있다. 즉, 디바이스는 초당 프레임 수를 산출하고, 초당 프레임 수와 프레임당 본의 이동 거리를 곱하여 초당 본의 이동 거리를 산출할 수 있다.In steps S2603 and S2605, the device may convert the bone movement distance per frame into the bone movement distance per second. In other words, the device can calculate the number of frames per second and calculate the moving distance of the bone per second by multiplying the number of frames per second and the moving distance of the bone per frame.

구체적으로, 초당 프레임 수를 산출하기 위해 디바이스는 델타 타임을 산출할 수 있다. 델타 타임은 하나의 프레임을 렌더링하는 데 걸리는 시간을 의미할 수 있다. 디바이스는 1을 델타 타임으로 나눈 값을 산출하여 초당 프레임 수를 산출할 수 있다.Specifically, to calculate the number of frames per second, the device can calculate delta time. Delta time can refer to the time it takes to render one frame. The device can calculate the number of frames per second by calculating 1 divided by delta time.

디바이스는 산출된 초당 프레임 수와 프레임당 본의 이동 거리를 곱한 값을 산출하여 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환할 수 있다. 디바이스가 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환함으로써, 디바이스는 프레임레이트와 무관하게 일관된 속력을 얻을 수 있다. 따라서, 살시간으로 프레임레이트가 변화하는 영상에서도 캐릭터의 본의 속력을 비교적 정확하게 측정할 수 있다. 이로 인해 캐릭터의 신체 간 충돌 예측률의 정확도가 향상될 수 있다.The device can convert the bone's movement distance per frame into the bone's movement distance per second by calculating the product of the calculated number of frames per second and the bone's movement distance per frame. By converting the bone movement distance per frame into the bone movement distance per second, the device can achieve consistent speed regardless of frame rate. Therefore, even in videos where the frame rate changes over time, the speed of the character's bones can be measured relatively accurately. As a result, the accuracy of the collision prediction rate between the characters' bodies can be improved.

도 11은 본 개시에 따른 캐릭터의 본의 속력이 동일하고, 서로 다른 프레임레이트를 가진 두 이미지를 도시한 도면이다.FIG. 11 is a diagram illustrating two images with the same bone speed of a character and different frame rates according to the present disclosure.

도 11을 참조하면, 양쪽 이미지에서 캐릭터(2700)의 하박의 속력은 동일하고, 프레임레이트는 서로 다를 수 있다. 즉, 왼쪽 이미지의 프레임레이트는 40fps이고, 오른쪽 이미지의 프레임레이트는 20fps이며, 양쪽 이미지는 0.1초 동안의 캐릭터(2700)의 하박의 거리 변화량을 나타낸 이미지일 수 있다.Referring to FIG. 11, the speed of the lower arm of the character 2700 in both images is the same, and the frame rates may be different. That is, the frame rate of the left image is 40fps, the frame rate of the right image is 20fps, and both images may be images showing the change in distance of the lower arm of the character 2700 for 0.1 second.

양쪽 이미지에서 캐릭터(2700)의 하박의 속력은 동일하지만 프레임레이트가 서로 다름으로써, 프레임당 본의 이동 거리가 서로 다를 수 있다. 즉, 왼쪽 이미지의 프레임레이트가 오른쪽 이미지의 프레임레이트의 두 배이므로, 오른쪽 이미지의 프레임당 캐릭터(2720)의 본의 이동 거리가 왼쪽 이미지의 프레임당 캐릭터(2710)의 본의 이동 거리의 약 두 배일 수 있다. 이와 같이 프레임당 본의 이동 거리만으로 캐릭터(2700)의 본의 속력을 산출한다면 속력의 시간 단위는 1 프레임이 되며, 디바이스는 프레임레이트에 따라 일관된 속력을 얻을 수 없다. 따라서, 디바이스는 속력의 시간 단위를 1초로 변환할 수 있다.In both images, the speed of the lower arm of the character 2700 is the same, but the frame rates are different, so the moving distance of the bone per frame may be different. That is, since the frame rate of the left image is twice that of the right image, the moving distance of the bones of the character 2720 per frame of the right image is about twice the moving distance of the bones of the character 2710 per frame of the left image. It could be a boat. In this way, if the speed of the bone of the character 2700 is calculated using only the moving distance of the bone per frame, the time unit of speed is 1 frame, and the device cannot obtain consistent speed depending on the frame rate. Therefore, the device can convert the time unit of speed to 1 second.

디바이스는 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환할 수 있다. 즉, 디바이스는 초당 프레임 수를 산출하고, 초당 프레임 수와 프레임당 본의 이동 거리를 곱하여 초당 본의 이동 거리를 산출할 수 있다.The device can convert the bone movement distance per frame to the bone movement distance per second. In other words, the device can calculate the number of frames per second and calculate the moving distance of the bone per second by multiplying the number of frames per second and the moving distance of the bone per frame.

구체적으로, 왼쪽 이미지에서 초당 프레임 수는 4frames/0.1s이므로, 40 fps일 수 있고, 오른쪽 이미지에서 초당 프레임 수는 2frames/0.1s이므로, 20fps일 수 있다. 프레임당 본의 이동 거리는 오른쪽 이미지가 왼쪽 이미지의 약 두 배이므로, 오른쪽 이미지의 프레임당 본의 이동 거리는 2a cm/frame(여기서, a는 0보다 큰 상수)이고, 왼쪽 이미지의 프레임당 본의 이동 거리는 약 a cm/frame일 수 있다. 따라서, 결과적으로 왼쪽 이미지의 초당 본의 이동 거리는 약 40a cm/s이고, 오른쪽 이미지의 초당 본의 이동 거리는 약 40a cm/s일 수 있다. 즉, 디바이스는 서로 다른 프레임레이트에도 불구하고 실질적으로 동일한 속력을 얻을 수 있다. 따라서, 실시간으로 프레임레이트가 변화하더라도 일관된 속력을 얻을 수 있다.Specifically, in the left image, the number of frames per second is 4 frames/0.1s, so it may be 40 fps, and in the right image, the number of frames per second is 2 frames/0.1s, so it may be 20 fps. The distance the bone moves per frame is approximately twice that of the left image in the right image, so the distance the bone moves per frame in the right image is 2a cm/frame (where a is a constant greater than 0), and the distance the bone moves per frame in the left image is 2a cm/frame. The distance may be approximately a cm/frame. Therefore, as a result, the moving distance of the bone per second in the left image may be about 40a cm/s, and the moving distance of the bone per second in the right image may be about 40a cm/s. In other words, devices can achieve substantially the same speed despite different frame rates. Therefore, consistent speed can be achieved even if the frame rate changes in real time.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. Methods according to the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. Computer-readable media may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on a computer-readable medium may be specially designed and constructed for the present invention or may be known and usable by those skilled in the computer software art.

컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media include hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The above-described hardware device may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although the description has been made with reference to the above examples, those skilled in the art will understand that various modifications and changes can be made to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You will be able to.

Claims (16)

장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법에 있어서,
사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계;
상기 캐릭터의 본 상에 기준점을 설정하고 상기 기준점을 기준으로 상기 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 검사 길이를 설정하는 단계;
상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하는 단계; 및
상기 검사 길이를 통해 충돌 가능성을 예측하는 단계;를 포함하고,
상기 검사 길이는 상기 캐릭터의 제1 본의 일 지점으로부터 상기 캐릭터의 제2 본의 일 지점으로 향하는 일 벡터의 길이로 적용되고, 상기 일 벡터는 검사 벡터로 정의되며,
상기 검사 길이를 통해 상기 충돌 가능성을 예측하는 단계는,
상기 검사 벡터와 동일한 방향으로 측정된 상기 캐릭터의 본의 일 지점으로부터 상기 캐릭터의 표면까지의 거리가 상기 검사 길이보다 짧은 경우,
상기 충돌 가능성이 있는 것으로 예측하는, 동작 방법.
An operating method for avoiding interference between the bodies of a character executed by at least one processor of a device, comprising:
generating a bone of a character corresponding to the user based on the user's image;
Setting a reference point on the character's bones and setting a test length for performing a collision risk test between the character's bodies based on the reference point;
correcting the inspection length according to the bone speed of the character; and
Comprising: predicting the possibility of collision through the inspection length,
The check length is applied as the length of a vector heading from a point of the first bone of the character to a point of the second bone of the character, and the one vector is defined as a check vector,
The step of predicting the possibility of collision through the inspection length is,
When the distance from a point of the bone of the character measured in the same direction as the inspection vector to the surface of the character is shorter than the inspection length,
An operating method that predicts that the collision is likely.
삭제delete 제1항에 있어서,
상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하는 단계는,
상기 캐릭터의 본의 속력이 증가하면 상기 검사 길이를 증가시키고, 상기 캐릭터의 본의 속력이 감소하면 상기 검사 길이를 감소시키는 것을 특징으로 하는, 동작 방법.
According to paragraph 1,
The step of correcting the inspection length according to the speed of the bone of the character,
An operating method, characterized in that: increasing the inspection length when the speed of the character's bones increases, and decreasing the inspection length when the speed of the character's bones decreases.
삭제delete 제1항에 있어서,
상기 충돌 가능성을 기초로 회피 벡터를 산출하는 단계를 더 포함하고,
상기 충돌 가능성을 기초로 상기 회피 벡터를 산출하는 단계는,
상기 충돌 가능성이 있는 것으로 예측된 경우, 상기 캐릭터의 표면 및 상기 캐릭터의 상지의 이동 방향 중 적어도 하나를 기초로 상기 회피 벡터를 산출하는 단계를 포함하는 것을 특징으로 하는, 동작 방법.
According to paragraph 1,
Further comprising calculating an avoidance vector based on the collision probability,
The step of calculating the avoidance vector based on the collision probability includes:
When it is predicted that there is a possibility of the collision, calculating the avoidance vector based on at least one of the surface of the character and the direction of movement of the upper limbs of the character.
제1항에 있어서,
상기 캐릭터의 본의 속력을 산출하는 단계를 더 포함하고,
상기 캐릭터의 본의 속력을 산출하는 단계는,
프레임당 본의 이동 거리를 산출하는 단계; 및
상기 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환하는 단계를 포함하는 것을 특징으로 하는, 동작 방법.
According to paragraph 1,
Further comprising calculating the bone speed of the character,
The step of calculating the bone speed of the character is,
Calculating the movement distance of the bone per frame; and
A method of operation, comprising converting the bone movement distance per frame into a bone movement distance per second.
제6항에 있어서,
상기 프레임당 본의 이동 거리를 상기 초당 본의 이동 거리로 변환하는 단계는,
초당 프레임 수를 산출하는 단계; 및
상기 초당 프레임 수와 상기 프레임당 본의 이동 거리를 곱한 값을 산출하는 단계를 더 포함하는 것을 특징으로 하는, 동작 방법.
According to clause 6,
The step of converting the bone movement distance per frame into the bone movement distance per second includes:
calculating the number of frames per second; and
The operating method further comprising calculating a value obtained by multiplying the number of frames per second by the moving distance of the bone per frame.
제7항에 있어서,
상기 초당 프레임 수를 산출하는 단계는,
하나의 프레임을 렌더링하는 데 걸리는 시간인 델타 타임을 산출하는 단계; 및
1을 상기 델타 타임으로 나눈 값을 산출하는 단계를 더 포함하는 것을 특징으로 하는, 동작 방법.
In clause 7,
The step of calculating the number of frames per second is,
Calculating delta time, which is the time it takes to render one frame; and
The operating method further comprises calculating a value obtained by dividing 1 by the delta time.
캐릭터의 신체 간 간섭 회피를 위한 동작 방법을 실행하기 위한 시스템의 장치에 있어서,
적어도 하나의 프로그램 명령이 저장된 메모리; 및
상기 적어도 하나의 프로그램 명령을 수행하는 프로세서를 포함하고,
상기 적어도 하나의 프로그램 명령은,
사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하고;
상기 캐릭터의 본 상에 기준점을 설정하고 상기 기준점을 기준으로 상기 캐릭터의 신체 간 충돌 위험 검사를 수행하기 위한 검사 길이를 설정하고;
상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하고; 그리고
상기 검사 길이를 통해 충돌 가능성을 예측하도록 실행되고,
상기 검사 길이는 상기 캐릭터의 제1 본의 일 지점으로부터 상기 캐릭터의 제2 본의 일 지점으로 향하는 일 벡터의 길이로 적용되고, 상기 일 벡터는 검사 벡터로 정의되며,
상기 검사 길이를 통해 상기 충돌 가능성을 예측하도록 실행됨에 있어,
상기 검사 벡터와 동일한 방향으로 측정된 상기 캐릭터의 본의 일 지점으로부터 상기 캐릭터의 표면까지의 거리가 상기 검사 길이보다 짧은 경우,
상기 충돌 가능성이 있는 것으로 예측하는, 장치.
In the apparatus of the system for executing an operation method for avoiding interference between the characters' bodies,
a memory storing at least one program instruction; and
Comprising a processor that executes the at least one program instruction,
The at least one program command is:
generating a bone of a character corresponding to the user based on the user's image;
Setting a reference point on the character's bones and setting a test length for performing a collision risk test between the character's bodies based on the reference point;
correct the inspection length according to the bone speed of the character; and
Executed to predict the possibility of collision through the inspection length,
The check length is applied as the length of a vector heading from a point of the first bone of the character to a point of the second bone of the character, and the one vector is defined as a check vector,
In executing to predict the possibility of collision through the inspection length,
When the distance from a point of the bone of the character measured in the same direction as the inspection vector to the surface of the character is shorter than the inspection length,
A device that predicts that the collision is likely.
삭제delete 제9항에 있어서,
상기 적어도 하나의 프로그램 명령은,
상기 캐릭터의 본의 속력에 따라 상기 검사 길이를 보정하도록 실행됨에 있어,
상기 캐릭터의 본의 속력이 증가하면 상기 검사 길이를 증가시키고, 상기 캐릭터의 본의 속력이 감소하면 상기 검사 길이를 감소시키도록 실행되는 것을 특징으로 하는, 장치.
According to clause 9,
The at least one program command is:
In executing to correct the inspection length according to the speed of the bone of the character,
Characterized in that the apparatus is executed to increase the inspection length when the speed of the character's bones increases, and to decrease the inspection length when the speed of the character's bones decreases.
삭제delete 제9항에 있어서,
상기 적어도 하나의 프로그램 명령은,
상기 충돌 가능성을 기초로 회피 벡터를 산출하도록 실행되고,
상기 충돌 가능성을 기초로 상기 회피 벡터를 산출하도록 실행됨에 있어,
상기 충돌 가능성이 있는 것으로 예측된 경우, 상기 캐릭터의 표면 및 상기 캐릭터의 상지의 이동 방향 중 적어도 하나를 기초로 상기 회피 벡터를 산출하도록 실행되는 것을 특징으로 하는, 장치.
According to clause 9,
The at least one program command is:
Executed to calculate an avoidance vector based on the collision probability,
In executing to calculate the avoidance vector based on the collision probability,
When it is predicted that there is a possibility of the collision, the device is executed to calculate the avoidance vector based on at least one of the surface of the character and the direction of movement of the upper limbs of the character.
제9항에 있어서,
상기 적어도 하나의 프로그램 명령은,
상기 캐릭터의 본의 속력을 산출하도록 실행되고,
상기 캐릭터의 본의 속력을 산출하도록 실행됨에 있어,
프레임당 본의 이동 거리를 산출하고; 그리고
상기 프레임당 본의 이동 거리를 초당 본의 이동 거리로 변환하도록 실행되는 것을 특징으로 하는, 장치.
According to clause 9,
The at least one program command is:
Executed to calculate the bone speed of the character,
When executed to calculate the bone speed of the character,
Calculate the movement distance of the bone per frame; and
The device is configured to convert the bone movement distance per frame into a bone movement distance per second.
제14항에 있어서,
상기 적어도 하나의 프로그램 명령은,
상기 프레임당 본의 이동 거리를 상기 초당 본의 이동 거리로 변환하도록 실행됨에 있어,
초당 프레임 수를 산출하고; 그리고
상기 초당 프레임 수와 상기 프레임당 본의 이동 거리를 곱한 값을 산출하도록 실행되는 것을 특징으로 하는, 장치.
According to clause 14,
The at least one program command is:
In executing to convert the bone movement distance per frame into the bone movement distance per second,
calculates the number of frames per second; and
Characterized in that the device is executed to calculate a value obtained by multiplying the number of frames per second and the moving distance of the bone per frame.
제15항에 있어서,
상기 적어도 하나의 프로그램 명령은,
상기 초당 프레임 수를 산출하도록 실행됨에 있어,
하나의 프레임을 렌더링하는 데 걸리는 시간인 델타 타임을 산출하고; 그리고
1을 상기 델타 타임으로 나눈 값을 산출하도록 실행되는 것을 특징으로 하는, 장치.
According to clause 15,
The at least one program command is:
In executing to calculate the number of frames per second,
Calculate delta time, which is the time it takes to render one frame; and
Characterized in that the device is executed to calculate 1 divided by the delta time.
KR1020230053932A 2023-04-25 2023-04-25 Method for improving prediction performance of interference between body parts of animated character and device thereof KR102638841B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230053932A KR102638841B1 (en) 2023-04-25 2023-04-25 Method for improving prediction performance of interference between body parts of animated character and device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230053932A KR102638841B1 (en) 2023-04-25 2023-04-25 Method for improving prediction performance of interference between body parts of animated character and device thereof

Publications (1)

Publication Number Publication Date
KR102638841B1 true KR102638841B1 (en) 2024-02-21

Family

ID=90052578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230053932A KR102638841B1 (en) 2023-04-25 2023-04-25 Method for improving prediction performance of interference between body parts of animated character and device thereof

Country Status (1)

Country Link
KR (1) KR102638841B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009521334A (en) * 2005-12-22 2009-06-04 本田技研工業株式会社 Reconstruction, retargeting, trajectory tracking and estimation of multi-joint system motion
JP2018088102A (en) * 2016-11-28 2018-06-07 株式会社スクウェア・エニックス Program, computer device and determination method
KR102264803B1 (en) * 2019-12-12 2021-06-15 주식회사 옐로테일 Method for generating character animation through extracting a character from an image and device using thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009521334A (en) * 2005-12-22 2009-06-04 本田技研工業株式会社 Reconstruction, retargeting, trajectory tracking and estimation of multi-joint system motion
JP2018088102A (en) * 2016-11-28 2018-06-07 株式会社スクウェア・エニックス Program, computer device and determination method
KR102264803B1 (en) * 2019-12-12 2021-06-15 주식회사 옐로테일 Method for generating character animation through extracting a character from an image and device using thereof

Similar Documents

Publication Publication Date Title
US11010921B2 (en) Distributed pose estimation
JP7249390B2 (en) Method and system for real-time 3D capture and live feedback using a monocular camera
KR102055995B1 (en) Apparatus and method to generate realistic rigged three dimensional (3d) model animation for view-point transform
US11315321B2 (en) View dependent 3D reconstruction mechanism
US10706890B2 (en) Cinematic space-time view synthesis for enhanced viewing experiences in computing environments
KR102103939B1 (en) Avatar facial expression animations with head rotation
US10713850B2 (en) System for reconstructing three-dimensional (3D) human body model using depth data from single viewpoint
US10818078B2 (en) Reconstruction and detection of occluded portions of 3D human body model using depth data from single viewpoint
US11375244B2 (en) Dynamic video encoding and view adaptation in wireless computing environments
US9811937B2 (en) Coordinated gesture and locomotion for virtual pedestrians
WO2019100932A1 (en) Motion control method and device thereof, and storage medium and terminal
JP2021501933A (en) Dynamic Graceful Degradation for Augmented Reality Effects
WO2020247174A1 (en) Single image-based real-time body animation
CN109144252B (en) Object determination method, device, equipment and storage medium
KR102655049B1 (en) Video processing methods, apparatus, electronic devices, and computer-readable storage media
US10909764B2 (en) Providing augmented reality target images in a web browser
JP7490142B2 (en) De-ambiguating attitudes
KR102638841B1 (en) Method for improving prediction performance of interference between body parts of animated character and device thereof
US10621788B1 (en) Reconstructing three-dimensional (3D) human body model based on depth points-to-3D human body model surface distance
KR102638847B1 (en) Vector determination method for avoiding interference between body parts of animated character and device thereof
KR102638853B1 (en) Method for avoiding interference between body parts of animated character and device thereof
CN110930488B (en) Fish behavior simulation method, device, equipment and storage medium
US10726602B2 (en) Apparatus and method to generate realistic three-dimensional (3D) model animation
US11734868B2 (en) Motion retargeting based on differentiable rendering
US11475609B2 (en) Computer program, server device, terminal device, and method for moving gift in virtual space

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant