[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102589194B1 - Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner - Google Patents

Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner Download PDF

Info

Publication number
KR102589194B1
KR102589194B1 KR1020230015870A KR20230015870A KR102589194B1 KR 102589194 B1 KR102589194 B1 KR 102589194B1 KR 1020230015870 A KR1020230015870 A KR 1020230015870A KR 20230015870 A KR20230015870 A KR 20230015870A KR 102589194 B1 KR102589194 B1 KR 102589194B1
Authority
KR
South Korea
Prior art keywords
character
joint
parent
child
joints
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230015870A
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 KR1020230015870A priority Critical patent/KR102589194B1/en
Application granted granted Critical
Publication of KR102589194B1 publication Critical patent/KR102589194B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform

Landscapes

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

Abstract

A motion cover system for linking animation data in a compatible manner may include a processor and memory. The processor: receives a first image corresponding to a first character from a user terminal and receives a second image corresponding to a second character; extracts skeletal model data from a source character; divides the extracted skeletal model data into a parent joint that is not affected by the movement of a child joint and a child joint that is affected by the movement of the parent joint based on the inverse kinematics (IK) function, forward kinematics (FK) function, and preset data for the human skeleton; determines a skeleton based on the shape of the first image, determines a parent joint on the determined skeleton, and then matches it with the parent joint of the source character; determines the movement of the child joint of the first character based on the movement of the child joint according to the parent joint of the source character; observes the movement of the source character in real time around the corresponding parent joint, and applies the movement of the parent joint of the source character to the parent joint of the first character; determines a skeleton based on the shape of the second image, determines a parent joint on the determined skeleton, and matches it with the parent joint of the first character; determines the movement of the child joint of the second character based on the movement of the child joint according to the parent joint of the first character; and may apply the movement of the parent joint of the first character to the parent joint of the second character. According to embodiments of the present invention, it is possible to generate motions of multiple characters and create content by applying motion data to characters of various body types.

Description

서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 방법, 장치 및 시스템{MOTION COVER METHOD, APPARATUS, AND SYSTEM FOR LINKING ANIMATION DATA BETWEEN DIFFERENT CHARACTERS IN A COMPATIBLE MANNER}Motion cover method, apparatus and system for compatible linking animation data between different characters {MOTION COVER METHOD, APPARATUS, AND SYSTEM FOR LINKING ANIMATION DATA BETWEEN DIFFERENT CHARACTERS IN A COMPATIBLE MANNER}

본 문서는 전자 장치 및 시스템에 관한 것이며, 구체적으로는 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 방법, 장치 및 시스템에 대한 것이다.This document relates to electronic devices and systems, and specifically to a motion cover method, device, and system for compatiblely connecting animation data between different characters.

전통적인 3D 컴퓨터 애니메이션의 캐릭터 모션은 애니메이터의 키프레이밍 기법으로 제작되었으며, 키프레이밍 기법은 지금까지도 영화 및 애니메이션 산업에서 가장 대표적으로 캐릭터 애니메이션을 제작하는 방식 중 하나 이다. 이러한 키프레이밍 애니메이션을 제작하기 위해서 애니메이터는 대부분 정교하게 제작된 캐릭터 리그 (Character Rig)로 작업을 하게 된다.Character motions in traditional 3D computer animation were created using animators' keyframing techniques, and keyframing techniques are still one of the most representative methods of producing character animation in the film and animation industry. To produce such keyframing animations, animators mostly work with elaborately designed character rigs.

캐릭터 리그란 일반적으로 애니메이션 제작을 위하여 캐릭터의 관절 움직임(Joint Motion) 및 자연스러운 몸체 변형(Body Deformation)을 애니메이터가 보다 편리하게 조작 할 수 있도록 하기 위하여 만들어진 직관적이고 친숙한 컨트롤러들을 말한다. 애니메이터는 이러한 컨트롤러들을 통하여 캐릭터의 관절 및 디포머들의 파라미터들 을 조절함으로써, 새로운 키프레이밍 애니메이션을 제작하거나 이미 만들어진 애니메이션을 수정하는데 유용하 게 활용한다.Character rigs generally refer to intuitive and familiar controllers created to allow animators to more conveniently manipulate a character's joint motion and natural body deformation for animation production. Animators use these controllers to control the parameters of the character's joints and deformers, making them useful for creating new keyframing animations or modifying already created animations.

키프레이밍 방식은 애니메이터의 역량에 크게 의존하며 시간과 비용이 많이 드는 단점이 있기에, 좀 더 쉽고 빠르게 사실적인 모션을 얻을 수 있는 모션 캡쳐 및 리타겟팅 기술이 각광받고 있다Since the keyframing method relies heavily on the animator's capabilities and has the disadvantage of being time-consuming and expensive, motion capture and retargeting technologies that can obtain realistic motion more easily and quickly are receiving attention.

모션 캡쳐 및 리타겟팅 기술은 그 동안의 여러 발명 및 기술 개발에 힘입어 이제 전통적인 키프레이밍 기법과 함께 실제 게임, 영화 및 애니메이션 프로덕션에서 매우 중요하게 사용된다.Thanks to many inventions and technological developments over the years, motion capture and retargeting technologies are now very important in real-world game, film, and animation production, along with traditional keyframing techniques.

모션 리타겟팅은 캐릭터의 모션을 다른 환경이나 캐릭터에 적용하여 모션 캡쳐 데이터의 재사용성을 높이는 것으로, 그 중요성 때문에 컴퓨터 그래픽과 관련하여 광범위하게 연구되어 왔다. 기존의 많은 방법들은 다양한 크기의 캐릭터, 토폴로지, 다양한 지형에 대한 모션 리타겟팅에 중점을 두었다. 이러한 방법들의 대부분은 변경된 캐릭터나 지형에 대해 입력 모션을 변경하여 자연스럽게 만들고 인터랙션 관점에서 입력 모션의 복잡성을 상대 적으로 낮추는 것을 목표로 한다. Motion retargeting increases the reusability of motion capture data by applying a character's motion to other environments or characters. Because of its importance, it has been extensively studied in relation to computer graphics. Many existing methods focused on motion retargeting for characters of various sizes, topologies, and various terrains. Most of these methods aim to make the input motion natural by changing the input motion for changed characters or terrain and to relatively reduce the complexity of the input motion from an interaction perspective.

입력 모션에는 복잡한 여러 사람(multiperson)의 인터랙션과 같은 더 복잡한 의미가 포함되어 있으므로, 결과 모션이 사실적으로 보일 뿐만 아니라 동작의 의미를 유지해야 하기 때문에 모션 리타겟팅 문제는 더욱 어려워질 수 있다.As the input motion contains more complex semantics, such as complex multiperson interactions, the motion retargeting problem can become more difficult because the resulting motion must not only look realistic but also maintain the meaning of the motion.

대한민국 공개특허 제10-2020-0005894호Republic of Korea Patent Publication No. 10-2020-0005894 대한민국 공개특허 제10-2012-0020137호Republic of Korea Patent Publication No. 10-2012-0020137 대한민국 등록특허 제10-2364728호Republic of Korea Patent No. 10-2364728 대한민국 공개특허 제10-2008-0050283호Republic of Korea Patent Publication No. 10-2008-0050283

소스 캐릭터(예: 마네킹)를 통해 다양한 애니메이션을 만들고 동작을 카피(copy)하여 원하는 캐릭터 상에 적용 후 소스 캐릭터(예: 마네킹)를 삭제하는 방식을 사용할 수 있다. 그러나 이러한 방식은 적용을 원하는 캐릭터마다 동작을 카피해야 하므로 시스템 상에 저장해야 하는 데이터가 늘어날 수 있다. 또한 특정 캐릭터에서 사용되지 않는 모션이라고 하더라도 다른 캐릭터에서는 사용될 수도 있으므로 데이터를 선택적으로 삭제하기도 어려운 한계가 있다.You can create various animations through a source character (e.g., a mannequin), copy the movements, apply them to the desired character, and then delete the source character (e.g., a mannequin). However, this method may increase the amount of data that needs to be stored in the system because the movements must be copied for each character to which it is applied. Additionally, even if a motion is not used by a specific character, it may be used by another character, so there is a limitation that it is difficult to selectively delete the data.

또한, 기존 리타겟팅 방식은 소스 캐릭터(예: 마네킹)의 움직임을 좌표나 메쉬(mesh)를 기반으로 계산 후 데이터를 추출하여 따로 저장하고 소스 캐릭터의 움직임을 적용할 타겟 캐릭터에 가져다 쓰는 방식을 사용할 수 있다. 이 경우 타겟 캐릭터의 동작을 위해 데이터 파일이 필요할 수 있는데 타겟 캐릭터가 복수 개인 경우 캐릭터마다 소스 캐릭터(예: 마네킹)의 데이터를 개별적으로 복사해야 하므로 번거롭고 속도가 느린 한계가 있다.In addition, the existing retargeting method calculates the movement of the source character (e.g., a mannequin) based on coordinates or a mesh, extracts the data, stores it separately, and uses a method to use it on the target character to which the source character's movement is applied. You can. In this case, a data file may be required for the operation of the target character, but if there are multiple target characters, the data of the source character (e.g., mannequin) must be individually copied for each character, which is cumbersome and slow.

본 문서에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 방법, 장치 및 시스템은 타겟 캐릭터 간의 호환을 가능하게 하여 소스 캐릭터(예: 마네킹)의 데이터를 보유하고 있지 않은 상황에서도 타겟 캐릭터 간 데이터를 실시간으로 공유하고, 호환이 가능하게 만들 수 있다.The motion cover method, device, and system for interchangeably linking animation data between different characters according to the present document enable compatibility between target characters, so that the target character can be used even in situations where data of the source character (e.g., mannequin) is not possessed. Data between characters can be shared in real time and made compatible.

애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 시스템은 프로세서 및 메모리를 포함할 수 있다.A motion cover system that interchangeably connects animation data may include a processor and memory.

프로세서는 사용자 단말로부터 제 1 캐릭터 에 대응하는 제 1 이미지를 수신하고, 제 2 캐릭터 에 대응하는 제 2 이미지를 수신하며, 소스 캐릭터 상에서 골격 모델 데이터를 추출하고, 추출된 골격 모델 데이터를 IK(Inverse Kinematics) 기능, FK(Forward Kinematics) 기능 및 사람의 골격에 대한 기 설정된 데이터에 기반하여 자식 관절의 움직임에 영향을 받지 않는 부모 관절 및 상기 부모 관절의 움직임에 영향을 받는 자식 관절로 구분하며, 제 1 이미지의 형태에 기반하여 골격을 결정하고, 결정된 골격 상에서 부모 관절을 결정한 후 상기 소스 캐릭터의 부모 관절과 대응시키고, 소스 캐릭터의 부모 관절에 따른 자식 관절의 움직임에 기반하여 상기 제 1 캐릭터의 자식 관절의 움직임을 결정하며, 대응된 부모 관절을 중심으로 상기 소스 캐릭터의 움직임을 실시간으로 관찰 하고, 상기 소스 캐릭터의 부모 관절의 움직임을 상기 제 1 캐릭터의 부모 관절 상에 적용시키며, 제 2 이미지의 형태에 기반하여 골격을 결정하고, 결정된 골격 상에서 부모 관절을 결정한 후 상기 제 1 캐릭터의 부모 관절과 대응시키고, 제 1 캐릭터의 부모 관절에 따른 자식 관절의 움직임에 기반하여 상기 제 2 캐릭터의 자식 관절의 움직임을 결정하며, 제 1 캐릭터의 부모 관절의 움직임을 상기 제 2 캐릭터의 부모 관절 상에 적용 시킬 수 있다.The processor receives a first image corresponding to the first character from the user terminal, receives a second image corresponding to the second character, extracts skeletal model data from the source character, and converts the extracted skeletal model data into IK (Inverse IK). Based on the Kinematics (FK) function, FK (Forward Kinematics) function, and preset data on the human skeleton, it is divided into a parent joint that is not affected by the movement of the child joint and a child joint that is affected by the movement of the parent joint. 1 Determine a skeleton based on the shape of the image, determine a parent joint on the determined skeleton, match it with the parent joint of the source character, and determine the child of the first character based on the movement of the child joint according to the parent joint of the source character. Determine the movement of the joint, observe the movement of the source character in real time around the corresponding parent joint, apply the movement of the parent joint of the source character to the parent joint of the first character, and Determining a skeleton based on the shape, determining a parent joint on the determined skeleton, matching it with the parent joint of the first character, and establishing a child joint of the second character based on the movement of the child joint according to the parent joint of the first character. The movement of can be determined, and the movement of the parent joint of the first character can be applied to the parent joint of the second character.

본 발명의 실시예들에 따르면, 복잡한 인터랙션 동작을 다른 체형의 캐릭터로 모션 리타겟팅할 수 있으며, 이는 다양한 캐릭터에 맞게 동작을 생성해야 하는 영화 및 3D 게임에 적용되어 캐릭터 동작 생성의 시간을 크게 줄일 수 있다.According to embodiments of the present invention, complex interaction movements can be motion retargeted to characters of different body types, and this can be applied to movies and 3D games where movements must be created to suit various characters, greatly reducing the time for character movement creation. You can.

본 발명의 실시예들에 따르면, 모션 데이터를 다양한 체형의 캐릭터에 맞게 적용하여 다수의 캐릭터의 동작 생성 및 콘텐츠 제작을 수행할 수 있다.According to embodiments of the present invention, it is possible to generate motions of multiple characters and produce content by applying motion data to characters of various body types.

본 발명의 실시예들에 따르면, 영화와 3D게임 속 애니메이터의 동작 생성 소프트웨어로 제공될 수 있으며, 사용 자의 실시간 가상 아바타 캐릭터를 이용한 콘텐츠 제작을 위한 기반 기술로 사용될 수 있다.According to embodiments of the present invention, it can be provided as motion creation software for animators in movies and 3D games, and can be used as a base technology for creating content using the user's real-time virtual avatar character.

도 1은 종래의 애니메이션 제작 파이프라인을 도시한 도면이다.
도 2 및 도 3은 종래의 사용자의 골격 모델을 나타내는 도면이다.
도 4는 일 실시예에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 시스템의 구성을 블록도로 나타낸 것이다.
도 5는 일 실시예에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 방법을 순서도로 나타낸 것이다.
도 6은 일 실시예에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 방법을 순서도로 나타낸 것이다.
Figure 1 is a diagram showing a conventional animation production pipeline.
Figures 2 and 3 are diagrams showing a conventional user's skeletal model.
Figure 4 is a block diagram showing the configuration of a system for connecting animation data between different characters interchangeably according to an embodiment.
Figure 5 is a flowchart showing a method of connecting animation data between different characters to be compatible, according to an embodiment.
Figure 6 is a flowchart showing a method of connecting animation data between different characters in a compatible manner according to an embodiment.

도 1은 종래의 애니메이션 제작 파이프라인을 도시한 도면이다.Figure 1 is a diagram showing a conventional animation production pipeline.

도 1에 도시된 바와 같이, 스토리보드가 나오면, 매번 캐릭터의 위치, 상호작용하는 오브젝트, 카메라의 각도 등 다양한 변수로 인해 비슷한 행동 또는 똑같은 행동도 씬에 맞게 동작을 많은 작업자들이 재 제작하는 방식으 로, 애니메이션이 제작되고 있다. 즉, 필요한 동작만 제작하는 것이 효율적이겠지만 애니메이션이 완성되기까지 많은 제작 단계와 많은 인력이 투입되는 노동집약 사업으로 운영되고 있다.As shown in Figure 1, whenever a storyboard is published, many workers recreate similar or identical actions to fit the scene due to various variables such as the character's position, interactive objects, and camera angle. So, an animation is being produced. In other words, although it would be efficient to produce only the necessary movements, it is operated as a labor-intensive business that requires many production stages and a large number of manpower to complete the animation.

이에 따라, 컨셉이 유사한 애니메이션 작품의 동작들을 모아 동작의 패턴을 분석하고 자주 쓰이는 동작과 부위별 움직임을 패턴화 하고 이러한 동작들을 부위별에 상황에 맞게 혼합적으로 재활용이 가능하며, 애니메이 션 동작의 부분 수정이 가능하도록 처리하여, 비효율적으로 반복되던 일처리를 줄이고자 하는 요구가 증대되고 있다.Accordingly, the movements of animation works with similar concepts are collected, the movement patterns are analyzed, frequently used movements and movements for each part are patterned, and these movements can be mixed and recycled according to the situation for each part, and the animation movement There is an increasing demand to reduce inefficient repetitive work processing by allowing partial modification.

특히, TV용 시리즈 애니메이션은 이야기 전개만 다를 뿐 편수가 많아도 같은 캐릭터가 같은 배경에 등장하는 경 우가 많다. 따라서 전체 시리즈에 등장하는 캐릭터의 동작과 배경과 카메라 값들만 데이터베이스화 하고 부위별 로 재사용 하여도 많은 생산성을 높일 수 있다.In particular, series animations for TV often have the same characters appear in the same background even though there are many episodes, with only the story development being different. Therefore, productivity can be greatly increased by databaseizing only the character movements, backgrounds, and camera values that appear in the entire series and reusing them for each part.

한편, 기존 애니메이션 방식에서는 스토리 보드가 완성이 되면 각각 씬들을 여러 애니메이션 작업자에 분배하고 완성된 씬들을 다시 모아 최종 영상을 만드는데, 그 과정에서 작업자가 잘못된 캐릭터나 배경을 사용하는 경우 도 많고 매번 씬마다 세팅을 하는 시간도 많이 소요되는 문제가 있다.Meanwhile, in the existing animation method, when the storyboard is completed, each scene is distributed to several animation workers and the completed scenes are reassembled to create the final video. In the process, workers often use the wrong characters or backgrounds, and each scene is Another problem is that it takes a lot of time to set up.

이러한 문제를 해결하기 위해서, 스토리보드에 씬마다 기록된 등장인물 캐릭터와 씬에 맞는 배경, 카메라 세팅, 밤낮에 맞는 조명값을 수작업 없이 자동을 불러오는 기술에 대해 요구되고 있다. 즉, 미리 세팅한 값들을 설정 하거나 애니메이션의 캐릭터라면 반드시 나오는 걷는 동작, 뛰는 동작 뿐만 아니라 부분 동작인 기본 손 동작 세트 등을 미리 제작하여 시간을 절약하고자 하는 요구가 증대되고 있다.In order to solve this problem, there is a need for technology to automatically load the characters recorded for each scene on the storyboard, the background appropriate for the scene, camera settings, and lighting values appropriate for day and night without manual work. In other words, there is an increasing demand to save time by setting pre-set values or creating in advance a set of basic hand movements, which are partial movements, as well as walking and running movements that are essential for animation characters.

또한, 스토리보드를 제작 할 때, 이미 제작되어 있는 동작을 활용하여 콘티를 만들고, 새로 추가되는 동작은 모 두 데이터베이스에 저장하여 다음 에피소드에 활용하고자 하는 요구가 증대되고 있다. 궁극적으로 많은 회차가 지난 후에 스토리보드가 제작되면, 데이터베이스에 있는 애니메이션을 활용하여 애니메이션이 만들어지고, 부분 적 디테일 수정만으로 애니메이션을 제작할 수 있게 하는 기술에 대한 연구가 요구된다.In addition, when creating a storyboard, there is an increasing demand to create a storyboard using already created actions and to store all newly added actions in the database and use them in the next episode. Ultimately, when the storyboard is created after many rounds, animation is created using the animation in the database, and research is required on technology that allows animation to be produced with only partial detail modifications.

도 2 및 도 3은 종래의 사용자의 골격 모델을 나타내는 도면이다.Figures 2 and 3 are diagrams showing a conventional user's skeletal model.

도 2는 캡처 장치로부터 생성될 수 있는 사용자의 예시적인 골격 맵핑을 나타낸다. 이 실시예에서, 다양 한 관절들 및 뼈들, 즉 각각의 손(202), 각각의 전완(204), 각각의 팔꿈치(206), 각각의 이두(208), 각각의 어 깨(210), 각각의 엉덩이(212), 각각의 넓적다리(214), 각각의 무릎(216), 각각의 앞다리(218), 각각의 발 (220), 머리(222), 중간 척추(224), 척추의 상부(226) 및 하부(228) 및 허리(430)가 식별된다. 더 많은 포인 트가 추적될 경우, 손가락들 또는 발가락들의 뼈들 및 관절들, 또는 코 및 눈과 같은 얼굴의 개별 특징들과 같 은 추가적인 특징들이 식별될 수 있다. 도 2에 도시된 포인트들 중 하나 이상이 생략될 수 있으며/있거나 다른 것들이 추가될 수 있다는 점이 이해된다. 더욱이, 골격 맵핑은 사용자의 컴퓨터 모델의 일례이며, 다른 컴퓨터 모델들이 고려될 수 있다. Figure 2 shows an example skeletal mapping of a user that can be generated from a capture device. In this embodiment, various joints and bones, namely each hand 202, each forearm 204, each elbow 206, each bicep 208, each shoulder 210, each hip 212, each thigh 214, each knee 216, each forelimb 218, each foot 220, head 222, middle spine 224, upper portion of spine ( 226) and lower part 228 and waist 430 are identified. When more points are tracked, additional features can be identified, such as the bones and joints of the fingers or toes, or individual features of the face such as the nose and eyes. It is understood that one or more of the points shown in Figure 2 may be omitted and/or others may be added. Furthermore, skeletal mapping is an example of a computer model of a user; other computer models may be considered.

도 2의 포인트들 각각은 캡처 장치(카메라 공간)에 대한 기준 프레임 내의 x, y 및 z 좌표에 의한 삼차원 데카르트 공간에서 설명될 수 있다. Each of the points in Figure 2 can be described in three-dimensional Cartesian space by x, y and z coordinates in a frame of reference for the capture device (camera space).

일 실시예에서, 상류 관절은 몸통에 더 가까운 다음 인 접 관절이다. 따라서, 손목의 상류 관절은 팔꿈치이고, 팔꿈치의 상류 관절은 어깨이고, 발목의 상류 관절은 무릎이며, 무릎의 상류 관절은 엉덩이이다.In one embodiment, the upstream joint is the next adjacent joint closer to the torso. Thus, the joint upstream of the wrist is the elbow, the joint upstream of the elbow is the shoulder, the joint upstream of the ankle is the knee, and the joint upstream of the knee is the hip.

종래 기술은 댄스 스텝 등과 같은 비교적 복잡한 제스처들을 인식 및 해석하는 능력을 가진 타겟 인식, 모션 분석 및 추적 시스템을 제공할 수 있다.The prior art can provide target recognition, motion analysis and tracking systems with the ability to recognize and interpret relatively complex gestures such as dance steps and the like.

일 실시예에서, 댄스 스텝들에 대응하는 특정 모션들은 도 2에 도시된 골격 포인트들 중 적어도 일부의 모션에 관한 사용자 입력 데이터에 기초하여 평가된다. 이러한 포인트들의 상대적 모션은 소정의 고정 기간(예로서, 음악의 8 비트)에 걸쳐 평가되며, 특정 프로토타입 무브들 또는 스텝들의 카탈로그를 나타내는 저장된 프로토타 입 데이터와 비교된다. 이어서, 어떤 특정 댄스 스텝 또는 무브가 사용자에 의해 수행되고 있는지에 관한 결정 이 행해질 수 있다. 개별 프로토타입 스텝들 또는 무브들은 본 명세서에서 모션 클래스들로서 지칭된다. 또한, 사용자의 측정된 움직임들 및 에너지의 프로토타입 데이터에 대한 상관성은 수행되고 있는 특정 댄스 무브의 사용자의 해석의 품질을 나타내는 점수를 제공하는 데 사용될 수 있다.In one embodiment, specific motions corresponding to dance steps are evaluated based on user input data regarding the motion of at least some of the skeletal points shown in FIG. 2. The relative motion of these points is evaluated over a fixed period of time (e.g., 8 beats of music) and compared to stored prototype data representing a catalog of specific prototype moves or steps. A determination may then be made as to which particular dance step or move is being performed by the user. Individual prototype steps or moves are referred to herein as motion classes. Additionally, correlation of the user's measured movements and energy to prototype data can be used to provide a score indicative of the quality of the user's interpretation of the specific dance move being performed.

사람 몸통의 포인트들은 강한 독립 모션을 좀처럼 나타내지 않는다. 따라서, 몸통은 수직으로 연장된 강체로서 간주 될 수 있다. 그러나, 깊이 감지 시스템에서의 강한 잡음 패턴들로 인해, 개별 몸통 포인트들, 특히 어깨들 및 엉덩이들은 비현실적인 모션을 나타낼 수 있다는 것을 알 수 있으며, 이는 상대적 표현에 의해 전파되는 것이 아니라 바람직하게 제한될 것이다. 결과적으로, 몸통은 그의 포인트들 모두가 그의 위치의 추정에 기여하는 강 체로서 간주될 수 있다. 이어서, 이러한 추정은 사람 골격의 나머지를 상대적인 방식으로 표현하는 데 사용될 수 있다.Points on the human torso rarely exhibit strong independent motion. Therefore, the torso can be considered as a vertically extending rigid body. However, it can be seen that due to strong noise patterns in the depth sensing system, individual torso points, especially the shoulders and hips, may exhibit unrealistic motion, which would preferably be constrained rather than propagated by the relative representation. . As a result, the body can be regarded as a rigid body where all of its points contribute to the estimate of its position. These estimates can then be used to represent the remainder of the human skeleton in a relative manner.

도 3은 종래의 사용자의 골격 모델을 나타내는 도면이다.Figure 3 is a diagram showing a conventional user's skeletal model.

소스 모션을 타겟 캐릭터로 리타겟팅하기 위한 역 운동학(inverse kinematics)을 결정한다. 모든 캐릭터는 손을 포함하여 서로 다른 크기와 스킨 형상을 가지는 특정 개수(예: 20개)의 관절을 가지는 동일한 관절 계층(joint hierarchy)을 가질 수 있다.Determine inverse kinematics for retargeting the source motion to the target character. All characters can have the same joint hierarchy, with a certain number (e.g. 20) of joints, including hands, of different sizes and skin shapes.

키넥트는 NUI(Natural User Interface) API를 이용하여 특정 개수(예: 20개)의 관절(joint)의 위치를 찾아내어 사람의 뼈대를 인식하는 것으로, 본 발명이 적용된 키넥트에서는 NUI를 통해 관절에 대한 움직임 상태로 사람을 인식할 수 있다. NUI는 마우스나 키보드 같은 기계 장치가 아닌 인간의 자연스러운 신체 움직임으로 직접적으로 소통하는 방식을 의미한다.Kinect recognizes the human skeleton by finding the positions of a certain number (e.g. 20) of joints using NUI (Natural User Interface) API. In Kinect to which the present invention is applied, the joints are recognized through NUI. A person can be recognized based on their state of movement. NUI refers to a method of communicating directly through natural human body movements rather than mechanical devices such as a mouse or keyboard.

각 관절은 예를 들어, HEAD, SHOULDER_CENTER, SPINE, HIP_CENTER와 팔의 SHOULDER, ELBOW, WRIST, HAND, HIP, KNEE, ANKLE, FOOT을 포함할 수 있다. 팔의 관절 4개와 다리의 관절 4개는 각각 2개씩이므로 키넥트는 총 20개의 관절에 대한 위치와 정보를 추적할 수 있다.Each joint may include, for example, HEAD, SHOULDER_CENTER, SPINE, HIP_CENTER, and the SHOULDER, ELBOW, WRIST, HAND, HIP, KNEE, ANKLE, and FOOT of the arm. Since there are 4 joints in the arm and 4 joints in the leg, 2 each, Kinect can track the positions and information of a total of 20 joints.

본 문서에 따른 시스템은 뼈대를 이용하여 사람의 자세를 인식하고 깊이 영상으로 사람의 영역을 분리할 수 있다. 관절의 위치는 작은 원으로 표시할 수 있다. 동작을 인식한 후 모션의 저장은 뼈대 데이터 구조체 안의 뼈대 위치 배열을 이용할 수 있다.The system according to this document can recognize a person's posture using a skeleton and separate human areas using a depth image. The positions of joints can be indicated by small circles. After recognizing the motion, the motion can be stored using the skeleton position array in the skeleton data structure.

키넥트의 골격정보를 기반으로 오브젝트의 모션 처리를 위한 관절의 위치로부터 관절의 방향 산출을 위한 부모와 자식 관절의 상대 위치에 의한 변환 행렬 정보를 생성할 수 있다. 주어진 관절의 위치로부터 관절 의 방향을 구하기 위해서는 부모와 자식 관절의 상대 위치에 의한 변환 행렬이 필요할 수 있다. 부모 관절은 자식 관절의 위치나 방향에 영향을 받지 않는 관절을 의미한다. 자식 관절은 부모 관절의 위치나 방향에 영향을 받는 관절을 의미한다.Based on Kinect's skeletal information, it is possible to generate transformation matrix information based on the relative positions of parent and child joints for calculating the direction of the joint from the position of the joint for motion processing of the object. To obtain the direction of a joint from the position of a given joint, a transformation matrix based on the relative positions of the parent and child joints may be needed. A parent joint refers to a joint that is not affected by the position or direction of the child joint. A child joint refers to a joint that is affected by the position or direction of the parent joint.

리타겟팅된 모션은 인터랙션하는 캐릭터 간의 공간적 관계를 유지하면서 소스 모션을 따라야 한다. 타겟 캐릭터 의 형상이 소스 캐릭터의 형상과 상이하므로, 조정이 필요할 수 있다.The retargeted motion must follow the source motion while maintaining the spatial relationship between interacting characters. Since the shape of the target character is different from the shape of the source character, adjustment may be necessary.

도 4는 일 실시예에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 시스템의 구성을 블록도로 나타낸 것이다.Figure 4 is a block diagram showing the configuration of a system for connecting animation data between different characters interchangeably according to an embodiment.

도 4에 따르면, 시스템(400)은 프로세서(410) 및 메모리(420)를 포함할 수 있으며, 도시된 구성 중 일부가 생략 또는 치환 될 수도 있다. 일 실시예에 따른 시스템(400)은 서버 또는 단말일 수 있다. 일 실시예에 따르면, 프로세서(410)는 시스템(400)의 각 구성 요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있는 구성으로써, 하나 이상의 프로세서들로 구성될 수 있다. 메모리(420)는 상술한 방법과 관련된 정보를 저장하거나 상술한 방법이 구현된 프로그램을 저장할 수 있다. 메모리(420)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다. 메모리(420)는 다양한 파일 데이터들을 저장할 수 있으며, 프로세서(410)의 동작에 따라 저장된 파일 데이터들은 업데이트 될 수 있다.According to FIG. 4, the system 400 may include a processor 410 and a memory 420, and some of the depicted components may be omitted or replaced. System 400 according to one embodiment may be a server or a terminal. According to one embodiment, the processor 410 is a component capable of performing operations or data processing related to control and/or communication of each component of the system 400 and may be composed of one or more processors. The memory 420 may store information related to the above-described method or store a program implementing the above-described method. Memory 420 may be volatile memory or non-volatile memory. The memory 420 can store various file data, and the stored file data can be updated according to the operation of the processor 410.

일 실시예에 따르면, 프로세서(410)는 프로그램을 실행하고, 시스템(400)을 제어할 수 있다. 프로세서(410)에 의하여 실행되는 프로그램의 코드는 메모리(420)에 저장될 수 있다. 프로세서(120)의 동작들은 메모리(420)에 저장된 인스트럭션들을 로딩(loading)함으로써 수행될 수 있다. 시스템(400)은 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.According to one embodiment, the processor 410 can execute a program and control the system 400. The code of the program executed by the processor 410 may be stored in the memory 420. Operations of the processor 120 may be performed by loading instructions stored in the memory 420. The system 400 is connected to an external device (eg, a personal computer or a network) through an input/output device (not shown) and can exchange data.

일 실시예에 따르면, 프로세서(410)가 시스템(400) 상에서 구현할 수 있는 연산 및 데이터 처리 기능에는 한정됨이 없을 것이나, 이하에서는 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 기능에 대해서 설명될 것이다.According to one embodiment, there will be no limitation to the calculation and data processing functions that the processor 410 can implement on the system 400, but hereinafter, the function of compatiblely connecting animation data between different characters will be described. will be.

도 5는 일 실시예에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 방법을 순서도로 나타낸 것이다.Figure 5 is a flowchart showing a method of connecting animation data between different characters to be compatible, according to an embodiment.

도 5의 순서도에서 프로세스 단계들, 방법 단계들, 알고리즘들 등이 순차적인 순서로 설명되었지만, 그러한 프로세스들, 방법들 및 알고리즘들은 임의의 적합한 순서로 작동하도록 구성될 수 있다. 다시 말하면, 본 발명의 다양한 실시예들에서 설명되는 프로세스들, 방법들 및 알고리즘들의 단계들이 본 발명에서 기술된 순서로 수행 될 필요는 없다. 또한, 일부 단계들이 비동시적으로 수행되는 것으로서 설명되더라도, 다른 실시예에서는 이러 한 일부 단계들이 동시에 수행될 수 있다. 또한, 도면에서의 묘사에 의한 프로세스의 예시는 예시된 프로세스 가 그에 대한 다른 변화들 및 수정들을 제외하는 것을 의미하지 않으며, 예시된 프로세스 또는 그의 단계들 중 임의의 것이 본 발명의 다양한 실시예들 중 하나 이상에 필수적임을 의미하지 않으며, 예시된 프로세스가 바람직하다는 것을 의미하지 않는다.Although the process steps, method steps, algorithms, etc. are depicted in a sequential order in the flow chart of FIG. 5, such processes, methods, and algorithms may be configured to operate in any suitable order. In other words, the steps of the processes, methods and algorithms described in various embodiments of the invention do not need to be performed in the order described herein. Additionally, although some steps are described as being performed asynchronously, in other embodiments, some such steps may be performed concurrently. Additionally, illustration of a process by depiction in the drawings is not intended to imply that the illustrated process excludes other variations and modifications thereto, and that any of the illustrated process or steps thereof may be incorporated into any of the various embodiments of the invention. It does not imply that more than one is required, nor does it imply that the illustrated process is preferred.

동작 510에서, 프로세서(예: 도 4의 프로세서(410))는 제 1 캐릭터 에 대응하는 제 1 이미지 및 제 2 캐릭터에 대응하는 제 2 이미지를 수신할 수 있다. 프로세서(410)는 사용자 단말로부터 제 1 캐릭터에 대응하는 제 1 이미지를 수신하고, 제 2 캐릭터에 대응하는 제 2 이미지를 수신할 수 있다. 제 1 캐릭터 및 제 2 캐릭터는 다른 종류의 캐릭터를 의미할 수 있다.In operation 510, a processor (eg, processor 410 of FIG. 4) may receive a first image corresponding to the first character and a second image corresponding to the second character. The processor 410 may receive a first image corresponding to the first character and a second image corresponding to the second character from the user terminal. The first character and the second character may mean different types of characters.

동작 520에서, 프로세서(410)는 소스 캐릭터 상에서 골격 모델 데이터를 추출할 수 있다. 소스 캐릭터는 예를 들어, 모션 추출의 대상이 되는 마네킹을 의미할 수 있다. 일 실시예에서 소스 캐릭터는 모션을 추출하기 위해 사용될 수 있다.At operation 520, processor 410 may extract skeletal model data on the source character. For example, the source character may mean a mannequin that is the target of motion extraction. In one embodiment, a source character may be used to extract motion.

동작 530에서, 프로세서(410)는 추출된 골격 모델 데이터를 기반으로 부모 관절 및 자식 관절을 구분할 수 있다. 프로세서(410)는 추출된 골격 모델 데이터를 IK(Inverse Kinematics) 기능, FK(Forward Kinematics) 기능 및 사람의 골격에 대한 기 설정된 데이터에 기반하여 자식 관절의 움직임에 영향을 받지 않는 부모 관절 및 상기 부모 관절의 움직임에 영향을 받는 자식 관절로 구분할 수 있다. In operation 530, the processor 410 may distinguish between a parent joint and a child joint based on the extracted skeletal model data. The processor 410 converts the extracted skeleton model data into a parent joint that is not affected by the movement of the child joint and the parent based on the IK (Inverse Kinematics) function, the FK (Forward Kinematics) function, and preset data for the human skeleton. It can be divided into child joints that are affected by the movement of the joint.

IK(Inverse Kinematics) 기능은 캐릭터에 뼈를 고정시켜 뼈의 끝부분의 컨트롤러를 움직이는 기능을 의미할 수 있다. IK(Inverse Kinematics) 기능은 예를 들어, 땅에 발바닥이 붙어 있는 캐릭터일 때 고정된 느낌을 부여하기 위해 발과 관련된 관절(예: 발목)에 사용될 수 있다. FK(Forward Kinematics) 기능은 뼈의 회전값을 움직여 애니메이션 효과를 부여하는 기능을 의미할 수 있다. FK(Forward Kinematics) 기능은 예를 들어, 캐릭터가 공중에 떠 있거나 물 속에서 나아가는 상황에서 발이 고정되어 있지 않으므로 고정되지 않은 느낌을 부여하기 위해 사용될 수 있다.The IK (Inverse Kinematics) function may refer to the function of fixing a bone to a character and moving the controller at the end of the bone. Inverse Kinematics (IK) functions can be used on joints related to the foot (e.g. ankles) to give a fixed feel, for example, when a character has the soles of their feet on the ground. The FK (Forward Kinematics) function may refer to a function that provides an animation effect by moving the rotation value of a bone. The Forward Kinematics (FK) function can be used, for example, to give the feeling of being unstuck because the feet are not fixed in a situation where a character is floating in the air or moving through water.

동작 540에서, 프로세서(410)는 제 1 이미지의 형태에 기반하여 골격을 결정하고, 부모 관절과 대응시킬 수 있다. 프로세서(410)는 부모 관절은 자식 관절과 다르게 다른 관절의 움직임에 영향을 받지 않는 관절을 의미할 수 있다. 프로세서(410)는 부모 관절의 위치를 먼저 결정하고, 이를 중심으로 주변의 자식 관절의 상대적인 위치를 결정할 수 있다. 제 1 캐릭터에 있어서 부모 관절과 자식 관절의 상대적인 위치는 고정된 것이 아닐 수 있다. 부모 관절과 자식 관절의 상대적인 위치는 소스 캐릭터 상의 관절 위치에 따라 달라질 수 있다. 예를 들어, 부모 관절의 상단을 기준으로 왼쪽으로 45도 각도에 위치한 자식 관절의 경우 이 위치가 고정된 것은 아니며, 소스 캐릭터의 상대적인 관절 위치에 따라 배치가 달라질 수 있다. 즉, 소스 캐릭터 상에서 부모 관절의 상단을 기준으로 왼쪽으로 45도 각도에 위치한 자식 관절이 오른쪽으로 이동한 경우, 제 1 캐릭터 상에서 자식 관절도 부모 관절을 기준으로 오른쪽으로 이동할 수 있다. 부모 관절의 수 및 자식 관절의 수는 제한된 것은 아니나 일반적인 사람의 형상을 기준으로 관절의 위치 및 이름이 결정될 수 있다. 일반적인 사람의 형상에 대한 관절에 대해서는 앞선 도 1 내지 도 3에서 설명된 바 있다.In operation 540, the processor 410 may determine the skeleton based on the shape of the first image and correspond to the parent joint. The processor 410 may refer to a parent joint as a joint that is not affected by the movements of other joints, unlike child joints. The processor 410 may first determine the position of the parent joint and then determine the relative positions of the surrounding child joints based on this position. The relative positions of the parent joint and child joint in the first character may not be fixed. The relative positions of parent joints and child joints may vary depending on the joint positions on the source character. For example, in the case of a child joint located at an angle of 45 degrees to the left of the top of the parent joint, this position is not fixed, and the placement may vary depending on the relative joint position of the source character. That is, if a child joint located at an angle of 45 degrees to the left with respect to the top of the parent joint on the source character moves to the right, the child joint on the first character may also move to the right with respect to the parent joint. The number of parent joints and the number of child joints is not limited, but the location and name of the joints can be determined based on the shape of a typical person. Joints for a general human shape have been previously described in FIGS. 1 to 3.

동작 550에서, 프로세서(410)는 소스 캐릭터의 부모 관절에 따른 자식 관절의 움직임에 기반하여 제 1 캐릭터의 자식 관절의 움직임을 결정할 수 있다.In operation 550, the processor 410 may determine the movement of the child joint of the first character based on the movement of the child joint according to the parent joint of the source character.

동작 560에서, 프로세서(410)는 부모 관절을 중심으로 소스 캐릭터의 움직임을 실시간으로 관찰하고 제 1 캐릭터의 부모 관절 상에 적용할 수 있다. 프로세서(410)는 소스 캐릭터의 움직임을 데이터로 저장하여 계산 후 제 1 캐릭터의 관절에 적용하는 것이 아니라 실시간으로 소스 캐릭터의 움직임을 관찰하여 제 1 캐릭터의 관절에 적용할 수 있다. 소스 캐릭터의 움직임을 데이터로 저장하여 계산을 수행하는 경우 소스 캐릭터의 움직임을 미리 관측한 상태여야 하고, 데이터로 저장해야 하기 때문에 저장 공간이 상대적으로 많이 필요하고, 관측이 끝나야만 분석이 진행되어 소스 캐릭터의 움직임을 기반으로 모션 커버를 하는 시간이 지연될 수 있다. 반면, 본 문서에 따른 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 시스템(400)은 소스 캐릭터의 움직임을 실시간으로 관찰하고 제 1 캐릭터의 관절에 적용하여 데이터를 저장하는 공간을 줄일 수 있고, 소스 캐릭터가 움직이는 상황에서 실시간으로 움직임을 전달하기 때문에 상대적으로 더 빠르게 모션 커버를 수행할 수 있다.At operation 560, the processor 410 may observe the movement of the source character about the parent joint in real time and apply the movement on the parent joint of the first character. Rather than storing the movement of the source character as data and applying it to the joints of the first character after calculation, the processor 410 may observe the movement of the source character in real time and apply it to the joints of the first character. When performing calculations by storing the movement of the source character as data, the movement of the source character must be observed in advance, and since it must be stored as data, a relatively large amount of storage space is required, and analysis is carried out only after observation is completed. The time to cover motion based on the character's movement may be delayed. On the other hand, the motion cover system 400, which interchangeably connects animation data according to this document, can reduce the space for storing data by observing the movement of the source character in real time and applying it to the joints of the first character, and Since the movement is transmitted in real time in a moving situation, motion cover can be performed relatively faster.

동작 570에서, 프로세서(410)는 제 2 캐릭터에 대해서도 동작 510 내지 560을 적용할 수 있다. 프로세서(410)는 제 2 이미지의 형태에 기반하여 골격을 결정하고, 결정된 골격 상에서 부모 관절을 결정한 후 상기 제 1 캐릭터의 부모 관절과 대응시킬 수 있다. 프로세서(410)는 제 1 캐릭터의 부모 관절에 따른 자식 관절의 움직임에 기반하여 상기 제 2 캐릭터의 자식 관절의 움직임을 결정하며, 제 1 캐릭터의 부모 관절의 움직임을 상기 제 2 캐릭터의 부모 관절 상에 적용 시킬 수 있다.In operation 570, the processor 410 may apply operations 510 to 560 to the second character. The processor 410 may determine a skeleton based on the shape of the second image, determine a parent joint on the determined skeleton, and then correspond to the parent joint of the first character. The processor 410 determines the movement of the child joint of the second character based on the movement of the child joint according to the parent joint of the first character, and matches the movement of the parent joint of the first character to the parent joint of the second character. It can be applied to .

도 6은 일 실시예에 따른 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 방법을 순서도로 나타낸 것이다.Figure 6 is a flowchart showing a method of connecting animation data between different characters in a compatible manner according to an embodiment.

동작 610에서, 프로세서(예: 도 4의 프로세서(410))는 소스 캐릭터의 초기 자세에 대응하는 골격 및 관절의 위치를 결정할 수 있다.At operation 610, a processor (e.g., processor 410 in FIG. 4) may determine the positions of the skeleton and joints corresponding to the initial pose of the source character.

동작 620에서, 프로세서(410)는 제 1 이미지의 초기 자세를 변경시킬 수 있다. 프로세서(410)는 소스 캐릭터의 자세와 일치하거나 대응할 수 있도록 제 1 이미지의 자세를 변경시킬 수 있다. 이것은 모션 커버의 정확도를 높이기 위한 기초 작업으로 예를 들어, 소스 캐릭터가 사람이고, 제 1 캐릭터의 종류가 4족 보행을 하는 생물인 경우에도 적용될 수 있다. 제 1 캐릭터의 종류가 2족 보행 생물인 경우 소스 캐릭터인 사람의 형상과 대응하도록 관절을 배치할 수 있다. 다만, 제 1 캐릭터의 종류가 4족 보행을 하는 생물인 경우 소스 캐릭터인 사람의 형상과 대응하도록 관절을 배치하기 어려울 수 있다. 프로세서(410)는 제 1 캐릭터의 종류가 4족 보행을 하는 생물인 경우에도 소스 캐릭터와 초기 자세를 맞추기 위해 제 1 이미지를 변형시킬 수 있다. 본 문서에 따른 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 시스템은 제 1 캐릭터의 종류가 2족 보행을 하는 사람과 같은 생물이 아닌 경우에도 이렇게 초기 자세를 대응시켜 커버링이 용이하도록 제어할 수 있다.In operation 620, the processor 410 may change the initial pose of the first image. The processor 410 may change the pose of the first image to match or correspond to the pose of the source character. This is basic work to increase the accuracy of motion cover and can be applied even when, for example, the source character is a human and the first character type is a quadrupedal creature. If the type of the first character is a bipedal creature, the joints can be arranged to correspond to the shape of the source character, a person. However, if the first character type is a creature that walks on four legs, it may be difficult to arrange the joints to correspond to the shape of the source character, a person. The processor 410 may transform the first image to match the initial posture with the source character even if the type of the first character is a creature that walks on four legs. The motion cover system that connects animation data interchangeably according to this document can control the initial posture to facilitate covering even when the type of the first character is not a living creature such as a person walking on two legs.

동작 630에서, 프로세서(410)는 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 결정할 수 있다. 프로세서(410)는 제 1 이미지의 자세, 상기 소스 캐릭터의 부모 관절 및 자식 관절의 위치에 기반하여 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 결정할 수 있다.In operation 630, the processor 410 may determine the positions of the parent joint and child joint of the first character. The processor 410 may determine the positions of the parent and child joints of the first character based on the posture of the first image and the positions of the parent and child joints of the source character.

동작 640에서, 프로세서(410)는 제 1 캐릭터의 관절 위치가 소스 캐릭터의 관절 위치와 대응하는지 확인할 수 있다. 소스 캐릭터의 관절에 대응하는 태그를 이용하여 상기 제 1 캐릭터의 관절 위치가 상기 소스 캐릭터의 관절 위치와 대응하는지 확인할 수 있다. 태그는 예를 들어, 뼈의 이름이나 뼈에 대응하는 번호를 의미할 수 있다.In operation 640, the processor 410 may check whether the joint position of the first character corresponds to the joint position of the source character. It is possible to check whether the joint position of the first character corresponds to the joint position of the source character using the tag corresponding to the joint of the source character. A tag may mean, for example, the name of a bone or a number corresponding to the bone.

동작 650에서, 프로세서(410)는 소스 캐릭터의 골격 및 관절의 위치가 달라짐에 기반하여 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 다시 결정할 수 있다. 프로세서(410)는 소스 캐릭터의 골격 및 관절의 위치가 달라짐에 기반하여 상기 제 1 이미지의 자세를 변경하고, 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 다시 결정할 수 있다. 또한 제 2 이미지에 대응하는 제 2 캐릭터에 대해서도 마찬가지로 제 2 캐릭터의 부모 관절 및 자식 관절의 위치를 조정할 수 있다.In operation 650, the processor 410 may re-determine the positions of the parent joint and child joint of the first character based on changes in the positions of the skeleton and joints of the source character. The processor 410 may change the posture of the first image based on changes in the positions of the skeleton and joints of the source character and re-determine the positions of the parent joints and child joints of the first character. Additionally, for the second character corresponding to the second image, the positions of the parent joint and child joint of the second character can be adjusted similarly.

또한, 제 1 캐릭터의 골격 및 관절 움직임에 기반하여 제 2 캐릭터의 골격 및 관절을 다르게 제어하고, 모션 커버를 수행할 수 있다. 반대로 제 2 캐릭터의 골격 및 관절 움직임에 기반하여 제 1 캐릭터의 골격 및 관절을 다르게 제어하고 커버링을 수행할 수도 있다.Additionally, based on the skeleton and joint movements of the first character, the skeleton and joints of the second character may be differently controlled and motion cover may be performed. Conversely, the skeleton and joints of the first character may be differently controlled and covered based on the skeleton and joint movements of the second character.

일 실시예에 따르면, 프로세서(410)는 상기 소스 캐릭터에 포함된 적어도 하나 이상의 관절에 기반하여 상기 소스 캐릭터의 모션을 검출하고,According to one embodiment, the processor 410 detects the motion of the source character based on at least one joint included in the source character,

상기 소스 캐릭터가 움직일 때 회전하는 각도를 관절 별로 확인하고,Check the rotation angle for each joint when the source character moves,

상기 제 1 캐릭터가 상기 소스 캐릭터와 대응하는 움직임을 가져갈 때 회전하는 각도를 관절 별로 확인하며,When the first character makes a movement corresponding to the source character, the rotation angle is checked for each joint,

상기 소스 캐릭터의 부모 관절의 회전 각도와 상기 제 1 캐릭터의 부모 관절의 회전 각도가 사전에 설정된 제 1 수준을 초과하여 차이가 나는 경우 해당하는 부모 관절의 위치를 기록하고,If the rotation angle of the parent joint of the source character and the rotation angle of the parent joint of the first character differ by more than a preset first level, the position of the corresponding parent joint is recorded,

상기 소스 캐릭터의 자식 관절의 회전 각도와 상기 제 1 캐릭터의 자식 관절의 회전 각도가 상기 제 1 수준보다 상대적으로 높은 제 2 수준을 초과하여 차이가 나는 경우 해당하는 자식 관절의 위치를 기록할 수 있다.If the rotation angle of the child joint of the source character and the rotation angle of the child joint of the first character differ by more than a second level that is relatively higher than the first level, the position of the corresponding child joint may be recorded. .

여기서 제 1 수준 및 제 2 수준은 고정된 값은 아니며 설정에 따라 달라질 수 있다. 소스 캐릭터의 부모 관절의 회전 각도와 상기 제 1 캐릭터의 부모 관절의 회전 각도가 차이나는 경우, 모션 커버에 있어서 자식 관절보다 더 큰 영향을 줄 수 있다. 이러한 이유로 부모 관절은 회전 각도 차이가 상대적으로 작더라도 (예: 제 1 수준)위치를 기록하여 조정이 필요한 것으로 결정할 수 있다. 반면 자식 관절은 부모 관절보다는 모션 커버에 상대적으로 적은 영향을 미치므로 회전 각도 차이가 상대적으로 더 큰 경우(예: 제 2 수준)에만 위치를 기록하여 조정이 필요한 것으로 결정할 수 있다.Here, the first level and second level are not fixed values and may vary depending on settings. If the rotation angle of the parent joint of the source character is different from the rotation angle of the parent joint of the first character, it may have a greater influence on the motion cover than the child joint. For this reason, the parent joint can be determined to need adjustment by recording its position (e.g. first level) even if the rotation angle difference is relatively small. On the other hand, child joints have relatively less influence on the motion cover than their parent joints, so only when the rotation angle difference is relatively larger (e.g. at the second level) can the position be recorded and an adjustment determined as necessary.

프로세서(410)는 제 1 수준을 초과하는 부모 관절의 수에 대해서는 제 1 가중치를 부여하고, 상기 제 2 수준을 초과하는 자식 관절의 수에 대해서는 상기 제 1 가중치보다는 상대적으로 낮은 가중치를 부여할 수 있다. 모션 커버에 있어서, 자식 관절보다는 부모 관절이 상대적으로 큰 영향을 줄 수 있다. 그리고 전체적으로 모션 커버를 다시 수행할 지 결정하기 위해서는 종합적인 점수가 필요한데, 이 종합적인 점수를 결정할 때 조정이 필요한 관절의 수를 기반으로 점수를 결정할 수 있다. 이 때 부모 관절이 모션 커버에 상대적으로 큰 영향을 줄 수 있으므로 더 큰 가중치를 적용할 수 있다. 제 1 가중치는 고정된 값은 아니며 설정에 따라 달라질 수 있다. 단, 자식 관절은 제 1 가중치보다는 상대적으로 낮은 가중치가 적용되어 부모 관절보다 종합 점수에 미치는 영향력을 줄일 수 있다.The processor 410 may assign a first weight to the number of parent joints exceeding the first level, and may assign a relatively lower weight than the first weight to the number of child joints exceeding the second level. there is. When it comes to motion cover, parent joints can have a relatively greater influence than child joints. And in order to decide whether to perform the motion cover again as a whole, a comprehensive score is needed. When determining this overall score, the score can be determined based on the number of joints that require adjustment. At this time, since the parent joint can have a relatively large influence on the motion cover, a larger weight can be applied. The first weight is not a fixed value and may vary depending on settings. However, a relatively lower weight is applied to the child joint than the first weight, which can reduce its influence on the overall score compared to the parent joint.

프로세서(410)는 제 1 수준을 초과하는 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심에 가까울수록 상대적으로 높은 가중치를 부여하고, 상기 제 1 수준을 초과하는 부모 관절의 위치가 머리 또는 중심에서 멀수록 상대적으로 낮은 가중치를 부여할 수 있다.The processor 410 assigns a relatively higher weight as the position of the parent joint exceeding the first level is closer to the head or center of the first character, and the closer the position of the parent joint exceeding the first level is to the head or center of the first character. The further away from , the relatively lower weight can be assigned.

일반적으로 사람은 캐릭터의 머리나 중심부를 기준으로 시야를 확인할 수 있다. 이러한 가정 하에 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심에 가까울수록 회전 각도가 차이나는 경우 이를 지켜보는 사용자에게 상대적으로 큰 영향을 줄 수 있다. 이러한 이유로 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심에 가까울수록 높은 가중치를 부여하여 종합 점수에 미치는 영향력을 높일 수 있다.In general, people can check the field of view based on the character's head or center. Under this assumption, the closer the position of the parent joint is to the head or center of the first character, the difference in rotation angle may have a relatively large impact on the user watching. For this reason, the closer the position of the parent joint is to the head or center of the first character, the higher the weight can be assigned to increase the influence on the overall score.

프로세서(410)는 상기 제 1 가중치를 적용한 상기 제 1 수준을 초과하는 부모 관절의 수, 상기 제 2 가중치를 적용한 상기 제 2 수준을 초과하는 자식 관절의 수, 및 상기 제 1 캐릭터의 머리 또는 중심에 기반한 가중치를 고려하여 평가 값을 결정하고, 상기 평가 값이 기 설정된 수준을 초과하는 경우 모션 커버가 잘 이뤄지지 않은 것으로 결정하고, 다시 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 조정할 수 있다. 여기서 평가 값은 앞서 언급된 종합 점수를 의미할 수 있다. 프로세서(410)는 평가 값에 기반하여 모션 커버가 잘 이뤄졌는지 판단할 수 있다. 예를 들어, 프로세서(410)는 평가 값이 지정된 수준(예: 10점)을 초과함에 기반하여 소스 캐릭터의 모션 대비 차이가 큰 것으로 결정하고 모션 커버가 잘 이뤄지지 않은 것으로 결정할 수 있다.The processor 410 calculates the number of parent joints exceeding the first level to which the first weight is applied, the number of child joints exceeding the second level to which the second weight is applied, and the head or center of the first character. The evaluation value is determined by considering the weight based on , and if the evaluation value exceeds a preset level, it is determined that the motion cover is not properly achieved, and the positions of the parent joint and child joint of the first character can be adjusted again. . Here, the evaluation value may refer to the overall score mentioned above. The processor 410 may determine whether motion cover has been successfully achieved based on the evaluation value. For example, the processor 410 may determine that the difference in motion of the source character is large based on the evaluation value exceeding a specified level (e.g., 10 points) and that the motion cover is not well achieved.

일 실시예에 따르면, 프로세서(410)는 상기 소스 캐릭터에 포함된 적어도 하나 이상의 관절에 기반하여 상기 소스 캐릭터의 모션을 검출하고, According to one embodiment, the processor 410 detects the motion of the source character based on at least one joint included in the source character,

상기 소스 캐릭터가 움직일 때 회전하는 각도를 관절 별로 확인하고,Check the rotation angle for each joint when the source character moves,

상기 제 1 캐릭터가 상기 소스 캐릭터와 대응하는 움직임을 가져갈 때 회전하는 각도를 관절 별로 확인하며,When the first character makes a movement corresponding to the source character, the rotation angle is checked for each joint,

상기 소스 캐릭터의 부모 관절의 회전 각도와 상기 제 1 캐릭터의 부모 관절의 회전 각도가 사전에 설정된 제 1 수준을 초과하여 차이가 나는 경우 해당하는 부모 관절의 위치를 기록하고,If the rotation angle of the parent joint of the source character and the rotation angle of the parent joint of the first character differ by more than a preset first level, the position of the corresponding parent joint is recorded,

상기 소스 캐릭터의 자식 관절의 회전 각도와 상기 제 1 캐릭터의 자식 관절의 회전 각도가 상기 제 1 수준보다 상대적으로 높은 제 2 수준을 초과하여 차이가 나는 경우 해당하는 자식 관절의 위치를 기록하고If the rotation angle of the child joint of the source character and the rotation angle of the child joint of the first character differ by more than a second level that is relatively higher than the first level, the position of the corresponding child joint is recorded, and

상기 평가 값이 기 설정된 수준을 초과하는 경우 모션 커버가 잘 이뤄지지 않은 것으로 결정하고, 다시 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 조정할 때 기록된 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 이용하여 해당 위치의 관절들의 재조정을 수행하며,If the evaluation value exceeds a preset level, it is determined that the motion cover is not well achieved, and when the positions of the parent joint and child joint of the first character are adjusted again, the recorded parent joint and child joint of the first character Using the location, readjust the joints at that location,

재조정 수행 후 상기 제 1 캐릭터의 관절들 중에서 기록된 관절들에 대해서만 회전 각도를 측정하고 상기 소스 캐릭터의 관절들 중 대응하는 위치의 관절들의 회전 각도와 비교하여 모션 커버가 잘 이뤄졌는지 검증할 수 있다.After performing readjustment, the rotation angle can be measured only for the joints recorded among the joints of the first character and compared with the rotation angle of the joints at the corresponding positions among the joints of the source character to verify whether the motion cover has been properly achieved. .

일 실시예에 따르면, 프로세서(410)는 상기 제 1 수준을 초과하는 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심을 기준으로 지정된 수준을 초과하여 멀리 떨어진 경우 IK(Inverse Kinematics) 기능을 적용하여 상기 제 1 수준을 초과하는 부모 관절의 회전 각도를 상대적으로 감소시키고,According to one embodiment, the processor 410 applies an IK (Inverse Kinematics) function when the position of the parent joint exceeding the first level is farther than the specified level based on the head or center of the first character. thereby relatively reducing the rotation angle of the parent joint that exceeds the first level,

상기 제 1 수준을 초과하는 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심을 기준으로 지정된 수준 이내로 가깝게 위치하는 경우 IK(Inverse Kinematics) 또는 FK(Forward Kinematics) 중 원래 적용된 기능을 유지할 수 있다.If the position of the parent joint exceeding the first level is located close to the head or center of the first character within a specified level, the originally applied function of IK (Inverse Kinematics) or FK (Forward Kinematics) may be maintained.

IK(Inverse Kinematics) 기능은 캐릭터에 뼈를 고정시켜 뼈의 끝부분의 컨트롤러를 움직이는 기능을 의미하고, FK(Forward Kinematics) 기능은 뼈의 회전값을 움직여 애니메이션 효과를 부여하는 기능을 의미할 수 있다.The IK (Inverse Kinematics) function refers to the function of fixing a bone to a character and moving the controller at the end of the bone, and the FK (Forward Kinematics) function may refer to the function of applying an animation effect by moving the rotation value of the bone. .

본 명세서와 도면에 개시된 본 문서의 실시예는 본 문서의 실시예에 따른 기술 내용을 쉽게 설명하고 본 문서의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 문서의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 문서의 일 실시예의 범위는 여기에 개시된 실시예 이외에도 본 문서의 일 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 문서의 일 실시예의 범위에 포함되는 것으로 해석되어야 한다.The embodiments of this document disclosed in the specification and drawings are merely presented as specific examples to easily explain the technical content according to the embodiments of this document and to aid understanding of the embodiments of this document, and limit the scope of the embodiments of this document. That's not what I want to do. Therefore, the scope of an embodiment of this document should be interpreted as including all changes or modified forms derived based on the technical idea of an embodiment of this document in addition to the embodiments disclosed herein.

Claims (3)

애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 시스템에 있어서,
프로세서;및
메모리를 포함하고,
상기 프로세서는
사용자 단말로부터 제 1 캐릭터에 대응하는 제 1 이미지를 수신하고, 제 2 캐릭터에 대응하는 제 2 이미지를 수신하며,
소스 캐릭터 상에서 골격 모델 데이터를 추출하고,
추출된 골격 모델 데이터를 IK(Inverse Kinematics) 기능, FK(Forward Kinematics) 기능 및 사람의 골격에 대한 기 설정된 데이터에 기반하여 자식 관절의 움직임에 영향을 받지 않는 부모 관절 및 상기 부모 관절의 움직임에 영향을 받는 자식 관절로 구분하며,
상기 제 1 이미지의 형태에 기반하여 골격을 결정하고, 결정된 골격 상에서 부모 관절을 결정한 후 상기 소스 캐릭터의 부모 관절과 대응시키고,
상기 소스 캐릭터의 부모 관절에 따른 자식 관절의 움직임에 기반하여 상기 제 1 캐릭터의 자식 관절의 움직임을 결정하며,
대응된 부모 관절을 중심으로 상기 소스 캐릭터의 움직임을 실시간으로 관찰 하고, 상기 소스 캐릭터의 부모 관절의 움직임을 상기 제 1 캐릭터의 부모 관절 상에 적용시키며,
상기 제 2 이미지의 형태에 기반하여 골격을 결정하고, 결정된 골격 상에서 부모 관절을 결정한 후 상기 제 1 캐릭터의 부모 관절과 대응시키고,
상기 제 1 캐릭터의 부모 관절에 따른 자식 관절의 움직임에 기반하여 상기 제 2 캐릭터의 자식 관절의 움직임을 결정하며,
상기 제 1 캐릭터의 부모 관절의 움직임을 상기 제 2 캐릭터의 부모 관절 상에 적용시키며,
상기 소스 캐릭터에 포함된 적어도 하나 이상의 관절에 기반하여 상기 소스 캐릭터의 모션을 검출하고,
상기 소스 캐릭터가 움직일 때 회전하는 각도를 관절 별로 확인하고,
상기 제 1 캐릭터가 상기 소스 캐릭터와 대응하는 움직임을 가져갈 때 회전하는 각도를 관절 별로 확인하며,
상기 소스 캐릭터의 부모 관절의 회전 각도와 상기 제 1 캐릭터의 부모 관절의 회전 각도가 사전에 설정된 제 1 수준을 초과하여 차이가 나는 경우 해당하는 부모 관절의 위치를 기록하고,
상기 소스 캐릭터의 자식 관절의 회전 각도와 상기 제 1 캐릭터의 자식 관절의 회전 각도가 상기 제 1 수준보다 상대적으로 높은 제 2 수준을 초과하여 차이가 나는 경우 해당하는 자식 관절의 위치를 기록하고,
상기 제 1 수준을 초과하는 부모 관절의 수에 대해서는 제 1 가중치를 부여하고,
상기 제 2 수준을 초과하는 자식 관절의 수에 대해서는 상기 제 1 가중치보다는 상대적으로 낮은 가중치를 부여하며,
상기 제 1 수준을 초과하는 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심에 가까울수록 상대적으로 높은 가중치를 부여하고, 상기 제 1 수준을 초과하는 부모 관절의 위치가 머리 또는 중심에서 멀수록 상대적으로 낮은 가중치를 부여하며,
상기 제 1 가중치를 적용한 상기 제 1 수준을 초과하는 부모 관절의 수, 상기 제 1 가중치보다 상대적으로 낮은 가중치를 적용한 상기 제 2 수준을 초과하는 자식 관절의 수, 및 상기 제 1 캐릭터의 머리 또는 중심에 기반한 가중치를 고려하여 평가 값을 결정하고,
상기 평가 값이 기 설정된 수준을 초과하는 경우 모션 커버가 잘 이뤄지지 않은 것으로 결정하고, 다시 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 조정하고,
상기 제 1 수준을 초과하는 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심을 기준으로 지정된 수준을 초과하여 멀리 떨어진 경우 IK(Inverse Kinematics) 기능을 적용하여 상기 제 1 수준을 초과하는 부모 관절의 회전 각도를 상대적으로 감소시키고,
상기 제 1 수준을 초과하는 부모 관절의 위치가 상기 제 1 캐릭터의 머리 또는 중심을 기준으로 지정된 수준 이내로 가깝게 위치하는 경우 IK(Inverse Kinematics) 또는 FK(Forward Kinematics) 중 원래 적용된 기능을 유지하는 시스템.
In a motion cover system that connects animation data interchangeably,
processor; and
contains memory,
The processor is
Receiving a first image corresponding to a first character from a user terminal, receiving a second image corresponding to a second character,
Extract skeletal model data from the source character,
The extracted skeletal model data is based on the IK (Inverse Kinematics) function, FK (Forward Kinematics) function, and preset data for the human skeleton to determine the parent joint that is not affected by the movement of the child joint and the movement of the parent joint. Divided into child joints that receive
Determining a skeleton based on the shape of the first image, determining parent joints on the determined skeleton, and then matching them with parent joints of the source character,
Determining the movement of the child joint of the first character based on the movement of the child joint according to the parent joint of the source character,
Observe the movement of the source character in real time around the corresponding parent joint, and apply the movement of the parent joint of the source character to the parent joint of the first character,
Determining a skeleton based on the shape of the second image, determining parent joints on the determined skeleton, and then matching them with parent joints of the first character,
Determining the movement of the child joint of the second character based on the movement of the child joint according to the parent joint of the first character,
Applying the movement of the parent joint of the first character to the parent joint of the second character,
Detecting motion of the source character based on at least one joint included in the source character,
Check the rotation angle for each joint when the source character moves,
When the first character makes a movement corresponding to the source character, the rotation angle is checked for each joint,
If the rotation angle of the parent joint of the source character and the rotation angle of the parent joint of the first character differ by more than a preset first level, the position of the corresponding parent joint is recorded,
If the rotation angle of the child joint of the source character and the rotation angle of the child joint of the first character differ by more than a second level that is relatively higher than the first level, the position of the corresponding child joint is recorded,
A first weight is assigned to the number of parent joints exceeding the first level,
A relatively lower weight than the first weight is given to the number of child joints exceeding the second level,
As the position of the parent joint exceeding the first level is closer to the head or center of the first character, a relatively higher weight is given, and as the position of the parent joint exceeding the first level is farther from the head or center, a relatively higher weight is given. A low weight is given to
The number of parent joints exceeding the first level to which the first weight is applied, the number of child joints exceeding the second level to which a relatively lower weight than the first weight is applied, and the head or center of the first character Determine the evaluation value by considering the weight based on
If the evaluation value exceeds a preset level, it is determined that the motion cover is not properly achieved, and the positions of the parent joint and child joint of the first character are adjusted again,
If the position of the parent joint exceeding the first level is farther than the specified level based on the head or center of the first character, the IK (Inverse Kinematics) function is applied to position the parent joint exceeding the first level. Relatively reduce the rotation angle,
A system that maintains the originally applied function of IK (Inverse Kinematics) or FK (Forward Kinematics) when the position of the parent joint exceeding the first level is located close to within a specified level based on the head or center of the first character.
제 1항에 있어서,
상기 프로세서는
상기 소스 캐릭터의 초기 자세에 대응하는 골격 및 관절의 위치를 결정하고,
상기 소스 캐릭터의 초기 자세에 대응하도록 상기 제 1 이미지의 자세를 변경시키며,
상기 제 1 이미지의 자세, 상기 소스 캐릭터의 부모 관절 및 자식 관절의 위치에 기반하여 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 결정하고,
상기 소스 캐릭터의 관절에 대응하는 태그를 이용하여 상기 제 1 캐릭터의 관절 위치가 상기 소스 캐릭터의 관절 위치와 대응하는지 확인하고
상기 소스 캐릭터의 골격 및 관절의 위치가 달라짐에 기반하여 상기 제 1 이미지의 자세를 변경하고, 상기 제 1 캐릭터의 부모 관절 및 자식 관절의 위치를 다시 결정하는 시스템.



According to clause 1,
The processor is
Determine the positions of the skeleton and joints corresponding to the initial posture of the source character,
Changing the posture of the first image to correspond to the initial posture of the source character,
Determining the positions of the parent joints and child joints of the first character based on the posture of the first image and the positions of the parent joints and child joints of the source character,
Check whether the joint position of the first character corresponds to the joint position of the source character using a tag corresponding to the joint of the source character, and
A system that changes the posture of the first image based on changes in the positions of the skeleton and joints of the source character and re-determines the positions of the parent joints and child joints of the first character.



삭제delete
KR1020230015870A 2023-02-07 2023-02-07 Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner Active KR102589194B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230015870A KR102589194B1 (en) 2023-02-07 2023-02-07 Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230015870A KR102589194B1 (en) 2023-02-07 2023-02-07 Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner

Publications (1)

Publication Number Publication Date
KR102589194B1 true KR102589194B1 (en) 2023-10-13

Family

ID=88289693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230015870A Active KR102589194B1 (en) 2023-02-07 2023-02-07 Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner

Country Status (1)

Country Link
KR (1) KR102589194B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080050283A (en) 2006-12-02 2008-06-05 한국전자통신연구원 Correlation Extraction Method for 3D Motion Data Generation and Motion Capture System and Method for Easy Synthesis of Humanoid Characters in Photorealistic Background Image
KR20090114169A (en) * 2008-04-29 2009-11-03 연세대학교 산학협력단 Method and system for creating exaggeration image using rubber-like exaggeration algorithm
KR20120020137A (en) 2009-05-29 2012-03-07 마이크로소프트 코포레이션 Systems and methods for applying animations or motions to a character
KR101519775B1 (en) * 2014-01-13 2015-05-12 인천대학교 산학협력단 Method and apparatus for generating animation based on object motion
KR20200005894A (en) 2018-07-09 2020-01-17 한국과학기술원 Motion Retargeting Method to Preserve the Spatial Relationships between Skinned Characters and Apparatus therefor
KR102364728B1 (en) 2021-10-20 2022-02-18 주식회사 행복한다람쥐단 Methods for generating character motion from frame data of subject and apparatus using the same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080050283A (en) 2006-12-02 2008-06-05 한국전자통신연구원 Correlation Extraction Method for 3D Motion Data Generation and Motion Capture System and Method for Easy Synthesis of Humanoid Characters in Photorealistic Background Image
KR20090114169A (en) * 2008-04-29 2009-11-03 연세대학교 산학협력단 Method and system for creating exaggeration image using rubber-like exaggeration algorithm
KR20120020137A (en) 2009-05-29 2012-03-07 마이크로소프트 코포레이션 Systems and methods for applying animations or motions to a character
KR101519775B1 (en) * 2014-01-13 2015-05-12 인천대학교 산학협력단 Method and apparatus for generating animation based on object motion
KR20200005894A (en) 2018-07-09 2020-01-17 한국과학기술원 Motion Retargeting Method to Preserve the Spatial Relationships between Skinned Characters and Apparatus therefor
KR102364728B1 (en) 2021-10-20 2022-02-18 주식회사 행복한다람쥐단 Methods for generating character motion from frame data of subject and apparatus using the same

Similar Documents

Publication Publication Date Title
CA3111430C (en) Systems and methods for generating complementary data for visual display
Seol et al. Creature features: online motion puppetry for non-human characters
US11069113B2 (en) Method and apparatus for creating a computer simulation of an actor
Xia et al. A survey on human performance capture and animation
US20220319140A1 (en) An example-based real-time clothing synthesis method
CN112602090A (en) Method and system for interpolating different inputs
Ho et al. Interactive partner control in close interactions for real-time applications
CN104050702B (en) Direct maneuvering calculation machine generates the method and system of the limited model of role
US10553009B2 (en) Automatically generating quadruped locomotion controllers
CN113822984B (en) A method, device, system and medium for generating three-dimensional model
Magnenat-Thalmann Modeling and simulating bodies and garments
Sousa et al. Humanized robot dancing: humanoid motion retargeting based in a metrical representation of human dance styles
Schleicher et al. BASH: Biomechanical Animated Skinned Human for Visualization of Kinematics and Muscle Activity.
WO2016188551A1 (en) Animating a virtual object in a virtual world
Jain et al. Leveraging the talent of hand animators to create three-dimensional animation
Wang et al. A Generative Human-Robot Motion Retargeting Approach Using a Single RGBD Sensor.
Vogt et al. A data-driven method for real-time character animation in human-agent interaction
KR102589194B1 (en) Motion cover method, apparatus, and system for linking animation data between different characters in a compatible manner
Bhatti et al. Widget based automated rigging of bipedal character with custom manipulators
Wang et al. Real-time control of 3D virtual human motion using a depth-sensing camera for agricultural machinery training
Xia et al. Recent advances on virtual human synthesis
Liu et al. 2.5 D human pose estimation for shadow puppet animation
Kang et al. Efficient inverse-kinematics solver for precise pose reconstruction of skinned 3D models
Ho et al. Real-Time Full-Body Pose Synthesis and Editing
TOPUZ MOTION-BASED DYNAMIC FORM GENERATION TO CONTRIBUTE TO THE KINETIC DESIGN DIVERSITY

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20230207

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20230208

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20230207

Patent event code: PA03021R01I

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20230420

Patent event code: PE09021S01D

PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20230710

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20231010

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20231010

End annual number: 3

Start annual number: 1

PG1601 Publication of registration