Download presentation
Presentation is loading. Please wait.
1
Term project ‘Maya를 이용한 얼굴 근육과 표정변화와의 관계 애니매이션’
제어계측공학과 이용선 오세연
2
목적 마야를 이용하여 현대 컴퓨터그래픽에서 주된 이슈인 3D 모델링 애니매이션을 이용하여 인간의 표정변화에 따른 얼굴근육과의 기하학적인 관계를 컴퓨터를 이용하여 나타낸다. 인간의 얼굴이 컴퓨터그래픽의 기본 요소인 선과 점으로 어떻게 표현되는지도 역시 같이 부합된다고 볼수 있다.
3
About Maya…. 마야(Maya)는 기존의 3D Max software 보다 많은 강력한 기능을 가진 Alias|wavefront 사에서 제작한 high-end software이다. 자체내에서 모델링, 애니메이션 및 렌더링이 가능하며 모션 캡쳐 장비등의 이용으로 현실감 넘치는 애니메이션 제작이 가능하다. 또한, 모델링 측면에서 보면 Alias Studio의 Nurbs를 이용한 모델링 방법과, Wavefront Explore의 Polygon 모델링 기능을 둘 다 가지고 있어서 다양한 형태의 모델링을 유저의 기호에 따라 제작할 수 있다. 또한, 마야는 현재 많은 영화에두 개발툴로써 사용되고 있다. 화이널 판타지, 할로우맨, 다이너소어, 슈렉등 캐릭터 애니매이션에는 거의 마야로 이용되고 있는 실정이다.마야와 3D Max와의 가장 큰 차이는 캐릭터 디자인과 애니매이션에서 마야가 보다 탁월하기 때문이다.
4
PDI/DreamWorks의 두번째 장편 애니메이션인 쉬렉(Shrek)에는 영화 초반의 1000명의 캐릭터, 영화 중간 진흙 레슬링 씬에 1000명의 관중들, 결혼식에 참여하는 1500명의 캐릭터가 나오고 36개의 환경에 28,186개의 나무 30억개의 나뭇잎, 68개의 캐릭터 모델 31개의 동화속 캐릭터 등 만화적인 캐릭터에서 리얼한 캐릭터까지 다양한 크기와 종류의 캐릭터들과 중세의 성에서 늪지대에 이르는 다양한 배경, 머리카락, 털, 옷, 불, 유체 시물레이션에 군중 씬에 이르기까지 CG로 하기 힘든 모든 요소들이 포함되어 있다.
5
Visual effects & Senior special effects supervisor인 Scott E
Visual effects & Senior special effects supervisor인 Scott E. Anderson은 1998년 7월 7일 Sony Pictures Imageworks에서 작업을 시작했다. 보통의 투명인간 영화에서는 투명인간의 표현이 관건이었지만, 이영화에서는 투명해지는 과정, 다시 눈에 보이게 되는 과정에 새로운 방법이 제시되었다 - 혈관, 장기, 뼈, 근육, 피부 등의 순서로 투명해지거나 다시 눈에 보이게 되는 것이다. 투명인간과 관련된 shot중에서 414개는 Sony Pictures Imageworks에서 작업되었고, 155개는 Tippett Studios에서 작업되었다. Sony Pictures Imageworks에서는 300여명 이상의 인원이 동원되어 Maya, Studio Paint, Composer, Houdini, RenderMan, Paraform software 등을 사용해서 작업했다
6
Maya Basic Interface 1
7
Maya Basic Interface 2
8
◈캐릭터 모델링 구현 방법 ◈ 넙스 스피어 모델링(Nurbs Sphere Modeling 시작점과 끝점 외에 커브 위에 존재하는CV , EDIT POINT등 조절 점들을 가지고 형태 변화에 용이한 방식 하지만, 용이한 반면에 세밀한 표현에는 한계가 있었다. 작업시 한번의 실수가 전체 object에 끼치는 영향이 크다 ◈ 커브 방식 모델링(Curve Modeling) 커브를 사용하여 캐릭터의 외곽선을 먼저 만들어 준 다음 LOFT툴을 적용하여 서피스를 만드는 방식
9
◈ 모델링 방식에 따른 샘플 Nurbs
10
◈ 모델링 방식에 따른 샘플 Polygon
11
◈캐릭터 모델링 구현 방법 Polygon Modeling
Polygon은 일련의 라인 요소로부터 형성된 형태이다. Polygon은 Nurbs가 기초하는 Curve나 Surface와는 달리 Standard B-Rep Structure에 기초를 두고 있다. Primitive는 더 복잡한 Model의 기초로 사용될수 있는 순수한 형태들이다. Polygonal Object는 일련의 Facet들이 연결된 것이다. 그것이 폐쇄될 때 Solid를 형성합니다.
12
◈캐릭터 모델링 구현 방법 멀티패칭 눈, 코, 입등의 정교한 모델링을 할경우 멀티패치 모델링 방식을 사용하는 것이 효율적이다. 멀티패치 모델링은 여러 장의 넙스 서피스들을 이어주는 방식으로서, 서피스들이 만나는 경계선이 나타나지 않고 매끄럽게 처리되는 고급모델링 방법이다. 보통, 멀티패치 모델링을 할경우 Stitch tool(경계선과 경계선을 부드럽게 이어주는 기능을 한다.)사용하는데 서피스 데이터 용량이 커지고 서피스와 CV가 동시에 계산되어 예상치 못한 결과를 만들 수 있다. 모델링에서 가장 중요한 것은 적은 데이터를 가지고 최적으로 객체를 생성하는 것이다.
13
◈ 모델링 방식에 따른 샘플 Multi Patch
14
◈ Object의 요소들 Nurbs Sphere
옆의 그림은 Object를 표현하는데 기본이 되는 요소들은 나타낸 것이다. 이 요소들은 Object의 모든 곳에 영향을 기친다. 또한, 이것은 Nurbs 모델링을 할때의 요소이다. Nurbs Sphere
15
◈ Object의 요소들 Polygon Sphere
옆의 그림은 Polygon으로 작업시의 기본 요소들을 나타낸 것이다. Polygon 역시 이 기본 요소들로 이루어져 있고, 인간에 비유하자면 피와 살그리고 뼈에 해당되는 것들이다. Polygon Sphere
16
◈ About Nurbs…. 3D Modeling은 전형적인 2D Drawing과는 다른 제작 과정을 가지고 있다. Maya의 작업 형태는 기본적인 모양의 형태를 먼저 제작하고 사용자가 구현하고자 하는 거의 모든 재질과 빛이나 화상의 설정을 구현 Animation에 적용할수 있다. 이것이 Maya작업의 기본이다. Maya에 사용되는 Surface들은 형태를 이루거나 수정하거나 제작된 형태를 즉시 시각적으로 볼 수 있다. Nurbs는 Non-Uniform Rational B-Splines의 약어로써 자연스러운 곡선이나 면을 만드는 데 사용되는 특별한 형태의 Spline이다.
17
◈ Nurbs Primitive들을 이용한 Object
Modeling에 필요한 기본 객체들이다.
18
◈ 모델링의 2가지 작업형태 Hardware shading mode Wifreframe mode
19
Nurbs & Polygon Polygon Nurbs
20
◈ 각 Object 요소들의 Control Object를 원하는 위치로 이동시킨다. ◈ Rotate tool
◈ Move tool Object를 원하는 위치로 이동시킨다. ◈ Rotate tool Object를 현재 위치에서 회전이나 특정 CV들의 회전 등을 한다.
21
◈ 각 Object 요소들의 Control Scale tool
Object나 Object의 요소들(CV, isopam 등등)의 크기를 결정한다.
22
◈ Isopam Rebuild 이 기능은 사용자가 modeling작업시 Isopam을 추가하였을때 어떤 정확한 수치에 의한것이 아니라 임의의 눈짐작으로 추가하기 때문에 연관된 CV들이 정렬이 복잡해 지므로 정확성에 의한 재정렬이 필요하다. 이때 Maya의 Rebulid Surface기능으로 정렬을 하면 컴퓨터 연산에 의한 정렬이 이루어진다.
23
◈ Rebuild Surface test Rebuild 전 Rebuild 후
24
◈ 얼굴근육에 대한 이해 인간의 골격은 동서양,남녀 거의 비슷하지만,골격과 근육에 대한 이해는 필수적이다. 입을 움직이거나 턱을 움직이기 위해서는 두개골과 하악골이 어떻게 맞물려 움직이는 지 주의 깊게 살펴볼 필요가 있다. 인간의 모델링 부위 중 좀더 생명력있는 모델링을 구현하기 위해서는 안면 근육 묘사가 제대로 이루어 져야지 된다.
25
◈ 근육과 표정과의 관계
26
◈ Step 1 첨에는 Sphere객체를 생성하여 채널박스의 Rotate X 값을 90으로하여 방향을 바꾸고, 꼭지점의 Iospam을 증가한다. 이유는 입을 구현하기 위함이다.
27
◈ Step 2 ~ 5 2~4단계까지의 캡쳐화면이 없어 5단계 화면으로 설명을 하자면, 우선 입주변의 Isopam이 많아져 있음을 확인할수 있다. 이것은 입주변의 CV(이것은 나중의 애니매이션작업에두 영향을 준다.)들이 많아 졌음 또한 의미한다. 이유는 다른 부위에 비해 입주면이 좀더 세밀한 표현이 필요하기 때문이다. 어떤 방식으로 하여두 입주변은 CV들이 많아 진다.
28
◈ Step 2 ~ 5 다음 작업은 얼굴 윤곽을 잡는 것이다. 이 작업에서 어려웠던점은 사람의 얼굴옆면이 평면이 아니라 얼굴선과 귀와의 경계면 처리등이 있어서 쉽지 않았다. 처음 작업시 최소한의 CV들로 작업하려 하였으나 어쩔수 없이 이부분 역시 isopam의 상당한 양을 추가 하였다.
29
◈ Step 2 ~ 5 다음 작업은 목을 만드는 것이었다. 이작업이 상당한 시간이 걸렸다. 이유는 얼굴 앞면을 작업을 할려면 어떤 기준이 CV가 있어야 한다. 그 기준 CV를 잘 안보이는 얼굴 후면의 CV를 잡아 작업을 하였더니 나중에 얼굴 뒷면을 구현할때 CV들이 엉켜 앞면과의 조정이 불가피 하였다. 많은 복구가 되었지만 완벽한 사람의 뒷면곡선을 만들 수 없었다.
30
◈ Step 2 ~ 5 다음 작업은 코를 구현하는 것이다. 코는 다른 부위에 비해 쉽게 구현할 수 있었다. 아쉬운 점은 구멍을 구현하려 하였으나 Isopam의 숫자가 너무 늘어나 다른 CV들에게도 영향을 주어 전체 모델링에 영향이 적어 이번 모델링 작업에서는 배제하였다.
31
◈ Step 2 ~ 5 이번 작업은 눈을 만드는 작업이다. 우선 Nurbs의 Torus Object를 생성한뒤 반을 가로로 자른뒤 Rotate tool을 이용하여 눈의 모양을 구현하면된다. 이 작업은 많은 수의 Isopam을 필요하지 않아 수월하였다.
32
◈ Step 2 ~ 5 옆의 그림은 Rotate tool을 이용하는 사진이다.얼굴 앞면의 눈 부위와의 매칭을 위하여 torus object의 윗부분의 CV들을 선택하여 회전을 시키면 선택된 부위만 조절이 가능해져 구부러지는 효과가 가능하다. 또한, 이부분은 앞부분의 얼굴 object와는 다른 layer로 구성되어 있다.
33
◈ Step 2 ~ 5 완성된 눈부위를 얼굴 object와 결합하는 작업이다. Move tool을 이용하면 눈부위 근처까지 이동은 가능하지만, 얼굴 object와의 와벽한 결합은 안된다. 이유는 layer가 다르기 때문이다. 이문제를 해결하기 위해선 layer와 layer간의 결합을 시켜주는 기능을 이용해야 하지만 정확하게 몰라서 실패하였다.
34
◈ 현재까지의 작업 결과 향후과제 완성된 작품이다. 와벽한 상태가 아니구 모델링 중간이다. 남은 부분은 눈의 완성과 귀 그리고 머리카락 부분이지만 초기의 작업때보다 많은 툴의 활용도 진척과 남은 작업의 용이 함이 있어 조만간 완성이 기대된다. 또한, 얼굴 표면에 피부를 입히는 작업을 Texturing이라고 하는데 이것 또한 원하는 피부재질이 Maya에서는 라이브러리 화 되어있어 구현이 쉽다.
35
◈ 현재까지의 작업 결과 및 향후과제 최종적인 작업인 애니매이션은 Maya 소프트웨어에서 자체제공하고 있는 Set Driven Key라는 Sub-tool을 이용하면 되다. 이 tool은 전체적인 Object의 애니매이션에는 사용될수 없고 Object의 부분적인 곳에 사용할수 있는 tool이다. Set Driven key 로 설정된 CV들은 나중에 다른 방식으로 애니매이션을 구현할수 없다는 단점이 있다.
36
◈ About Project….. 이번 Term Project로 수업시간에 배운 지식들을 십분 이해할수 있었다. 예를들며, wirefram mode 작업시 수업에서 배운대로 앞과 뒤과 구분이 가지 않아 작업이 어려워었다. Maya에서 통용되는 용어들(이 부분은 다른 3D tool 에서도 쓰인다는 사실은 늦게 알게 되었다.)의 이해가 선행되어야 하는데 그렇지 못하여 전체적인 작업환경을 이해하는데 많은 문제를 야기하였다. 나중에 이해한 사실이지만 3D 역시 하나의 그래픽 Data란것을 이해하였다. 좀 더 발전적인 형태로 도모하자면 Maya에는 Expresion이란 기능이 있는데, 이 기능은 Script성 언어로써 애니매이션을 구현하는 것이다. 예를들자면, arm_object.MoveTo(…); 이런식으로 하면 팔 객체가 어떤 방향으로 움직이게 할 수 있다. C++ 문법과 비슷하게 되어 있어, 프로그래밍의 기본지식이 있으면 더욱 쉽게 애니매이션을 만들 수 있다. 실제, 영화에서 쓰이는 애니매이션들은 거의 이러한 형태로 만들어 지고 있다.
Similar presentations