KR100901274B1 - 캐릭터 애니메이션 시스템 및 그 방법 - Google Patents

캐릭터 애니메이션 시스템 및 그 방법 Download PDF

Info

Publication number
KR100901274B1
KR100901274B1 KR1020070119878A KR20070119878A KR100901274B1 KR 100901274 B1 KR100901274 B1 KR 100901274B1 KR 1020070119878 A KR1020070119878 A KR 1020070119878A KR 20070119878 A KR20070119878 A KR 20070119878A KR 100901274 B1 KR100901274 B1 KR 100901274B1
Authority
KR
South Korea
Prior art keywords
character
skin
mesh
rigid body
distortion
Prior art date
Application number
KR1020070119878A
Other languages
English (en)
Other versions
KR20090053182A (ko
Inventor
김항기
박창준
양광호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070119878A priority Critical patent/KR100901274B1/ko
Priority to US12/232,919 priority patent/US20090135189A1/en
Publication of KR20090053182A publication Critical patent/KR20090053182A/ko
Application granted granted Critical
Publication of KR100901274B1 publication Critical patent/KR100901274B1/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
    • 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
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

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

Abstract

본 발명은 캐릭터 애니메이션 시스템 및 그 방법에 관한 것으로, 내부 참조 메쉬을 이용하여 피부의 일그러짐을 표현하고, 레그돌 시뮬레이션과 키프레임의 보간을 이용하여 단순히 얻어 맞고 다시 자세를 잡는 등의 애니메이션도 실시간으로 표현함으로써, 피부의 일그러짐 뿐만 아니라 물리현상까지 자연스럽게 표현할 수 있으며, 얼굴 뿐만 아니라 캐릭터 전신에 적용할 수 있다.
캐릭터, 피부, 메쉬, 일그러짐, 강체, 시뮬레이션

Description

캐릭터 애니메이션 시스템 및 그 방법{A CHARACTER ANIMATION SYSTEM AND ITS METHOD}
본 발명은 캐릭터 애니메이션 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 외부 충격이 주어졌을 경우 피부 일그러짐과 물리 현상을 고려한 실시간 캐릭터 애니메이션 시스템 및 그 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-044-02, 과제명: 멀티코아 CPU 및 MPU기반 크로스플랫폼 게임기술].
현재 실시간 3차원 그래픽 분야는 하드웨어의 개선과 활용의 증가에 따라 매우 빠른 속도로 발전하고 있다. 이 중 캐릭터 애니메이션은 시뮬레이션 뿐만 아니라 게임, 교육용으로도 많이 사용되고 있다.
이러한 캐릭터를 애니메이션함에 있어서 빠르고 사실감 있는 표현을 하기 위한 여러가지 시도가 있어 왔으며, 종래 기술로는 키프레임을 이용한 애니메이션 방법, 모션캡쳐를 이용한 애니메이션 방법, 해부 데이터를 이용한 애니메이션 방법, 물리 현상만을 이용한 애니메이션 방법, 소프트바디(SoftBody)를 이용한 일그러짐 방법 등이 있었다.
즉, 관련된 인용특허로는 해부 데이터를 이용한 얼굴 애니메이션 생성 시스템 및 그 방법(인용발명1)과 캐릭터 애니메이션을 위한 인체의 모델링 방법(인용발명2) 등이 있다.
인용발명1은 해부 데이터를 이용한 얼굴 애니메이션 생성 시스템에 있어서, 해부 데이터 저장블록에서 다수의 얼굴 모델에 해당하는 두개골, 두개골 기하정보, 및 근육 정보를 저장하고, 근육 배치 블록에서 얼굴 애니메이션을 생성하기 위하여 외부로부터 얼굴 모델을 입력받음에 따라 입력받은 얼굴 모델과 가장 유사한 두개골을 해부 데이터 저장 수단으로부터 검색하고, 검색한 두개골에 소정개수의 근육을 배치하며, 피부 생성 블록에서 근육이 배치된 두개골에 피하지방층 및 피부를 결합시켜 얼굴 메쉬를 생성하고, 근육의 움직임에 따른 피부의 움직임을 정의하며, 표정 생성 블록에서 외부로부터 입력받은 근육 조절 신호에 따라 생성한 얼굴 메쉬에서 해당 근육과 그와 연결된 피하지방층 및 피부를 수축 또는 이완시켜 특정 표정을 가진 얼굴 메쉬를 생성하여 저장하는 기술적 특징이 있다.
그리고, 인용발명2는 링크와 조인트로 구성되는 다관절 구조의 골격 데이터와, 3차원 폴리건 모델로 구성되는 피부 데이터를 한 좌표계에 맞추기 위한 좌표 보정과 각 관절 및 피부 데이터를 요소별로 구분하고 각 요소별 바운딩 박스를 계산하는 세그멘테이션 과정을 수행하고, 피부 데이터 및 골격 데이터의 각 요소들을 검사하여 각 관절에 해당하는 피부 데이터를 찾아서 연결하는 바인딩 과정을 수행하며, 피부와 골격이 접합된 인체 모델을 생성하는 기술적 특징이 있다.
상기한 바와 같이 종래 기술은 미리 만들어 둔 키프레임을 이용하여 애니메이션하는 방법들이지만, 여러 가지 상황에 따라 많은 수의 키프레임을 제작해야 하고, 특정 상황에서 어색하게 애니메이션 되는 경우가 많다.
다시 말하여, 조금 더 발전한 실시간 캐릭터 애니메이션이 물리현상을 이용한 캐릭터 애니메이션으로, 충격이 주어졌을 때 캐릭터를 강체(Solid Model)의 조합으로 보고 이를 시뮬레이션하는 방법이다. 이 방법은 주로 캐릭터 내부의 힘이 없는(즉, 사망 또는 기절한) 경우에 사용하며 레그돌(Ragdoll) 시뮬레이션이라고도 한다. 기존의 ODE(Open Dynamics Engine, 이하, ODE라 함), 하복(Havok), 피직스X(PhysX) 등의 실시간 물리 시뮬레이션 엔진이 이러한 기술을 지원하여 사용할 수 있게 하지만, 이 방법은 캐릭터가 다시 키프레임으로 돌아와야 할 경우(예컨대, 얻어 맞고 다시 자세를 취함)를 고려하지 않고 있으며, 충격에 의한 피부 일그러짐도 표현하지 못하게 되는 문제점이 있다.
이에, 본 발명의 기술적 과제는 상술한 문제점을 해결하기 위해 안출한 것으로서, 실시간 캐릭터 애니메이션 시 외부의 충격(주먹, 발길질 등에 맞거나 총에 맞는 등)이 주어졌을 때 이를 반영하기 위한 것으로, 내부 참조 메쉬을 이용하여 피부의 일그러짐을 표현하고, 레그돌(Ragdoll) 시뮬레이션과 키프레임의 보간(Interpolation)을 이용하여 단순히 얻어 맞고 다시 자세를 잡는 등의 애니메이션도 실시간 표현을 가능하도록 하는 캐릭터 애니메이션 시스템 및 그 방법을 제공 한다.
본 발명의 일 관점에 따른 캐릭터 애니메이션 시스템은 캐릭터에 외부 충력이 가해질 경우, 캐릭터 피부 메쉬 및 내부 참조 메쉬를 이용하여 피부 일그러짐을 표현하는 피부 일그러짐 표현부와, 캐릭터 뼈대값과 캐릭터 강체값을 실시간 물리 시뮬레이션 라이브러리에 적용시켜 캐릭터 강체 시뮬레이션을 표현하는 강체 시뮬레이션 엔진부를 포함하는 것을 특징으로 한다.
본 발명의 다른 관점에 따른 캐릭터 애니메이션 방법은 캐릭터의 각 정점별로 캐릭터 피부 메쉬를 생성하는 단계와, 캐릭터의 내부 참조 메쉬를 생성하는 단계와, 캐릭터의 뼈대값을 생성하는 단계와, 캐릭터의 강체값을 생성하는 단계와, 생성된 캐릭터 피부 메쉬와, 생성된 내부 참조 메쉬를 이용하여 피부 일그러짐을 표현하는 단계와, 생성된 캐릭터 뼈대값과 생성된 캐릭터 강체값을 실시간 물리 시뮬레이션 라이브러리에 적용시켜 캐릭터 강체 시뮬레이션을 표현하는 단계와, 피부 일그러짐과 강체 시뮬레이션이 각각 표현된 다음에, 다시 새롭게 적용될 키프레임으로 돌아가도록 처리하는 단계를 포함하는 것을 특징으로 한다.
본 발명은 실시간 캐릭터 애니메이션 시 외부의 충격이 주어졌을 때 이를 반영하기 위한 것으로, 내부 참조 메쉬을 이용하여 피부의 일그러짐을 표현하고, 레 그돌 시뮬레이션과 키프레임의 보간을 이용하여 단순히 얻어 맞고 다시 자세를 잡는 등의 애니메이션도 실시간 표현이 가능함으로써, 내부 참조 메쉬를 손쉽게 생성할 수 있고 이를 이용하여 피부 일그러짐 애니메이션에 사용할 수 있으며, 작은 계산량으로 실시간 애니메이션이 가능하며, 단순히 강체 애니메이션에서 끝나는 것이 아니라 다시 키프레임으로 돌아와서 캐릭터를 제어할 수 있다.
또한, 본 발명은 피부의 일그러짐 뿐만 아니라 물리현상까지 자연스럽게 표현할 수 있으며, 얼굴 뿐만 아니라 캐릭터 전신에 적용할 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 바람직한 일 실시예에 따른 캐릭터 애니메이션 시스템의 블록 구성도로서, 데이터 생성 수단(11) 및 애니메이션 처리 수단(13)을 포함한다.
데이터 생성 수단(11)은 캐릭터 피부 메쉬(Mesh) 생성부(111)와 내부 참조 메쉬 생성부(113)와 캐릭터 뼈대(Bone) 생성부(115)와 캐릭터 강체(Solid Body) 생성부(117)를 구비한다.
캐릭터 피부 메쉬 생성부(111)는 도 2a에 도시된 바와 같이 피부를 가진 캐릭터 모델의 각 정점(Vertex)별로 일 예로, 도 3에 도시된 바와 같이 캐릭터 피부 메쉬를 생성하여 애니메이션 처리 수단(13)내 피부 일그러짐 표현부(131)에 제공한다.
내부 참조 메쉬 생성부(113)는 도 2a에 도시된 캐릭터 피부 모델과 골격, 근육메쉬의 크기, 자세를 일치시키고, 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 거리가 최소가 되는 점을 찾아내고(골격, 근육메쉬의 각 삼각형과 피부 정점과의 거리를 계산하여 구함), 캐릭터의 각 피부 정점을 중심으로 하는 구(Sphere)를 가상으로 두고 구의 반지름을 점차 키워가며 골격, 근육 메쉬의 삼각형과 충돌될 때 멈추고 그 때의 반지름을 두께로 하고, 충돌 지점을 저장하는 방식으로 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 두께(예컨대, 두께가 커질수록(복부) 더욱 부드러운 애니메이션도 가능하고, 피부가 속으로 들어가는 깊이도 커지고 바깥으로 늘어나는 폭도 커지는 반면에, 두께가 작아질수록(얼굴, 손가락 등) 피부의 일그러짐이 작고, 피부가 속으로 들어가거가 바깥으로 늘어나는 폭도 작아짐)를 계산한 다음에, 3D 페인팅 수단(예컨대, 페인팅 도구의 브러쉬)을 이용하여 계산된 두께값을 보정한 다음에, 이 보정된 두께값을 이용하여 일 예로, 도 3에 도시된 바와 같이 내부 참조 메쉬를 생성하여 애니메이션 처리 수단(13)내 피부 일그러짐 표현부(131)에 제공한다. 여기서, 내부 참조 메쉬는 캐릭터 피부 모델의 일그러짐 표 현 시 피부가 더 이상 들어가지 않아야 할 내부 임계면으로, 실제 렌더링 시에 화면에 보이지 않고 애니메이션할 때 움직임을 제어하기 위해서만 사용된다.
캐릭터 뼈대 생성부(115)는 도 2b에 도시된 바와 같이 피부를 가지지 않은 캐릭터 모델의 캐릭터 뼈대값을 3D 비디오 맥스 스튜디오 혹은 마야(Maya) 등을 통해 생성하여 애니메이션 처리 수단(13)내 강체 시뮬레이션 엔진부(133)에 제공한다.
캐릭터 강체 생성부(117)는 도 2b에 도시된 바와 같이 피부를 가지지 않은 진 캐릭터 모델의 캐릭터 강체값을 3D 비디오 맥스 스튜디오 혹은 마야(Maya) 내부의 하복(Havok) 플러그인 프로그램을 통해 생성하여 애니메이션 처리 수단(13)내 강체 시뮬레이션 엔진부(133)에 제공한다.
애니메이션 처리 수단(13)은 피부 일그러짐 표현부(131)와 강체 시뮬레이션 엔진부(133)와 피부 일그러짐 및 강체 시뮬레이션 처리부(135)를 구비한다.
피부 일그러짐 표현부(131)는 키프레임 애니메이션이 동작한 상태에서 캐릭터에 외부 충격이 가해지게 지면, 캐릭터 패부 메쉬 생성부(111)로부터 입력되는 각 정점(Vertex)별로 생성된 캐릭터 피부 메쉬와, 내부 참조 메쉬 생성부(113)로부터 입력되는 내부 참조 메쉬를 이용하여 피부 일그러짐을 표현한다.
즉, 피부 일그러짐 표현부(131)는 캐릭터 피부 메쉬의 정점과 이에 대응하는 내부 참조 메쉬의 정점과의 길이에 비례함에 따라 그 길이가 길면(예컨대, 복부와 같이 피부 일그러짐을 위한 두께가 두꺼우면) 피부 일그러짐을 위한 힘을 많이 받아들이고 강체 시뮬레이션으로 전달되는 힘의 크기가 줄어들게 표현하는 반면에, 그 길이가 짧으면(예컨대, 얼굴이나 손가락과 같이 피부 일그러짐을 위한 두께가 얇으면) 피부 일그러짐을 위한 힘을 적게 받아들이고 강체 시뮬레이션으로 전달되는 힘의 크기가 늘어나게 표현한다.
다시 말하여, 피부 일그러짐 표현부(131)는 도 4에 도시된 바와 같이 내부 참조 메쉬의 정점과 캐릭터 피부 메쉬의 정점 사이에, 피부 정점과 에지(Edge)로 연결된 정점 사이에 스프링 구조로 이루어져 이를 애니메이션하여 피부의 옆으로 밀림, 안으로 움푹 들어감, 바깥으로 늘어남 등을 일 예로, 도 5 및 도 6에 도시된 바와 같이 피부 일그러짐을 표현하여 피부 일그러짐 및 강체 시뮬레이션 처리부(135)에 제공한다. 여기서, 각 에지들(내부 참조모델과 연결된 에지 포함)은 정해진 스프링 상수를 가지며 초기 메쉬 모양을 안정된 상태로 본다.
강체 시뮬레이션 엔진부(133)는 캐릭터 뼈대 생성부(115)로부터 입력되는 캐릭터 뼈대값과 캐릭터 강체 생성부(117)로부터 입력되는 캐릭터 강체값을 ODE, 하복, 피직스X 등의 실시간 물리 시뮬레이션 라이브러리에 적용시켜 캐릭터 강체 시뮬레이션을 표현하여 피부 일그러짐 및 강체 시뮬레이션 처리부(135)에 제공한다. 캐릭터 강체 시뮬레이션은 도 7에 도시된 바와 같이 캐릭터의 강체로 구성되어 있고, 관절 회전의 제한점을 주며, 또한 캐릭터 강체 시뮬레이션에서 받아들이는 입력은 힘의 위치, 강도, 방향이다.
피부 일그러짐 및 강체 시뮬레이션 처리부(135)는 피부 일그러짐 표현부(131)로부터 피부 일그러짐이 입력되고, 강체 시뮬레이션 엔진부(133)로부터 캐릭터 강체 시뮬레이션이 입력되면, 다시 새롭게 적용될 키프레임으로 돌아가도록 처리한다.
즉, 피부 일그러짐 및 강체 시뮬레이션 처리부(135)는 실시간성을 위하여 캐릭터 강체 시뮬레이션과 키프레임 사이의 가중치를 준 혼합(Weighted Blending)을 수학식 1
Ani(Character, t) = W(t) * Ani(강체 시뮬레이션, t) + (1-W(t)) * Ani(키프레임, t) (여기서, W(t)은 t 시간에서 캐릭터 강체 시뮬레이션의 가중치(Weight)이고, (1-W(t))는 t 시간에서 키프레임 애니메이션의 가중치(Weight)이다.)
과 같이 나타내며,
가중치를 준 혼합할 때, 각 관절의 회전 값은 가중치를 이용한 SLERP(Spherical Linear interpolation, 이하, SLERP라 함)을 이용하여 혼합하고, 위치 값은 가중치를 선형 보간(Linear Interpolation)하여 혼합한다.
피부 일그러짐 및 강체 시뮬레이션 처리부(135)는 캐릭터 강체 시뮬레이션 후 다시 새롭게 적용될 키프레임으로 전환하고자 할 때 가중치 W(t)는 강체 시뮬레이션 부분은 혼합되는 부분의 시작과 끝 부분에서 1.0 에서 0.0 값으로 점진적으로 변경시킨다.
따라서, 본 발명은 실시간 캐릭터 애니메이션 시 외부의 충격이 주어졌을 때 이를 반영하기 위한 것으로, 내부 참조 메쉬을 이용하여 피부의 일그러짐을 표현하고, 레그돌 시뮬레이션과 키프레임의 보간을 이용하여 단순히 얻어 맞고 다시 자세 를 잡는 등의 애니메이션도 실시간 표현이 가능함으로써, 피부의 일그러짐 뿐만 아니라 물리현상까지 자연스럽게 표현할 수 있으며, 얼굴 뿐만 아니라 캐릭터 전신에 적용할 수 있다.
도 8은 본 발명의 바람직한 일 실시예에 따른 캐릭터 애니메이션 방법에 대하여 상세하게 설명한 흐름도이다.
먼저, 도 2a에 도시된 바와 같이, 피부를 가진 캐릭터 모델에서 각 정점(Vertex)별로 일 예로, 도 3에 도시된 바와 같이 캐릭터 피부 메쉬를 캐릭터 피부 메쉬 생성부(111)를 이용하여 생성(S801)하여 피부 일그러짐 표현부(131)에 제공한다.
다음으로, 내부 참조 메쉬 생성부(113)에서는 도 2a에 도시된 캐릭터 피부 모델과 골격, 근육메쉬의 크기, 자세를 일치시키고, 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 거리가 최소가 되는 점을 찾아내고(골격, 근육메쉬의 각 삼각형과 피부 정점과의 거리를 계산하여 구함), 캐릭터의 각 피부 정점을 중심으로 하는 구(Sphere)를 가상으로 두고 구의 반지름을 점차 키워가며 골격, 근육 메쉬의 삼각형과 충돌될 때 멈추고 그 때의 반지름을 두께로 하고, 충돌 지점을 저장하는 방식으로 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 두께(예컨대, 두께가 커질수록(복부) 더욱 부드러운 애니메이션도 가능하고, 피부가 속으로 들어가는 깊이도 커지고 바깥으로 늘어나는 폭도 커지는 반면에, 두께가 작아질수록(얼굴, 손가락 등) 피부의 일그러짐이 작고, 피부가 속으로 들어가거가 바깥으로 늘어나는 폭도 작아짐)를 계산한다.
다음에, 내부 참조 메쉬 생성부(113)에서는 3D 페인팅 수단(예컨대, 페인팅 도구의 브러쉬)을 이용하여 계산된 두께값을 보정한 다음에, 이 보정된 두께값을 이용하여 일 예로, 도 3에 도시된 바와 같이 내부 참조 메쉬를 생성(S803)하여 애니메이션 처리 수단(13)내 피부 일그러짐 표현부(131)에 제공한다. 여기서, 내부 참조 메쉬는 캐릭터 피부 모델의 일그러짐 표현 시 피부가 더 이상 들어가지 않아야 할 내부 임계면으로, 실제 렌더링 시에 화면에 보이지 않고 애니메이션할 때 움직임을 제어하기 위해서만 사용된다.
다음으로, 도 2b에 도시된 바와 같이 피부를 가지지 않은 캐릭터 모델에서 캐릭터 뼈대값을 캐릭터 뼈대 생성부(115)를 이용하여 생성(S805)하여 강체 시뮬레이션 엔진부(133)에 제공한다. 그리고, 도 2b에 도시된 바와 같이 피부를 가지지 않은 진 캐릭터 모델에서 캐릭터 강체값을 캐릭터 강체 생성부(117)를 이용하여 생성(S807)하여 강체 시뮬레이션 엔진부(133)에 제공한다.
이때, 피부 일그러짐 표현부(131)는 키프레임 애니메이션이 동작한 상태에서 캐릭터에 외부 충격이 가해지는지를 판단(S809)한다.
상기 판단(S809)결과, 외부 충격이 가해지지 않으면, 외부 충격이 가해지는지를 판단하는 과정을 계속 수행하는 반면에, 상기 판단(S809)결과, 외부 충격이 가해지면, 캐릭터 패부 메쉬 생성부(111)로부터 입력되는 각 정점(Vertex)별로 생성된 캐릭터 피부 메쉬와, 내부 참조 메쉬 생성부(113)로부터 입력되는 내부 참조 메쉬를 이용하여 피부 일그러짐을 표현한다.
즉, 피부 일그러짐 표현부(131)는 캐릭터 피부 메쉬의 정점과 이에 대응하는 내부 참조 메쉬의 정점과의 길이에 비례함에 따라 그 길이가 길면(예컨대, 복부와 같이 피부 일그러짐을 위한 두께가 두꺼우면) 피부 일그러짐을 위한 힘을 많이 받아들이고 강체 시뮬레이션으로 전달되는 힘의 크기가 줄어들게 표현하는 반면에, 그 길이가 짧으면(예컨대, 얼굴이나 손가락과 같이 피부 일그러짐을 위한 두께가 얇으면) 피부 일그러짐을 위한 힘을 적게 받아들이고 강체 시뮬레이션으로 전달되는 힘의 크기가 늘어나게 표현한다.
다시 말하여, 피부 일그러짐 표현부(131)는 도 4에 도시된 바와 같이 내부 참조 메쉬의 정점과 캐릭터 피부 메쉬의 정점 사이에, 피부 정점과 에지(Edge)로 연결된 정점 사이에 스프링 구조로 이루어져 이를 애니메이션하여 피부의 옆으로 밀림, 안으로 움푹 들어감, 바깥으로 늘어남 등을 일 예로, 도 5 및 도 6에 도시된 바와 같이 피부 일그러짐을 표현(S811)하여 피부 일그러짐 및 강체 시뮬레이션 처리부(135)에 제공한다. 여기서, 각 에지들(내부 참조모델과 연결된 에지 포함)은 정해진 스프링 상수를 가지며 초기 메쉬 모양을 안정된 상태로 본다.
이후, 강체 시뮬레이션 엔진부(133)는 키프레임 애니메이션이 동작한 상태에서 캐릭터에 외부 충격이 가해질 경우, 캐릭터 뼈대 생성부(115)로부터 입력되는 캐릭터 뼈대값과 캐릭터 강체 생성부(117)로부터 입력되는 캐릭터 강체값을 ODE, 하복, 피직스X 등의 실시간 물리 시뮬레이션 라이브러리에 적용시켜 캐릭터 강체 시뮬레이션을 표현(S813)하여 피부 일그러짐 및 강체 시뮬레이션 처리부(135)에 제공한다. 캐릭터 강체 시뮬레이션은 도 7에 도시된 바와 같이 캐릭터의 강체로 구성되어 있고, 관절 회전의 제한점을 주며, 또한 캐릭터 강체 시뮬레이션에서 받아들 이는 입력은 힘의 위치, 강도, 방향이다.
그러면, 피부 일그러짐 및 강체 시뮬레이션 처리부(135)는 피부 일그러짐 표현부(131)로부터 피부 일그러짐이 입력되고, 강체 시뮬레이션 엔진부(133)로부터 캐릭터 강체 시뮬레이션이 입력되면, 다시 새롭게 적용될 키프레임으로 돌아가도록 처리(S815)한다.
즉, 피부 일그러짐 및 강체 시뮬레이션 처리부(135)는 실시간성을 위하여 캐릭터 강체 시뮬레이션과 키프레임 사이의 가중치를 준 혼합(Weighted Blending)을 상술한 수학식 1과 같이 나타내며, 가중치를 준 혼합할 때, 각 관절의 회전 값은 가중치를 이용한 SLERP을 이용하여 혼합하고, 위치 값은 가중치를 선형 보간하여 혼합한다.
다시 말하여, 피부 일그러짐 및 강체 시뮬레이션 처리부(135)는 캐릭터 강체 시뮬레이션 후 다시 새롭게 적용될 키프레임으로 전환하고자 할 때 가중치 W(t)는 강체 시뮬레이션 부분은 혼합되는 부분의 시작과 끝 부분에서 1.0 에서 0.0 값으로 점진적으로 변경시킨다.
따라서, 본 발명은 실시간 캐릭터 애니메이션 시 외부의 충격이 주어졌을 때 이를 반영하기 위한 것으로, 내부 참조 메쉬을 이용하여 피부의 일그러짐을 표현하고, 레그돌 시뮬레이션과 키프레임의 보간을 이용하여 단순히 얻어 맞고 다시 자세를 잡는 등의 애니메이션도 실시간 표현이 가능함으로써, 내부 참조 메쉬를 손쉽게 생성할 수 있고 이를 이용하여 피부 일그러짐 애니메이션에 사용할 수 있으며, 작은 계산량으로 실시간 애니메이션이 가능하며, 단순히 강체 애니메이션에서 끝나는 것이 아니라 다시 키프레임으로 돌아와서 캐릭터를 제어할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 캐릭터 애니메이션 시스템의 블록 구성도,
도 2a는 본 발명에 따른 피부를 가진 캐릭터 모델을 도시한 도면,
도 2b는 본 발명에 따른 피부를 가지지 않은 캐릭터 모델을 도시한 도면,
도 3은 본 발명에 따른 캐릭터 피부 메쉬와 내부 참조 메쉬의 예제 도면,
도 4는 본 발명에 따른 캐릭터 피부 메쉬와 이와 연결된 내부 참조 메쉬와의 스프링 연결 구조도,
도 5는 본 발명에 따른 표면에 수직으로 외부 충격을 받았을 때의 모양을 도시한 도면,
도 6은 본 발명에 따른 표면에 비스듬한 각도로 외부 충격을 받았을 때의 모양을 도시한 도면,
도 7은 본 발명에 따른 캐릭터에 적용할 강체를 도시한 도면,
도 8은 본 발명의 바람직한 실시예에 따른 캐릭터 애니메이션 방법을 위한 상세 흐름도.
<도면의 주요부분에 대한 부호의 설명>
11 : 데이터 생성 수단 111 : 캐릭터 피부 메쉬 생성부
113 : 내부 참조 메쉬 생성부 115 : 캐릭터 뼈대 생성부
117 : 캐릭터 강체 생성부 13 : 애니메이션 처리 수단
131 : 피부 일그러짐 표현부 133 : 강체 시뮬레이션 엔진부
135 : 피부 일그러짐 및 강체 시뮬레이션 처리부

Claims (15)

  1. 캐릭터 애니메이션 시스템으로서,
    캐릭터 피부 메쉬 및 내부 참조 메쉬와 캐릭터 뼈대값 및 캐릭터 강체값을 각각 생성하는 데이터 생성부와,
    상기 캐릭터에 외부 충력이 가해질 경우, 상기 생성된 캐릭터 피부 메쉬 및 내부 참조 메쉬를 이용하여 피부 일그러짐을 표현하는 피부 일그러짐 표현부와,
    상기 생성된 캐릭터 뼈대값과 캐릭터 강체값을 실시간 물리 시뮬레이션 라이브러리에 적용시켜 캐릭터 강체 시뮬레이션을 표현하는 강체 시뮬레이션 엔진부
    를 포함하는 캐릭터 애니메이션 시스템.
  2. 제 1 항에 있어서,
    상기 시스템은,
    상기 피부 일그러짐과 강체 시뮬레이션이 각각 표현된 다음에, 다시 새롭게 적용될 키프레임으로 돌아가도록 처리하는 피부 일그러짐 및 강체 시뮬레이션 처리부
    를 더 포함하는 캐릭터 애니메이션 시스템.
  3. 제 2 항에 있어서,
    상기 피부 일그러짐 및 강체 시뮬레이션 처리부는, 실시간성을 위하여 캐릭터 강체 시뮬레이션과 키프레임 사이의 가중치를 준 혼합(Weighted Blending)을
    수학식
    Ani(Character, t) = W(t) * Ani(강체 시뮬레이션, t) + (1-W(t)) * Ani(키프레임, t) (여기서, W(t)은 t 시간에서 캐릭터 강체 시뮬레이션의 가중치(Weight)이고, (1-W(t))는 t 시간에서 키프레임 애니메이션의 가중치(Weight)이다.)
    과 같이 나타내며,
    상기 가중치를 준 혼합할 때, 각 관절의 회전 값은 가중치를 이용한 SLERP(Spherical Linear interpolation)을 이용하여 혼합하고, 위치 값은 가중치를 선형 보간(Linear Interpolation)하여 혼합하는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  4. 제 1 항에 있어서,
    상기 피부 일그러짐 표현부는,
    상기 내부 참조 메쉬의 정점과 캐릭터 피부 메쉬의 정점 사이에, 피부 정점과 에지(Edge)로 연결된 정점 사이에 스프링 구조로 이루어져 이를 애니메이션하여 피부의 옆으로 밀림, 안으로 움푹 들어감, 바깥으로 늘어남을 표현하는 것을 특징 으로 하는 캐릭터 애니메이션 시스템.
  5. 제 4 항에 있어서,
    상기 에지는, 정해진 스프링 상수를 가지며 초기 메쉬 모양을 안정된 상태로 보는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  6. 제 1 항에 있어서,
    상기 피부 일그러짐 표현부는,
    상기 캐릭터 피부 메쉬의 정점과 이에 대응하는 내부 참조 메쉬의 정점과의 길이에 비례함에 따라 그 길이가 길면 피부 일그러짐을 위한 힘을 많이 받아들이고 강체 시뮬레이션으로 전달되는 힘의 크기가 줄어들게 표현하는 반면에, 그 길이가 짧으면 피부 일그러짐을 위한 힘을 적게 받아들이고 강체 시뮬레이션으로 전달되는 힘의 크기가 늘어나게 표현하는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  7. 제 1 항에 있어서,
    상기 내부 참조 메쉬는,
    상기 캐릭터와 골격, 근육메쉬의 크기, 자세를 일치시키고, 상기 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 거리가 최소가 되는 점을 찾아내고, 상기 캐릭터의 각 피부 정점을 중심으로 하는 구(Sphere)를 가상으로 두고 구의 반지름을 점차 키워가며 골격, 근육 메쉬의 삼각형과 충돌될 때 멈추고 그 때의 반지름을 두께로 하고, 충돌 지점을 저장하는 방식으로 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 두께를 계산한 다음에, 페인팅 수단을 이용하여 계산된 두께값을 보정한 다음에, 상기 보정된 두께값을 이용하여 생성하는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  8. 제 1 항에 있어서,
    상기 내부 참조 메쉬는, 캐릭터 피부 모델의 일그러짐 표현 시 피부가 더 이상 들어가지 않아야 할 내부 임계면인 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  9. 제 1 항에 있어서,
    상기 내부 참조 메쉬는, 실제 렌더링 시에 화면에 보이지 않고 애니메이션할 때 움직임을 제어하기 위해서 사용되는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  10. 제 1 항에 있어서,
    상기 캐릭터 강체 시뮬레이션은, 캐릭터의 강체로 구성되어 있고, 관절 회전의 제한점을 주는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  11. 제 1 항에 있어서,
    상기 캐릭터 강체 시뮬레이션은, 힘의 위치와 강도와 방향을 입력으로 받아들이는 것을 특징으로 하는 캐릭터 애니메이션 시스템.
  12. 캐릭터 애니메이션 방법으로서,
    상기 캐릭터의 각 정점별로 캐릭터 피부 메쉬를 생성하는 단계와,
    상기 캐릭터의 내부 참조 메쉬를 생성하는 단계와,
    상기 캐릭터의 뼈대값을 생성하는 단계와,
    상기 캐릭터의 강체값을 생성하는 단계와,
    상기 생성된 캐릭터 피부 메쉬와, 상기 생성된 내부 참조 메쉬를 이용하여 피부 일그러짐을 표현하는 단계와,
    상기 생성된 캐릭터 뼈대값과 상기 생성된 캐릭터 강체값을 실시간 물리 시뮬레이션 라이브러리에 적용시켜 캐릭터 강체 시뮬레이션을 표현하는 단계와,
    상기 피부 일그러짐과 강체 시뮬레이션이 각각 표현된 다음에, 다시 새롭게 적용될 키프레임으로 돌아가도록 처리하는 단계
    를 포함하는 캐릭터 애니메이션 방법.
  13. 제 12 항에 있어서,
    상기 내부 참조 메쉬는,
    상기 캐릭터와 골격, 근육메쉬의 크기, 자세를 일치시키고, 상기 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 거리가 최소가 되는 점을 찾아내고, 상기 캐릭터의 각 피부 정점을 중심으로 하는 구(Sphere)를 가상으로 두고 구의 반지름을 점차 키워가며 골격, 근육 메쉬의 삼각형과 충돌될 때 멈추고 그 때의 반지름을 두께로 하고, 충돌 지점을 저장하는 방식으로 캐릭터의 각 피부 정점에서 골격, 근육메쉬와의 두께를 계산한 다음에, 페인팅 수단을 이용하여 계산된 두께값을 보정한 다음에, 상기 보정된 두께값을 이용하여 생성하는 것을 특징으로 하는 캐릭터 애니메이션 방법.
  14. 제 12 항에 있어서,
    상기 내부 참조 메쉬는, 캐릭터 피부 모델의 일그러짐 표현 시 피부가 더 이상 들어가지 않아야 할 내부 임계면인 것을 특징으로 하는 캐릭터 애니메이션 방 법.
  15. 제 12 항에 있어서,
    상기 내부 참조 메쉬는, 실제 렌더링 시에 화면에 보이지 않고 애니메이션할 때 움직임을 제어하기 위해서 사용되는 것을 특징으로 하는 캐릭터 애니메이션 방법.
KR1020070119878A 2007-11-22 2007-11-22 캐릭터 애니메이션 시스템 및 그 방법 KR100901274B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070119878A KR100901274B1 (ko) 2007-11-22 2007-11-22 캐릭터 애니메이션 시스템 및 그 방법
US12/232,919 US20090135189A1 (en) 2007-11-22 2008-09-26 Character animation system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070119878A KR100901274B1 (ko) 2007-11-22 2007-11-22 캐릭터 애니메이션 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20090053182A KR20090053182A (ko) 2009-05-27
KR100901274B1 true KR100901274B1 (ko) 2009-06-09

Family

ID=40669319

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070119878A KR100901274B1 (ko) 2007-11-22 2007-11-22 캐릭터 애니메이션 시스템 및 그 방법

Country Status (2)

Country Link
US (1) US20090135189A1 (ko)
KR (1) KR100901274B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101794731B1 (ko) * 2016-11-10 2017-11-08 한국과학기술연구원 2차원 캐릭터 그림데이터를 애니메이션이 가능한 3차원 모델로 변형하는 방법 및 장치

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080221487A1 (en) * 2007-03-07 2008-09-11 Motek Bv Method for real time interactive visualization of muscle forces and joint torques in the human body
EP2153370B1 (en) * 2007-05-03 2017-02-15 Motek B.V. Method and system for real time interactive dynamic alignment of prosthetics
US20090315893A1 (en) * 2008-06-18 2009-12-24 Microsoft Corporation User avatar available across computing applications and devices
JP5620743B2 (ja) * 2010-08-16 2014-11-05 株式会社カプコン 顔画像編集用プログラム、その顔画像編集用プログラムを記録した記録媒体及び顔画像編集システム
US8860732B2 (en) 2010-09-27 2014-10-14 Adobe Systems Incorporated System and method for robust physically-plausible character animation
US9082222B2 (en) 2011-01-18 2015-07-14 Disney Enterprises, Inc. Physical face cloning
US8847963B1 (en) * 2011-01-31 2014-09-30 Pixar Systems and methods for generating skin and volume details for animated characters
US9135738B2 (en) 2011-05-02 2015-09-15 Disney Enterprises, Inc. Efficient elasticity for character skinning
CN103617041B (zh) * 2013-11-29 2018-03-16 Tcl集团股份有限公司 一种基于模板的动画管理系统及方法
CN104156995A (zh) * 2014-07-16 2014-11-19 浙江大学 一种针对敦煌飞天形象的飘带动画制作方法
US10140745B2 (en) * 2015-01-09 2018-11-27 Vital Mechanics Research Inc. Methods and systems for computer-based animation of musculoskeletal systems
KR102252730B1 (ko) 2015-02-06 2021-05-18 한국전자통신연구원 애니메이션 생성 장치 및 방법
KR101885746B1 (ko) * 2016-05-31 2018-08-06 (주) 젤리피쉬월드 스마트 단말을 이용하여 동작 컨텐트를 자동으로 생성하는 장치 및 방법
KR102317683B1 (ko) 2016-07-28 2021-10-26 삼성전자주식회사 영상을 처리하는 방법, 디바이스 및 기록매체
WO2018033852A1 (en) * 2016-08-14 2018-02-22 Uvic Industry Partnerships Inc. Real-time hand modeling and tracking using sphere-mesh models
WO2019023808A1 (en) 2017-08-02 2019-02-07 Ziva Dynamics Inc. METHOD AND SYSTEM FOR GENERATING A NEW ANATOMY
US11029664B2 (en) * 2018-04-20 2021-06-08 Disney Enterprises, Inc. Computer-assisted design and fabrication of kinetic wire mechanisms
KR102237089B1 (ko) * 2018-12-24 2021-04-07 한국전자기술연구원 근골격 구조에 기반한 3d 캐릭터의 스키닝 가중치 계산 방법
CN109903364B (zh) * 2019-02-21 2023-03-24 武汉大学 一种基于肌肉骨骼模型生成3d人物动画动作风格的物理仿真方法
CN114882153A (zh) * 2022-04-01 2022-08-09 网易(杭州)网络有限公司 一种动画生成的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302354A (ja) * 1994-05-02 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> メッシュ変形処理方法および装置
JPH1069549A (ja) 1996-08-29 1998-03-10 Nippon Telegr & Teleph Corp <Ntt> 画像処理方法
KR20000051216A (ko) * 1999-01-19 2000-08-16 윤덕용 얼굴 표정 애니메이션 방법
KR20050024556A (ko) * 2003-09-03 2005-03-10 한국전자통신연구원 방향을 갖는 질점과 일반화된 스프링 모델을 이용한비정형 물체의 애니메이션 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6300960B1 (en) * 1997-08-04 2001-10-09 Pixar Animation Studios Realistic surface simulation in computer animation
US6509899B1 (en) * 1999-03-01 2003-01-21 Lucas Digital Ltd. Time differencing for improved cloth animation
US7353149B2 (en) * 2001-04-25 2008-04-01 Telekinesys Research Limited Method and apparatus for simulating dynamic contact of objects
US7307633B2 (en) * 2003-05-14 2007-12-11 Pixar Statistical dynamic collisions method and apparatus utilizing skin collision points to create a skin collision response
US7385603B2 (en) * 2004-06-30 2008-06-10 Warner Bros. Entertainment, Inc. Method for simulating motion of cloth
US7545379B2 (en) * 2005-10-28 2009-06-09 Dreamworks Animation Llc Artist directed volume preserving deformation and collision resolution for animation
US20070268293A1 (en) * 2006-05-19 2007-11-22 Erick Miller Musculo-skeletal shape skinning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302354A (ja) * 1994-05-02 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> メッシュ変形処理方法および装置
JPH1069549A (ja) 1996-08-29 1998-03-10 Nippon Telegr & Teleph Corp <Ntt> 画像処理方法
KR20000051216A (ko) * 1999-01-19 2000-08-16 윤덕용 얼굴 표정 애니메이션 방법
KR20050024556A (ko) * 2003-09-03 2005-03-10 한국전자통신연구원 방향을 갖는 질점과 일반화된 스프링 모델을 이용한비정형 물체의 애니메이션 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101794731B1 (ko) * 2016-11-10 2017-11-08 한국과학기술연구원 2차원 캐릭터 그림데이터를 애니메이션이 가능한 3차원 모델로 변형하는 방법 및 장치

Also Published As

Publication number Publication date
KR20090053182A (ko) 2009-05-27
US20090135189A1 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
KR100901274B1 (ko) 캐릭터 애니메이션 시스템 및 그 방법
US10867444B2 (en) Synthetic data generation for training a machine learning model for dynamic object compositing in scenes
KR101794731B1 (ko) 2차원 캐릭터 그림데이터를 애니메이션이 가능한 3차원 모델로 변형하는 방법 및 장치
Magnenat-Thalmann Modeling and simulating bodies and garments
Kenwright Scalable real-time vehicle deformation for interactive environments
KR100900823B1 (ko) 캐릭터 애니메이션 시 피부의 주름 실시간 표현 방법 및장치
JP4842242B2 (ja) キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置
Rohmer et al. Velocity Skinning for Real‐time Stylized Skeletal Animation
Larboulette et al. Dynamic skinning: adding real-time dynamic effects to an existing character animation
Kwon et al. The squash-and-stretch stylization for character motions
Leclercq et al. Mixing triangle meshes and implicit surfaces in character animation
Tang et al. Lip-sync in human face animation based on video analysis and spline models
Lyard et al. Motion adaptation based on character shape
Fratarcangeli Computational models for animating 3d virtual faces
Xia et al. Recent advances on virtual human synthesis
Thalmann Physical, behavioral, and sensor-based animation
JP3973995B2 (ja) アニメーション作成システム
von Funck et al. Elastic secondary deformations by vector field integration
Sin et al. An Animator-Friendly Chain Simulator for In-Game Animations at Blizzard Entertainment
Akinjala et al. Animating human movement & gestures on an agent using Microsoft kinect
Küderle Muscle-Based Facial Animation
CN108198234B (zh) 可实时互动的虚拟角色生成系统及方法
Terasaki et al. Motion style transformation by extracting and applying motion features
Kraus Human motion and emotion parameterization
Grillon et al. Gaze behaviors for virtual crowd characters

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
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150519

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee