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

KR20170086317A - 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법 - Google Patents

타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법 Download PDF

Info

Publication number
KR20170086317A
KR20170086317A KR1020160006012A KR20160006012A KR20170086317A KR 20170086317 A KR20170086317 A KR 20170086317A KR 1020160006012 A KR1020160006012 A KR 1020160006012A KR 20160006012 A KR20160006012 A KR 20160006012A KR 20170086317 A KR20170086317 A KR 20170086317A
Authority
KR
South Korea
Prior art keywords
joint
timing
motion
foot
time
Prior art date
Application number
KR1020160006012A
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 KR1020160006012A priority Critical patent/KR20170086317A/ko
Priority to US15/142,501 priority patent/US10049484B2/en
Publication of KR20170086317A publication Critical patent/KR20170086317A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • 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
    • 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
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/90Services for handling of emergency or hazardous situations, e.g. earthquake and tsunami warning systems [ETWS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2209/00Arrangements in telecontrol or telemetry systems
    • H04Q2209/40Arrangements in telecontrol or telemetry systems using a wireless architecture
    • H04Q2209/43Arrangements in telecontrol or telemetry systems using a wireless architecture using wireless personal area networks [WPAN], e.g. 802.15, 802.15.1, 802.15.4, Bluetooth or ZigBee

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Public Health (AREA)
  • Environmental & Geological Engineering (AREA)
  • Emergency Management (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)

Abstract

본 발명은 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치로, 동일한 스켈레톤 모델 구조를 갖는 캐릭터에 대한 적어도 하나의 예제 동작 데이터를 저장하는 예제동작 데이터베이스와, 상기 예제동작 데이터베이스에 포함되어 있는 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성하는 예제 동작 분석부와, 입력 동작의 공간적 움직임을 상기 소정 예제 동작의 타이밍 소스에 맞게 재조절하여 출력 동작을 생성하는 입력 동작 변환부를 포함한다.

Description

타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법{Apparatus and Method for Generating 3D Character Motion via Timing Transfer}
본 발명은 콘텐츠 제작 및 편집 기술에 관한 것으로, 보다 상세하게는 3차원 가상 캐릭터의 애니메이션 제작 및 편집 기술에 관한 것이다.
3차원 가상 캐릭터(3-dimensional virtual character)는 영화, 게임, 방송, 아바타(avatar) 등과 같은 디지털 콘텐츠(digital contents) 분야에 폭넓게 사용되고 있다. 일반적으로 가상 캐릭터의 사실적인 동작을 포함하는 애니메이션(animation)을 제작하기 위해서는 정량적인(quantitative) 요소와 정성적인(qualitative) 요소를 고려해야 한다.
캐릭터 애니메이션에서 정량적인 요소는 동작의 위치, 속도, 가속도 등과 같이 수치적으로 계산이 가능하지만, 정성적인 요소는 캐릭터의 감성, 경험, 습관 등과 같이 수치 해석(numerical analysis)이 어렵거나 불가능한 경우가 많다. 특히, 정성적인 요소를 편집하여 새로운 동작을 생성하는 과정에서 특정 동작의 시작과 끝을 나타내는 타이밍(timing)은 해당 동작 스타일(style) 및 특징(characteristic)을 표현하는데 매우 중요한 역할을 한다. 예컨대, 동일한 위치를 이동하는 동작이라도 타이밍이 빠르면 활기차고 역동적으로 표현되나, 느리면 지치고 무디게 느껴진다. 또한, 동일한 위치에서 정지해 있는 시간이 길면 동작은 단계적으로 끊어져 보이는 반면 정지해 있는 시간이 짧으면 동작이 전체적으로 유기적으로 매우 부드럽게 느껴진다. 따라서, 캐릭터 애니메이션 제작에 많이 쓰이는 다수의 관절(joint)로 연결된 스켈레톤 모델(articulated skeleton model)을 이용하여 동작의 스타일을 편집할 경우 사용자는 각 관절의 수만큼 관절 회전 타이밍을 조절해야만 한다.
한편, 기존에 캐릭터의 동작을 생성하는 방법으로는 키-프레임 애니메이션(key-frame animation) 방식이 널리 사용되어 왔다. 이는 사용자가 원하는 스타일의 동작을 매우 자유롭게 생성할 수 있다는 장점이 있으나, 주요 프레임에 해당하는 동작 타이밍을 편집하는 과정은 다음과 같은 이유로 많은 노력과 시간을 요구한다.
첫째, 캐릭터 모델을 형성하는 다관절 스켈레톤 모델은 높은 자유도(degrees of freedom)를 가지고 있고, 사용자가 많은 수의 관절과 연동된 타이밍을 조절하여 높은 품질의 동작으로 생성하기에는 전문적인 훈련과 인체 동작의 물리적인 지식(예로 중력에 의한 인체 활동 범위의 제약 및 관절 간의 이동 상관 관계)을 필요로 한다. 특히, 캐릭터 동작 타이밍과 밀접한 관계가 있는 무게 및 운동 에너지의 이동을 사실적으로 표현하는 작업은 편집 경험 및 전문성이 부족한 초보 사용자에게는 매우 어려운 일이다.
또한, 자연스러운 캐릭터 애니메이션을 보여주기 위해서는 초당 24~30 프레임이상의 동작 자세를 생성해야 하는데, 이를 위해 주요 자세들이 포함하는 모든 관절들의 타이밍을 편집하는 작업은 전문 애니메이터(animator)에게도 많은 시간을 요구한다.
마지막으로 동작 타이밍을 편집하기 위해 나온 대부분의 상업용 3차원 모델링 도구(modeling tool)들은 복잡한 편집 프로세스(process) 및 사용자 인터페이스(user interface)로 인해 초보 사용자가 이런 도구를 이용하여 사실적인 애니메이션을 제작하기는 매우 어렵다. 이러한 이유들로 현재 키 프레임 방식으로 높은 품질의 캐릭터 애니메이션을 제작하기 위해서는 길이가 짧은 애니메이션이라도 많은 전문 애니메이터를 필요로 하고, 이는 높은 제작 비용의 원인이 되고 있다.
한편, 다수의 카메라를 통해 연기자의 움직임을 실시간으로 인식 및 추적한 후 가상 캐릭터 모델의 동작으로 복원하는 모션 캡쳐(motion capture) 방식은 연기자의 움직임을 직접 기록(record)하기 때문에 매우 높은 품질의 동작 데이터 생성이 가능하다. 특히, 갭쳐된 3차원 동작 데이터는 다관절 스켈레톤에 피팅(fitting)되어 기존의 캐릭터 애니메이션 제작 파이프라인(pipeline)에 쉽게 적용할 수가 있다. 하지만, 카메라의 속도에 따라 최소 초당 24~30 프레임이상으로 동작이 캡쳐되면서 생성되는 동작 데이터는 높은 프레임의 연속성(continuity) 및 밀집성(density)을 가진다. 때문에, 사용자가 갭쳐한 데이터의 타이밍 정보를 편집하면 연속된 프레임들에 포함되어 있는 움직임의 중요한 요소인 물리적 타당성(physical validity)을 쉽게 훼손할 수 있다. 따라서, 갭쳐한 데이터를 사용자가 원하는 스타일의 동작으로 변형시 결과물에 동작의 부자연스러움 및 노이즈(noise)로 인해 품질 저하가 일어날 수 있다. 또한, 일반적으로 고품질의 동작 데이터를 인식 및 추적하는 모션 갭쳐 시스템은 매우 고가의 장비이고, 넓은 캡쳐 공간이 필요하며, 다수의 운영인원이 전문적인 교육을 받아야 사용할 수가 있다. 마지막으로 모션 갭쳐 방식에서 동작의 품질에 제일 큰 영향을 미치는 요소는 연기자의 숙련도이다. 특히, 댄스나 운동과 같이 복잡하고 다이나믹(dynamic)한 동작의 타이밍 정보는 일반인의 움직임에서 고품질로 추출하기는 매우 어렵기 때문에 전문 연기자를 필요로 한다. 이러한 이유들로 현재 모션 갭쳐 방식으로 동작 데이터를 생성하는데는 긴 준비 시간과 높은 비용이 소요되고 있다.
본 발명은 3차원 캐릭터 애니메이션 제작에 필요한 동작 데이터를 저비용으로 빠르게 생성하기 위한 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법을 제공한다.
본 발명은 숙련된 전문 애니메이터들에 의해 생성된 동작 데이터를 사용자가 원하는 목적으로 재사용할 수 있게 변환할 수 있는 동작 스타일 편집 도구인 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법을 제공한다.
본 발명은 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치로, 동일한 스켈레톤 모델 구조를 갖는 캐릭터에 대한 적어도 하나의 예제 동작 데이터를 저장하는 예제동작 데이터베이스와, 상기 예제동작 데이터베이스에 포함되어 있는 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성하는 예제 동작 분석부와, 입력 동작의 공간적 움직임을 상기 소정 예제 동작의 타이밍 소스에 맞게 재조절하여 출력 동작을 생성하는 입력 동작 변환부를 포함한다.
본 발명은 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법으로, 동일한 스켈레톤 모델 구조를 갖는 캐릭터에 대한 적어도 하나의 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성하는 단계와, 입력 동작의 공간적 움직임을 상기 소정 예제 동작의 타이밍 소스에 맞게 재조절하여 변환하는 단계를 포함한다.
본 발명에 따라, 사용자는 주어진 예제 동작 DB에서 선택한 예제 동작의 스타일을 기존의 공간적 편집 과정 없이 입력 동작(타이밍 정보)에 적용하여 원래 동작의 고품질을 유지하면서 새로운 스타일의 동작을 효율적으로 생성할 수 있다.
또한. 숙련된 전문 애니메이터들에 의해 제작된 동작 데이터를 재사용하여 사용자가 원하는 스타일의 동작으로 변환할 수 있으며, 입력 동작의 편집 과정에서 필요로 하던 동작의 물리적 특성 분석 및 정성적인 요소 이해와 같은 전문적인 지식을 사용자로부터 요구하지 않는다.
또한, 출력 동작이 입력 동작의 공간적 움직임을 예제 동작의 타이밍 정보만을 활용하여 생성되기 때문에 기존의 공간적 동작 편집에 따른 노이즈 및 에러가 발생할 요인이 없으며, 고품질의 동작 데이터 생성을 보장한다.
특히, 본 발명에서 동작 분석 및 변환에서 동작의 스타일 변화 과정은 사용자의 개입을 최소화하여 자동화되어 있기 때문에 대용량 애니메이션을 제작하는데 필요한 많은 수의 동작 데이터를 빠르게 생성할 수 있다. 따라서, 본 발명은 기존에 생성된 동작을 재사용하여 저비용으로 예제 동작 DB(10)의 크기 증가가 가능하고, 3차원 캐릭터 동작이 활용되는 다양한 인터랙티브(interactive) 어플케이션인 게임, 가상현실, 방송, 아바타 등에 실용적으로 사용될 수 있다.
도 1은 3차원 가상 캐릭터의 다관절 스켈레톤 모델의 일 예를 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 예제 동작 분석부의 상세 구성도이다.
도 4는 예제 동작의 키 타임들이 정규화된 일 예를 도시한 도면이다.
도 5는 자세 비교를 위한 특징 백터 정의를 위한 스켈레톤 모델의 구조도이다.
도 6은 본 발명의 일 실시 예에 따른 입력 동작 변환부의 상세 구성도이다.
도 7은 두 동작의 자식과 부모 관절의 회전 타이밍 이동과 진폭 크기의 일 예를 도시한 도면이다.
도 8a 및 도 8b는 본 발명에 따라 입력 동작을 타이밍 소스의 동작 스타일로 복제한 결과의 예를 도시한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법을 설명하기 위한 순서도이다.
도 10은 본 발명의 일 실시 예에 따른 예제 동작 분석 단계를 설명하기 위한 순서도이다.
도 11은 본 발명의 일 실시 예에 따른 입력 동작 변환 단계를 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 3차원 가상 캐릭터의 다관절 스켈레톤 모델의 일 예를 도시한 도면이다.
도 1을 참조하면, 3차원 캐릭터 애니메이션 제작에 사용되는 스켈레톤 모델은 루트(root) 관절에서 시작해서 중간 관절들(internal joints)을 통해 머리(head), 손(hand), 발(foot)의 관절 끝으로 연결되어 있는 구조를 갖는다. 각각의 관절은 x, y, z축을 기점으로 총 6개의 회전 및 이동 자유도(DOF)를 가질 수 있다. 따라서, 캐릭터 편집 및 생성 방법으로 새로운 스타일의 동작을 생성하기 위해서는 사용자가 동작 스타일과 관련된 많은 수의 관절 자유도를 반복적으로 조절해야만 한다. 이러한 수동적인 관절 자유도 조절을 기존 동작 데이터를 활용하여 자동으로 동작을 생성하는 방법들이 제안되었으나, 신체 비율이 상이한 캐릭터들 간의 동일한 스타일의 동작 생성에만 그 초점이 맞추어져 있다. 특히, 동작 편집 과정에서 원본 동작의 공간적(spatial) 데이터를 직접 편집하고 있기 때문에 출력 동작의 품질을 보장하기가 어렵다.
따라서, 본 발명에서는 사용자가 숙련된 애니메이터들에 의해 이미 생성되어 있는 예제 동작의 스타일을 기존의 공간적 편집 과정 없이 입력 동작(타이밍 정보)에 적용하여 원래 동작의 고품질을 유지하면서 새로운 스타일의 동작을 효율적으로 생성할 수 있는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법을 제안한다.
도 2는 본 발명의 일 실시 예에 따른 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치를 도시한 도면이다.
도 2를 참조하면, 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치(이하 '장치'라 기재함)는 예제 동작 DB(10), 예제 동작 분석부(100) 및 입력 동작 변환부(200)를 포함한다.
예제 동작 DB(10)는 키 프레임이나 모션 캡쳐 방식으로 생성된 데이터를 모두 포함할 수 있으나, 동작 스타일 변환 과정의 간소화를 위해 모든 데이터는 도 1에 도시된 바와 같은 동일한 스켈레톤 모델 구조를 사용한다고 가정한다. 만약, 예제 동작 DB(10)에 포함되어 있는 예제 동작 간의 스켈레톤 모델 구조가 상이할 경우, 예제 동작 간의 스켈레톤 모델 구조는 모션 리타게팅(motion retargeting) 기법으로 단일 스켈레톤 모델 구조로 매핑(mapping)된 후, 사용될 수 있다. 또한, 모션 캡쳐 방식으로 생성된 데이터를 사용할 경우 연기한(performed) 동작 내용에 따라 동작의 시작과 끝을 나타내는 자세, 잘못된(erroneous) 자세, 중복된(duplicated) 자세 등이 포함되어 있을 수 있는데, 예제 동작 DB(10)는 이러한 데이터들 중에서 전처리(preprocessing) 작업을 거쳐 선별된 동작의 스타일을 나타내는데 필요한 주요 자세만을 포함하고 있는 데이터를 저장할 수 있다.
예제 동작 분석(example motion analysis)부(100)는 예제 동작 DB(10)에 포함되어 있는 모든 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성한다. 즉, 동작들 간의 시간적 변화를 하나의 공통된 시간 축(time axis)으로 이동하여 서로 다른 관절의 타이밍을 동일한 축에서 조절할 수 있어야 한다. 이러한 타이밍은 동작의 중요한 순간을 나타내는 키 타임으로 표시하여 나타낼 수 있지만, 사용자가 예제 동작 DB(10)에 포함된 모든 예제 동작들의 키 타임들을 수작업으로 찾아내기에는 많은 시간이 소요된다. 따라서, 예제 동작 분석(example motion analysis)부(100)는 예제 동작 DB(10)의 예제 동작들의 키 타임들을 자동으로 검출하고, 사용자가 동작 스타일 변환에 사용할 수 있는 데이터 형태인 타이밍 소스(timing source)를 생성한다. 예제 동작 분석부(100)의 상세 설명은 도 3을 참조하여 후술하기로 한다.
입력 동작 변환(input motion transfer)부(200)는 입력 동작의 공간적(spatial) 움직임을 사용자가 선택한 예제 동작의 타이밍 소스에 맞게 재조절하여 새로운 스타일의 동작을 생성한다. 입력 동작 변환부(100)의 상세 설명은 도 6을 참조하여 후술하기로 한다.
도 3은 본 발명의 일 실시 예에 따른 예제 동작 분석부의 상세 구성도이다.
도 3을 참조하면, 예제 동작 분석부(100)는 상세하게는 예제 동작들의 주요 타이밍을 키 타임(key time)으로 검출하는 타이밍 소스 검출부(110) 및 검출된 키 타임들은 예제 동작들 간의 타이밍 대응 관계를 설정하는 타이밍 정렬부(120)를 포함한다.
또한, 키 타임 검출부(110)는 상세하게는 관절 노이즈 제거부(111) 및 키 타임 검출부(112)를 포함한다.
관절 노이즈 제거부(111)는 관절의 가속도 정보를 정확히 계산하기 위해 관절의 위치 노이즈를 필터링(filtering)한다. 캐릭터의 키 타임을 효과적으로 검출하기 위해 도 1에 도시된 바와 같이 캐릭터의 좌우 손, 좌우 발, 머리에 해당하는 5개의 관절들(흐리게 표시됨)의 위치 및 가속도 정보를 사용한다. 특히, 동작 캡쳐 데이터의 경우 캡쳐 당시 마커(marker)의 에러 및 인체 비율과 크기가 상이한 스켈레톤 모델에 동작 피팅시 관절의 위치 오차 때문에 관절의 떨림과 같은 에러가 발생할 수 있다. 이를 위해 관절 노이즈 제거부(111)는 Savitzk-Golay 필터와 같은 로우-패스(low-pass) 필터로 관절의 동작 커브(motion curve)에서 로컬 정점(local peak)에 해당하는 노이즈를 제거한다. 이때, 전체적인 커브의 모양을 유지하면서 로컬 정점만 효과적으로 제거하기 위해서 5~10 프레임의 필터링 윈도우 크기에 4차 스무싱 다항식(degree 4 of smoothing polynomial)을 사용한다.
키 타임 검출부(112)는 좌우 손, 좌우 발, 머리에 해당하는 5개의 관절들의 키 타임을 찾아낸다.
우선, 키 타임 검출부(112)는 예제 동작의 각 프레임마다 스켈레톤 모델의 발 관절과 가상환경의 그라운드(ground) 접촉 상태에 따라 키 타임을 찾아낸다. 예제 동작의 스타일을 표현하는데 중요한 순간들 중에는 캐릭터가 그라운드 표면에 발을 접촉하는 타이밍이 있다. 이러한 키 타임을 정확히 검출하기 위해 발의 끝 관절의 위치와 가속도 정보를 사용한다. 우선, 예제 동작에 포함된 모든 프레임의 발 끝 관절 위치를 계산한 후 가상공간의 상향 좌표(up-axis)를 기준으로 그라운드에서 발 끝 관절 높이가 전체 발 높이 반경 10% 미만인 자세를 포함하는 프레임들만 검출한다. 이 프레임들 중에서 발 끝 관절의 가속도가 0에 가까운 프레임들만 선택한 후 발의 평균 값 위치에 제일 가까운 발 끝 관절의 위치를 포함하는 프레임의 시간(해당 예제 동작의 시작 시간 기준)을 발의 키 타임으로 지정한다.
우선, 키 타임 검출부(112)는 예제 동작의 각 프레임마다 캐릭터 스켈레톤 모델의 좌우 손과 머리 관절의 가속도 값에 따라 키 타임을 검출한다. 좌우 손과 머리의 끝에 해당하는 관절은 zero-crossing rate을 측정하여 가속도가 0에 가까운 프레임의 시간을 손과 머리의 키 타임으로 각각 지정한다. 이때, 키 타임으로 지정된 프레임들이 너무 가깝게(앞뒤 간격으로 0.1~0.5초 내외) 있는 경우 중간 프레임의 시간을 키 타임으로 지정하여 중복된 타이밍을 제거한다.
타이밍 정렬부(120)는 상세하게는 검출한 예제 동작의 키 타임들을 동일한 시간 축으로 변환하는데, 상세하게는 타이밍 정규화부(121) 및 타이밍 매핑부(122)를 포함한다.
타이밍 정규화부(121)는 각 예제 동작이 포함하고 있는 실제 타임(actual time) T 는 DTW 기법을 통해 정규화된 시간(generic time) t 로 변환될 수 있다. 즉, 각 예제 모델의 키 타임 { K 1, K 2, ..., K i, ... , K N }는 정규화된 타임 t [0, 1]로 다음의 <수학식 1>과 같이 변환된다.
Figure pat00001
<수학식 1>에서 T [ K i , K i +1 ], 1 ≤ i N 이다. 이와 비슷하게 주어진 t 에 해당하는 프레임 F 는 다음의 <수학식 2>와 같이 계산될 수 있다.
Figure pat00002
<수학식 2>에서 F i K i 에 해당하는 키 프레임이다.
도 4는 예제 동작의 키 타임들이 정규화된 일 예를 도시한 도면이다.
도 4를 참조하면, M개의 예제 동작들의 각각으로부터 추출된 키 타임들 {K 1, K 2, ... , K i, ... , K N }이 실제 시간 T 에서 정규화된 시간 t 로 변환된다.
다시 도 3을 참조하면, 타이밍 매핑부(122)는 정규화된 키 타임을 기반으로 예제 동작 간의 타이밍 대응관계를 설정한다. 입력 동작의 자연스러운 동작 스타일 변환을 위해서는 예제 동작 간의 정규화된 키 타임에 해당하는 프레임의 자세를 비교하여 두 동작 간에 대응하는 타이밍을 결정해야 한다. 즉, 도 4와 같이 M 개의 예제 동작들이 있으면, 각 예제 동작의 M i 에 해당하는 프레임을 다른 예제 동작의 K i 에 해당하는 프레임과 자세 유사도를 비교하여 유사성이 높은 순서대로 두 예제동작 간의 K i 를 정렬할 수 있다. 이때, 신속한 자세 유사도 비교를 위해 도 5와 같은 특징 백터 V i 를 사용한다.
도 5는 자세 비교를 위한 특징 백터 정의를 위한 스켈레톤 모델의 구조도이다.
도 5를 참조하면, V i 는 중심(root) 관절을 영점(origin)으로 좌우 손끝, 좌우 발끝, 머리 관절의 위치 및 방향을 local 좌표계로 나타내고 있으며, 관절의 중요도에 따라 가중치 값 W i 다르게 지정할 수 있다. 따라서, 예제 동작 간의 타이밍 대응관계가 설정되면, 각 예제 동작의 정렬된 키 타임들은 입력 동작의 타이밍을 변화시키는 데이터 형태인 타이밍 소스로 사용될 수 있다.
도 6은 본 발명의 일 실시 예에 따른 입력 동작 변환부의 상세 구성도이다.
도 6을 참조하면, 입력 동작 변환부(200)는 동작 스타일 변환의 주요 요소인 동작의 전체 속도를 조절하는 전체 속도 조절부(210) 및 스켈레톤 관절의 연속성을 동작 구간별로 변환하는 관절 회전 조절부(220)를 포함한다. 이를 통해, 원래 동작의 고품질을 유지하면서 새로운 스타일의 동작을 효율적으로 생성할 수 있다.
전체 속도 조절부(210)는 상세하게는 운동 경로 아크 길이(arc length) 계산부(211) 및 속도 비율 재분배부(212)를 포함한다.
운동 경로 아크 길이 계산부(211)는 동작의 공간상 움직임을 운동 경로 커브(curve)의 파라미터(parameter) 값으로 재정의하고, 이 운동 경로가 되는 커브의 함수에서 시간에 따른 동작의 순간 속도를 계산한다.
입력 동작의 공간상 움직임을 나타내는 운동 경로의 모양은 거리와 시간의 함수(distance-time function)로 나타낼 수 있다. 이를 위해 동작의 운동 경로 커브를 [0, 1]의 파라미터 값을 가지는 아크 길이(arc length)인 t 로 정의한다면, t 는 입력 동작과 타이밍 소스(사용자가 선택한 예제 동작)의 운동 경로 시간에 상응하는 거리를 추정할 수 있다. 따라서, 타이밍이 서로 다른 두 동작 간의 속도를 동일한 파라미터 값으로 시간과 거리에 따른 상응 관계를 설정할 수 있다.
속도 비율 재분배부(212)는 입력 동작의 전체 속도 변화를 자연스럽게 타이밍 소스의 전체 속도로 변환하기 위해 두 동작 간의 정규화된 시간 t 를 기반으로 하는 속도 비율로 매칭시킨다. 예컨대, 느린 동작의 t 를 빠른 동작의 t 에 그대로 적용하여 새로운 동작을 생성하면, 출력 동작에서는 2개의 연속되는 키 프레임(키 타임에 해당하는 프레임) 사이의 간격이 넓어져서 동작이 끊어져 보이는 문제가 발생한다. 반대로 빠른 동작의 t 를 느린 동작의 t 에 그대로 적용하면 키 프레임 사이의 간격이 너무 짧아져 출력 동작이 비현실적으로 빠르게 움직이는 문제가 발생할 수 있다. 따라서, 동작 스타일 변환시 두 동작 간에 전체 속도를 t 값으로 직접 조절하기 보다는 각 동작을 키 프레임기반 구간별로 나누고, 각 구간별로 해당하는 속도의 비율을 타이밍 소스가 가지고 있는 구간별 속도 비율에 맞추어 출력 동작의 전체 속도를 부드럽게 조절할 필요가 있다. 즉, 입력동작의 연속된 2개의 키 프레임 사이의 중간 프레임(in-between frames)의 수를 e i 라고 가정하고, i 번째 구간( i [ 1, ..., N p ], 여기서 N p 는 총 구간의 수)에 해당하는 아크 길이(arc length)만큼 지나온 거리를 o i 이라고 가정한다면, i 번째 구간에 대응하는 타이밍 소스의 j 번째 구간의 중간 프레임의 수와 아크 길이(arc length)의 거리는 각각
Figure pat00003
Figure pat00004
로 가정할 수 있다. 그러면, 입력 동작의 속도 비율 e i / o i 는 새로운(타이밍 소스의 비율과 같은) 속도 비율인
Figure pat00005
와 일치시켜야 하기 때문에 타이밍 소스의 전체 동작 시간은
Figure pat00006
에 따라 다음의 <수학식 3>과 같이 입력 동작의 구간별로 재분배된다.
Figure pat00007
<수학식 3>에서 N I N T 는 각각 입력과 타이밍 소스의 키 프레임 사이에 해당하는 중간 프레임(in-between frames)의 총 합계 수이다. 특히,
Figure pat00008
가 입력 동작의 i 번째 구간에 해당하는 arc length 거리를 타이밍 소스의 평균 속도에 맞추기 위해 필요한 프레임 수를 나타내고 있다면,
Figure pat00009
는 출력 동작의 해당 구간 길이(duration)를 타이밍 소스와 같도록 조절하고 있다. 따라서, 출력동작의 i 번째 구간을 위한
Figure pat00010
가 위와 같이 정해지면 출력동작의 중간 프레임 수는
Figure pat00011
에 대응하는 arc length β o 를 입력동작의 근접하는 2개의 이웃 포인트들로부터 다음의 <수학식 4>와 같이 근사(approximate)할 수 있다.
Figure pat00012
<수학식 4>에서
Figure pat00013
u k 는 각각 ? i e i 로 정규화(normalize) 되어
Figure pat00014
, u k [0, 1] 이다. 그리고, a k 는 입력동작의 구간에 해당하는 u k 만큼 이동한 arc length이다. 출력 동작의 실제 스켈레톤의 중심(root) 위치는 입력동작의 a k a k +1 에 위치하는 프레임이 포함하는 스켈레톤의 중심 위치들을 보간(interpolation)하여 결정된다.
다음으로, 관절 회전 조절부(220)는 타이밍 조절부(221) 및 크기 조절부(222)를 포함한다.
타이밍 조절부(220)는 타이밍 소스의 관절 회전 타이밍을 입력 동작의 관절에 적용한다. 타이밍 소스의 동작 스타일을 입력 동작에 자연스럽게 변환하기 위해선 두 동작 간의 전체 속도를 매칭하는 것 이외에 스켈레톤의 중심에서 머리와 좌우 손 끝 관절까지 이어지는 상체 관절의 움직임 연속성(succession)을 동작 스타일에 맞게 변환하는 것이 중요하다. 여기서, 스켈레톤의 중심 아래의 하위 관절은 동작의 중요한 물리적 정보(발과 지면의 위치) 및 특징을 가지고 있기 때문에 본 단계의 타이밍 변환을 적용하지 않는다. 따라서, 관절의 회전 이동(shift)을 β , 진폭 크기(amplitude scale)를 α 라고 가정하면, 도 1과 같이 다수의 관절로 이루어진 스켈레톤 모델에서는 입력과 타이밍 소스 동작간의 자식(child)과 부모(parent) 관절 회전의 정점(peak)을 일치시킨 후 상체의 동작 범위에 따라 회전 위치 및 크기를 조절할 수 있다. 우선, 출력 동작의 타이밍 위치를 결정하는 관절 회전의 이동 값 β O 는 다음의 <수학식 5>와 같이 결정된다.
Figure pat00015
<수학식 5>에서 β I β T 는 각각 입력 동작과 타이밍 소스의 자식과 부모 관절 간의 타이밍 차이 값이고, N I N T 는 각각 입력과 타이밍 소스의 키 프레임 사이에 해당하는 중간 프레임(in-between frames)의 총 합계 수이다. 그리고, 타이밍 배치 순서를 정하는 관절 회전 이동의 방향은 β T 의 기호(- or +)에 따라 정해진다. 예로 기호가 마이너스(-)이면 자식 관절의 회전이 부모 관절의 회전보다 일찍 일어나고, 기호가 플러스(+)이면 반대로 자식 관절의 회전은 부모 관절의 회전보다 늦게 일어나게 된다.
크기 조절부(222)는 변환된 관절 타이밍에 따른 관절 회전 크기를 조절해 최종적으로 출력 동작을 생성한다. 일반적으로 다관절 캐릭터 동작의 움직임은 타이밍에 영향을 받기 때문에 자연스러운 동작을 생성하기 위해선 타이밍 소스의 관절 회전 크기 비율에 따라 출력 동작의 회전 크기도 조절해야 한다. 따라서, 출력 동작의 관절 회전 크기 조절 수치인 δ 는 다음의 <수학식 6>과 같이 결정된다.
Figure pat00016
<수학식 6>에서 α IC α IP 는 각각 입력 동작의 자식과 부모 관절의 회전 각도의 최대 진폭이다. 마찬가지로 α TC α TP 는 각각 타이밍 소스의 자식과 부모 관절의 회전 각도의 최대 진폭이다. 일정한 진폭을 가지는 관절에 대해선 δ 을 1로 설정한다. 따라서, 입력 동작의 모든 상체 관절들은 원래 회전 값에 δ 만큼 곱하여 동작의 크기를 변환한다.
도 7은 두 동작의 자식과 부모 관절의 회전 타이밍 이동과 진폭 크기의 일 예를 도시한 도면이다.
도 8a 및 도 8b는 본 발명에 따라 입력 동작을 타이밍 소스의 동작 스타일로 복제한 결과의 예를 도시한 도면이다.
도 8a 및 도 8b를 참조하면, 캐릭터 동작 편집 경험이 없는 일반 사용자가 본 발명이 제안하는 방법을 사용하여 주어진 예제 동작 DB(10)에서 선택한 예제 동작의 타이밍 소스를 입력 동작에서 새로운 스타일의 출력 동작으로 복제한 결과 예를 보여주고 있다.
도 9는 본 발명의 일 실시 예에 따른 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 장치는 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성한다(S910, 도 10 참조). 그런 후, 장치는 입력 동작의 공간적(spatial) 움직임을 사용자가 선택한 예제 동작의 타이밍 소스에 맞게 재조절하여 새로운 스타일의 동작을 생성한다(S920, 도 11 참조).
도 10은 본 발명의 일 실시 예에 따른 예제 동작 분석 단계를 설명하기 위한 순서도이다. 하기에서 예제 동작 분석 단계의 상세 단계를 설명함에 있어, 도 3에 도시된 예제 동작 분석부의 동작과 중복되는 상세한 설명은 생략하기로 한다. 그러나, 예제 동작 분석부의 동작으로 기재된 내용은 예제 동작 분석 단계에 모두 포함됨을 밝혀둔다.
도 10을 참조하면, 장치는 관절의 가속도 정보를 정확히 계산하기 위해 관절의 위치 노이즈를 필터링(filtering)한다(S911). 캐릭터의 키 타임을 효과적으로 검출하기 위해 도 1(흐리게 표시한 관절)과 같이 캐릭터의 좌우 손, 좌우 발, 머리에 해당하는 5개의 관절들의 위치 및 가속도 정보를 사용한다. 특히, 동작 캡쳐 데이터의 경우 캡쳐 당시 마커(marker)의 에러 및 인체 비율과 크기가 상이한 스켈레톤 모델에 동작 피팅시 관절의 위치 오차 때문에 관절의 떨림과 같은 에러가 발생할 수 있다. 따라서, Savitzk-Golay 필터와 같은 로우-패스(low-pass) 필터로 관절의 동작 커브(motion curve)에서 로컬 정점(local peak)에 해당하는 노이즈를 제거한다. 이때, 전체적인 커브의 모양을 유지하면서 로컬 정점만 효과적으로 제거하기 위해서 5~10 프레임의 필터링 윈도우 크기에 4차 스무싱 다항식(degree 4 of smoothing polynomial)을 사용한다.
장치는 예제 동작의 각 프레임마다 스켈레톤 모델의 발 관절과 가상환경의 그라운드(ground) 접촉 상태에 따라 키 타임을 찾아낸다(S912). 예제 동작의 스타일을 표현하는데 중요한 순간들 중에는 캐릭터가 그라운드 표면에 발을 접촉하는 타이밍이 있다. 이러한 키 타임을 정확히 검출하기 위해 발의 끝 관절의 위치와 가속도 정보를 사용한다. 우선, 예제 동작에 포함된 모든 프레임의 발끝 관절 위치를 계산한 후 가상공간의 상향 좌표(up-axis)를 기준으로 그라운드에서 발끝 관절 높이가 전체 발 높이 반경 10% 미만인 자세를 포함하는 프레임들만 검출한다. 이 프레임들 중에서 발 끝 관절의 가속도가 0에 가까운 프레임들만 선택한 후 발의 평균 값 위치에 제일 가까운 발 끝 관절의 위치를 포함하는 프레임의 시간(해당 예제 동작의 시작 시간 기준)을 발의 키 타임으로 지정한다.
장치는 또한 예제 동작의 각 프레임마다 캐릭터 스켈레톤 모델의 좌우 손과 머리 관절의 가속도 값에 따라 키 타임을 검출한다(S913). 좌우 손과 머리의 끝에 해당하는 관절은 zero-crossing rate을 측정하여 가속도가 0에 가까운 프레임의 시간을 손과 머리의 키 타임으로 각각 지정한다. 이 때, 키 타임으로 지정된 프레임들이 너무 가깝게(앞뒤 간격으로 0.1~0.5초 내외) 있는 경우 중간 프레임의 시간을 키 타임으로 지정하여 중복된 타이밍을 제거한다.
장치는 각 예제 동작이 포함하고 있는 실제 타임(actual time) T 는 DTW 기법을 통해 정규화된 시간(generic time) t 로 변환한다(S914).
장치는 정규화된 키 타임을 기반으로 예제 동작 간의 타이밍 대응관계를 설정한다(S915). 입력 동작의 자연스러운 동작 스타일 변환을 위해서는 예제 동작 간의 정규화된 키 타임에 해당하는 프레임의 자세를 비교하여 두 동작 간에 대응하는 타이밍을 결정해야 한다. 즉, 도 4와 같이 M 개의 예제 동작들이 있으면, 각 예제 동작의 M i 에 해당하는 프레임을 다른 예제 동작의 K i 에 해당하는 프레임과 자세 유사도를 비교하여 유사성이 높은 순서대로 두 예제동작 간의 K i 를 정렬할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 입력 동작 변환부의 상세 구성도이다. 하기에서 입력 동작 변환 단계의 상세 단계를 설명함에 있어, 도 3에 도시된 예제 동작 분석부의 동작과 중복되는 상세한 설명은 생략하기로 한다. 그러나, 입력 동작 변환부의 동작으로 기재된 내용은 입력 동작 변환 단계에 모두 포함됨을 밝혀둔다.
도 11을 참조하면, 장치는 입력 동작이 입력되고, 사용자로부터 선택된 예제 동작의 타이밍 소스를 획득한다(S921).
그런 후, 장치는 동작의 공간상 움직임을 운동 경로 커브(curve)의 파라미터(parameter) 값으로 재정의하고, 이 운동 경로가 되는 커브의 함수에서 시간에 따른 동작의 순간 속도를 계산한다(S922). 입력 동작의 공간상 움직임을 나타내는 운동 경로의 모양은 거리와 시간의 함수(distance-time function)로 나타낼 수 있다. 이를 위해 동작의 운동 경로 커브를 [0, 1]의 파라미터 값을 가지는 아크 길이(arc length)인 t 로 정의한다면, t 는 입력 동작과 타이밍 소스(사용자가 선택한 예제 동작)의 운동 경로 시간에 상응하는 거리를 추정할 수 있다. 따라서, 타이밍이 서로 다른 두 동작 간의 속도를 동일한 파라미터 값으로 시간과 거리에 따른 상응 관계를 설정할 수 있다.
그리고, 장치는 입력 동작의 전체 속도 변화를 자연스럽게 타이밍 소스의 전체 속도로 변환하기 위해 두 동작 간의 정규화된 시간 t 를 기반으로 하는 속도 비율로 매칭시킨다(S924).
다음으로, 장치는 타이밍 소스의 관절 회전 타이밍을 입력 동작의 관절에 적용한다(S924). 타이밍 소스의 동작 스타일을 입력 동작에 자연스럽게 변환하기 위해선 두 동작 간의 전체 속도를 매칭하는 것 이외에 스켈레톤의 중심에서 머리와 좌우 손 끝 관절까지 이어지는 상체 관절의 움직임 연속성(succession)을 동작 스타일에 맞게 변환하는 것이 중요하다. 여기서, 스켈레톤의 중심 아래의 하위 관절은 동작의 중요한 물리적 정보(발과 지면의 위치) 및 특징을 가지고 있기 때문에 본 단계의 타이밍 변환을 적용하지 않는다. 따라서, 관절의 회전 이동(shift)을 β , 진폭 크기(amplitude scale)를 α 라고 가정하면, 도 1과 같이 다수의 관절로 이루어진 스켈레톤 모델에서는 입력과 타이밍 소스 동작간의 자식(child)과 부모(parent) 관절 회전의 정점(peak)을 일치시킨 후 상체의 동작 범위에 따라 회전 위치 및 크기를 조절할 수 있다.
다음으로, 장치는 변환된 관절 타이밍에 따른 관절 회전 크기를 조절해 최종적으로 출력 동작을 생성한다(S925).

Claims (18)

  1. 동일한 스켈레톤 모델 구조를 갖는 캐릭터에 대한 적어도 하나의 예제 동작 데이터를 저장하는 예제동작 데이터베이스와,
    상기 예제동작 데이터베이스에 포함되어 있는 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성하는 예제 동작 분석부와,
    입력 동작의 공간적 움직임을 상기 소정 예제 동작의 타이밍 소스에 맞게 재조절하여 출력 동작을 생성하는 입력 동작 변환부를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  2. 제1 항에 있어서, 상기 예제 동작 분석부는
    상기 예제 동작 데이터의 키 타임들을 자동으로 검출하고, 사용자가 동작 스타일 변환에 사용할 수 있는 데이터 형태인 타이밍 소스를 생성하는 타이밍 소스 검출부와,
    상기 예제 동작으로부터 검출된 키 타임을 정규화된 시간으로 변환하고, 상기 둘 이상의 예제 동작들의 정규화된 키 타임에 해당하는 프레임들의 자세를 비교하여 둘 이상의 예제 동작들 간에 대응하는 타이밍을 결정하는 타이밍 정렬부를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  3. 제2 항에 있어서, 상기 타이밍 소스 검출부는
    상기 캐릭터의 손의 왼쪽 관절, 손의 오른쪽 관절, 발의 왼쪽 관절, 발의 오른쪽 관절 및 머리 관절에 해당하는 위치에서의 노이즈를 필터링하는 하는 관절 노이즈 제거부와,
    예제 동작의 각 프레임마다 스켈레톤 모델의 발 관절과 가상환경의 그라운드(ground) 접촉 상태에 따른 키 타임을 검출하고, 좌우 손과 머리 관절의 가속도 값에 따라 키 타임을 검출하는 키타임 검출부를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  4. 제3 항에 있어서, 상기 관절 노이즈 제거부는
    로우-패스 필터로 관절의 동작 커브에서 로컬 정점에 해당하는 노이즈를 제거함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  5. 제3 항에 있어서, 상기 키타임 검출부는
    상기 예제 동작에 포함된 모든 프레임의 발끝 관절 위치를 계산한 후, 가상공간의 상향 좌표를 기준으로 그라운드에서 발끝 관절 높이가 전체 발 높이 반경의 소정 비율 미만인 자세를 포함하는 프레임들을 검출하고, 검출된 프레임들 중에서 발 끝 관절의 가속도가 영에 가까운 프레임들을 선택한 후 발의 평균값 위치에 최 근접한 발끝 관절의 위치를 포함하는 프레임의 시간을 발의 키 타임으로 지정 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  6. 제3 항에 있어서, 상기 키타임 검출부는
    상기 예제 동작의 각 프레임마다 캐릭터 스켈레톤 모델의 좌우 손과 머리 관절의 가속도 값에 따라 영에 근접한 프레임의 시간을 손과 머리의 키 타임으로 각각 지정하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  7. 제1 항에 있어서, 상기 입력 동작 변환부는
    입력 동작에서 동작 스타일 변환의 주요 요소인 동작들의 전체 속도를 상기 타이밍 소스에 따라 조절하는 전체 속도 조절부와,
    타이밍 소스의 관절 회전 타이밍을 입력 동작의 관절에 적용하는 관절 회전 조절부를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  8. 제7 항에 있어서, 상기 전체 속도 조절부는
    상기 입력 동작의 공간상 움직임을 운동 경로 커브의 파라미터 값으로 재정의하고, 상기 운동 경로 커브에 상응하는 함수를 이용하여 시간에 따른 입력 동작의 순간 속도를 계산하는 운동 경로 아크 길이 계산부와,
    입력 동작의 전체 속도 변화를 자연스럽게 타이밍 소스의 전체 속도로 변환하기 위해 두 동작 간의 시간을 기반으로 하는 속도 비율로 매칭시키는 동작 구간별 속도 비율 재분배부를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  9. 제7 항에 있어서, 상기 관절 회전 조절부는
    다수의 관절로 이루어진 스켈레톤 모델에서는 입력과 타이밍 소스 동작간의 자식과 부모 관절 회전의 정점을 일치시킨 후 상체의 동작 범위에 따라 회전 위치 및 크기를 조절하는 관절 회전 타이밍 조절부와,
    변환된 관절 타이밍에 따른 관절 회전 크기를 조절하는 크기 조절부를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치.
  10. 동일한 스켈레톤 모델 구조를 갖는 캐릭터에 대한 적어도 하나의 예제 동작 데이터의 타이밍을 분석하여 타이밍 소스를 생성하는 단계와,
    입력 동작의 공간적 움직임을 상기 소정 예제 동작의 타이밍 소스에 맞게 재조절하여 변환하는 단계를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  11. 제10 항에 있어서, 상기 생성하는 단계는
    상기 예제 동작 데이터의 키 타임들을 자동으로 검출하고, 사용자가 동작 스타일 변환에 사용할 수 있는 데이터 형태인 타이밍 소스를 생성하는 단계와,
    상기 예제 동작으로부터 검출된 키 타임을 정규화된 시간으로 변환하고, 상기 둘 이상의 예제 동작들의 정규화된 키 타임에 해당하는 프레임들의 자세를 비교하여 둘 이상의 예제 동작들 간에 대응하는 타이밍을 결정하는 단계를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  12. 제11 항에 있어서, 상기 타이밍 소스를 생성하는 단계는
    상기 캐릭터의 손의 왼쪽 관절, 손의 오른쪽 관절, 발의 왼쪽 관절, 발의 오른쪽 관절 및 머리 관절에 해당하는 위치에서의 노이즈를 필터링하는 단계와,
    예제 동작의 각 프레임마다 스켈레톤 모델의 발 관절과 가상환경의 그라운드(ground) 접촉 상태에 따라 발의 키 타임을 검출하는 단계와,
    예제 동작의 각 프레임마다 캐릭터 스켈레톤 모델의 좌우 손과 머리 관절의 가속도 값에 따라 손과 머리의 키 타임을 검출하는 단계를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  13. 제12 항에 있어서, 상기 필터링하는 단계는
    로우-패스 필터로 관절의 동작 커브에서 로컬 정점에 해당하는 노이즈를 제거함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  14. 제12 항에 있어서, 상기 발의 키타임을 검출하는 단계는
    상기 예제 동작에 포함된 모든 프레임의 발끝 관절 위치를 계산한 후, 가상공간의 상향 좌표를 기준으로 그라운드에서 발끝 관절 높이가 전체 발 높이 반경의 소정 비율 미만인 자세를 포함하는 프레임들을 검출하고, 검출된 프레임들 중에서 발 끝 관절의 가속도가 영에 가까운 프레임들을 선택한 후 발의 평균값 위치에 최 근접한 발끝 관절의 위치를 포함하는 프레임의 시간을 발의 키 타임으로 지정 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  15. 제12 항에 있어서, 상기 손머리의 키타임을 검출하는 단계는
    상기 예제 동작의 각 프레임마다 캐릭터 스켈레톤 모델의 좌우 손과 머리 관절의 가속도 값에 따라 영에 근접한 프레임의 시간을 손과 머리의 키 타임으로 각각 지정하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  16. 제10 항에 있어서, 상기 변환하는 단계는
    입력 동작에서 동작 스타일 변환의 주요 요소인 동작들의 전체 속도를 상기 타이밍 소스에 따라 조절하는 단계와,
    타이밍 소스의 관절 회전 타이밍을 입력 동작의 관절에 적용하는 단계를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  17. 제16 항에 있어서, 상기 조절하는 단계는
    상기 입력 동작의 공간상 움직임을 운동 경로 커브의 파라미터 값으로 재정의하고, 상기 운동 경로 커브에 상응하는 함수를 이용하여 시간에 따른 입력 동작의 순간 속도를 계산하는 단계와,
    입력 동작의 전체 속도 변화를 자연스럽게 타이밍 소스의 전체 속도로 변환하기 위해 두 동작 간의 시간을 기반으로 하는 속도 비율로 매칭시키는 단계를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
  18. 제16 항에 있어서, 상기 적용하는 단계는
    다수의 관절로 이루어진 스켈레톤 모델에서는 입력과 타이밍 소스 동작간의 자식과 부모 관절 회전의 정점을 일치시킨 후 상체의 동작 범위에 따라 회전 위치 및 크기를 조절하는 단계와,
    변환된 관절 타이밍에 따른 관절 회전 크기를 조절하는 단계를 포함함을 특징으로 하는 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 방법.
KR1020160006012A 2016-01-18 2016-01-18 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법 KR20170086317A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160006012A KR20170086317A (ko) 2016-01-18 2016-01-18 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법
US15/142,501 US10049484B2 (en) 2016-01-18 2016-04-29 Apparatus and method for generating 3D character motion via timing transfer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160006012A KR20170086317A (ko) 2016-01-18 2016-01-18 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20170086317A true KR20170086317A (ko) 2017-07-26

Family

ID=59314935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160006012A KR20170086317A (ko) 2016-01-18 2016-01-18 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법

Country Status (2)

Country Link
US (1) US10049484B2 (ko)
KR (1) KR20170086317A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200005885A (ko) 2018-07-09 2020-01-17 주식회사 엔씨소프트 동작 생성 모델 학습 장치 및 방법, 동작 생성 장치 및 방법
KR20210017462A (ko) * 2019-08-08 2021-02-17 주식회사 엘지유플러스 신체 동작 유사도 측정 장치 및 방법
KR102289695B1 (ko) * 2020-02-21 2021-08-13 (주)코어센스 특이점 추출을 통한 휴먼 애니메이션의 모션 데이터 레코딩 방법
KR20220015523A (ko) * 2020-07-31 2022-02-08 한국전자기술연구원 가상훈련을 위한 npc형 ai 캐릭터 학습 시스템 및 방법
KR102438488B1 (ko) * 2022-03-02 2022-09-01 최성 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7069768B2 (ja) * 2018-02-06 2022-05-18 ヤマハ株式会社 情報処理方法、情報処理装置およびプログラム
CN108961428B (zh) * 2018-05-23 2023-05-26 杭州易现先进科技有限公司 一种三维动作的风格迁移方法、介质、装置和计算设备
US10984575B2 (en) 2019-02-06 2021-04-20 Snap Inc. Body pose estimation
US11715246B1 (en) 2019-02-12 2023-08-01 Apple Inc. Modification and transfer of character motion
US11430184B1 (en) * 2020-03-26 2022-08-30 Apple Inc. Deformation joints
CN111462209B (zh) * 2020-03-31 2022-05-24 北京市商汤科技开发有限公司 动作迁移方法、装置、设备及存储介质
US11660022B2 (en) * 2020-10-27 2023-05-30 Snap Inc. Adaptive skeletal joint smoothing
US11615592B2 (en) 2020-10-27 2023-03-28 Snap Inc. Side-by-side character animation from realtime 3D body motion capture
US11748931B2 (en) 2020-11-18 2023-09-05 Snap Inc. Body animation sharing and remixing
US11450051B2 (en) 2020-11-18 2022-09-20 Snap Inc. Personalized avatar real-time motion capture
US11734894B2 (en) 2020-11-18 2023-08-22 Snap Inc. Real-time motion transfer for prosthetic limbs
US11861779B2 (en) * 2021-12-14 2024-01-02 Adobe Inc. Digital object animation using control points
US20250014293A1 (en) * 2022-12-21 2025-01-09 Meta Platforms Technologies, Llc Artificial Reality Scene Composer

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6552729B1 (en) * 1999-01-08 2003-04-22 California Institute Of Technology Automatic generation of animation of synthetic characters
US6462742B1 (en) * 1999-08-05 2002-10-08 Microsoft Corporation System and method for multi-dimensional motion interpolation using verbs and adverbs
US6924803B1 (en) 2000-05-18 2005-08-02 Vulcan Portals, Inc. Methods and systems for a character motion animation tool
KR101006191B1 (ko) 2002-08-06 2011-01-07 윤재민 가상인격체의 감정표현과 동작구현방법
KR100513090B1 (ko) 2003-12-12 2005-09-08 한국전자통신연구원 모션 데이터 프로세싱 방법
KR100624453B1 (ko) 2004-12-23 2006-09-18 삼성전자주식회사 3차원 캐릭터 애니메이션을 효율적으로 저작/재생하는방법 및 장치
US8094156B2 (en) 2006-07-31 2012-01-10 Autodesk Inc. Rigless retargeting for character animation
US20100259547A1 (en) * 2009-02-12 2010-10-14 Mixamo, Inc. Web platform for interactive design, synthesis and delivery of 3d character motion data
US8988437B2 (en) * 2009-03-20 2015-03-24 Microsoft Technology Licensing, Llc Chaining animations
KR101053395B1 (ko) * 2009-06-11 2011-08-01 서울대학교산학협력단 동기화된 복수의 캐릭터의 동작 편집 시스템 및 방법
KR101102778B1 (ko) 2010-04-22 2012-01-05 한국과학기술원 리깅 복제를 통한 캐릭터 리깅 자동화 방법 및 장치
US8797328B2 (en) 2010-07-23 2014-08-05 Mixamo, Inc. Automatic generation of 3D character animation from 3D meshes
WO2012046392A1 (ja) * 2010-10-08 2012-04-12 パナソニック株式会社 姿勢推定装置及び姿勢推定方法
KR20120071256A (ko) 2010-12-22 2012-07-02 신인섭 캐릭터 애니메이션 제작방법
US9001132B1 (en) 2010-12-22 2015-04-07 Lucasfilm Entertainment Company Ltd. Constraint scenarios for retargeting actor motion
KR101765208B1 (ko) * 2014-01-07 2017-08-04 한국전자통신연구원 시간 및 자세 제약 조건 아래에서 무용 동작을 생성하는 방법 및 장치
US10324522B2 (en) * 2015-11-25 2019-06-18 Jakob Balslev Methods and systems of a motion-capture body suit with wearable body-position sensors

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200005885A (ko) 2018-07-09 2020-01-17 주식회사 엔씨소프트 동작 생성 모델 학습 장치 및 방법, 동작 생성 장치 및 방법
KR20210017462A (ko) * 2019-08-08 2021-02-17 주식회사 엘지유플러스 신체 동작 유사도 측정 장치 및 방법
KR102289695B1 (ko) * 2020-02-21 2021-08-13 (주)코어센스 특이점 추출을 통한 휴먼 애니메이션의 모션 데이터 레코딩 방법
KR20220015523A (ko) * 2020-07-31 2022-02-08 한국전자기술연구원 가상훈련을 위한 npc형 ai 캐릭터 학습 시스템 및 방법
KR102438488B1 (ko) * 2022-03-02 2022-09-01 최성 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법

Also Published As

Publication number Publication date
US10049484B2 (en) 2018-08-14
US20170206695A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
KR20170086317A (ko) 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법
Sharma et al. Use of motion capture in 3D animation: motion capture systems, challenges, and recent trends
CN103473801B (zh) 一种基于单摄像头与运动捕捉数据的人脸表情编辑方法
US6249285B1 (en) Computer assisted mark-up and parameterization for scene analysis
Terra et al. Performance timing for keyframe animation
KR100727034B1 (ko) 3차원 공간상에서 2차원 인간형 캐릭터의 표현 및애니메이션 방법
KR20150075909A (ko) 3차원 캐릭터 동작 편집방법 및 그 장치
Heloir et al. Exploiting motion capture for virtual human animation
KR100918095B1 (ko) 한 대의 비디오 카메라를 이용한 3차원 얼굴 모델 및애니메이션 생성 시스템 및 방법
Zhong et al. Rapid 3D conceptual design based on hand gesture
CN112085223A (zh) 一种用于机械维修的诱导系统及方法
Caramiaux Motion modeling for expressive interaction: A design proposal using Bayesian adaptive systems
KR20010091219A (ko) 표본화된 얼굴 표정을 새로운 얼굴에 리타켓팅하는 방법
Cordea et al. 3-D head pose recovery for interactive virtual reality avatars
Woodward et al. A low cost framework for real-time marker based 3-D human expression modeling
US20240428472A1 (en) System and method for automatically generating guiding ar landmarks for performing maintenance operations
JP4812063B2 (ja) 人物動画作成システム
Will et al. An Optimized Marker Layout for 3D Facial Motion Capture.
WO2015042867A1 (zh) 一种基于单摄像头与运动捕捉数据的人脸表情编辑方法
CN116958353B (zh) 一种基于动态捕捉的全息投影方法及相关装置
Condell et al. HandPuppet3D: Motion capture and analysis for character animation
KR102711405B1 (ko) 웹캠을 이용한 동작 추적 기반 아바타 모션 제어시스템
de Carvalho Cruz et al. A review regarding the 3D facial animation pipeline
Zhang et al. Optimizing Motion Capture Data in Animation Sequences Using Machine Learning Techniques
Condell et al. Software and Methods for Motion Capture and Tracking in Animation.

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20160118

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20201118

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20160118

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20220323

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20220623

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20220323

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I