KR101098834B1 - 동역학 기반 동작 생성 장치 및 방법 - Google Patents
동역학 기반 동작 생성 장치 및 방법 Download PDFInfo
- Publication number
- KR101098834B1 KR101098834B1 KR1020090118622A KR20090118622A KR101098834B1 KR 101098834 B1 KR101098834 B1 KR 101098834B1 KR 1020090118622 A KR1020090118622 A KR 1020090118622A KR 20090118622 A KR20090118622 A KR 20090118622A KR 101098834 B1 KR101098834 B1 KR 101098834B1
- Authority
- KR
- South Korea
- Prior art keywords
- motion
- data
- dynamic
- dynamics
- character
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Manipulator (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 동역학 기반 동작 생성 기술에 관한 것으로, 동역학 시뮬레이션을 도입하여 애니메이터가 생성한 동작 데이터를 객관적인 물리법칙을 만족하는 동작 데이터로 보정하고, 기존의 캐릭터 애니메이션 도구와 동역학 기반 동작 생성 장치를 사용하여 초보자도 로봇의 동작 표현을 쉽게 수행할 수 있는 동작 생성 기술을 구현하는 것을 특징으로 한다. 본 발명에 의하면, 애니메이터들이 기존 캐릭터 애니메이션 도구로 생성한 캐릭터의 동작을 동역학 시뮬레이션을 통해 동역학적으로 보정된 동작을 자동으로 생성할 수 있도록 지원할 수 있다.
3차원 캐릭터, 동역학, 동작
Description
본 발명은 컴퓨터 그래픽스와 로봇 제어 기술에 관한 것으로서, 특히 관절을 갖는 3차원 캐릭터 모델의 자세를 동역학적 제약조건에 의해 생성하고, 이러한 동작생성을 손쉽게 구현할 수 있는 사용자 인터페이스를 제공하는데 적합한 동역학 기반 동작 생성 장치 및 방법에 관한 것이다.
본 발명은 지식경제부와 문화체육관광부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-051-03, 과제명: 디지털 크리쳐 제작 S/W 개발].
일반적으로 3차원 캐릭터의 동작 생성 시 3차원 캐릭터는 관절(Joint)과 분절(Bone)로 구성된 골격구조(Skeleton)를 갖는다. 캐릭터의 동작은 캐릭터 골격구조의 시간 순서에 따른 자세 변화에 의해 표현된다. 예를 들어, 초당 30Hz로 표현되는 5초짜리 동작을 제작한다고 가정할 때, 전체 150(5*30)개의 동작 프레임들이 존재하며 각 동작 프레임에서 캐릭터 골격구조의 자세가 지정되어 전체적인 동작을 구성한다.
3차원 캐릭터의 동작을 생성하는 즉, 각 동작 프레임들에 대해서 자세를 지정하는 방법들은 다음과 같다.
첫번째 방법은, 모든 동작 프레임에서 캐릭터의 자세를 지정한다. 이 작업의 양은 캐릭터의 골격구조 내 관절의 개수와 단위 시간당 프레임 개수와 전체 시간의 곱(nJoints * nFrameRate * nTime)에 비례한다. 그러나, 모든 작업을 수작업으로 처리하기 때문에 많은 시간이 요구되며 작업의 정확도가 떨어질 가능성도 크다.
두번째 방법은, 2D 애니메이션의 키프레이밍 기법을 응용하여, 동작의 몇몇 지점을 키프레임(Key Frame)으로 설정하여 이 키프레임들 만 캐릭터의 자세를 지정하고 중간 프레임(Inbetween Frame)들은 앞뒤 키프레임들을 참조하여 보간(Interpolation) 방법에 의해 자동 생성한다. 이러한 동작 생성 자동화 방법에 의해 수작업에 의한 작업량이 획기적으로 줄어들게 된다.
3차원 캐릭터의 골격은 일반적으로 나무구조(Tree Structure)로 표현된다. 하위의 노드(관절과 분절)들은 상위 노드들에 연결되어, 상위 노드의 이동은 그대로 하위 노드들에 영향을 미친다. 이러한 구조는 캐릭터 골격의 자세 지정을 매우 힘들게 한다.
예를 들어, 인간 캐릭터로 하여금 팔을 움직여 컵을 잡는 동작을 생성한다고 하자. 현실세계의 인간은 손가락 끝을 컵에 갖다 대는 아주 단순한 동작이지만, 인간 캐릭터의 경우는 팔만 사용하는 경우라도 우선 상완(Upper Arm)을, 다음 하 완(Lower Arm)을, 다음 손을, 다음 손가락을 이동하는 복잡한 작업을 연속해서 수행해야 한다. 이와 같이 상위 노드에서 하위 노드로 내려가면서 동작을 지정하는 방법을 정 운동학(Forward Kinematics)적 동작 제어라고 한다. 이러한 동작 제어 방법에 의한 동작 생성은 많은 작업량을 요구한다.
한편, 말단이 되는 하위 노드의 이동에 따른 상위 노드들의 동작을 자동으로 지정하는 것이 가능한데 이러한 방법을 역운동학(Inverse Kinematics)적 동작제어라고 한다. 하위 노드들의 이동에 따른 상위 노드의 동작은 다양하게 존재할 수 있다. 따라서, 역운동학적 제어에 의해 생성된 캐릭터의 동작은 말단이 지정된 위치(Position)나 방위(Orientation)에 놓이는 조건은 만족하지만, 중간 노드들의 위치와 방위는 애니메이터가 원하는 형태가 아닐 수 있으므로 이러한 경우에도 역운동학적 동작제어를 사용하여 중간 노드들의 위치와 방위를 재지정할 수 있다.
정운동학적 동작 제어 방법을 사용하면 말단 노드의 위치와 방위가 어떻게 될지 확신할 수 없으므로 여러번 작업이 반복될 수 있지만, 역운동학적 동작 제어방법을 사용하면 말단에서 최상위 노드에 이르는 동작 지정 작업을 한번만 수행하면 되므로 애니메이터가 원하는 동작을 보다 쉽게 생성하는 것이 가능하다.
이에 3차원 캐릭터가 슈퍼맨처럼 공중을 날아 다니거나 건물을 들어올리는 동작을 할 수 있다고 설정한다면, 이러한 캐릭터의 동작 생성은 비교적 쉽다. 왜냐하면 동작 생성 작업은 온전히 애니메이터의 상상력에 의해 결정될 수 있기 때문이다. 이는 캐릭터의 어떠한 동작 표현도 비판될 여지가 없다.
다만, 3차원 캐릭터가 실세계의 인간이나 동물들을 표현해야 한다면, 이러 한 캐릭터의 동작 생성은 매우 어렵다. 왜냐하면 현실세계와 같은 물리법칙이 지배하는 공간에서 활동하는 캐릭터의 동작을 표현해야 하기 때문이다. 이는 캐릭터의 동작이 조금만 어색하거나 과장되어도 현실세계에 익숙한 우리는 동작의 이상한 점을 바로 인지할 수 있다.
그러므로 운동학적 동작 제어 방법을 사용하여 캐릭터의 현실세계 동작을 표현하는 것은 매우 어렵다. 즉, 비슷하게 흉내 내는 것은 어려운 일이 아니지만 세부적으로도 자세하게 표현하는 것은 상상력만으로 해결하기엔 한계가 있다. 왜냐하면 현실세계에서 물체들은 서로 간에 힘을 주고 받는데, 운동학적 동작 제어는 이러한 동역학(Dynamics)을 고려하지 않기 때문이다.
현실세계의 동작을 표현하기 위해서 동역학적 동작 제어를 사용하는 것이 유용하다. 그러나 기존 캐릭터의 관절과 분절로 구성된 골격구조만으로 바로 동역학적 동작 제어 방법을 사용할 수 없다. 동역학을 위해 현실세계와 같이 물체에 해당하는 분절에 부피(Volume), 질량(Mass), 관성값(Inertia) 등을 지정해주어야 한다. 또한 분절과 분절을 연결하는 관절의 자유도(Degree Of Freedom) 등을 지정해주어야 한다. 이외에도 중력의 세기, 마찰계수 등 여러가지 물리 값들을 설정해주어야 한다.
이러한 값들의 지정은 현실세계 물리법칙을 위한 제약조건을 거는 것을 의미한다. 일반적으로 물체는 6 자유도를 갖고 자유롭게 움직이는 것이 가능하지만, 중력에 의한 제약조건과 마찰력에 의한 제약조건 및 연결된 다른 물체의 운동의 영향(Feedback)에 의한 제약조건들이 가해지면 제한된 범위에서 운동을 수행하게 된 다.
이와 같이 동역학적 동작 제어 방법은 현실세계의 물리법칙에 따르는 동작을 표현하는데 유용하지만 직관적인 동작제어가 어려울 수 밖에 없다. 운동학적 동작 제어는 물체(캐릭터)의 위치와 방위를 직접적으로 제어하기 때문에 직관적으로 쉽게 동작을 표현할 수 있지만, 동역학적 동작 제어는 힘을 주어 물체(캐릭터)의 이동을 간접적으로 제어하기 때문에 직관적으로 동작을 표현하는 것이 힘들다.
다분절(다관절) 캐릭터의 경우 각 분절에 다양한 힘을 가하여 물리법칙에 따라 자유분방하게 움직이게 하는 것은 어렵지 않다. 그러나, 분절들의 자유로운 운동은 애니메이터가 원하는 바가 아니다. 애니메이터는 걷거나 뛰는 등의 특정한 방식으로만 분절들이 이동하기를 원한다. 즉, 특정시간에 각 분절들이 특정 위치와 방위에 놓이기를 원한다. 그런데, 골격구조는 분절들이 서로 복잡하게 연결되어 동작 시에 서로 간에 영향을 주고 받기 때문에 각 분절들이 특정 위치나 방위에 이동하기 위해 필요한 힘을 구하는 것은 매우 어렵다.
주어진 힘에 의해 물체의 위치와 방위를 구하는 정 동역학(Forward Dynamics)적 동작 제어 방법과는 반대로 물체의 다음 위치와 방위를 지정하면 필요한 힘을 자동으로 역산하는 역 동역학(Inverse Dynamics)적 동작 제어 방법이 존재한다.
현재 애니메이터들이 캐릭터의 동작을 생성하는데 사용되는 애니메이션 도구들을 살펴보면 위에서 설명한 모든 동작 제어 방법들을 모두 제공하고 있다. 주로 키프레이밍 동작 생성 방법과 역 운동학적 동작 제어 방법을 섞어서 사용하고 있는 형편이다. 그리고 물체의 충돌에 의한 물체들의 자유운동이나 단순히 쓰러지는 동작(Ragdoll motion) 등에 정동역학적 동작 제어 방법이 제한적으로 사용되고 있다.
다만, 역 동역학적 동작 제어 방법은 상용 애니메이션 도구들에서 제공되고 있지는 않고, 주로 논문 등을 통해 연구 결과를 발표하고 있는 형편이다.
현재까지 소개된 역 동역학적 동작 제어 방법을 살펴보면, 비례미분 제어기(Proportional-Derivative Controller, 이하 PD제어기라 한다)를 사용하여 근사되는 힘을 구하는 방법과, 제약조건 방정식(Constrained Equation)으로 원하는 제약조건들(예컨대, 위치와 방위)에 요구되는 정확한 힘을 구하는 방법이 있다.
여기서 PD제어기의 경우, 수식(F=K1(다음위치 - 현재위치) + K2(다음속도 현재속도)에서 상수값인 K1과 K2를 적절히 조절하여 요구되는 힘 값을 구하는 매우 간단한 방법이다. Pawel Wrotek의 2006년도 논문 "Dynamo: Dynamic, Data-driven Character Control with Adjustable Balance"에서는 PD제어기를 통해 모션 캡쳐데이터의 동작과 유사한 동작을 생성한 것을 보여 주고 있다. 이와 같이 PD제어기를 사용하는 방법은 다분절 캐릭터의 경우 각 분절의 적절한 K1, K2상수 값을 구하는 것이 어려워서 실용적으로 사용되지 못하고 있다. 제약조건 방정식을 사용하는 경우는 정확한 힘 값을 구하는데 많은 시간과 메모리 공간이 요구된다.
한편, 역 동역학 동작 제어 방법을 사용할 때 분절의 위치와 방위를 원하는 위치와 방위에 정확하게 갖다 놓는다면, 운동학적 동작 제어 방법과 별 차이가 없어서 힘들여 동역학 방정식을 계산할 필요가 없게 된다. 따라서, 역동역학적 동작 제어 방법은 애니메이터의 동작 표현에 맞게 보정하는 역할에 그쳐야 할 필요가 있으나, 역 동역학적 동작 제어 방법은 아직 실용화되지 않고 있기 때문에 그 역할에 대해서 논의가 이루어지지 못하고 있는 형편이다.
상기한 바와 같이 동작하는 종래 기술에 의한 3차원 캐릭터의 동작 생성 방식에서와 같이 2차원의 컴퓨터 화면을 통해 3차원 캐릭터의 동작을 생성하는 것은 매우 어려운 작업이다. 이에 키프레이밍이나 역운동학적 동작 제어 방법 등의 동작 생성을 자동화하는 기법을 사용하여 동작에 제한이 없고 애니메이터의 상상력에만 의존하는 슈퍼맨이나 만화 등의 캐릭터들은 기존의 애니메이션 도구만으로도 충분히 표현 가능하다.
그런데, 현실세계의 물리법칙과 같은 제약조건을 만족하는 캐릭터의 동작 표현은 매우 어려운 작업이다. 이는 이미 우리가 현실세계에 익숙하므로 캐릭터 동작의 미세한 어색함도 쉽게 눈치챌 수 있기 때문이다. 이러한 현실적인 동작을 표현하기 위해서 동작의 모든 프레임에 대해 캐릭터의 모든 관절들을 미세하게 조정하는 작업을 수행해야 하지만 이러한 노력의 결과로도 현실적이라는 장담을 보장받을 수는 없다는 문제점이 있었다.
이에 본 발명은, 동역학적 동작 제어 방법을 활용하여 기존의 방법으로 생성된 동작의 전체적인 형태는 유지하면서도 세부적으로 물리법칙이 적용되는 자연 스런 이동을 보장할 수 있는 동역학 기반 동작 생성 장치 및 방법을 제공한다.
또한 본 발명은, 동역학 시뮬레이션을 도입하여 애니메이터가 생성한 동작 데이터를 객관적인 물리법칙을 만족하는 동작 데이터로 보정할 수 있도록 하고, 기존의 캐릭터 애니메이션 도구와 동역학 기반 동작 생성 시스템을 사용하여 초보자도 로봇의 동작 표현을 손쉽게 사용할 수 있는 동역학 기반 동작 생성 장치 및 방법을 제공한다.
본 발명의 일 실시예에 따른 동역학 기반 동작 생성 장치는, 컴퓨팅 장치에 입력된 캐릭터 모델 데이터를 동역학 시뮬레이션이 가능한 캐릭터의 동역학 모델 데이터로 변환하는 동역학 모델 변환부와, 상기 동역학 모델 데이터를 수정하고, 환경모델을 추가 또는 수정하는 동역학 모델 제어부와, 상기 캐릭터 모델 데이터를 이용하여 생성된 캐릭터의 동작 데이터에 상기 동역학 모델 데이터와 상기 환경모델을 참조하여 동역학 시뮬레이션을 통해 동역학 동작 데이터로 변환하는 동역학 동작 변환부와, 상기 동역학 동작 데이터와 상기 캐릭터의 동작 데이터를 편집하는 동작 편집부와, 상기 동역학 동작 데이터를 참조하여 연결되는 로봇의 각 관절 모터에 기 설정된 토크 값을 입력하여 로봇을 제어하는 로봇 동작 제어부를 포함한다.
그리고 상기 동역학 동작 변환부는, 상기 캐릭터의 동작 데이터를 따라가도록 분절의 위치, 속도, 가속도 제약조건들을 추가하고, 상기 동역학 모델 데이터의 동역학적 관절 데이터에서 운동제한 범위를 만족하는 제약조건들을 추가하고, 동역학적 분절 데이터에서 최대토크의 제약조건을 추가하는 동역학 시뮬레이션을 통해 상기 동역학 동작 데이터로 변환하는 것을 특징으로 한다.
여기서, 상기 동역학적 관절 데이터는, 위치, 관절 종류, 운동 제한 범위, 최대 토크, 연결된 동역학적 분절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 한다.
그리고 상기 동역학적 분절 데이터는, 위치, 방위, 크기, 질량, 관성, 밀도, 메쉬, 연결된 동역학적 관절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 한다.
이때, 상기 동역학 관절 데이터와 동역학 분절 데이터를 수동으로 지정하는 것은 매우 어렵고 지루한 작업이므로 자동으로 올바른 값을 제시하고 이후 사용자에게 세부 조정을 맡기는 것이 권장되며, 상기 질량과 관성, 메쉬 정보는 상기 캐릭터 모델 데이터를 참조하여 자동 산출되고 나머지 정보들은 상기 캐릭터의 동작 데이터를 참조하여 자동 산출되는 것을 특징으로 한다.
한편, 상기 동역학 모델 제어부는, 상기 동역학 모델 데이터의 동역학적 관절 데이터의 최대 토크값을 제어하여 동역학 동작의 변환 정도를 제어하는 것을 특징으로 한다.
또한, 상기 동역학 모델 제어부는, 캐릭터의 동작 환경을 토대로 상기 환경 모델을 생성하고, 생성된 환경 모델의 크기, 위치 및 방위 중 적어도 하나를 수정하여 상기 동역학 동작 변환부로 전달하는 것을 특징으로 한다.
그리고 상기 캐릭터의 동작 데이터는, 상기 캐릭터 모델 데이터를 사용하여 키프레이밍 또는 운동학적 동작 제어 방식을 통하여 생성하는 것을 특징으로 한다.
그리고 상기 캐릭터 모델 데이터는, 캐릭터의 골격구조, 피부 메쉬, 리깅 데이터 중 적어도 하나를 포함하는 것을 특징으로 한다.
그리고 상기 동역학 동작 데이터는, 동역학적 분절들의 프레임 별 입력 힘, 입력 토크, 결과위치, 결과방위, 결과 선속도, 결과 각속도, 충돌관련 이벤트 중 적어도 하나를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 동역학 기반 동작 생성 방법은, 컴퓨팅 장치에 입력된 캐릭터 모델 데이터를 동역학 시뮬레이션이 가능한 동역학 모델 데이터로 변환하는 과정과, 상기 생성된 동역학 모델 데이터를 수정하고, 환경모델을 추가 또는 수정하는 과정과, 상기 캐릭터 모델 데이터를 이용하여 생성된 캐릭터의 동작 데이터에 상기 동역학 모델 데이터와 환경모델을 참조하여 동역학 시뮬레이션을 통해 동역학 동작 데이터로 변환하는 과정과, 상기 동역학 동작 데이터와 상기 동작 데이터를 편집하는 과정과, 상기 동역학 동작 데이터를 참조하여 연결되는 로봇의 각 관절 모터에 기 설정된 토크 값을 입력하여 로봇을 제어하는 과정을 포함 한다.
그리고 상기 동역학 동작 데이터로 변환하는 과정은, 상기 캐릭터의 동작 데이터를 따라가도록 분절의 위치, 속도, 가속도 제약조건들을 추가하는 과정과, 상기 동역학 모델 데이터의 동역학적 관절 데이터에서 운동제한 범위를 만족하는 제약조건들을 추가하고, 동역학적 분절 데이터에서 최대토크의 제약조건을 추가하는 동역학 시뮬레이션을 통해 상기 동역학 동작 데이터로 변환하는 과정을 포함 한 다.
여기서, 상기 동역학적 관절 데이터는, 위치, 관절 종류, 운동 제한 범위, 최대 토크, 연결된 동역학적 분절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 한다.
그리고 상기 동역학적 분절 데이터는, 위치, 방위, 크기, 질량, 관성, 밀도, 메쉬, 연결된 동역학적 관절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 한다.
이때, 상기 동역학 관절 데이터와 동역학 분절 데이터를 수동으로 지정하는 것은 매우 어렵고 지루한 작업이므로 자동으로 올바른 값을 제시하고 이후 사용자에게 세부 조정을 맡기는 것이 권장되며, 상기 질량과 관성, 메쉬 정보는 상기 캐릭터 모델 데이터를 참조하여 자동 산출되고 나머지 정보들은 상기 캐릭터의 동작 데이터를 참조하여 자동 산출되는 것을 특징으로 한다.
한편, 상기 수정하는 과정은, 상기 동역학 모델 데이터의 동역학적 관절 데이터의 최대 토크값을 수정하여 동역학 동작의 변환 정도를 제어하는 것을 특징으로 한다.
또한, 상기 수정하는 과정은, 캐릭터의 동작 환경을 토대로 상기 환경 모델을 생성하는 과정과, 상기 생성된 환경 모델의 크기, 위치 및 방위 중 적어도 하나를 수정하는 과정을 포함하는 것을 특징으로 한다.
그리고 상기 캐릭터의 동작 데이터는, 상기 캐릭터 모델 데이터를 사용하여 키프레이밍 또는 운동학적 동작 제어 방식을 통하여 생성하는 것을 특징으로 한다.
그리고 상기 캐릭터 모델 데이터는, 캐릭터의 골격구조, 피부 메쉬, 리깅 데이터 중 적어도 하나를 포함하는 것을 특징으로 한다.
그리고 상기 동역학 동작 데이터는, 동역학적 분절들의 프레임 별 입력 힘, 입력 토크, 결과위치, 결과방위, 결과 선속도, 결과 각속도, 충돌관련 이벤트 중 적어도 하나를 포함하는 것을 특징으로 한다.
상기와 같은 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상이 있다.
본 발명의 실시예에 따른 동역학 기반 동작 생성 장치 및 방법에 의하면, 애니메이터들이 기존 캐릭터 애니메이션 도구를 사용하여 현실세계의 물리법칙에 따르는 캐릭터의 동작을 정교하게 표현하는 것은 어려운 일이므로, 애니메이터들이 기존 캐릭터 애니메이션 도구로 생성한 캐릭터의 동작을 동역학 시뮬레이션을 통해 동역학적으로 보정된 동작을 자동으로 생성할 수 있도록 지원할 수 있다.
또한, 현재 로봇 동작 표현은 로봇 관절의 제어가 힘들어 많은 어려움을 겪고 있는데, 기존의 캐릭터 애니메이션 도구와 동역학 기반 동작 생성 시스템을 사용하여 초보자도 로봇의 동작을 쉽게 표현할 수 있도록 할 수 있다.
이러한 동역학 기반 동작 생성 기법은 독립적인 소프트웨어 어플리케이션으로 구현될 수 있으며, 기존의 캐릭터 애니메이션 저작도구에 대한 플러그인으로 구현될 수 있는 효과가 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름 도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명이 실시예는, 동역학적 동작 제어 방법을 활용하여 기존의 방법으로 생성된 동작의 전체적인 형태는 유지하면서도 세부적으로 물리법칙이 적용되는 자연스런 이동을 보장하는 것으로서, 또한 본 발명은, 동역학 시뮬레이션을 도입하여 애니메이터가 생성한 동작 데이터를 객관적인 물리법칙을 만족하는 동작 데이터로 보정하는 방안을 제시하는 것이다.
현재 로봇의 동작 표현은 로봇 관절의 제어가 힘들어 많은 어려움(예컨대, 적절한 토크값 계산의 어려움)을 겪고 있는데, 기존의 캐릭터 애니메이션 도구와 동역학 기반 동작 생성 시스템을 사용하여 초보자도 로봇의 동작 표현을 쉽게 할 수 있는 방법을 제시한다.
이하 본 발명의 실시예에서 동역학 기반 동작 생성 장치 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 구조를 도시한 블록도이다.
도 1을 참조하면, 동역학 기반 동작 생성 장치(100)는 컴퓨터, 노트북, 핸드폰 등의 컴퓨팅 장치에 장착되어 구동되는 것으로 동역학 모델 변환 모듈(102), 동역학 모델 제어 모듈(104), 동역학 동작 변환 모듈(106), 동작 편집 모듈(108) 및 로봇 동작 제어 모듈(110) 등을 포함한다.
구체적으로 동역학 모델 변환 모듈(102)은 기존 캐릭터의 골격구조, 피부 메쉬(Skin Mesh), 리깅 데이터(Rigging data) 중 적어도 하나를 포함하는 모델 데이터를 동역학 시뮬레이션이 가능한 캐릭터의 동역학 모델 데이터로의 변환을 수행한다.
이때, 변환된 캐릭터의 동역학 모델 데이터는 동역학적 분절 데이터와, 동역학적 관절 데이터를 포함하는 것으로서, 동역학적 분절 데이터는 위치, 방위, 크기, 질량(Mass), 관성(Inetia), 밀도(Density), 메쉬, 연결된 동역학적 관절들의 리스트 중 적어도 하나를 포함할 수 있으며, 동역학적 관절 데이터는 위치, 종류(Hinge, Universal, Sperical), 운동 제한 범위, 최대 토크(Torque), 연결된 동역학적 분절들의 리스트 중 적어도 하나를 포함할 수 있다.
동역학 모델 제어 모듈(104)은 캐릭터의 동역학 모델 데이터를 수정하며, 새로운 환경 모델 데이터를 추가하거나, 기존 환경 모델 데이터를 수정하는 기능을 수행한다.
동역학 동작 변환 모듈(106)은 동역학 모델 제어 모듈(104)을 통해 수정된 캐릭터의 동역학 모델 데이터와, 수정 또는 추가된 환경 모델 데이터를 참조하고, 기존의 캐릭터의 동작 데이터를 입력 받아 동역학 시뮬레이션을 통해 동역학 동작 데이터로의 변환을 수행하는 것으로, 즉, 기존에 제작된 캐릭터의 동작 데이터와 동역학 동작 제어 데이터(동역학 모델 데이터)로부터 동역학 동작 데이터로 변환해 주는 것이다. 이때, 변환된 동역학 동작 데이터는, 동역학적 분절들의 프레임 별 입력 힘, 입력 토크, 결과위치, 결과방위, 결과 선속도, 결과 각속도, 충돌관련 이벤트 중 적어도 하나를 포함할 수 있다.
그리고 동작 편집 모듈(108)은 기존 캐릭터의 동작 데이터와, 동역학 동작 변환 모듈(106)로부터 새로 생성된 동역학 동작 데이터를 합성하거나 각각 편집하여, 캐릭터의 동작 데이터는 동역학 동작 변환 모듈(106)로 전달하고, 동역학 동작 데이터는 로봇 동작 제어 모듈(110)로 제공한다.
로봇 동작 제어 모듈(110)은 동역학 동작 변환 모듈(106)로부터 새로 생성된 동역학 동작 데이터를 참조하여 연결되는 로봇의 각 관절 모터에 적당한 토크 값 즉, 실험에 의해 기 설정된 토크 값을 입력하여 로봇을 제어한다.
도 2는 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 동작 절차를 도시한 흐름도이다.
도 2를 참조하면, 202단계에서 동역학 기반 동작 생성 장치(100)는 캐릭터 모델 데이터를 생성하여 이를 동역학 모델 변환 모듈(102)로 입력하기 위한 것으로, 작업할 대상 캐릭터의 관절과 분절로 구성되는 골격구조 데이터와, 골격을 덮는 캐릭터의 피부 메쉬(Skin Mesh)데이터와, 골격구조와 피부 메쉬를 연결하여 관절이나 분절의 이동 시 피부 메쉬가 연동하여 변형하게 지정하는 리깅 데이터를 먼저 생성한다.
이와 같이 생성된 캐릭터의 골격구조, 피부 메쉬, 리깅 데이터를 포함하는 캐릭터 모델 데이터를 사용하여 캐릭터의 동작 데이터를 생성하며, 캐릭터의 동작 데이터는 키프레이밍이나 운동학적 동작 제어 방법을 활용하여 생성할 수 있다.
이후 204단계에서 동역학 모델 변환 모듈(102) 에서는 이러한 캐릭터 모델 데이터를 입력 받아, 이후 206단계에서 동역학 시뮬레이션을 위한 캐릭터 동역학 모델 데이터로 변환하여 출력한다. 캐릭터 동역학 모델 데이터는 골격구조 데이터에서 분절에 해당하는 동역학적 분절과 관절에 해당하는 동역학적 분절 데이터로 구성된다.
여기서 동역학적 분절 데이터는 위치, 방위, 크기, 질량(Mass), 관성(Inetia), 밀도(Density), 메쉬, 연결된 동역학적 관절들의 리스트 데이터로 구성되며, 동역학적 관절 데이터는 위치, 종류(Hinge, Universal, Sperical), 운동 제한 범위, 최대 토크(Torque), 연결된 동역학적 분절들의 리스트 데이터로 구성될 수 있다.
동역학적 분절의 위치, 방위, 크기는 캐릭터의 골격구조와 피부 메쉬와 리깅 데이터 모두를 참조하여 자동 계산될 수 있다. 만일 피부 메쉬와 리깅 데이터가 없더라도 기본적인 두께정보를 주어 자동 계산될 수 있도록 하고, 이러한 자동 계산 데이터는 추후 수동으로 수정 가능하다. 일반적으로 골격구조의 분절의 위치와 방위가 동역학적 분절의 위치와 방위가 될 수 있으나, 반드시 그런 것은 아니다.
도 3은 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 동역학 모델 변환모듈에서 생성된 말(Horse) 캐릭터의 동역학 모델 데이터를 도시한 도면이며, 도 4는 동역학 기반 동작 생성 장치의 동역학 동작 변환 모듈에서 말 캐릭터의 동역학 동작 데이터와 참조된 동작 데이터를 도시한 도면이다.
도 3 내지 도 4를 참조하면, 말(Horse) 캐릭터 모델의 하박(Lower Leg)(304, 404)이나 하완(Lower Arm)(302, 402)은 분절이 연결된 메쉬의 가운데에 위치하여 분절과 동역학적 분절의 위치가 거의 같게 된다. 그러나, 배와 연결된 등뼈(Spine) 부분(300, 400)을 살펴보면, 배가 밑으로 많이 쳐져서 등뼈에 있는 분절의 위치와 연결된 배까지 포함하는 동역학적 분절의 위치가 서로 다르게 됨을 확인할 수 있다. 동역학적 분절의 질량은 전체 캐릭터의 크기에 대해서 해당 분절의 크 기의 비율에 적당한 값으로 지정된 상수값을 곱한 값으로 설정 된다.
동역학적 분절의 관성은 피부 메쉬와 리깅 데이터로부터 자동 계산될 수 있다. 동역학적 분절의 밀도는 해당부분에 뼈와 같이 조밀한 조직이 많으면 높이고, 살만 있으면 낮추는 형태로 조정한다.
도 3의 말(Horse) 캐릭터 모델의 경우 머리(Head)나 하완(Low Arm)은 밀도를 높이고 배와 연결된 등뼈(Spine) 부분은 밀도를 낮춘다. 동역학 분절의 메쉬는 동역학 시뮬레이션에서 다른 분절이나 물체간 충돌 처리를 위해 해당 피부 메쉬를 간단하게 상자(Box)나 원통(Cylinder) 형태로 지정한다. 도 3 에서 말(Horse) 캐릭터 모델의 경우, 빠른 충돌처리 계산을 위해 모두 상자로 지정하였다.
먼저, 동역학적 관절의 위치는 골격구조의 관절의 위치와 일치시킨다. 동역학적 관절의 종류는 관절의 자유도(Degree Of Freedom)에 따라서 지정한다. 동역학적 관절의 최대 토크는 낼 수 있는 최대 토크값의 상한선을 지정한다. 이는 기본적으로 동역학적 관절에 연결된 동역학적 분절들의 크기 데이터를 참조하여 계산할 수 있다.
인간(Human) 캐릭터 모델의 경우 무릎(Knee) 관절에 연결된 상박(Upper Leg)과 하박(Lower Leg)의 크기가 크고, 손가락(Finger) 관절에 연결된 손가락 분절들의 크기가 작으므로, 무릎 관절의 최대 토크 값이 손가락 관절의 최대 토크 값보다 크게 설정될 것이다. 애니메이터들의 편리성을 위해 동역학 모델 변환 모듈(102)에서 변환되는 동역학 모델의 모든 데이터를 자동으로 계산하여 지정할 수 있도록 한다.
한편, 208단계에서 동역학 모델 제어 모듈(104)은 동역학 모델 변환 모듈(102)로부터 변환된 동역학 모델의 세부 데이터를 수동으로 수정하는 작업과, 210단계에서 환경모델을 새로 생성하거나 변경하는 작업을 수행한다. 동역학적 분절의 질량이나 동역학적 관절의 최대 토크는 전체적인 크기를 조정하는 것이 가능하다. 예를 들어, 전체 말 모델의 질량을 초기 100Kg에서 500Kg으로 상향 조정한다면 각 동역학 분절의 질량도 5배 증가시킨다.
동역학적 관절의 최대 토크가 높게 설정될수록 순간 높은 토크값을 허용하며, 이것은 동역학 시뮬레이션에서 캐릭터의 동작 데이터와 거의 똑같은 동역학 동작 데이터를 생성하는 것이 가능해진다. 동역학적 관절의 최대 토크가 낮게 설정되면, 순간적으로 낼 수 있는 토크 값이 낮아져서 캐릭터의 동역학 동작 데이터에서 동작 데이터를 따라가지 못하게 될 수 있다. 이러한 낮은 토크의 효과는 건강하지 못한 인간이 건강한 인간의 활동적인 동작을 따라하게 될 때 발생되는 동작의 차이로 확인이 가능하다.
보다 현실감 있는 동역학 동작의 생성은, 동역학 관절의 최대 토크를 어떻게 설정하느냐에 많이 의존한다고 할 수 있다. 동역학 관절의 적당한 최대 토크는 쉽게 알기 힘들지만, 모션 캡쳐 동작 데이터를 동역학동작 데이터로 변환했을 때 거의 유사하게 따라가게 만드는 최대 토크값을 구하는 경험을 통해 배우는 방법이 추천된다.
그러나, 항상 정상적인 최대 토크값만 필요한 것은 아니고 인간 모델을 슈퍼맨으로 설정할 필요가 있는 경우는 최대 토크값을 일반값보다 몇배 더 높인다. 점프할 때와 같은 동작으로 일반 인간 모델은 1m 뛰어오르지만 슈퍼맨은 10m 뛰어오르게 할 수 있다.
거의 모든 캐릭터 모델은 환경에 의지하여 동작을 수행한다. 인간 캐릭터나 말 캐릭터나 모두 지면 위를 걸어 다니거나 다른 캐릭터와 부딪히면 반발력을 받고 다시 힘을 주는 과정을 통해 동작을 수행한다. 캐릭터의 동역학 동작을 위해 힘을 주고 받는 적절한 환경모델이 필요하다.
이에 동역학 모델 제어 모듈(104)은 210단계에서 지면(Ground)이나 경사면(Slope), 계단(Stairs)과 같은 환경모델을 생성하고, 다시 환경모델의 크기나 위치나 방위 등을 조정하는 작업을 수행한다.
그리고 212단계에서 동역학 동작 변환 모듈(106)은 214단계에서 동작 데이터를 입력으로 받고, 동역학 모델 변환 모듈(102)을 통해 출력된 동역학 모델 데이터 또는 동역학 모델 제어 모듈(104)을 토대로 수정된 동역학 모델 데이터와, 환경모델 데이터를 참조하는 동역학 시뮬레이션을 수행하여, 216단계에서 캐릭터의 동작 데이터를 동역학 동작 데이터로 변환하여 출력한다.
다만, 변환된 동역학 동작 데이터에 변화가 필요하다면, 동역학 모델 제어 모듈(104)에서 동역학적 관절 데이터의 동역학적 관절의 최대토크 등을 수정하고, 이를 동역학 동작 변환 모듈(106)에 입력한 후, 다시 동역학 시뮬레이션을 수행하여 동역학 동작 데이터로 변환된 데이터를 출력한다. 이때, 동역학 시뮬레이션은 여러가지 제약조건(Constraint)들을 입력 받으며, 중력과 마찰력 등이 전체적인 제약조건으로 입력된다.
그리고 캐릭터의 동작 데이터에서 지정된 각 분절의 위치, 속도, 가속도에 따라 동역학 모델의 동역학적 분절의 위치, 속도, 가속도의 제약 조건이 결정된다. 동역학 방정식을 해석(Analysis)적으로 풀거나 반복(Recursive)적으로 풀어서 모든 제약조건들을 만족하는 각 동역학적 분절의 토크값을 계산하고, 지정된 최대 토크값 이하로 절삭된 토크값을 통해 수행된 결과를 동역학 동작 데이터로 기록한다. 이때, 동역학 동작 데이터는 각 동역학 분절의 입력 힘, 입력 토크와 결과 위치, 결과 방위, 결과 선속도, 결과 각속도와 충돌 관련 이벤트(Event) 데이터들을 포함할 수 있다.
이후, 동작 편집 모듈(108)에서는 218단계에서 캐릭터의 동작 데이터와 동역학 동작 데이터를 입력 받아, 두 동작 데이터를 편집하여 수정된 동작 데이터를 출력한다.
모든 캐릭터 애니메이션에서 동역학 동작 데이터의 전부가 그대로 사용되는 경우는 거의 없다. 애니메이터의 상상력을 표현하기 위해 동역학 동작 데이터는 재료로 사용될 뿐이다. 동역학 동작 데이터는 일부분이 사용되거나 애니메이터에 의해 세부적으로 수정되는 편집과정을 거치게 된다.
이후 220단계에서 로봇 동작 제어 모듈(110)은 준비된 캐릭터의 동역학 동작 데이터를 입력 받아 조정과정을 거쳐 로봇의 제어에 필요한 로봇의 각 관절에 위치한 모터에 지정할 토크 값들을 출력한다.
상기와 같은 절차를 예를 들어 설명하면, 현실세계에서 로봇이 준비될 때 로봇의 형태를 분석하여 캐릭터 모델 데이터를 생성하고, 생성된 캐릭터 모델 데이 터는 동역학 모델 변환 모듈(102)을 통해 동역학 모델 데이터로 변환된다.
캐릭터의 동작 데이터는 캐릭터 모델 데이터를 참조하여 생성된다. 로봇 캐릭터의 동작은 기존의 애니메이션 도구를 통해 쉽게 생성한다. 이후, 로봇 캐릭터의 동역학 모델 데이터와 생성된 캐릭터의 동작 데이터를 참조하여 동역학 동작 변환 모듈(106)에서 로봇 캐릭터의 동역학 동작 데이터를 생성한다.
동역학 동작 데이터는 동역학적 관절에 가해지는 토크값을 갖고 있지만, 이 값을 로봇에 바로 적용할 수는 없다. 이에 로봇 동작 제어 모듈(110)에서는 동역학 동작 데이터에서 동역학적 관절이 갖는 토크 값을 입력 받아 여기에 보정(Compensation)값을 곱한 결과의 토크값을 로봇의 해당 관절 모터에 출력한다. 각 동역학적 관절의 보정값은 로봇에 사용된 모터마다 다르므로 실험에 의해 값을 구할 수 있다.
이상 설명한 바와 같이, 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치 및 방법은, 동역학적 동작 제어 방법을 활용하여 기존의 방법으로 생성된 동작의 전체적인 형태는 유지하면서도 세부적으로 물리법칙이 적용되는 자연스런 이동을 보장하는 것으로서, 또한 본 발명은, 동역학 시뮬레이션을 도입하여 애니메이터가 생성한 동작 데이터를 객관적인 물리법칙을 만족하는 동작 데이터로 보정하는 방안을 제시 한다.
그리고 본 발명에 의한 동역학 기반 동작 생성 장치 및 방법은 컴퓨터 프로그램으로 작성 가능하다. 이 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 해 당 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 동역학 기반 동작 생성 방법을 구현한다. 정보저장매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 구조를 도시한 블록도,
도 2는 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 동작 절차를 도시한 흐름도,
도 3은 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 동역학 모델 변화모듈에서 생성된 말(Horse) 캐릭터의 동역학 모델 데이터를 도시한 도면,
도면 4는 본 발명의 실시예에 따른 동역학 기반 동작 생성 장치의 동역학 동작 생성모듈에서 생성된 말(Horse) 캐릭터의 동역학 동작 데이터와 참조된 동작 데이터를 도시한 도면,
< 도면의 주요 부분에 대한 부호 설명 >
102 : 동역학 모델 변환 모듈 104 : 동역학 모델 제어 모듈
106 : 동역학 동작 변환 모듈 108 : 동작 편집 모듈
110 : 로봇 동작 제어 모듈
Claims (20)
- 컴퓨팅 장치에 입력된 캐릭터 모델 데이터를 동역학 시뮬레이션이 가능한 캐릭터의 동역학 모델 데이터로 변환하는 동역학 모델 변환부와,상기 동역학 모델 데이터를 수정하고, 환경모델을 추가 또는 수정하는 동역학 모델 제어부와,상기 캐릭터 모델 데이터를 이용하여 생성된 캐릭터의 동작 데이터에 상기 동역학 모델 데이터와 상기 환경모델을 참조하여 동역학 시뮬레이션을 통해 동역학 동작 데이터로 변환하는 동역학 동작 변환부와,상기 동역학 동작 데이터와 상기 캐릭터의 동작 데이터를 편집하는 동작 편집부와,상기 동역학 동작 데이터를 참조하여 연결되는 로봇의 각 관절 모터에 기 설정된 토크 값을 입력하여 로봇을 제어하는 로봇 동작 제어부를 포함하는 동역학 기반 동작 생성 장치.
- 제1항에 있어서,상기 동역학 동작 변환부는,상기 캐릭터의 동작 데이터를 따라가도록 분절의 위치, 속도, 가속도 제약조건들을 추가하고,상기 동역학 모델 데이터의 동역학적 관절 데이터에서 운동제한 범위를 만족하는 제약조건들을 추가하고, 동역학적 분절 데이터에서 최대토크의 제약조건을 추가하는 동역학 시뮬레이션을 통해 상기 동역학 동작 데이터로 변환하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제2항에 있어서,상기 동역학적 관절 데이터는,위치, 관절 종류, 운동 제한 범위, 최대 토크, 연결된 동역학적 분절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제2항에 있어서,상기 동역학적 분절 데이터는,위치, 방위, 크기, 질량, 관성, 밀도, 메쉬, 연결된 동역학적 관절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제 4항에 있어서,상기 질량은, 캐릭터 전체의 크기에 대해서 해당 분절의 크기의 비율에 기 설정된 상수값을 곱하여 설정하고,상기 관성은, 상기 캐릭터 모델 데이터의 피부 메쉬 및 리깅 데이터로부터 산출하고,상기 메쉬는 상자 혹은 원통 형태로 처리하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제 1항에 있어서,상기 동역학 모델 제어부는,상기 동역학 모델 데이터의 동역학적 관절 데이터의 최대 토크값을 제어하여 동역학 동작의 변환 정도를 제어하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제 1항에 있어서,상기 동역학 모델 제어부는,캐릭터의 동작 환경을 토대로 상기 환경 모델을 생성하고, 생성된 환경 모델의 크기, 위치 및 방위 중 적어도 하나를 수정하여 상기 동역학 동작 변환부로 전달하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제 1항에 있어서,상기 캐릭터의 동작 데이터는,상기 캐릭터 모델 데이터를 사용하여 키프레이밍 또는 운동학적 동작 제어 방식을 통하여 생성하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제1항에 있어서,상기 캐릭터 모델 데이터는,캐릭터의 골격구조, 피부 메쉬, 리깅 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 제1항에 있어서,상기 동역학 동작 데이터는,동역학적 분절들의 프레임 별 입력 힘, 입력 토크, 결과위치, 결과방위, 결과 선속도, 결과 각속도, 충돌관련 이벤트 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 장치.
- 컴퓨팅 장치에 입력된 캐릭터 모델 데이터를 동역학 시뮬레이션이 가능한 동역학 모델 데이터로 변환하는 과정과,변환된 상기 동역학 모델 데이터를 수정하고, 환경모델을 추가 또는 수정하는 과정과,상기 캐릭터 모델 데이터를 이용하여 생성된 캐릭터의 동작 데이터에 상기 동역학 모델 데이터와 환경모델을 참조하여 동역학 시뮬레이션을 통해 동역학 동작 데이터로 변환하는 과정과,상기 동역학 동작 데이터와 상기 동작 데이터를 편집하는 과정과,상기 동역학 동작 데이터를 참조하여 연결되는 로봇의 각 관절 모터에 기 설정된 토크 값을 입력하여 로봇을 제어하는 과정을 포함하는 동역학 기반 동작 생성 방법.
- 제 11항에 있어서,상기 동역학 동작 데이터로 변환하는 과정은,상기 캐릭터의 동작 데이터를 따라가도록 분절의 위치, 속도, 가속도 제약조건들을 추가하는 과정과,상기 동역학 모델 데이터의 동역학적 관절 데이터에서 운동제한 범위를 만족하는 제약조건들을 추가하고, 동역학적 분절 데이터에서 최대토크의 제약조건을 추가하는 동역학 시뮬레이션을 통해 상기 동역학 동작 데이터로 변환하는 과정을 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제 12항에 있어서,상기 동역학적 관절 데이터는,위치, 관절 종류, 운동 제한 범위, 최대 토크, 연결된 동역학적 분절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제 12항에 있어서,상기 동역학적 분절 데이터는,위치, 방위, 크기, 질량, 관성, 밀도, 메쉬, 연결된 동역학적 관절들의 리스트 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제 14항에 있어서,상기 질량은, 캐릭터 전체의 크기에 대해서 해당 분절의 크기의 비율에 기 설정된 상수값을 곱하여 설정하고,상기 관성은, 상기 캐릭터 모델 데이터의 피부 메쉬 및 리깅 데이터로부터 산출하고,상기 메쉬는 상자 혹은 원통 형태로 처리하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제11항에 있어서,상기 수정하는 과정은,상기 동역학 모델 데이터의 동역학적 관절 데이터의 최대 토크값을 수정하여 동역학 동작의 변환 정도를 제어하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제11항에 있어서,상기 수정하는 과정은,캐릭터의 동작 환경을 토대로 상기 환경 모델을 생성하는 과정과,상기 생성된 환경 모델의 크기, 위치 및 방위 중 적어도 하나를 수정하는 과정을 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제11항에 있어서,상기 캐릭터의 동작 데이터는,상기 캐릭터 모델 데이터를 사용하여 키프레이밍 또는 운동학적 동작 제어 방식을 통하여 생성하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제11항에 있어서,상기 캐릭터 모델 데이터는,캐릭터의 골격구조, 피부 메쉬, 리깅 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
- 제11항에 있어서,상기 동역학 동작 데이터는,동역학적 분절들의 프레임 별 입력 힘, 입력 토크, 결과위치, 결과방위, 결과 선속도, 결과 각속도, 충돌관련 이벤트 중 적어도 하나를 포함하는 것을 특징으로 하는 동역학 기반 동작 생성 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090118622A KR101098834B1 (ko) | 2009-12-02 | 2009-12-02 | 동역학 기반 동작 생성 장치 및 방법 |
US12/786,009 US20110128292A1 (en) | 2009-12-02 | 2010-05-24 | Dynamics-based motion generation apparatus and method |
JP2010141651A JP2011115933A (ja) | 2009-12-02 | 2010-06-22 | 動力学基盤動作生成装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090118622A KR101098834B1 (ko) | 2009-12-02 | 2009-12-02 | 동역학 기반 동작 생성 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110062044A KR20110062044A (ko) | 2011-06-10 |
KR101098834B1 true KR101098834B1 (ko) | 2011-12-26 |
Family
ID=44068527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090118622A KR101098834B1 (ko) | 2009-12-02 | 2009-12-02 | 동역학 기반 동작 생성 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110128292A1 (ko) |
JP (1) | JP2011115933A (ko) |
KR (1) | KR101098834B1 (ko) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9990754B1 (en) | 2014-02-04 | 2018-06-05 | Electronic Arts Inc. | System for rendering using position based finite element simulation |
KR102252730B1 (ko) | 2015-02-06 | 2021-05-18 | 한국전자통신연구원 | 애니메이션 생성 장치 및 방법 |
CN104599293B (zh) * | 2015-02-06 | 2017-07-07 | 清华大学 | 烟熏壁画动态形成过程的模拟方法 |
US9427868B1 (en) * | 2015-02-24 | 2016-08-30 | Disney Enterprises, Inc. | Method for developing and controlling a robot to have movements matching an animation character |
US9827496B1 (en) * | 2015-03-27 | 2017-11-28 | Electronics Arts, Inc. | System for example-based motion synthesis |
US10022628B1 (en) * | 2015-03-31 | 2018-07-17 | Electronic Arts Inc. | System for feature-based motion adaptation |
US10792566B1 (en) | 2015-09-30 | 2020-10-06 | Electronic Arts Inc. | System for streaming content within a game application environment |
KR102459677B1 (ko) | 2015-11-05 | 2022-10-28 | 삼성전자주식회사 | 알고리즘 학습 방법 및 장치 |
WO2017164511A1 (ko) * | 2016-03-25 | 2017-09-28 | (주) 애니펜 | 애니메이션을 저작하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 |
KR101885746B1 (ko) * | 2016-05-31 | 2018-08-06 | (주) 젤리피쉬월드 | 스마트 단말을 이용하여 동작 컨텐트를 자동으로 생성하는 장치 및 방법 |
US10403018B1 (en) | 2016-07-12 | 2019-09-03 | Electronic Arts Inc. | Swarm crowd rendering system |
US10726611B1 (en) | 2016-08-24 | 2020-07-28 | Electronic Arts Inc. | Dynamic texture mapping using megatextures |
US10275921B2 (en) * | 2016-09-30 | 2019-04-30 | Electronic Arts, Inc. | Computer architecture for animation of a model in a simulation |
US10096133B1 (en) | 2017-03-31 | 2018-10-09 | Electronic Arts Inc. | Blendshape compression system |
CN107294838B (zh) * | 2017-05-24 | 2021-02-09 | 腾讯科技(深圳)有限公司 | 社交应用的动画生成方法、装置、系统以及终端 |
US10878540B1 (en) | 2017-08-15 | 2020-12-29 | Electronic Arts Inc. | Contrast ratio detection and rendering system |
US10535174B1 (en) | 2017-09-14 | 2020-01-14 | Electronic Arts Inc. | Particle-based inverse kinematic rendering system |
US10860838B1 (en) | 2018-01-16 | 2020-12-08 | Electronic Arts Inc. | Universal facial expression translation and character rendering system |
CN108196488A (zh) * | 2018-03-06 | 2018-06-22 | 上海木爷机器人技术有限公司 | 一种机器人的运动控制系统及方法 |
US10902618B2 (en) | 2019-06-14 | 2021-01-26 | Electronic Arts Inc. | Universal body movement translation and character rendering system |
KR102251977B1 (ko) * | 2019-11-18 | 2021-05-14 | 주식회사 인공지능연구원 | 아바타 동작 저작 장치 및 방법 |
US11282257B2 (en) * | 2019-11-22 | 2022-03-22 | Adobe Inc. | Pose selection and animation of characters using video data and training techniques |
US11361467B2 (en) | 2019-11-22 | 2022-06-14 | Adobe Inc. | Pose selection and animation of characters using video data and training techniques |
US11972353B2 (en) | 2020-01-22 | 2024-04-30 | Electronic Arts Inc. | Character controllers using motion variational autoencoders (MVAEs) |
US11504625B2 (en) | 2020-02-14 | 2022-11-22 | Electronic Arts Inc. | Color blindness diagnostic system |
US11648480B2 (en) | 2020-04-06 | 2023-05-16 | Electronic Arts Inc. | Enhanced pose generation based on generative modeling |
US11232621B2 (en) | 2020-04-06 | 2022-01-25 | Electronic Arts Inc. | Enhanced animation generation based on conditional modeling |
CN116507276A (zh) * | 2020-09-11 | 2023-07-28 | 爱荷华大学研究基金会 | 用于机器学习以从图像分析肌肉骨骼康复的方法和设备 |
US11830121B1 (en) | 2021-01-26 | 2023-11-28 | Electronic Arts Inc. | Neural animation layering for synthesizing martial arts movements |
US11887232B2 (en) | 2021-06-10 | 2024-01-30 | Electronic Arts Inc. | Enhanced system for generation of facial models and animation |
US11670030B2 (en) | 2021-07-01 | 2023-06-06 | Electronic Arts Inc. | Enhanced animation generation based on video with local phase |
US11562523B1 (en) | 2021-08-02 | 2023-01-24 | Electronic Arts Inc. | Enhanced animation generation based on motion matching using local bone phases |
CN114091157B (zh) * | 2021-11-24 | 2024-04-30 | 中国电力工程顾问集团东北电力设计院有限公司 | 基于Dynamo的钢网架柱建模方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100697975B1 (ko) | 2005-12-07 | 2007-03-23 | 한국전자통신연구원 | 인간형 다관절체의 애니메이션 생성 장치 및 그 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0584679A (ja) * | 1990-12-25 | 1993-04-06 | Kongouzen Souhonzan Shiyourinji | ロボツト・プログラミング方法 |
US5586224A (en) * | 1990-12-25 | 1996-12-17 | Shukyohojin, Kongo Zen Sohonzan Shorinji | Robot or numerical control programming method |
WO2003099119A1 (fr) * | 2002-05-29 | 2003-12-04 | Japan Science And Technology Agency | Procede de calcul de mecanique corporelle, modele de mecanique corporelle, donnees de modele et procede de production d'un modele corporel |
JP4910552B2 (ja) * | 2006-08-04 | 2012-04-04 | トヨタ自動車株式会社 | 動作データ作成装置及びその方法 |
US8396595B2 (en) * | 2007-11-01 | 2013-03-12 | Honda Motor Co., Ltd. | Real-time self collision and obstacle avoidance using weighting matrix |
-
2009
- 2009-12-02 KR KR1020090118622A patent/KR101098834B1/ko not_active IP Right Cessation
-
2010
- 2010-05-24 US US12/786,009 patent/US20110128292A1/en not_active Abandoned
- 2010-06-22 JP JP2010141651A patent/JP2011115933A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100697975B1 (ko) | 2005-12-07 | 2007-03-23 | 한국전자통신연구원 | 인간형 다관절체의 애니메이션 생성 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2011115933A (ja) | 2011-06-16 |
US20110128292A1 (en) | 2011-06-02 |
KR20110062044A (ko) | 2011-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101098834B1 (ko) | 동역학 기반 동작 생성 장치 및 방법 | |
Zordan et al. | Mapping optical motion capture data to skeletal motion using a physical model | |
Maestri | Digital character animation 3 | |
Shapiro | Building a character animation system | |
JP6227683B2 (ja) | アニメーション・キャラクターに合致する動きを得るためのロボットを開発および制御する方法。 | |
Igarashi et al. | Spatial keyframing for performance-driven animation | |
CN107274464A (zh) | 一种实时交互3d动画的方法、装置和系统 | |
KR102137326B1 (ko) | 리깅 캐릭터를 이용한 애니메이션 생성 장치 및 애니메이션 생성 방법 | |
Shapiro et al. | Dynamic animation and control environment | |
Shapiro et al. | Interactive motion correction and object manipulation | |
JP2004030502A (ja) | シミュレーション方法、シミュレーション装置およびシミュレーションプログラム | |
Bruderlin et al. | Procedural movement for articulated figure animation | |
CN107424207A (zh) | 一种基于数据融合的虚拟维修仿真方法及装置 | |
Bhatti et al. | Analysis of design principles and requirements for procedural rigging of bipeds and quadrupeds characters with custom manipulators for animation | |
Bhatti et al. | Expression driven trigonometric based procedural animation of quadrupeds | |
Ismail et al. | An overview on dynamic 3d character motion techniques in virtual environments | |
Memişoğlu | Human motion control using inverse kinematics | |
Feng et al. | Computational design of skinned Quad-Robots | |
CN110782533B (zh) | 一种虚拟预演中虚拟角色交互控制的系统 | |
Rajendran | Understanding the Desired Approach for Animating Procedurally | |
Kronfeld et al. | An electro mechanical input device for the manipulation of virtual human motion | |
Martin et al. | Interactive quadruped animation | |
US20230306667A1 (en) | Procedural animation engine and editor for sample-based design of stylized walking gaits for bipedal robots | |
Wang et al. | Optimization control for biped motion trajectory | |
Guo et al. | Mixing control of animating virtual human for maintenance simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |