[Computer Animation] Animation 기법

후이재·2020년 11월 23일
1

시작하면서

  • 이번에는 보간을 이용한 애니메이션 기법에 대해 알아보자

Keyframing

  • key frame1 에서 key frame2로 이동할 때, 점을 1:1 매칭을 통해, 이동에 대한 보간을 진행하는 방식
  • 관절체인 경우, 각 관절의 각도
  • 점 이라면 점의 위치
  • 시간에 대해 보간을 이룬다.
  • 여기서 같은 형태일 경우 쉽게 가능하지만, 모양의 변화가 일어났을 경우는?
    => 시간에 대해 모양을 바꿔줘야함

Keyframing a shape

  • u에 따라 각 위치를 보간해주기
  • 보간 직선으로? 곡선으로? 곡선으로 하면 부드러움.
  • 곡선으로 보간하면, 시작, 중간, 끝의 기울기를 정해줘야함

Animation Language

  • 동적인 표현을 위해 입력, 조건을 script로

방법

  1. Artist-oriented animation languages
    모든 점에 대해서 위치를 제어해야하는 방법.. 간단하지만, 너무 노가다
  2. Full-featrued programming languages
    C/C++/Java와 같은 script language. 위치 잡아주고 나머지는 적절히 따라 움직임
  3. Actor-based Systems
    걸을때는 이렇게. 뛸 때는 이렇게. 미리 정해둠.
    강체는 이제 다 되었음. 변화 물체가 문제

Deforming Objects

  • 모양이 변하는 물체는 어떻게 할까

두개의 문제가 있지

  • Correspondence problem
  • Interpolation Problem

방법

  1. Object Modification
    모든점을 바꾸는것이 아니라, 특징적인것만 바꾸기
    warping을 점 단위가 아닌, 공간 전체로 움직이기
    하나 움직이면 위치에 따른 비율로, 다른것도 같이 움직이게 할 수 있음
    - 가까운건 많이, 멀리있는건 적게 움직이면 됨
    장: 자연스러움. 원하는 공간에 위치시킬 수 있음
  2. Direct Manipulation
    장: 제어하기 좋음
    단: 부자연스러움. 전체적 모양제어는 어려움
  3. 2D grid-based deforming
    공간을 움직이자!. grid를 변화함.
    각 점을 보간하여 위치 지정
    얼굴 deforming에 자주 사용됨.
  4. 2D skeleton-based bending
    뼈대를 정의해서 움직이기. 거리의 비율 따라 같이 움직여
  5. Global Transformations
    점 위치에 행렬곱으로. 점 어디 있느냐에 따라 변화
    z에 따라 곱해지는 값이 다르다거나, 회전양이 다르다거나 그런식으로 변화를 줌
  6. Free-Form Deformations
    비율에 따라 변형
    Control points에 따라 변형. Bezier과 비슷
    box 끝까지의 비율을 통해 정의 => box 형태 변형되면 따라서 변형됨
    deform에 따라 animation 생성 가능 (ex.뱀 움직이는 것 처럼)
    입과 같은 얼굴 표전 animation 생성에도 좋음
    Skinning과정에서, 팔을 굽힐 때 box에 대한 거리 비로 나타남으로, 근육의 변화를 표현하기 좋음

결국 중요한 것은

  • 점이든 부분이든, 1:1로 매칭하는 것
  • 모양이 굉장히 다른 경우, 선택에 여지가 많아지면서 어려운 문제가 됨

Object interpolation

  1. Radial mapping
  • 중앙을 관통하는 central axis가 공유공간을 지난다면, 쉬워짐
  • 중앙에서 ray를 쏴서, ray만나는 위치로 서서히 interpolation 진행
    중앙에서 다 slice해서 각각 보간을 진행해야함
    단면에서 답을 못찾으면? 구에 mapping진행!
  1. Map to sphere
  • 구에 투영시킨 후에, 거기서 2차원문제로 풀기
  • 나눠서 동일한 개수의 삼각형으로 만듦
  1. Object subdivision
  • 큰 물체를 잘라서 나눠
  1. Map the boundaries
  • 테두리를 map하기

Image Morphing

서서~히 모양, 크기, 색상을 바꿔가는 기법
before, after영역을 정해주면,그것에 맞춰 모양, 위치, 색상 바뀌어감

Feature based

  • Feature를 정해주고, 이것또한 Feature에 대한 거리 비율로 바뀜(상대위치)

과정

  • Parameterizing images: grid 또는 feature에 대해 지정해주기
  • Intermediate image: 중간 이미지 만들기
  • Auxiliary image: 색 보간을 위한 보조이미지 생성
profile
공부를 위한 벨로그

0개의 댓글