KR102638847B1 - 애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치 - Google Patents

애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치 Download PDF

Info

Publication number
KR102638847B1
KR102638847B1 KR1020230061524A KR20230061524A KR102638847B1 KR 102638847 B1 KR102638847 B1 KR 102638847B1 KR 1020230061524 A KR1020230061524 A KR 1020230061524A KR 20230061524 A KR20230061524 A KR 20230061524A KR 102638847 B1 KR102638847 B1 KR 102638847B1
Authority
KR
South Korea
Prior art keywords
vector
character
avoidance
collision
point
Prior art date
Application number
KR1020230061524A
Other languages
English (en)
Inventor
이현우
Original Assignee
블래스트 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 블래스트 주식회사 filed Critical 블래스트 주식회사
Priority to KR1020230061524A priority Critical patent/KR102638847B1/ko
Application granted granted Critical
Publication of KR102638847B1 publication Critical patent/KR102638847B1/ko

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)을 생성하는 단계; 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 캐릭터의 본 상에 설정하는 단계; 시작점 및 목표점 간에 충돌 테스트를 수행하여 시작점 및 목표점 사이의 충돌 면을 산출하는 단계; 및 캐릭터의 충돌 면 및 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출하는 단계;를 포함한다.

Description

애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치{VECTOR DETERMINATION METHOD FOR AVOIDING INTERFERENCE BETWEEN BODY PARTS OF ANIMATED CHARACTER AND DEVICE THEREOF}
본 발명은 애니메이션 캐릭터의 신체 간 간섭 회피 방법 및 장치에 관한 것으로, 보다 상세하게는 모션 캡처 기술을 실시간으로 이용하여 생성되는 애니메이션 캐릭터의 신체 간 간섭을 회피하기 위한 벡터 결정 방법 및 장치에 관한 것이다.
모션 캡처(Motion Capture)는 몸에 센서를 부착하거나, 이미지 센서 등을 이용하여, 인체의 움직임을 디지털 형태로 기록하는 작업을 지칭한다. 또는 모션 캡처는 사용자의 모션을 캡처하여, 컴퓨터 그래픽(computer graphic, CG) 애니메이션 등의 형태로 기록 및 가공하는 기술을 지칭할 수 있다. 즉, 모션 캡처 시스템은 실제 사용자의 움직임(movement)을 캡처하고 캡처한 움직임을 컴퓨터로 생성한 오브젝트에 맵핑(mapping)시킴으로써, 애니메이션 캐릭터를 생성할 수 있다.
종래의 모션 캡쳐 방식을 이용하여 애니메이션 캐릭터를 생성하는 방식은 오브젝트와 캐릭터 사이의 신체 비율 차이를 고려하지 않고, 단순히 모션 데이터를 캐릭터에 그대로 적용하는 방식이다. 따라서, 종래의 모션 캡처 방식을 이용하는 경우, 캐릭터의 팔과 같은 신체 부위가 다른 신체 부위와 쉽게 충돌할 수 있다. 예를 들어 오브젝트의 팔보다 캐릭터의 팔이 긴 경우, 오브젝트는 손으로 허리를 짚고 있지만, 오브젝트의 움직임 정보를 기초로 생성된 캐릭터의 손이 골반에 파묻히는 오류가 발생할 수 있다.
종래의 모션 캡처 방식은 대부분 영화와 같은 사전 렌더링 영상에 적용되었다. 사전 렌더링 영상의 경우, 모션 캡쳐 데이터를 획득한 후, 애니메이터들이 수작업으로 바로잡는 후처리 공정을 거치기 때문에, 애니메이션 캐릭터의 신체 부위간 충돌을 보정할 수 있다.
하지만 게임 엔진 등을 이용한 실시간 가상 콘텐츠의 수요가 증가하고, 모션 캡쳐 방식을 캐릭터에 실시간으로 적용하려는 시도가 늘어나는 상황이다. 이로 인하여, 모션 캡쳐 데이터를 실시간으로 캐릭터에 적용하는 콘텐츠를 생성하기 위해서는 별도의 후처리 공정 없이 모션 캡쳐 데이터를 캐릭터에 곧바로 적용해야 한다. 따라서, 기존의 모션 캡쳐 방식은 한계점을 보인다.
이에, 실시간 모션 캡처 방식을 위한 애니메이션 캐릭터의 신체 간 간섭 회피 방법의 필요성이 대두되고 있다. 본 발명은 이와 관련된 것이다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 실시간으로 충돌 위험을 감지하고 팔이 다른 신체와 충돌하지 않도록 모션 캡처 데이터를 가공해 캐릭터 애니메이션에 적용하는 애니메이션 캐릭터의 신체 간 간섭 회피 방법을 제공하는 것이다.
본 발명을 통해 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법은, 사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계; 상기 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 상기 캐릭터의 본 상에 설정하는 단계; 상기 시작점 및 상기 목표점 간에 충돌 테스트를 수행하여 상기 시작점 및 상기 목표점 사이의 충돌 면을 산출하는 단계; 및 상기 캐릭터의 충돌 면 및 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출하는 단계;를 포함할 수 있다.
여기서, 상기 회피 벡터를 산출하는 단계는, 기본 회피 벡터를 산출하는 단계를 포함하고, 상기 기본 회피 벡터를 산출하는 단계는, 상기 시작점, 상기 목표점 및 상기 충돌 면의 위치를 기초로 충돌 거리 비율을 산출하는 단계; 및 상기 시작점 및 상기 목표점 사이의 상기 충돌 면의 법선 벡터인 제1차 회피 벡터를 산출하는 단계;를 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 제1차 회피 벡터는 상기 충돌 거리 비율이 가장 작은 시작점, 목표점, 및 충돌 면을 기준으로 산출되는 것을 특징으로 할 수 있다.
여기서, 상기 기본 회피 벡터를 산출하는 단계는, 상기 캐릭터의 척추로부터 상기 상지의 하박으로 향하는 경향 벡터를 산출하는 단계; 및 상기 제1차 회피 벡터에 상기 경향 벡터를 더하여 제2차 회피 벡터를 산출하는 단계;를 더 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 회피 벡터를 산출하는 단계는, 상기 캐릭터의 중심축의 정면 벡터 및 상기 캐릭터의 척추로부터 옆구리로 향하는 측면 벡터 중 적어도 하나를 기초로 추가 회피 벡터를 산출하는 단계;를 더 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 추가 회피 벡터를 산출하는 단계는, 상기 기본 회피 벡터가 상기 캐릭터의 중심을 넘어 반대편 방향을 향하는 경우 상기 기본 회피 벡터를 상기 중심축의 정면 벡터와 평행하도록 제한한 제3차 회피 벡터를 산출하는 단계;를 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 추가 회피 벡터를 산출하는 단계는, 상기 기본 회피 벡터에 상기 측면 벡터를 더한 제4차 회피 벡터를 산출하는 단계;를 포함하는 것을 특징으로 할 수 있다.
여기서, 상기 제4차 회피 벡터를 산출하는 단계는, 상기 캐릭터의 상박 상의 제1 기준점 및 상기 캐릭터의 척추 선분 상의 제2 기준점을 설정하는 단계; 상기 제1 기준점 및 상기 제2 기준점 사이의 거리값과 상기 척추로부터 상기 옆구리까지의 거리값을 기초로 상박 충돌 비율을 산출하는 단계; 및 상기 상박 충돌 비율 값을 기초로 가중치를 산출하는 단계를 포함하고, 상기 제4차 회피 벡터는, 상기 기본 회피 벡터, 상기 측면 벡터, 및 상기 가중치를 기초로 산출되는 것을 특징으로 할 수 있다.
여기서, 상기 제1 기준점은 상기 캐릭터의 상박의 중심점이고, 상기 제2 기준점은 상기 척추 선분에서 상기 제1 기준점과 가장 가까운 지점이며, 상기 상박 충돌 비율 값은 상기 제1 기준점 및 상기 제2 기준점 사이의 거리값에 상기 척추로부터 상기 옆구리까지의 거리값을 나눈 값인 것을 특징으로 할 수 있다.
여기서, 상기 제4차 회피 벡터는, 상기 기본 회피 벡터에 상기 가중치가 적용된 상기 측면 벡터를 더하여 산출되는 것을 특징으로 할 수 있다.
여기서, 상기 상박 충돌 비율 값이 미리 설정된 제1 값보다 큰 경우, 상기 가중치가 적용된 상기 측면 벡터의 크기는 0인 것을 특징으로 할 수 있다.
여기서, 상기 상박 충돌 비율 값이 미리 설정된 제2 값보다 작거나 같은 경우, 상기 가중치가 적용된 상기 측면 벡터의 크기는 상기 기본 회피 벡터의 크기와 동일한 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 따른 캐릭터의 신체 간 간섭 회피를 위한 동작 방법을 실행하기 위한 시스템의 장치는, 적어도 하나의 프로그램 명령이 저장된 메모리; 및 상기 적어도 하나의 프로그램 명령을 수행하는 프로세서를 포함하고, 상기 적어도 하나의 프로그램 명령은, 사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하고; 상기 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 상기 캐릭터의 본 상에 설정하고; 상기 시작점 및 상기 목표점 간에 충돌 테스트를 수행하여 상기 시작점 및 상기 목표점 사이의 충돌 면을 산출하고; 그리고 상기 캐릭터의 충돌 면 및 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출하도록 실행될 수 있다.
여기서, 상기 적어도 하나의 프로그램 명령은, 상기 회피 벡터를 산출하도록 실행됨에 있어, 기본 회피 벡터를 산출하도록 실행되고, 상기 기본 회피 벡터를 산출하도록 실행됨에 있어, 상기 시작점, 상기 목표점 및 상기 충돌 면의 위치를 기초로 충돌 거리 비율을 산출하고; 그리고 상기 시작점 및 상기 목표점 사이의 상기 충돌 면의 법선 벡터인 제1차 회피 벡터를 산출하도록 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 제1차 회피 벡터는 상기 충돌 거리 비율이 가장 작은 시작점, 목표점, 및 충돌 면을 기준으로 산출되는 것을 특징으로 할 수 있다.
여기서, 상기 기본 회피 벡터를 산출하도록 실행됨에 있어, 상기 캐릭터의 척추로부터 상기 상지의 하박으로 향하는 경향 벡터를 산출하고; 그리고 상기 제1차 회피 벡터에 상기 경향 벡터를 더하여 제2차 회피 벡터를 산출하도록 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 회피 벡터를 산출하도록 실행됨에 있어, 상기 캐릭터의 중심축의 정면 벡터 및 상기 캐릭터의 척추로부터 옆구리로 향하는 측면 벡터 중 적어도 하나를 기초로 추가 회피 벡터를 산출하도록 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 추가 회피 벡터를 산출하도록 실행됨에 있어, 상기 기본 회피 벡터가 상기 캐릭터의 중심을 넘어 반대편 방향을 향하는 경우 상기 기본 회피 벡터를 상기 중심축의 정면 벡터와 평행하도록 제한한 제3차 회피 벡터를 산출하도록 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 추가 회피 벡터를 산출하도록 실행됨에 있어, 상기 기본 회피 벡터에 상기 측면 벡터를 더한 제4차 회피 벡터를 산출하도록 실행되는 것을 특징으로 할 수 있다.
여기서, 상기 제4차 회피 벡터를 산출하도록 실행됨에 있어, 상기 캐릭터의 상박 상의 제1 기준점 및 상기 캐릭터의 척추 선분 상의 제2 기준점을 설정하고; 상기 제1 기준점 및 상기 제2 기준점 사이의 거리값과 상기 척추로부터 상기 옆구리까지의 거리값을 기초로 상박 충돌 비율을 산출하고; 그리고 상기 상박 충돌 비율 값을 기초로 가중치를 산출하도록 실행되고, 상기 제4차 회피 벡터는, 상기 기본 회피 벡터, 상기 측면 벡터, 및 상기 가중치를 기초로 산출되는 것을 특징으로 할 수 있다.
여기서, 상기 제1 기준점은 상기 캐릭터의 상박의 중심점이고, 상기 제2 기준점은 상기 척추 선분에서 상기 제1 기준점과 가장 가까운 지점이며, 상기 상박 충돌 비율 값은 상기 제1 기준점 및 상기 제2 기준점 사이의 거리값에 상기 척추로부터 상기 옆구리까지의 거리값을 나눈 값인 것을 특징으로 할 수 있다.
여기서, 상기 제4차 회피 벡터는, 상기 기본 회피 벡터에 상기 가중치가 적용된 상기 측면 벡터를 더하여 산출되는 것을 특징으로 할 수 있다.
여기서, 상기 상박 충돌 비율 값이 미리 설정된 제1 값보다 큰 경우, 상기 가중치가 적용된 상기 측면 벡터의 크기는 0인 것을 특징으로 할 수 있다.
여기서, 상기 상박 충돌 비율 값이 미리 설정된 제2 값보다 작거나 같은 경우, 상기 가중치가 적용된 상기 측면 벡터의 크기는 상기 기본 회피 벡터의 크기와 동일한 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 따른 장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법은, 사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계; 상기 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 상기 캐릭터의 본 상에 설정하는 단계; 상기 시작점 및 상기 목표점 간에 충돌 테스트를 수행하여 상기 시작점 및 상기 목표점 사이의 충돌 면을 산출하는 단계; 및 상기 캐릭터의 충돌 면의 법선 벡터, 상기 캐릭터의 척추로부터 하박을 향하는 경향 벡터, 캐릭터의 중심축의 정면 벡터, 및 캐릭터의 측면 벡터 중 적어도 하나를 기초로 회피 벡터를 산출하는 단계;를 포함할 수 있다.
상술한 본 개시의 양태들은 본 개시의 바람직한 실시 예들 중 일부에 불과하며, 본 개시의 기술적 특징들이 반영된 다양한 실시 예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 개시의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명의 실시예에 따르면, 실시간으로 충돌 위험을 감지하고 팔이 다른 신체와 충돌하지 않도록 모션 캡쳐 데이터를 가공함으로써, 사용자의 역동적인 동작에도 불구하고 신속하게 자연스러운 애니메이션을 생성할 수 있다.
본 발명의 실시예에 따르면, 프로그램을 이용하여 충돌 위험을 감지하고 팔이 다른 신체와 충돌하지 않도록 모션 캡쳐 데이터를 가공함으로써, 사용자의 연기 및 신체 비율 등의 제약 사항이 사라질 수 있다.
본 발명을 통해 얻을 수 있는 효과는 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시에 따른 전체 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 개시에 따른 시스템을 구성하는 디바이스의 구성의 실시예를 도시한 블록도이다.
도 3은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 일 실시예를 도시한 흐름도이다.
도 4는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본의 일 실시예를 도시한 도면이다.
도 5는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 검사 시작 선분 및 목표 선분의 일 실시예를 도시한 도면이다.
도 6은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 시작점 및 목표점의 일 실시예를 도시한 도면이다.
도 7은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 충돌 테스트를 위한 거리 설정 결과의 일 실시예를 도시한 도면이다.
도 8은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 시작점 및 목표점의 일 실시예를 도시한 도면이다.
도 9는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 충돌 테스트 결과의 일 실시예를 도시한 도면이다.
도 10은 본 개시에 따른 회피 오프셋을 산출하는 동작의 일 실시예를 도시한 흐름도이다.
도 11은 본 개시에 따른 충돌 거리 비율 산출 결과의 일 실시예를 도시한 도면이다.
도 12는 본 개시에 따른 기본 회피 벡터를 산출하는 동작의 일 실시예를 도시한 흐름도이다.
도 13은 본 개시에 따른 제1차 회피 벡터의 일 실시예를 도시한 도면이다.
도 14는 본 개시에 따른 캐릭터의 충돌 면을 기초로 한 제1차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 15는 본 개시에 따른 사용자의 이동 방향을 기초로 한 경향 벡터의 일 실시예를 도시한 도면이다.
도 16은 본 개시에 따른 제1차 회피 벡터 및 경향 벡터를 기초로 한 제2차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 17은 본 개시에 따른 제2차 회피 벡터의 산출 결과의 일 실시예를 도시한 도면이다.
도 18은 본 개시에 따른 중심축 정면 벡터를 기초로 한 제3차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 19는 본 개시에 따른 제4 회피 벡터를 산출하는 동작의 일 실시예를 도시한 흐름도이다.
도 20은 본 개시에 따른 제2차 회피 벡터 또는 제3차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 21은 본 개시에 따른 측면 벡터를 기초로 산출한 제4차 회피 벡터의 일 실시예를 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 개시에 따른 전체 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 전체 시스템은 사용자 디바이스(102), 서버(104), 이미지 캡처 디바이스(106), 객체(108), 디스플레이 디바이스(110), 및 통신 네트워크(112)를 포함할 수 있다. 사용자 디바이스(102)는, 통신 네트워크(112)를 통해, 서버(104), 이미지 캡처 디바이스(106), 및 디스플레이 디바이스(110)와 연결될 수 있다.
사용자 디바이스(102)는, 애니메이션을 생성하기 위한 로직, 회로, 인터페이스, 및/또는 코드를 포함할 수 있다. 사용자 디바이스(102)는, 이미지 캡처 디바이스(106)에 의해 추적된 객체(108)의 움직임에 기초하여 캐릭터의 애니메이션을 생성하고, 생성한 애니메이션을 디스플레이 디바이스(110)를 통해 출력할 수 있다. 사용자 디바이스(102)는, 게임 디바이스, 화상 회의 시스템, 증강 현실-기반 디바이스, 컴퓨팅 디바이스, 서버, 컴퓨터 워크스테이션, 메인 프레임 기계, 및/또는 기타의 사용자 디바이스를 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
서버(104)는, 하나 이상의 애니메이션 모델을 저장할 수 있는 회로, 인터페이스 및/또는 코드를 포함할 수 있다. 일 실시예에 따르면, 서버(104)는, 애플리케이션 서버, 클라우드 서버, 웹 서버, 데이터베이스 서버, 파일 서버, 게임 서버, 메인 프레임 서버, 또는 이들의 조합을 포함할 수 있으나, 이것으로 제한되는 것은 아니다.
이미지 캡처 디바이스(106)는, 객체(108)의 이미지 및 움직임을 캡처하기 위한 로직, 회로, 인터페이스, 및/또는 코드를 포함할 수 있다. 이미지 캡처 디바이스(106)는, 객체(108)의 하나 이상의 이미지 및/또는 자세를 실시간, 또는 지연된 시간 이내에 캡처할 수 있다. 또한, 이미지 캡처 디바이스(106)는 캡처한 이미지를 기초로 객체(108)의 본 구조 정보를 결정할 수 있다. 본 구조 정보는 객체(108)의 골격 정보를 포함할 수 있다. 이미지 캡처 디바이스(106)는 결정된 본 구조 정보를 통신 네트워크(112)를 통해 사용자 디바이스(102)에 전송할 수 있다. 이미지 캡처 디바이스(106)는, 하나의 시점으로부터 객체(108)의 하나 이상의 자세를 캡처하는, 깊이 센서, 적외선(IR) 센서, 및/또는 (적색-녹색-파랑(RGB) 센서 등의) 컬러 센서, 3D 메시 구조 생성기, 이미지 센서, 및/또는 모션 검출 센서 등을 포함할 수 있지만, 이것으로 제한되는 것은 아니다.
객체(108)란, 이미지 캡처 디바이스(106)에 의해 캡쳐되는 대상 객체를 지칭할 수 있다. 객체(108)는, 인간, 동물, 또는 실제 인간이나 동물의 자연스러운 신체 움직임을 흉내낼 수 있는 로봇일 수 있다. 인체는, 신체를 지탱하고 그 형상을 유지하는 프레임워크를 제공하는 골격을 포함한다. 인간의 골격은 계층적 세트의 상호 연결된 뼈대들을 포함하며, 뼈대 사이의 관절(관절이라고도 함)은, 머리, 손, 발 등의 인체 부분들의 소정 정도의 움직임을 허용할 수 있다.
디스플레이 디바이스(110)는 사용자 디바이스(102)로부터 수신된 캐릭터의 애니메이션 모델을 렌더링하도록 구성될 수 있는 적절한 로직, 회로, 인터페이스 및/또는 코드를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 디바이스(110)는 사용자로부터 명령 및/또는 입력 신호를 획득할 수 있다. 이러한 시나리오에서, 디스플레이 디바이스(110)는 사용자의 명령을 입력할 수 있는 터치 스크린일 수 있다. 다른 실시예에 따르면, 디스플레이 디바이스(110)는, 가상 키패드, 스타일러스, 제스쳐 기반 입력, 및/또는 터치 기반 입력을 통해 입력을 수신할 수 있다. 디스플레이 디바이스(110)는, 액정 디스플레이(LCD) 디스플레이, 발광 다이오드(LED) 디스플레이, 플라즈마 디스플레이, 및/또는 유기 LED(OLED) 디스플레이 기술 등을 포함할 수 있으나, 이것으로 제한되지 않는 수 개의 공지된 기술을 통해 실현될 수 있다. 또 다른 실시예에 따르면, 디스플레이 디바이스(110)는, 스마트-안경 디바이스의 디스플레이 스크린, 시스루(see-through) 디스플레이, 프로젝션-기반 디스플레이, 전기 변색(electro-chromic) 디스플레이, 및/또는 투명 디스플레이 중 하나일 수 있다.
통신 네트워크(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) 통신 프로토콜, 또는 이들의 조합 중 적어도 하나가 포함될 수 있지만, 이것으로 제한되는 것은 아니다.
도 1의 시스템은 적어도 하나 이상의 디바이스를 포함할 수 있으며, 디바이스의 구성은 아래에 설명하는 바와 같을 수 있다.
도 2는 본 개시에 따른 시스템을 구성하는 디바이스의 구성의 실시예를 도시한 블록도이다.
시스템에 포함된 디바이스(200)는, 적어도 하나의 프로세서(210) 및 적어도 하나의 프로세서(210)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(220)를 포함할 수 있다.
여기서 적어도 하나의 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
또한, 시스템에 포함된 디바이스(200)는, 무선 네트워크를 통해 통신을 수행하는 송수신 장치(transceiver)(230)를 포함할 수 있다. 또한, 시스템에 포함된 디바이스(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 시스템에 포함된 디바이스(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.
또한 시스템에 포함된 디바이스(200)는 특정한 기능을 구현/구동하기 위한 소프트웨어적인 구성요소들을 더 포함할 수 있다. 예를 들어, 소프트웨어적인 구성요소들은 프레임워크(framework), 커널(kernel) 또는 장치 드라이버(device driver), 미들웨어(middleware), 어플리케이션 프로그래밍 인터페이스(application programming interface, API), 어플리케이션 프로그램(또는 어플리케이션) 등을 포함할 수 있다.
도 2의 디바이스를 이용하여, 애니메이션 캐릭터의 신체 간 간섭 회피 동작을 수행하기 위한 시스템은 아래에 설명하는 바와 같이 구현될 수 있다.
도 3은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 일 실시예를 도시한 흐름도이다.
S301 단계에서, 디바이스는 사용자의 이미지를 기초로 사용자에 대응하는 캐릭터의 본(bone)을 생성할 수 있다. 캐릭터의 본은 캐릭터의 뼈대에 해당하는 객체일 수 있다. 디바이스는 사용자의 이미지를 획득하고 획득한 사용자의 미리 설정된 주요 골격 또는 구동부를 결정하고, 결정된 주요 골격 또는 주요 구동부에 대응되는 객체를 생성할 수 있다. 여기서, 주요 골격은 인체의 두부, 척추, 상지 및 하지를 포함할 수 있다. 그리고 주요 구동부는 인체의 목, 어깨, 팔꿈치, 손목, 골반, 및 무릎 등의 관절을 포함할 수 있다. 그리고 디바이스는 사용자의 이미지를 기초로, 캐릭터의 표면 상에 메시를 생성할 수 있다.
S303 단계에서, 디바이스는 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 캐릭터의 본 상에 설정할 수 있다. 사용자와 캐릭터 간의 신체 비율 차이로 인한 충돌은 상지의 하박 상에서 주로 발생할 수 있다. 디바이스는 캐릭터의 본의 하박을 시작 선분으로 설정할 수 있다. 그리고 디바이스는 캐릭터의 본의 주요 골격에 해당하는 두부, 몸통 및 하지를 목표 선분으로 설정할 수 있다.
그리고 디바이스는 본 상에 설정된 시작 선분과 목표 선분 간의 위치 관계를 기초로, 충돌 위험 검사를 위한 시작점 및 목표점을 캐릭터의 본 상에 설정할 수 있다. 구체적으로, 디바이스는 목표 선분에 가장 가까운 시작 선분의 점을 시작점으로 설정할 수 있다. 그리고 디바이스는 시작 선분에 가장 가까운 목표 선분의 점을 목표점으로 설정할 수 있다.
S305 단계에서, 디바이스는 시작점 및 목표점 간에 충돌 테스트를 수행하여 시작점 및 목표점 사이의 충돌 면을 산출할 수 있다. 디바이스는 시작점으로부터 목표점으로 향하는 방향을 검사 방향으로 설정할 수 있다. 그리고 디바이스는 시작점으로부터 검사 방향 상의 미리 설정된 구간 이내에 캐릭터의 메시의 존재 여부를 검사할 수 있다. 여기서, 시작점으로부터 검사 방향 상의 미리 설정된 구간 이내에 존재하는 메시는 충돌 면으로 지칭될 수 있다.
S307 단계에서, 디바이스는 시작점, 목표점 및 충돌 면을 기초로 회피 오프셋을 산출할 수 있다. 회피 오프셋은 모션 캡처 원본 이미지에 대응되는 기존 본으로부터 캐릭터의 본의 위치를 옮기기 위한 벡터일 수 있다. 디바이스는 프레임 마다 회피 오프셋에 추가 또는 감소시켜줄 벡터를 산출할 수 있다. 그리고, 디바이스는 이전 프레임의 회피 오프셋의 크기에 산출된 벡터를 누적하는 방식으로 회피 오프셋을 산출할 수 있다.
S309 단계에서, 디바이스는 캐릭터의 본에 회피 오프셋을 적용할 수 있다. 일 실시예에 따르면, 디바이스는 캐릭터의 상지에 해당하는 본에 회피 오프셋을 적용할 수 있다. 캐릭터의 본의 상지의 위치는 모션 캡처 원본 이미지에 대응되는 기존의 캐릭터의 본의 상지의 위치에 회피 오프셋을 가산한 값으로 결정될 수 있다.
S311 단계에서, 디바이스는 캐릭터의 본을 기초로 캐릭터의 이미지를 생성할 수 있다. 즉, 디바이스는 회피 오프셋을 적용한 캐릭터의 본을 기초로 캐릭터의 이미지를 생성할 수 있다.
캐릭터의 본을 생성하고, 생성한 본을 기초로 애니메이션을 생성하는 구체적인 실시예 및 동작은 아래에 설명되는 바와 같을 수 있다.
도 4는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본의 일 실시예를 도시한 도면이다.
도 4를 참조하면, 사용자의 이미지를 기초로 생성된 캐릭터(400)의 본 및 메시가 도시된 바와 같이 생성될 수 있다.
캐릭터(400)의 신체 간 충돌의 위험을 검사하기 위해서, 디바이스는 모션 캡쳐 데이터를 그대로 적용했을 때 캐릭터의 손의 위치를 확인할 수 있다. 다만, 기존의 애니메이션 생성 방식을 이용하는 디바이스는 생성한 캐릭터의 애니메이션의 트랜스 폼 값 만을 획득할 수 있다. 즉, 생성된 캐릭터의 본에 곧바로 간섭 회피 솔루션을 적용할 경우, 디바이스는 간섭 회피 솔루션 적용 이후의 트랜스 폼 값 만을 획득한다. 따라서, 디바이스는 원본 모션 캡쳐 데이터에 기초한 사용자의 손의 위치를 획득할 수 없다.
따라서, 원본 모션 캡처 데이터에 기초한 사용자의 손의 위치 정보를 획득하기 위해서, 디바이스는 캐릭터의 메시에 스키닝되지 않으면서 모션 캡쳐 데이터를 그대로 반영하는 별도의 본을 사용할 수 있다. 일 실시예에 따르면, 디바이스는 게임 엔진의 가상 본 기능을 사용해 캐릭터(400)의 실제 본(410)과는 다른 별도의 본(420)을 생성할 수 있다. 구체적으로, 디바이스는 모션 캡처 데이터 중에서, 쇄골부터 손까지의 이미지를 기초로 캐릭터(400)의 상지에 해당하는 별도의 본(420)을 생성할 수 있다. 모션 캡쳐 데이터를 기초로 생성된 별도의 본(420)은 연산을 위해 모션 캡쳐의 원본 데이터를 유지한 데이터일 수 있다. 그리고 캐릭터(400)의 신체 간 간섭의 위험을 감지한 경우, 디바이스는 스트리밍 중인 모션 캡쳐 데이터를 기초로 생성된 별도의 본(420)을 연산에 이용할 수 있다. 그리고 디바이스는 별도의 본(420)을 이용하여 실제 본(410)에 회피 솔루션을 적용하고, 회피 솔루션 적용 결과 값을 캐릭터(400)에 적용할 수 있다.
도 5는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 검사 시작 선분 및 목표 선분의 일 실시예를 도시한 도면이다.
도 5를 참조하면, 신체 비율 차이에 의해 충돌이 발생하는 가장 주된 위치는 팔꿈치부터 손까지, 즉 상지의 하박(510) 부위일 수 있다. 그리고 하박(510)과 충돌할 가능성이 높은 다른 신체 부위는 머리(521), 몸통(522), 하지(523) 부위일 수 있다. 따라서, 디바이스는 캐릭터의 하박(510)에 해당하는 본을 검사 시작 선분으로 설정할 수 있다. 그리고, 하박(510)과 충돌할 가능성이 높은 신체 부위인 머리(5210), 몸통(522) 및 하지(523)에 해당하는 본을 검사 목표점 및 검사 목표 선분으로 설정할 수 있다.
도 5에 도시된 캐릭터의 본의 검사 시작 선분 및 검사 목표 선분 상에서 충돌 위험 검사를 위한 시작점 및 목표점을 설정한 구체적인 실시예는 아래에 설명하는 바와 같을 수 있다.
도 6은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 시작점 및 목표점의 일 실시예를 도시한 도면이다.
디바이스는 캐릭터(600)의 본의 시작 선분으로부터 목표 선분을 향해 충돌 위험 검사를 수행할 수 있다. 여기서, 디바이스는 시작 선분과 목표 선분 사이에서 가장 가까운 점을 시작점과 목표점으로 설정할 수 있다.
일 실시예에 따르면, 디바이스는 캐릭터(600)의 하박의 점들 중에서, 캐릭터의 머리와 가장 가까운 점을 제1 시작점(611)으로 설정하고, 캐릭터의 머리를 제1 목표점(621)으로 설정할 수 있다. 또한, 디바이스는 캐릭터의 하박의 점들 중에서 몸통에 가장 가까운 점을 제2 시작점(612)으로 설정하고, 캐릭터의 몸통의 점들 중에서, 제2 시작점(612)에서 가장 가까운 점을 제2 목표점(622)으로 설정할 수 있다. 그리고, 디바이스는 캐릭터의 하박의 점들 중에서 하지에 가장 가까운 점을 제3 시작점(613)으로 설정하고, 캐릭터의 하지의 점들 중에서, 제3 시작점(613)에서 가장 가까운 점을 제3 목표점(623)으로 설정할 수 있다.
즉, 디바이스는 캐릭터(600)의 시작 선분과 목표 선분들 각각 사이의 최근접점을 충돌 위험 검사를 위한 시작점과 목표점으로 설정할 수 있다. 그리고 디바이스는 시작점으로부터 목표점을 향하는 방향을 충돌 위험 검사를 위한 검사 방향으로 설정할 수 있다.
다만, 충돌 검사의 시작점(611, 612, 613)이 캐릭터(600)의 본 상에 위치하는데 반해, 실제 충돌 위험은 캐릭터(600)의 표면 상에서 발생한다. 따라서, 충돌 위험 검사의 정확성이 낮아질 수 있다. 따라서, 디바이스는 추가로 시작점의 위치를 보정하는 동작을 수행할 수 있다.
도 7은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 충돌 테스트를 위한 거리 설정 결과의 일 실시예를 도시한 도면이다.
도 7을 참조하면, 캐릭터의 하박에 해당하는 본은 검사 시작 선분으로 설정되고, 머리, 몸통 및 하지에 해당하는 본은 검사 목표점 및 검사 목표 선분으로 설정될 수 있다. 여기서, 캐릭터의 하박의 점들 중에서 하지에 가장 가까운 점이 시작점으로 설정될 수 있다. 그리고 캐릭터의 하지의 점들 중에서, 시작점에 가장 가까운 점이 목표점으로 설정될 수 있다.
다만, 충돌 검사의 시작점은 캐릭터의 본 상에 위치할 수 있다. 그에 반해, 실제 캐릭터의 신체 간 충돌은 캐릭터의 표면 상에서 발생할 수 있다. 캐릭터의 본 상의 시작점을 기초로 충돌 검사를 수행할 경우, 하박에 해당하는 본으로부터 하박 부위의 피부까지의 두께가 검사 결과에 포함될 수 있다. 따라서, 디바이스는 캐릭터의 피부 간의 거리를 정확히 측정할 수 없고, 충돌 검사의 정확도를 보장할 수 없다.
따라서, 디바이스는 캐릭터의 하박 본으로부터 캐릭터의 하박 피부까지의 두께를 측정할 수 있다. 그리고 디바이스는 측정 결과를 기초로 시작점에 오프셋을 적용할 수 있다.
캐릭터마다 팔뚝의 두께가 상이할 수 있으므로, 디바이스는 캐릭터의 하박 본으로부터 캐릭터의 하박 피부까지의 두께를 미리 측정할 수 있다. 일 실시예에 따르면, 하박의 중심으로부터 미리 설정된 거리만큼 이격된 카메라를 생성할 수 있다. 그리고, 디바이스는 카메라의 렌더링 이미지를 기초로 카메라로부터 하박 픽셀까지의 거리 값을 산출할 수 있다. 디바이스는 산출된 값을 기초로 카메라와 하박 간의 이격 거리를 산출하는 바, 미리 설정된 거리에서 산출된 거리를 감산함으로써, 하박으로부터 피부까지의 두께를 산출할 수 있다. 그리고 디바이스는 산출된 하박으로부터 피부까지의 두께 값을 시작점에 가산함으로써, 시작점의 위치를 조정할 수 있다.
시작점에 오프셋을 적용한 경우, 시작점은 아래와 같이 조정될 수 있다.
도 8은 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작 결과 생성된 캐릭터의 본 상에 설정된 시작점 및 목표점의 일 실시예를 도시한 도면이다.
도 8을 참조하면, 캐릭터의 하박에 해당하는 본은 검사 시작 선분으로 설정되고, 머리, 몸통 및 하지에 해당하는 본은 검사 목표점 및 검사 목표 선분으로 설정될 수 있다. 여기서, 시작 선분 상에 초기 시작점들이 설정될 수 있다. 일 실시예에 따르면, 캐릭터의 하박의 점들 중에서, 캐릭터의 머리와 가장 가까운 점은 제1 시작점(811)으로 설정되고, 캐릭터의 하박의 점들 중에서 몸통에 가장 가까운 점은 제2 시작점(812-1)으로 설정되며, 캐릭터의 하박의 점들 중에서 하지에 가장 가까운 점은 제3 시작점(813-1)으로 설정될 수 있다.
그리고, 디바이스는 초기 시작점들 중에서, 제2 시작점(812-1) 및 제3 시작점(813-1)에 오프셋을 적용하여 조정된 제2 시작점(812-2) 및 조정된 제3 시작점(813-2)을 설정할 수 있다. 따라서, 제2 시작점(812-2) 및 조정된 제3 시작점(813-2)은 캐릭터의 피부 겉면 상에 위치할 수 있다.
그리고 조정된 시작점(812-2, 813-2) 및 목표점(822, 823)을 기초로 한 충돌 검사 결과는 아래와 같이 도출될 수 있다.
도 9는 본 개시에 따른 애니메이션 캐릭터의 신체 간 간섭 회피 동작의 충돌 테스트 결과의 일 실시예를 도시한 도면이다.
도 9를 참조하면, 캐릭터의 본의 하박의 피부 상에 제2 시작점 및 제3 시작점이 설정될 수 있다. 그리고, 몸통 및 하지에 해당하는 본 상에 제2 목표점 및 제3 목표점이 설정될 수 있다.
그리고, 디바이스는 제2 시작점으로부터 제2 목표점으로 향하는 방향 및 제3 시작점으로부터 제3 목표점으로 향하는 방향으로 충돌 테스트를 수행할 수 있다. 일 실시예에 따르면, 디바이스는 시작점으로부터 목표 방향을 향해 미리 설정된 거리(910, 920)만큼 레이캐스트 검사를 수행할 수 있다. 레이캐스트 검사는 특정 위치를 향해 보이지 않는 가상의 빛을 투사하고 빛이 닿는 표면을 파악하는 검사 방식을 의미한다.
충돌 테스트 결과, 충돌된 캐릭터의 메시가 존재하는 경우, 디바이스는 충돌된 메시에 관한 데이터를 획득할 수 있다. 일 실시예에 따르면, 충돌된 메시에 관한 데이터는 법선 벡터 및 충돌 거리 비율 등의 정보를 포함할 수 있다.
충돌된 메시의 법선 벡터는 충돌 예상 면에 수직하는 방향을 가지는 벡터를 의미할 수 있다. 즉, 캐릭터의 신체 간의 충돌 가능성이 높은 경우, 법선 벡터는 캐릭터의 신체(예를 들어, 캐릭터의 하박)의 위치를 조정하기 위해 사용되는 벡터일 수 있다. 여기서, 법선 벡터는 1의 크기와 방향을 갖는 정규화된 단위 벡터일 수 있다.
충돌 거리 비율은 캐릭터의 신체 간 충돌의 발생의 임박한 정도를 지시하는 비율일 수 있다. 일 실시예에 따르면, 충돌 거리 비율은 시작점으로부터 충돌 지점 까지의 거리(911, 921)를 충돌 검사 시 사용한 미리 설정된 거리(910, 920)로 나눈 값으로 산출될 수 있다. 예를 들어 목표점과 근접한 위치에서 충돌이 발생한 경우, 충돌 거리 비율의 값은 1에 근접할 수 있다. 반면, 시작점과 근접한 위치에서 충돌이 발생한 경우, 충돌 거리 비율의 값은 0에 근접할 수 있다.
그리고 충돌 검사 결과를 기초로 회피 오프셋을 산출하는 동작은 아래와 같이 수행될 수 있다.
도 10은 본 개시에 따른 회피 오프셋을 산출하는 동작의 일 실시예를 도시한 흐름도이다.
S1001 단계에서, 디바이스는 캐릭터의 표면 및 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출할 수 있다. 여기서, 회피 벡터는 방향성을 가지는 벡터일 수 있으며, 회피 벡터의 크기는 1일 수 있다. 회피 벡터는 현재 프레임에서 캐릭터의 신체 간 충돌을 회피하기 위해 캐릭터의 본이 향해야 할 방향을 나타낼 수 있다. 회피 벡터는 기본 회피 벡터 및 추가 회피 벡터를 포함할 수 있다.
구체적으로, 디바이스는 캐릭터의 충돌 면 및 상지의 하박의 이동 방향 중 적어도 하나를 기초로 기본 회피 벡터를 산출할 수 있다. 또한, 디바이스는 캐릭터의 중심축의 정면 벡터 및 캐릭터의 척추로부터 옆구리로 향하는 측면 벡터 중 적어도 하나를 기초로 추가 회피 벡터를 산출할 수 있다. 기본 회피 벡터는 일차적인 충돌 회피 및 실제 사용자의 모션을 고려하여 캐릭터의 진행 방향을 제어하는 벡터이며, 추가 회피 벡터는 부자연스러운 회피 및 상지의 상박의 충돌을 방지하기 위해 캐릭터의 진행 방향을 제한하는 벡터이다.
S1003 단계에서, 디바이스는 시작점, 목표점 및 충돌 면의 위치를 기초로 충돌 거리 비율을 산출할 수 있다. 디바이스는 시작점으로부터 미리 설정된 검사 거리 만큼 충돌 검사를 수행할 수 있다. 충돌 검사 결과, 충돌 면이 도출된 경우, 디바이스는 시작점으로부터 미리 설정된 검사 거리에 대한 시작점으로부터 충돌 면까지의 거리의 비율인 충돌 거리 비율을 산출할 수 있다. 충돌 거리 비율의 값이 1에 가까운 경우, 충돌 면이 시작점으로부터 먼 곳에 위치하는 바, 충돌 가능성은 낮은 상황일 수 있다. 반면, 충돌 거리 비율의 값이 0에 가까운 경우, 충돌 면이 시작점으로부터 가까운 곳에 위치하는 바, 충돌 가능성은 높은 상황일 수 있다.
S1005 단계에서, 디바이스는 충돌 거리 비율의 값을 기초로 가중치를 산출할 수 있다. 일 실시예에 따르면, 가중치는 충돌 거리 비율에 반비례할 수 있다. 예를 들어, 충돌 거리 비율이 0에 가까울수록, 가중치의 값은 1에 가깝게 산출될 수 있다. 반면 충돌 거리 비율이 0.5에 가까울수록 가중치의 값은 0에 가깝게 산출될 수 있다. 여기서, 충돌 거리 비율이 미리 설정된 범위 이내의 값인 경우, 가중치의 값은 0으로 유지될 수 있다.
그 결과, 디바이스는 회피 벡터 및 가중치를 기초로 회피 오프셋을 산출할 수 있다. 회피 오프셋은 모션 캡처 원본 데이터로부터 캐릭터의 본의 위치를 조정하기 위한 벡터 값을 지시할 수 있다. 그리고, 디바이스는 매 프레임마다 회피 오프셋에 가산하거나 감산할 증감 벡터를 산출할 수 있다.
디바이스는 프레임 간에 캐릭터의 본의 이동 거리에 가중치를 곱하여, 회피 오프셋의 증감 값을 산출할 수 있다. 충돌 거리 비율에 따라 가중치의 값이 0 내지 1의 값으로 유동적으로 산출되는 바, 오프셋의 증감 값 또한, 충돌 위험의 정도에 따라 유동적으로 산출될 수 있다. 따라서, 회피 벡터와 오프셋의 증감 값을 곱하여, 회피 오프셋 증감 벡터가 산출될 수 있다.
그리고 디바이스는 이전 프레임의 회피 오프셋에 현재 프레임의 증감 벡터를 누적함으로써, 현재 프레임의 회피 오프셋을 산출할 수 있다. 즉, 캐릭터의 본의 위치는 모션 캡처 원본 데이터의 신체의 위치에 회피 오프셋을 가산한 결과 도출된 위치일 수 있다.
도 11은 본 개시에 따른 충돌 거리 비율 산출 결과의 일 실시예를 도시한 도면이다.
도 11을 참조하면, 캐릭터의 본의 하박의 피부 상에 제2 시작점 및 제3 시작점이 설정될 수 있다. 그리고, 캐릭터의 몸통 및 하지에 해당하는 본 상에 제2 목표점 및 제3 목표점이 설정될 수 있다. 그리고, 디바이스는 제2 시작점으로부터 제2 목표점으로 향하는 방향 및 제3 시작점으로부터 제3 목표점으로 향하는 방향으로 충돌 테스트를 수행한 상태일 수 있다. 충돌 테스트 결과 미리 설정된 거리(1110, 1120) 이내에 충돌된 캐릭터의 메시가 존재할 수 있다.
충돌 거리 비율은 캐릭터의 신체 간 충돌의 발생의 임박한 정도를 지시하는 비율일 수 있다. 일 실시예에 따르면, 충돌 거리 비율은 시작점으로부터 충돌 지점 까지의 거리를 충돌 검사 시 사용한 미리 설정된 거리로 나눈 값으로 산출될 수 있다.
예를 들어 목표점과 근접한 위치에서 충돌이 발생한 경우(1111), 충돌 거리 비율의 값은 1에 근접할 수 있다. 따라서, 디바이스는 충돌 위험을 낮은 것으로 판단할 수 있다. 반면, 시작점과 근접한 위치에서 충돌이 발생한 경우(1112), 충돌 거리 비율의 값은 0에 근접할 수 있다. 따라서, 디바이스는 충돌 위험을 높은 것으로 판단할 수 있다.
도 12는 본 개시에 따른 기본 회피 벡터를 산출하는 동작의 일 실시예를 도시한 흐름도이다.
S2801 단계에서, 디바이스는 시작점 및 목표점 사이의 충돌 면의 법선 벡터인 제1차 회피 벡터를 산출할 수 있다. 이때, 상기 제1차 회피 벡터는 충돌 거리 비율이 가장 작은 시작점, 목표점, 및 충돌 면을 기준으로 산출될 수 있다. 충돌 거리 비율 값이 0에 근접할수록 충돌 위험이 높은 것이므로, 디바이스는 가장 우선적으로 충돌 위험이 높은 시작점, 목표점, 및 충돌 면을 기준으로 제1 차 회피 벡터를 산출할 수 있다.
S2803 단계에서, 디바이스는 캐릭터의 척추로부터 상지의 하박으로 향하는 경향 벡터를 산출할 수 있다. 경향 벡터는 캐릭터의 하박의 이동 방향의 경향성을 유지하기 위한 벡터일 수 있다.
S2805 단계에서, 디바이스는 제1차 회피 벡터에 경향 벡터를 더하여 제2차 회피 벡터를 산출할 수 있다. 구체적으로, 디바이스는 제1차 회피 벡터에 경향 벡터를 더한 후 정규화하여 크기 1의 단위 벡터인 제2차 회피 벡터를 산출할 수 있다.
제1차 회피 벡터는 충돌 면의 법선 벡터이므로, 디바이스가 제1차 회피 벡터만을 고려하여 충돌 회피를 위한 동작을 수행하는 경우, 실제 사용자의 움직임과 충돌 회피가 적용된 캐릭터의 움직임 사이의 차이가 크게 벌어질 수 있다. 즉, 실제 사용자의 상지는 앞 쪽으로 이동하는 데 반해 제1차 회피 벡터만을 고려하여 충돌 회피를 적용한 캐릭터의 상지는 몸통의 뒷면에서 법선 방향으로 이동하여 뒤 쪽으로 이동하게 되어 실제 사용자의 상지의 위치와 크게 차이날 수 있다.
따라서, 디바이스는 캐릭터의 이동 방향의 경향성을 유지하기 위한 경향 벡터를 제1차 회피 벡터에 더해주어 제2차 회피 벡터를 산출할 수 있다. 즉, 제1차 회피 벡터의 방향과 실제 사용자의 이동 방향 사이의 괴리가 커질수록 경향 벡터에 의한 제1차 회피 벡터의 방향 조정이 커질 수 있다. 이로 인해 경향 벡터를 제1차 회피 벡터에 더해 제2차 회피 벡터가 산출됨으로써, 실제 사용자의 움직임과 캐릭터의 움직임 사이의 괴리를 감소시킬 수 있다.
캐릭터의 신체 간 충돌을 회피하기 위한 회피 벡터를 산출하는 구체적인 실시예 및 동작은 아래에 설명되는 바와 같을 수 있다.
도 13은 본 개시에 따른 제1차 회피 벡터의 일 실시예를 도시한 도면이다.
도 13을 참조하면, 제1차 회피 벡터(2910)는 충돌 면의 법선 벡터일 수 있다. 즉, 제1차 회피 벡터(2910)는 충돌 위험이 있는 캐릭터(2900)의 표면에 수직하는 바깥 방향을 가리킬 수 있다. 즉, 캐릭터(2900)의 충돌 면에 수직하는 바깥 방향으로 회피 벡터가 적용되는 경우 가장 단순하고 확실하게 신체 간 충돌을 회피할 수 있다. 따라서, 제1차 회피 벡터(2910)는 가장 일차적으로 고려되는 회피 벡터일 수 있다.
또한, 제1차 회피 벡터(2910)는 충돌 거리 비율이 가장 작은 시작점, 목표점, 및 충돌 면을 기준으로 산출될 수 있다. 디바이스는 캐릭터(2900)의 본의 하박의 피부 상에 설정된 제2 시작점 및 제3 시작점, 캐릭터(2900)의 몸통 및 하지에 해당하는 본 상에 설정된 제2 목표점 및 제3 목표점을 기초로 충돌 거리 비율을 산출할 수 있다. 이때, 제3 시작점 및 제3 목표점에 대한 충돌 거리 비율이 가장 작은 경우, 디바이스는 제3 시작점, 제3 목표점, 및 제3 시작점 및 제3 목표점 사이의 충돌 면을 기초로 제1 차 회피 벡터(2910)를 산출할 수 있다.
다만, 제1차 회피 벡터(2910)만을 고려하는 경우, 캐릭터(2900)의 신체 간 충돌은 회피할 수 있더라도 실제 사용자의 움직임과 캐릭터(2900)의 움직임 사이의 괴리가 커질 수 있다.
도 14는 본 개시에 따른 캐릭터의 충돌 면을 기초로 한 제1차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 14를 참조하면, 제1차 회피 벡터(3010)는 제3 시작점(3001) 및 제3 목표점(3002) 사이의 충돌 면에 수직하는 바깥 방향을 향할 수 있다. 이때, 실제 사용자의 하박은 앞 방향으로 이동하는 경향을 가질 수 있다(3020). 즉, 제1차 회피 벡터(3010)의 방향과 실제 사용자의 이동 방향(3020) 사이의 차이가 크므로, 제1차 회피 벡터(3010)만을 적용하여 회피하는 경우, 제1차 회피 벡터(3010)로 인해 캐릭터(3000)의 하박이 캐릭터(3000)의 하지를 스치며 나아가지 못하고 이동이 제한될 수 있다.
캐릭터(3000)가 실제 사용자의 움직임과 크게 차이가 나지 않고 신체 간 충돌도 회피하면서 자연스럽게 이동하기 위해서는 사용자의 이동 방향의 경향성을 따라 움직여야 한다(3030). 사용자의 이동 방향의 경향성을 따라 움직인다는 것은 사용자의 하박이 이동한 궤적 및 하박의 이동 방향을 고려하여 캐릭터의 이동 궤적 및 이동 방향이 결정된다는 것을 의미한다.
이를 위해 디바이스는 제1차 회피 벡터(3010)에 사용자의 이동 방향의 경향성을 가진 경향 벡터를 더하여 제2차 회피 벡터를 산출할 수 있다.
도 15는 본 개시에 따른 사용자의 이동 방향을 기초로 한 경향 벡터의 일 실시예를 도시한 도면이다.
도 15를 참조하면, 제1차 회피 벡터에 더해지는 경향 벡터(3110)는 캐릭터(3100)의 척추에서 캐릭터(3100)의 하박을 향하는 방향을 가질 수 있다. 즉, 디바이스는 제1차 회피 벡터에 사용자의 하박의 이동 방향의 경향성을 반영할 수 있도록 경향 벡터(3110)를 산출할 수 있다.
따라서, 디바이스는 제1차 회피 벡터에 경향 벡터(3110)를 더한 제2차 회피 벡터를 통해 보다 자연스럽게 신체 간 충돌을 회피할 수 있다.
도 16은 본 개시에 따른 제1차 회피 벡터 및 경향 벡터를 기초로 한 제2차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 16을 참조하면, 제2차 회피 벡터(3230)는 제1차 회피 벡터(3210)에 경향 벡터(3220)를 더하여 산출될 수 있다. 구체적으로, 디바이스는 제1차 회피 벡터(3210)에 경향 벡터(3220)를 더한 후, 정규화하여 크기 1의 단위 벡터인 제2차 회피 벡터(3230)를 산출할 수 있다.
제1차 회피 벡터(3210)에 경향 벡터(3220)를 추가하는 경우, 제1차 회피 벡터(3210)와 사용자의 하박이 이동하는 방향 사이에 괴리가 커질수록 제1차 회피 벡터(3210)의 경향 벡터(3220)에 의한 방향 조정이 커질 수 있다. 즉, 경향 벡터(3220)로 인해 제1차 회피 벡터(3210)의 방향이 조정되어 제2차 회피 벡터(3230)가 산출됨으로써, 캐릭터(3200)의 하박은 사용자의 하박의 움직임과 유사하게 자연스러운 회피를 할 수 있다.
이와 같이 제1차 회피 벡터(3210) 및 제2차 회피 벡터(3230)를 포함하는 기본 회피 벡터만으로도 캐릭터(3200)의 신체 간 기본적인 충돌 회피가 가능할 수 있다. 다만, 캐릭터(3200)의 하박이 중심을 넘어 반대편으로 이동하는 경우 또는 캐릭터(3200)의 상박이 충돌할 가능성이 생기는 경우 디바이스는 기본 회피 벡터를 기초로 추가 회피 벡터를 추가로 산출할 수 있다.
도 17은 본 개시에 따른 제2차 회피 벡터의 산출 결과의 일 실시예를 도시한 도면이다.
도 17을 참조하면, 캐릭터(3300)의 하박이 캐릭터(3300)의 중심을 넘어 반대편에 위치하는 경우, 제1차 회피 벡터와 경향 벡터가 모두 캐릭터(3300)의 중심의 반대편을 향할 확률이 높으므로, 산출된 제2차 회피 벡터(3320)는 캐릭터(3300)의 중심의 반대편을 향하는 방향을 가질 수 있다. 따라서, 이때 제2차 회피 벡터(3320)만을 이용하여 충돌을 회피하는 경우 캐릭터(3300)의 하박이 캐릭터(3300)의 중심으로부터 반대편 방향으로 더 밀려나게 되어 부자연스럽게 충돌을 회피할 수 있다. 또한, 이 경우, 캐릭터(3300)의 하박이 캐릭터(3300)의 중심으로부터 반대편 방향으로 더 밀려나게 되면서 캐릭터(3300)의 상박도 캐릭터(3300)의 몸통과 충돌이 발생할 수 있다.
따라서, 캐릭터(3300)의 하박의 본 상의 시작점(3310)이 캐릭터(3300)의 중심을 넘고, 기본 회피 벡터(즉, 제2차 회피 벡터(3320))가 캐릭터(3300)의 중심을 넘어 반대편 방향을 향하는 경우, 캐릭터(3300)의 하박이 반대편 방향으로 지속적으로 밀려나서 부자연스럽게 회피를 하거나 또 다른 충돌을 회피하기 위해 디바이스는 기본 회피 벡터(즉, 제2차 회피 벡터(3320))를 기초로 제3차 회피 벡터를 산출할 수 있다.
도 18은 본 개시에 따른 중심축 정면 벡터를 기초로 한 제3차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 18을 참조하면, 디바이스는 제2차 회피 벡터(3420) 및 중심축의 정면 벡터(3430)를 기초로 제3차 회피 벡터(3440)를 산출할 수 있다. 즉, 디바이스는 제2차 회피 벡터(3420)가 캐릭터(3400)의 중심을 넘어 반대편 방향을 향하는 경우, 제2차 회피 벡터(3420)를 중심축의 정면 벡터(3430)와 평행하도록 제한하고, 이를 정규화하여 크기 1의 단위 벡터인 제3차 회피 벡터(3440)를 산출할 수 있다.
즉, 캐릭터(3400)의 하박이 캐릭터(3400)의 중심을 넘고, 제2차 회피 벡터(3420)가 반대편 방향을 향하는 경우, 산출된 제3차 회피 벡터(3440)는 캐릭터(3400)의 하박이 중심축 정면 벡터(3430) 방향을 향하도록 할 수 있다.
이때, 산출된 제3차 회피 벡터(3440)를 통해 캐릭터(3400)의 하박의 충돌은 회피되나, 캐릭터(3400)의 상박은 캐릭터(3400)의 몸통과 여전히 충돌 중이거나, 이로 인해 새로운 충돌이 발생할 수 있다.
도 19는 본 개시에 따른 제4 회피 벡터를 산출하는 동작의 일 실시예를 도시한 흐름도이다.
S3501 단계에서, 디바이스는 캐릭터의 상박 상의 제1 기준점 및 캐릭터의 척추 선분 상의 제2 기준점을 설정할 수 있다. 이때, 제1 기준점은 캐릭터의 상박의 중심점일 수 있고, 제2 기준점은 척추 선분에서 제1 기준점과 가장 가까운 지점일 수 있다.
S3503 단계에서, 디바이스는 제1 기준점 및 제2 기준점 사이의 거리값과 척추로부터 옆구리까지의 거리값을 기초로 상박 충돌 비율을 산출할 수 있다. 이때, 상박 충돌 비율 값은 제1 기준점 및 제2 기준점 사이의 거리값에 척추로부터 옆구리까지의 거리값을 나눈 값일 수 있다.
일 실시예에 따르면, 디바이스는 양 어깨뼈 사이의 거리를 반으로 나눈 값에 미리 설정된 비율을 곱한 값을 척추로부터 옆구리까지의 거리값으로 산출할 수 있다. 예를 들어, 캐릭터의 골격에서 척추로부터 옆구리까지의 거리값이 양 어깨뼈 사이의 거리를 반으로 나눈 값보다 작은 경우, 디바이스는 양 어깨뼈 사이의 거리를 반으로 나눈 값에 0.9를 곱한 값을 척추로부터 옆구리까지의 거리값으로 산출할 수 있다. 다만, 본 발명은 이에 한정되지 않으며, 다른 예를 들어, 척추로부터 옆구리까지의 거리값이 양 어깨뼈 사이의 거리를 반으로 나눈 값보다 큰 경우, 디바이스는 양 어깨뼈 사이의 거리를 반으로 나눈 값에 1 이상의 숫자를 곱한 값을 척추로부터 옆구리까지의 거리값으로 산출할 수 있다.
다른 실시예에 따르면, 디바이스는 척추로부터 미리 설정된 거리만큼 이격된 카메라를 생성할 수 있다. 그리고, 디바이스는 카메라의 렌더링 이미지를 기초로 카메라로부터 옆구리 픽셀까지의 거리 값을 산출할 수 있다. 디바이스는 산출된 거리 값을 기초로 카메라와 옆구리 간의 이격 거리를 산출하는 바, 미리 설정된 거리에서 산출된 거리를 감산함으로써, 척추로부터 옆구리까지의 거리값을 산출할 수 있다. 또 다른 실시예에 따르면, 두 거리값 사이의 비율을 측정하여 척추로부터 옆구리까지의 거리값을 산출하거나 척추로부터 옆구리까지의 거리값을 직접 측정할 수 있다.
S3505 단계에서, 디바이스는 상박 충돌 비율 값을 기초로 가중치를 산출할 수 있다. 상박 충돌 비율 값이 미리 설정된 제1 값보다 큰 경우, 디바이스는 상박의 충돌 가능성이 없다고 판단할 수 있다. 이때, 가중치가 적용된 측면 벡터의 크기는 0일 수 있다. 또한, 미리 설정된 제1 값의 크기는 약 1.4일 수 있다. 다만, 본 발명은 이에 한정되지 않는다.
상박 충돌 비율 값이 미리 설정된 제2 값보다 작거나 같은 경우, 디바이스는 상박의 충돌 가능성이 100%라고 판단할 수 있다. 이때, 가중치가 적용된 측면 벡터의 크기는 기본 회피 벡터의 크기와 동일할 수 있다. 또한, 미리 설정된 제2 값의 크기는 약 1일 수 있다. 다만, 본 발명은 이에 한정되지 않는다.
S3507 단계에서, 디바이스는 기본 회피 벡터, 측면 벡터, 및 가중치를 기초로 제4차 회피 벡터를 산출할 수 있다. 즉, 디바이스는 기본 회피 벡터에 가중치가 적용된 측면 벡터를 더하여 제4차 회피 벡터를 산출할 수 있다. 이때, 디바이스는 기본 회피 벡터에 가중치가 적용된 측면 벡터를 더한 후 정규화하여 크기 1의 단위 벡터인 제4차 회피 벡터를 산출할 수 있다. 디바이스는 최종적으로 제4차 회피 벡터를 적용하여 캐릭터() 신체 간 충돌을 회피할 수 있다.
캐릭터의 상박의 충돌을 회피하기 위한 제4차 회피 벡터를 산출하는 구체적인 실시예 및 동작은 아래에 설명되는 바와 같을 수 있다.
도 20은 본 개시에 따른 제2차 회피 벡터 또는 제3차 회피 벡터를 산출한 결과의 일 실시예를 도시한 도면이다.
도 20을 참조하면, 제2차 회피 벡터 또는 제3차 회피 벡터를 통해 캐릭터(3600)의 하박의 충돌을 회피하는 경우, 캐릭터(3600)의 상박이 캐릭터(3600)의 몸통과 충돌할 수 있다. 즉, 제2차 회피 벡터 및 제3차 회피 벡터는 캐릭터(3600)의 하박의 충돌을 회피하기 위한 회피 벡터들이므로, 제2차 회피 벡터 및 제3차 회피 벡터만으로는 캐릭터(3600)의 상박의 충돌을 회피하기 어려울 수 있다. 구체적으로, 캐릭터(3600)의 상박은 캐릭터(3600)의 몸통 중 옆구리와 충돌할 수 있다.
따라서, 캐릭터(3600)의 상박의 충돌을 회피하기 위해 디바이스는 추가 회피 벡터를 산출할 수 있다.
도 21은 본 개시에 따른 측면 벡터를 기초로 산출한 제4차 회피 벡터의 일 실시예를 도시한 도면이다.
도 21을 참조하면, 디바이스는 캐릭터(3700)의 상박의 충돌을 회피하기 위해 추가 회피 벡터인 제4차 회피 벡터(3740)를 산출할 수 있다. 즉, 디바이스는 기본 회피 벡터(즉, 제2차 회피 벡터) 또는 제3차 회피 벡터 및 측면 벡터(3710)를 기초로 제4차 회피 벡터(3740)를 산출할 수 있다. 예를 들어, 제2차 회피 벡터가 캐릭터(3700)의 중심을 넘지 않는 경우, 디바이스는 제3차 회피 벡터를 산출하지 않을 수 있다. 따라서, 이 경우 디바이스는 제2차 회피 벡터 및 측면 벡터(3710)를 기초로 제4차 회피 벡터(3750)를 산출할 수 있다. 다른 예를 들어, 제2차 회피 벡터가 캐릭터(3700)의 중심을 넘는 경우, 디바이스는 제3차 회피 벡터를 산출하고, 제3차 회피 벡터 및 측면 벡터(3710)를 기초로 제4차 회피 벡터(3740)를 산출할 수 있다.
디바이스는 기본 회피 벡터 또는 제3차 회피 벡터에 측면 벡터(3710)를 더하고 이를 정규화하여 크기 1의 단위 벡터인 제4차 회피 벡터(3740)를 산출할 수 있다.
이때, 디바이스는 캐릭터(3700)의 상박 상의 제1 기준점(3721) 및 척추 선분 상의 제2 기준점(3722)을 설정할 수 있다. 또한, 제1 기준점(3721) 및 제2 기준점(3722) 간에 충돌 테스트를 수행하여 제1 기준점(3721) 및 제2 기준점(3722) 사이의 충돌 면을 산출할 수 있다. 또한, 디바이스는 제1 기준점(3721)으로부터 제2 기준점(3722)으로 향하는 방향을 검사 방향으로 설정할 수 있다. 디바이스는 제1 기준점(3721)으로부터 제2 기준점(3722)으로 향하는 방향으로 충돌 테스트를 수행할 수 있다.
일 실시예에 따르면, 캐릭터(3700)의 양 어깨뼈 사이의 거리를 반으로 나눈 값과 캐릭터(3700)의 척추로부터 옆구리까지의 거리값 간의 비율을 이용하여 충돌 테스트를 수행하고, 제4차 회피 벡터(3740)를 산출할 수 있다. 즉, 디바이스는 제4차 회피 벡터(3740)를 통해 캐릭터(3700)의 상박의 충돌을 회피할 수 있다.
구체적으로, 디바이스는 척추로부터 옆구리까지의 거리 값(3730)을 산출할 수 있다. 예를 들어, 캐릭터(3700)의 골격에 있어서 척추로부터 옆구리까지의 거리(3730)가 양 어깨뼈 사이의 거리를 반으로 나눈 거리보다 짧은 경우, 디바이스는 양 어깨뼈 사이의 거리를 반으로 나눈 값에 0.9를 곱한 값을 척추로부터 옆구리까지의 거리값(3730)으로 산출할 수 있다. 다만, 캐릭터(3700)의 골격에 있어서 척추로부터 옆구리까지의 거리(3730)가 양 어깨뼈 사이의 거리를 반으로 나눈 거리보다 긴 경우, 디바이스는 척추로부터 옆구리까지의 거리(3730)를 따로 산출할 수 있다.
캐릭터(3700)의 상박의 충돌 테스트는 제1 기준점(3721) 및 제2 기준점(3722) 사이의 거리값(3720) 및 척추로부터 옆구리까지의 거리값(3730)을 기초로 수행될 수 있다. 디바이스는 제1 기준점(3721) 및 제2 기준점(3722) 사이의 거리값(3720)이 척추로부터 옆구리까지의 거리값(3730)보다 작거나 같은 경우, 충돌 가능성이 100%인 것으로 판단할 수 있다. 또한, 디바이스는 제1 기준점(3721) 및 제2 기준점(3722) 사이의 거리값(3720)이 척추로부터 옆구리까지의 거리값(3730)에 미리 설정된 제1 값을 곱한 값보다 큰 경우, 충돌 가능성이 0%인 것으로 판단할 수 있다. 즉, 제1 기준점(3721) 및 제2 기준점(3722) 사이의 거리값(3720)이 척추로부터 옆구리까지의 거리값(3730)보다 크고, 척추로부터 옆구리까지의 거리값(3730)에 미리 설정된 제1 값을 곱한 값보다 작거나 같은 경우에는 충돌 가능성이 0%보다 크고 100%보다 작을 수 있다. 따라서, 제3차 회피 벡터에 더해질 측면 벡터(3710)의 크기는 충돌 가능성에 따라 달라질 수 있다. 즉, 측면 벡터(3710)의 크기는 충돌 가능성에 따른 가중치에 따라 다르게 산출될 수 있다.
즉, 캐릭터(3700)의 상박 충돌 테스트는 상박 충돌 비율 값을 기초로 수행될 수 있다. 상박 충돌 비율 값은 제1 기준점() 및 제2 기준점() 사이의 거리값()에 캐릭터()의 척추로부터 옆구리까지의 거리값()을 나눈 값으로, 디바이스는 상박 충돌 비율 값이 1보다 작거나 같은 경우, 충돌 가능성이 100%인 것으로 판단할 수 있다. 또한, 디바이스는 상박 충돌 비율 값이 미리 설정된 제1 값보다 큰 경우, 충돌 가능성이 0%인 것으로 판단할 수 있다.
일 실시예에 따르면, 가중치는 충돌 가능성에 비례할 수 있다. 예를 들어, 상박의 충돌 테스트에 따른 충돌 가능성이 100%에 가까울수록, 가중치의 값은 1에 가깝게 산출될 수 있다. 따라서, 이러한 가중치가 적용된 측면 벡터(3710)는 제2차 회피 벡터 또는 제3차 회피 벡터의 크기와 동일할 수 있다. 즉, 측면 벡터(3710)는 크기 1의 단위 벡터일 수 있다. 또한, 상박의 충돌 테스트에 따른 충돌 가능성이 0%에 가까울수록, 가중치의 값은 0에 가깝게 산출될 수 있다. 따라서, 이러한 가중치가 적용된 측면 벡터(3710)의 크기는 0일 수 있다. 즉, 이 경우 디바이스는 측면 벡터(3710)를 산출하지 않고, 제2차 회피 벡터 또는 제3차 회피 벡터까지만 산출할 수 있다. 상박의 충돌 테스트에 따른 충돌 가능성이 0%보다 크고 100%보다 작은 경우, 이러한 가중치가 적용된 측면 벡터(3710)의 크기는 0보다 크고 1보다 작을 수 있다.
결과적으로 캐릭터(3700)의 상박의 충돌 가능성이 높을수록 측면 벡터(3710)의 크기가 커지므로, 제2차 회피 벡터 또는 제3차 회피 벡터의 방향이 측면으로 더 크게 조정될 수 있다.
다만, 본 발명은 이에 한정되지 않으며, 다른 실시예에 따르면, 디바이스는 제1 기준점(3721)으로부터 검사 방향을 향해 미리 설정된 거리만큼 레이캐스트 검사를 수행할 수 있다. 충돌 테스트 결과, 충돌된 캐릭터(3700)의 메시가 존재하는 경우, 디바이스는 충돌된 메시에 관한 데이터를 획득할 수 있다. 예를 들어, 충돌된 메시에 관한 데이터는 법선 벡터 및 충돌 거리 비율 등의 정보를 포함할 수 있다. 따라서, 디바이스는 레이캐스트 검사를 통해 캐릭터(3700)의 상박의 충돌을 회피할 수 있다.
상술한 바와 같이 캐릭터의 신체 간 충돌 회피를 위해 디바이스는 제1차 회피 벡터부터 제4차 회피 벡터까지 산출할 수 있다. 일 실시예에 따르면, 디바이스는 충돌 회피를 위해 기본 회피 벡터까지 산출하고, 경우에 따라 추가 회피 벡터는 산출하지 않을 수 있다. 이때, 디바이스는 기본 회피 벡터만을 적용할 수 있다. 예를 들어, 캐릭터의 하박이 캐릭터의 중심을 넘어가지 않는 경우 디바이스는 제3차 회피 벡터를 산출하지 않고, 제2차 회피 벡터를 적용하여 신체 간 충돌을 회피할 수 있다. 또한, 캐릭터의 상박의 충돌 가능성이 없는 경우, 디바이스는 제4차 회피 벡터를 산출하지 않고, 제2차 회피 벡터 또는 제3차 회피 벡터를 적용하여 신체 간 충돌을 회피할 수 있다.
다른 실시예에 따르면, 디바이스는 충돌 회피를 위해 항상 제4차 회피 벡터까지 산출하고, 제4차 회피 벡터를 적용할 수 있다. 다만, 캐릭터의 하박이 캐릭터의 중심을 넘어가지 않는 경우 디바이스는 제3차 회피 벡터를 제2차 회피 벡터와 동일한 벡터로 산출할 수 있다. 또한, 캐릭터의 상박의 충돌 가능성이 없는 경우, 디바이스는 제4차 회피 벡터를 제3차 회피 벡터와 동일한 벡터로 산출할 수 있다. 따라서, 이 경우, 디바이스는 항상 제4차 회피 벡터까지 산출하고, 제4차 회피 벡터를 적용하여 캐릭터의 신체 간 충돌을 회피할 수 있다. 이때, 제1차 회피 벡터 내지 제4차 회피 벡터는 상술한 내용과 동일하다.
또 다른 실시예에 따르면, 디바이스는 캐릭터의 신체 간 충돌 회피를 위해 법선 벡터, 경향 벡터, 정면 벡터, 및 측면 벡터 중 적어도 하나를 기초로 회피 벡터를 산출할 수 있다. 이때, 법선 벡터는 캐릭터의 충돌 면의 법선 벡터이고, 경향 벡터는 캐릭터의 척추로부터 하박을 향하는 방향을 가지며, 정면 벡터는 캐릭터의 중심축으로부터 정면 방향을 향하는 방향을 가지고, 측면 벡터는 캐릭터의 척추로부터 옆구리를 향하는 방향을 가질 수 있다. 이때, 법선 벡터, 경향 벡터, 정면 벡터(중심축의 정면 벡터), 및 측면 벡터는 상술한 내용과 동일하다. 즉, 디바이스는 제1차 내지 제4차 회피 벡터까지 순차적으로 산출하여 회피 벡터를 적용하는 것에 한정되지 않고, 법선 벡터, 경향 벡터, 정면 벡터, 및 측면 벡터 중 적어도 하나를 기초로 다양한 회피 벡터를 산출하여 적용할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (25)

  1. 장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법에 있어서,
    사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계;
    상기 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 상기 캐릭터의 본 상에 설정하는 단계;
    상기 시작점 및 상기 목표점 간에 충돌 테스트를 수행하여 상기 시작점 및 상기 목표점 사이의 충돌 면을 산출하는 단계; 및
    상기 캐릭터의 충돌 면 및 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출하는 단계;를 포함하고,
    상기 회피 벡터를 산출하는 단계는,
    기본 회피 벡터를 산출하는 단계를 포함하고,
    상기 기본 회피 벡터를 산출하는 단계는,
    상기 시작점, 상기 목표점 및 상기 충돌 면의 위치를 기초로 충돌 거리 비율을 산출하는 단계; 및
    상기 시작점 및 상기 목표점 사이의 상기 충돌 면의 법선 벡터인 제1차 회피 벡터를 산출하는 단계;
    상기 캐릭터의 척추로부터 상기 상지의 하박으로 향하는 경향 벡터를 산출하는 단계; 및
    상기 제1차 회피 벡터에 상기 경향 벡터를 더하여 제2차 회피 벡터를 산출하는 단계;를 포함하며,
    상기 충돌 면은 상기 시작점으로부터 상기 목표점으로 향하는 방향인 검사 방향 상의 미리 설정된 구간 이내에 존재하는 메시인, 동작 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1차 회피 벡터는 상기 충돌 거리 비율이 가장 작은 시작점, 목표점, 및 충돌 면을 기준으로 산출되는 것을 특징으로 하는, 동작 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 회피 벡터를 산출하는 단계는,
    상기 캐릭터의 중심축의 정면 벡터 및 상기 캐릭터의 척추로부터 옆구리로 향하는 측면 벡터 중 적어도 하나를 기초로 추가 회피 벡터를 산출하는 단계;를 더 포함하는 것을 특징으로 하는, 동작 방법.
  6. 제5항에 있어서,
    상기 추가 회피 벡터를 산출하는 단계는,
    상기 기본 회피 벡터가 상기 캐릭터의 중심을 넘어 반대편 방향을 향하는 경우 상기 기본 회피 벡터를 상기 중심축의 정면 벡터와 평행하도록 제한한 제3차 회피 벡터를 산출하는 단계;를 포함하는 것을 특징으로 하는, 동작 방법.
  7. 제5항에 있어서,
    상기 추가 회피 벡터를 산출하는 단계는,
    상기 기본 회피 벡터에 상기 측면 벡터를 더한 제4차 회피 벡터를 산출하는 단계;를 포함하는 것을 특징으로 하는, 동작 방법.
  8. 제7항에 있어서,
    상기 제4차 회피 벡터를 산출하는 단계는,
    상기 캐릭터의 상박 상의 제1 기준점 및 상기 캐릭터의 척추 선분 상의 제2 기준점을 설정하는 단계;
    상기 제1 기준점 및 상기 제2 기준점 사이의 거리값과 상기 척추로부터 상기 옆구리까지의 거리값을 기초로 상박 충돌 비율을 산출하는 단계; 및
    상기 상박 충돌 비율 값을 기초로 가중치를 산출하는 단계를 포함하고,
    상기 제4차 회피 벡터는,
    상기 기본 회피 벡터, 상기 측면 벡터, 및 상기 가중치를 기초로 산출되는 것을 특징으로 하는, 동작 방법.
  9. 제8항에 있어서,
    상기 제1 기준점은 상기 캐릭터의 상박의 중심점이고, 상기 제2 기준점은 상기 척추 선분에서 상기 제1 기준점과 가장 가까운 지점이며,
    상기 상박 충돌 비율 값은 상기 제1 기준점 및 상기 제2 기준점 사이의 거리값에 상기 척추로부터 상기 옆구리까지의 거리값을 나눈 값인 것을 특징으로 하는, 동작 방법.
  10. 제8항에 있어서,
    상기 제4차 회피 벡터는,
    상기 기본 회피 벡터에 상기 가중치가 적용된 상기 측면 벡터를 더하여 산출되는 것을 특징으로 하는, 동작 방법.
  11. 제10항에 있어서,
    상기 상박 충돌 비율 값이 미리 설정된 제1 값보다 큰 경우,
    상기 가중치가 적용된 상기 측면 벡터의 크기는 0인 것을 특징으로 하는, 동작 방법.
  12. 제10항에 있어서,
    상기 상박 충돌 비율 값이 미리 설정된 제2 값보다 작거나 같은 경우,
    상기 가중치가 적용된 상기 측면 벡터의 크기는 상기 기본 회피 벡터의 크기와 동일한 것을 특징으로 하는, 동작 방법.
  13. 캐릭터의 신체 간 간섭 회피를 위한 동작 방법을 실행하기 위한 시스템의 장치에 있어서,
    적어도 하나의 프로그램 명령이 저장된 메모리; 및
    상기 적어도 하나의 프로그램 명령을 수행하는 프로세서를 포함하고,
    상기 적어도 하나의 프로그램 명령은,
    사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하고;
    상기 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 상기 캐릭터의 본 상에 설정하고;
    상기 시작점 및 상기 목표점 간에 충돌 테스트를 수행하여 상기 시작점 및 상기 목표점 사이의 충돌 면을 산출하고; 그리고
    상기 캐릭터의 충돌 면 및 상지의 이동 방향 중 적어도 하나를 기초로 회피 벡터를 산출하도록 실행되고,
    상기 회피 벡터를 산출하도록 실행됨에 있어,
    기본 회피 벡터를 산출하도록 실행되고,
    상기 기본 회피 벡터를 산출하도록 실행됨에 있어,
    상기 시작점, 상기 목표점 및 상기 충돌 면의 위치를 기초로 충돌 거리 비율을 산출하고; 그리고
    상기 시작점 및 상기 목표점 사이의 상기 충돌 면의 법선 벡터인 제1차 회피 벡터를 산출하도록 실행되고,
    상기 캐릭터의 척추로부터 상기 상지의 하박으로 향하는 경향 벡터를 산출하고; 그리고
    상기 제1차 회피 벡터에 상기 경향 벡터를 더하여 제2차 회피 벡터를 산출하도록 실행되고,
    상기 충돌 면은 상기 시작점으로부터 상기 목표점으로 향하는 방향인 검사 방향 상의 미리 설정된 구간 이내에 존재하는 메시인, 장치.
  14. 삭제
  15. 제13항에 있어서,
    상기 제1차 회피 벡터는 상기 충돌 거리 비율이 가장 작은 시작점, 목표점, 및 충돌 면을 기준으로 산출되는 것을 특징으로 하는, 장치.
  16. 삭제
  17. 제13항에 있어서,
    상기 회피 벡터를 산출하도록 실행됨에 있어,
    상기 캐릭터의 중심축의 정면 벡터 및 상기 캐릭터의 척추로부터 옆구리로 향하는 측면 벡터 중 적어도 하나를 기초로 추가 회피 벡터를 산출하도록 실행되는 것을 특징으로 하는, 장치.
  18. 제17항에 있어서,
    상기 추가 회피 벡터를 산출하도록 실행됨에 있어,
    상기 기본 회피 벡터가 상기 캐릭터의 중심을 넘어 반대편 방향을 향하는 경우 상기 기본 회피 벡터를 상기 중심축의 정면 벡터와 평행하도록 제한한 제3차 회피 벡터를 산출하도록 실행되는 것을 특징으로 하는, 장치.
  19. 제17항에 있어서,
    상기 추가 회피 벡터를 산출하도록 실행됨에 있어,
    상기 기본 회피 벡터에 상기 측면 벡터를 더한 제4차 회피 벡터를 산출하도록 실행되는 것을 특징으로 하는, 장치.
  20. 제19항에 있어서,
    상기 제4차 회피 벡터를 산출하도록 실행됨에 있어,
    상기 캐릭터의 상박 상의 제1 기준점 및 상기 캐릭터의 척추 선분 상의 제2 기준점을 설정하고;
    상기 제1 기준점 및 상기 제2 기준점 사이의 거리값과 상기 척추로부터 상기 옆구리까지의 거리값을 기초로 상박 충돌 비율을 산출하고; 그리고
    상기 상박 충돌 비율 값을 기초로 가중치를 산출하도록 실행되고,
    상기 제4차 회피 벡터는,
    상기 기본 회피 벡터, 상기 측면 벡터, 및 상기 가중치를 기초로 산출되는 것을 특징으로 하는, 장치.
  21. 제20항에 있어서,
    상기 제1 기준점은 상기 캐릭터의 상박의 중심점이고, 상기 제2 기준점은 상기 척추 선분에서 상기 제1 기준점과 가장 가까운 지점이며,
    상기 상박 충돌 비율 값은 상기 제1 기준점 및 상기 제2 기준점 사이의 거리값에 상기 척추로부터 상기 옆구리까지의 거리값을 나눈 값인 것을 특징으로 하는, 장치.
  22. 제20항에 있어서,
    상기 제4차 회피 벡터는,
    상기 기본 회피 벡터에 상기 가중치가 적용된 상기 측면 벡터를 더하여 산출되는 것을 특징으로 하는, 장치.
  23. 제22항에 있어서,
    상기 상박 충돌 비율 값이 미리 설정된 제1 값보다 큰 경우,
    상기 가중치가 적용된 상기 측면 벡터의 크기는 0인 것을 특징으로 하는, 장치.
  24. 제22항에 있어서,
    상기 상박 충돌 비율 값이 미리 설정된 제2 값보다 작거나 같은 경우,
    상기 가중치가 적용된 상기 측면 벡터의 크기는 상기 기본 회피 벡터의 크기와 동일한 것을 특징으로 하는, 장치.
  25. 장치의 적어도 하나의 프로세서에 의해 실행되는 캐릭터의 신체 간 간섭 회피를 위한 동작 방법에 있어서,
    사용자의 이미지를 기초로 상기 사용자에 대응하는 캐릭터의 본(bone)을 생성하는 단계;
    상기 캐릭터의 신체 간의 충돌 위험 검사를 위한 시작점 및 목표점을 상기 캐릭터의 본 상에 설정하는 단계;
    상기 시작점 및 상기 목표점 간에 충돌 테스트를 수행하여 상기 시작점 및 상기 목표점 사이의 충돌 면을 산출하는 단계; 및
    상기 캐릭터의 충돌 면의 법선 벡터, 상기 캐릭터의 척추로부터 하박을 향하는 경향 벡터, 캐릭터의 중심축의 정면 벡터, 및 캐릭터의 측면 벡터 중 적어도 하나를 기초로 회피 벡터를 산출하는 단계;를 포함하고,
    상기 회피 벡터를 산출하는 단계는,
    기본 회피 벡터를 산출하는 단계를 포함하고,
    상기 기본 회피 벡터를 산출하는 단계는,
    상기 시작점 및 상기 목표점 사이의 상기 충돌 면의 상기 법선 벡터인 제1차 회피 벡터를 산출하는 단계;
    상기 캐릭터의 척추로부터 상기 하박으로 향하는 상기 경향 벡터를 산출하는 단계; 및
    상기 제1차 회피 벡터에 상기 경향 벡터를 더하여 제2차 회피 벡터를 산출하는 단계;를 포함하며,
    상기 충돌 면은 상기 시작점으로부터 상기 목표점으로 향하는 방향인 검사 방향 상의 미리 설정된 구간 이내에 존재하는 메시인, 동작 방법.
KR1020230061524A 2023-05-12 2023-05-12 애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치 KR102638847B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230061524A KR102638847B1 (ko) 2023-05-12 2023-05-12 애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230061524A KR102638847B1 (ko) 2023-05-12 2023-05-12 애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102638847B1 true KR102638847B1 (ko) 2024-02-21

Family

ID=90052649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230061524A KR102638847B1 (ko) 2023-05-12 2023-05-12 애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102638847B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030502A (ja) * 2002-06-28 2004-01-29 Sangaku Renkei Kiko Kyushu:Kk シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP2009521334A (ja) * 2005-12-22 2009-06-04 本田技研工業株式会社 多関節システムの動作の再構築、リターゲット、軌道追従及び推定
KR20180090746A (ko) * 2017-02-03 2018-08-13 소니 주식회사 시점 변환을 위한 현실적 리그드 3차원(3d) 모델 애니메이션을 생성하는 장치 및 방법
KR20200092893A (ko) * 2019-01-25 2020-08-04 주식회사 버츄얼넥스트 3d스캔데이터를 이용한 증강현실 동영상제작시스템 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030502A (ja) * 2002-06-28 2004-01-29 Sangaku Renkei Kiko Kyushu:Kk シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP2009521334A (ja) * 2005-12-22 2009-06-04 本田技研工業株式会社 多関節システムの動作の再構築、リターゲット、軌道追従及び推定
KR20180090746A (ko) * 2017-02-03 2018-08-13 소니 주식회사 시점 변환을 위한 현실적 리그드 3차원(3d) 모델 애니메이션을 생성하는 장치 및 방법
KR20200092893A (ko) * 2019-01-25 2020-08-04 주식회사 버츄얼넥스트 3d스캔데이터를 이용한 증강현실 동영상제작시스템 및 그 방법

Similar Documents

Publication Publication Date Title
JP7249390B2 (ja) 単眼カメラを用いたリアルタイム3d捕捉およびライブフィードバックのための方法およびシステム
US20180225858A1 (en) Apparatus and method to generate realistic rigged three dimensional (3d) model animation for view-point transform
KR102487918B1 (ko) 수정된 셰이프 프롬 셰이딩(sfs) 방식을 이용한 삼각형 3 차원 메쉬의 형상-세분화
US10593106B2 (en) Three-dimensional model generating system, three-dimensional model generating method, and program
US10713850B2 (en) System for reconstructing three-dimensional (3D) human body model using depth data from single viewpoint
JP5773944B2 (ja) 情報処理装置および情報処理方法
KR20180100476A (ko) 이미지 및 뎁스 데이터를 사용하여 3차원(3d) 인간 얼굴 모델을 발생시키는 가상 현실 기반 장치 및 방법
US20210201002A1 (en) Moving image distribution computer program, server device, and method
JP2012525643A5 (ko)
JP2021501933A (ja) 拡張現実効果の動的グレースフルデグラデーション
US20200098166A1 (en) Reconstruction and detection of occluded portions of 3d human body model using depth data from single viewpoint
KR102264803B1 (ko) 이미지에서 캐릭터를 추출하여 캐릭터 애니메이션을 생성하는 방법 및 이를 이용한 장치
CN113826144B (zh) 使用单幅彩色图像和深度信息的面部纹理贴图生成
US12020374B2 (en) Body shape and pose estimation via volumetric regressor for raw three dimensional scan models
KR20130030117A (ko) 실시간 캐릭터 애니메이션에서의 발 미끄러짐 제거를 위한 캐릭터 영상 처리 장치 및 방법
KR102638847B1 (ko) 애니메이션 캐릭터의 신체 간 간섭 회피를 위한 벡터 결정 방법 및 장치
US11430168B2 (en) Method and apparatus for rigging 3D scanned human models
KR102638853B1 (ko) 애니메이션 캐릭터의 신체 간 간섭 회피 방법 및 장치
US10621788B1 (en) Reconstructing three-dimensional (3D) human body model based on depth points-to-3D human body model surface distance
KR102638841B1 (ko) 애니메이션 캐릭터의 신체 간 간섭 예측 성능 향상 방법 및 장치
US20220270337A1 (en) Three-dimensional (3d) human modeling under specific body-fitting of clothes
US20180225857A1 (en) Apparatus and method to generate realistic three-dimensional (3d) model animation
US11475609B2 (en) Computer program, server device, terminal device, and method for moving gift in virtual space
US11734868B2 (en) Motion retargeting based on differentiable rendering
US20240127539A1 (en) Mechanical weight index maps for mesh rigging

Legal Events

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