Computer Animation Algorithms & Techniques (By Rick Parent)
책을 정리한 내용입니다. (틀린 내용이 있을 수 있습니다)
Facial Animation
- 얼굴은 형상의 기분이나 개성을 나타내고 의사소통을 위해 중요한 도구로 모델링하는데 중요한 요소가 된다.
10.1 The Person Face
10.1.1 Anatomic Structure
- 사람 얼굴은 기본적으로 골격 구조를 갖으며 주요 관절 요소는 턱과 눈이다.
- 두개골은 근육으로 덮여있다. 해당 근육은 몸체의 경우와 유사하게 힘을 구동한다. 그러나 몸체와 달리 근육은 피부를 원하는 위치로 이동시키고, 입술과 피부 모양을 생성한다.
- 입으로 소리를 내는데 있어서 중요한 근육은 입 주위를 둘러싸고 두개골에 연결된 여러 근육과 연결된 근육이다.
10.1.2 The Facial Action Coding
- 얼굴동작 코딩 시스템(FACS)을 통해 동작단위(AU)를 이용하면 모든 얼굴 표정을 묘사할 수 있다.
- 46개의 AU를 분리하여 얼굴 애니메이션을 만드는 기초를 제공한다.
- AU의 예시로는 눈썹내리기, 올리기, 윙크, 턱 내리기 등이 존재한다.
- FACS는 표정 묘사를 의도한 것이다.(표정 생성을 의도한 것이 아니다
-> FACS는 시간에 기반을 둔 것이 아니고, 중립적인 자세를 기준으로 얼굴 움직임을 분석한 것이다.
- FACS는 얼굴 표정을 묘사하는 것이다.(언어를 묘사하는 것이 아니다.)
- FACS는 얼굴 애니메이션 시스템의 기본 동작을 묘사하는데 있어서 좋지만, 처음부터 해당 목적을 위해 만들어진 것은 아니다.
10.2 Facial Model
- 얼굴 애니메이션도 다른 애니메이션과 같이 현실성과 계산 복잡성을 고민해야 한다.
- 가장 기본적인 방법으로 기본 도형에 애니메이트된 텍스쳐맵을 사용할 수 있다.
- 축으로 된 턱과 회전하는 구를 이용한 눈을 통해서 사람 얼굴을 표현할 수 있다.
- 사실적인 애니메이션을 위해서 복잡한 곡면과 얼굴 모델을 사용해야 한다.
- 얼굴 애니메이션을 만드는데에 있어서 어려운 점
- 얼굴 애니메이션에 적합한 도형을 찾는데 필요한 요소
- 실제로 어떤 주체나 캐릭터의 머리 도형을 얻는 방법
- 도형에 가해진 변화를 묘사하는 데이터를 얻는 방법
- 매끄러움과 곡면의 속성에 따른 렌더링된 이미지의 퀄리티
- 계산된 동작의 퀄리티
- 모델의 성질
- 정적 상태의 성질 : 중립 상태에서 모델의 도형
- 동적 상태의 성질 : 움직이는 상태에서 모델의 도형 변형
- 모델의 도형을 표현하는 방법
- 폴리곤 모델
- 장점 : 만들기 쉽고, 변형이 쉽다.
- 단점 : 곡면의 부드러움은 곧 모델의 복잡성과 연결된다. 시각적으로 좋지 않다.
- 스플라인 모델(3차 사각 곡면 패치)
- 장점 : 부드러운 곡면을 만들때 복잡성이 낮다.
- 단점 : 작은 디테일이나 예리한 부분적인 특질을 포함하면서 낮은 복잡도를 유지하기 어렵다. -> 제어점 격자의 행이나 열 전체가 조정되어야 하기 때문에
- 계층적 B-스플라인 모델
- 전역적으로 수정하지 않고 지역적인 디테일을 추가할 수 있는 기법
10.2.1 Creating a Continuous Surface Model
1) 상호작용 시스템을 이용하여 모델 만들기
- 분할 곡면(저해상도 모델로부터의 개선)
- 전역적인 복잡도 없이 지역적인 복잡도를 만들 수 있다
- 새로운 모델을 만들때 사용하기 쉽고 직관적이며, 임의 차수의 불연속성을 규정할 수 있다.
- 특정 데이터 집합에 보간하는 것이 어렵다. (특정 얼굴의 모델링이 어렵다)
- 고해상도 단순 모델의 수정
- 얼굴의 일반적인 특성을 구성하기 위해 모델의 곡면을 밀고 당긴다.
- 고해상도 영역으로부터 곡면 설계(입과 눈의 영역으로부터 곡면 만들기)
- 의도된 애니메이션에 적합한 모델을 만들기에 적합하다
2) 특정 물리적인 모델을 참고로 디지털화 시키기
- 특정 인물의 모델이 필요할 때 유용하다.
- 물리적 모델 위에 2차원 곡면에 기반을 둔 눈금을 그리고 다각형을 디지털화 시키기
- 후처리를 통해 다각형 메쉬를 만든다.
- 다각형의 수가 많은 경우 문제가 발생한다.
- 레이저 스캐너 이용하여 모델 곡면과의 거리 측정
- 정확한 모델 만들기 가능(대체로 다각형 모델 이용)
- 텍스쳐 맵을 만드는데 사용할 수 있는 색상 정보를 얻을 수 있다.
- 비싸고, 크고, 물리적인 모델이 있어야만 사용 가능하다.
- blobby 모델을 range데이터에 맞추는 방법
- 기본 도형을 나누고 매개 변수를 조정하여 등곡면에 맞추기
- 사진으로 모델을 만드는 방법
- 특징점을 지정하여 모델을 수정한다.
- 눈금이 그려진 얼굴의 정면과 측면을 이용하여 모델을 만든다.
3) 기존의 모델 변형 시키기
- 일반 모델에 애니메이션 제어점이 이미 만들어 졌을 때 유용하다.
- 일반적인 모델을 만들고 이후 매개변수 모델을 만들어 매개변수를 조정하여 모델을 변형시킬 수 있다.
4) 매개 변수화 된 모델을 사용하기 (가장 자주 쓰이는 방법)
- 형태적인 매개변수
- 한 사람과 다른 사람을 구변할 수 있는 매개변수
- 표현적인 매개변수
- 사람의 얼굴을 랜더링 함에 있어서 필요한 제어 조건을 계산하여 사용
- MPEG-4 표준
- 멀티미디어 장면을 효율적으로 바꾸는 도구
- facial definition parameter(FDP)
- facial animation parameter(FAP)
5) 비디오 시퀀스의 이미지를 맞추기
- 특정 인물의 얼굴을 모델링하는데 유용하다.
- 카메라 매개변수들과 얼굴 모델 매개 변수들이 Jacobiam pseudo inverse를 이용해 비디오와 비슷하게 되도록 수정하는 방식
10.2.2 Textures
- 컴퓨터 그래픽스로 만들어진 대부분의 객체는 플라스틱이나 금속 느낌이므로 텍스쳐 맵이 매우 중요하다.
- 텍스쳐를 디지털화 시키는 동안 빛의 상태도 고려해야 한다.
- 이전에 말한 레이저 스캐너의 경우 깊이 뿐 아니라 강도에 관한 정보도 수집할 수 있어서 고해상도의 텍스쳐와 일치하는 고해상도 곡면을 만들 수 있다.
- 윗면이나 측면의 사진을 이용하여 텍스쳐를 만드는 경우 겹치는 부분에서 픽셀을 혼합하는 방식을 사용한다.
10.3 Animating the Face
10.3.1 Parameterized Models
- 얼굴 애니메이션의 가장 기본적인 구현방법은 기본 동작에 따라 매개변수화 하고, 시간에 따라 매개변수의 값을 조절하는 방식이다.
- 한 공간의 임의 매개변수화는 전 범위에 적용되어야 하고, 사용하기 쉬워야 한다.
- 매개변수화는 가능하면 공간의 많은 부분을 포함해야 한다.
- 매개 변수화를 쉽게 하기 위해서 매개변수의 집합은 가능하면 작아야 한다.
- 각 매개변수는 다른 매개 변수의 영향에서 독립적이어야 한다.
- 매개변수의 영향은 직관적이어야 한다.
-> 모든 조건을 만족시키는 것은 어렵지만 적절한 균형이 중요하다.
- 가장 많이 쓰이는 얼굴 모델은 Parke의 모델이다.
- 형태적 매개 변수
- 표현적 매개 변수
- 얼굴과 같이 복잡한 경우에도 한개의 매개 변수로 표정을 애니메이션 할 수 있다.
- 표현적 매개변수의 예시 (Figure 10.11)
10.3.2 Blend Shapes
- 얼굴 애니메이션의 가장 간단한 방법은 주요 포즈를 정의하는 방식이다.(혼합 모형 방식)
- 생성 가능한 동작은 주요 동작 사이의 보간된 동작으로 제한된다.
10.3.3 Muscle Models
- 매개 변수 모델은 피부의 기하학적 이동을 임의의 매개변수 값으로 인코딩 한다.
- 얼굴을 모델링 하기 위해서 선형근, 편평근, 괄약근 세종류의 근육이 필요하다.
- 근육의 기하학적 정렬에 있어서 두가지 구별법
- 얼굴의 곡면에 모델을 만든 경우
- 애니메이션 시스템에 얼굴의 곡면 모델만 필요해서 간단하다.
- 피부아래 구조층에 붙인 경우
- 해부학적으로 정확해서 정밀한 결과를 보장하지만, 많은 기하학적 구조가 필요하며 구축하기가 어렵다.
- 선형 근육의 삽입점 부근은 피부의 모델에 따라 결정된다.
- 근육이 어떻게 퍼져있는가에 따라 곡면이 보이는 모습이 결정된다.
- 가장 간단한 방식은 해당 점에서 기하학적인 거리와 근육 벡터의 편차에 기반을 둔 방식이다.
- 정교한 피부 모델 예시 (Figure 10.17)
- 피부도형의 각 변을 스프링으로 모델링 / 스프링 상수로 변형 정도를 제어
- 삽입점은 근육의 동작으로 움직이고, 그 위치 이동으로 흡착점에 붙어있는 스프링에 복원력이 생긴다.
- 해당 힘으로 근접한 꼭짓점들이 움직이게 되고 다시 그 꼭짓점에 붙어있는 꼭짓점들이 움직이게 되는 것이 반복된다.
- 복잡한 Voight model은 피부를 스프링과 댐퍼를 합친 점탄성 객체로 취급한다.
- 근육의 수축을 계산하는데 사용하는 함수는 근육 모델의 종류에 따라 결정되는데 피부는 수동적 요소로, 근육은 능동적 요소로 구성된다.
- 정확한 모델의 경우는 근력의 효과를 계산하거나 댐퍼를 사용한다.
- 단순한 모델의 경우 근육의 표현을 위해 스프링을 사용한다.
- 스프링에 기반한 얼굴 근육은 계산 비용이 많이 들고 특정 표현에서 어려움이 있다.
10.3.4 Expressions
- 얼굴 표정은 대화의 강력한 방법이고, 얼굴 애니메이션의 기본이다.
- 일반적으로 사용되는 집합은 행복, 화, 슬픔, 두려움, 역겨움, 놀라움 이다.
10.4 Lip-Sync Animation
10.4.1 Articulators of Speech
- 말은 복잡한 과정이다. 폐, 성대주름, 입술 등 많은 기관들이 목소리를 내는데 사용된다.
- 애니메이션에서 중요시 되는 점은 내부기관이 아닌 외부기관으로 나타나는 피부의 움직임이다. (입술, 혀 등)
10.4.2 Phonemes
- 말을 이해하고 사람이 어떻게 말을 생성하는지를 알기 위해 일반적인 접근은 소리를 작은 조각(음소-Phonemes)으로 나누는 것이다
- 음성과 관련된 입술 움직임은 정적 자세사이의 간단한 보간에 의해 표현되기는 어렵다.
10.4.3 Coarticulation
- 립 싱크 애니메이션에서 가장 복잡한 요소중 하나가 한 음소가 이웃 음소에 영향을 미치는 경우이다. (동시조음-Coarticulation)
- 우세 함수 : 이웃 음소의 우선순위에 기반한 혼합방식
10.4.4 Prosody
- 립 싱크 애니메이션에 또다른 복잡한 요소는 감정적 악센트를 반영하여 자연적 말로 변경하는 것이다. (운율학-Prosody)