Animation

Animation : 움직이지 않는 물체를 움직이는 것 처럼 보이기
Computer Animation : Animation을 위해 컴퓨터를 사용함

그렇다면 우리는 컴퓨터로 어떤 애니메이션을 할 것인가?
1. 캐릭터 Animation (사람, 몬스터, 동물, 등등)
2. 그 밖의 Animation (강체, 변체, 자연, 등등)

Animation Technique

  1. 물리기반 Animation
    • 알고리즘에 의해 control
    • 중력, 질량, 속도, 충격량 parameter에 기반하여 구현
    • 장점: 아주 정확함, 현실적
    • 단점: 매우 복잡하고 자주 계산해야하므로 computer성능문제 생길 수 있음
  2. KeyFrame Animation
    • 특정장면을 촘촘하게 그려서 사이를 보간하기
    • 장점: 간단하게 구현할 수 있음
    • 단점: 자연스러운 표현을 위해 애니메이터의 역량이 갈려야함
  3. Motion-capture Animation
    • 키를 잡는것을 사람이 수작업으로 하는것이 아니라 마커위치를 통해 잡음
    • 장점: 수작업 없이 자연스러운 키를 받을 수 있음
    • 단점: 비용많이 듦

보간(Interpolation)

Animation 과정에서 중요한 것은 KeyFrame들의 사이를 자연스럽게 보간하는 것
목표 : 주어진 경로에 맞춰 부드러운 움직임을 만들자

방법

  • Generation: 생성방법
    1. Linear Interpolation: 각진 animation 생성
    2. Quadratic Interpolation: 2차함수로 보간
    3. Cubic Interpolation: 3차함수로 보간
    4. High-order Interpolation: Spline 방식
  • Continuity: 끊어짐이 없어야함. 부드럽게!
  • Control: 이동과 같은 조작이 가능해아함. 편집가능!

매개변수

  • Points(점)
  • Tangents(속도)
  • Continuity(연결)
  • Convergence(수렴여부)
  • Controls(제어 방법)

구체적으로

  1. Lagrange Polynomial
    • 모든 구간 차이에 대한 보간 진행 -> 부드럽게 연결
    • 장점: 점이 많은 경우, 고차원 보간을 잘 해줌
    • 단점: 내부점은 괜찮지만, 바깥쪽은 예상치 못한 큰 변화가 있을 수 있음
      → 차수가 낮을때는 괜찮은데, 15차 정도 되면, 갑자기 튀는 현상 발생
  2. Polynomial Curve
    • 일반적인 방식
    • n차의 u행렬에 특성 행렬과 control point행렬을 곱해 P(u)를 구한다.
    1. Hermite: 점과 기울기
    2. Cubic Bezier: 점과 속도
    3. Blended Parabolas: 지나는 점

정리

Interpolation 의 구현: 복잡도 vs 정확도
정확도를 높이려면? -> 차수가 높아져야함 -> 복잡해짐
복잡도를 줄이려면? -> 차수가 낮아져야함 -> 부정확..
결국. 둘 사이의 조화가 필요함. 또한, 손쉽게 수정할 수 있어야함(Controllability)

제약조건(Constraint)

1.시간에서의 위치 제약 : 거리에 대해 보간 진행
2.그 위치에서의 속도와 가속도 : 시간에 대해 보간 진행

애니메이션 제어

Motion Control

  1. 제어해야하는 것

    • Length: 위치
    • Speed: 속도
  2. 재매개변수화(Reparameterization) by Arc Length

    분석적(analytic)

    • 쉽지않음
    • 위치의 변화량으로 나타냄
    • 적분으로 구하기

    supersampleu를 조금씩 증가시키며 점 구함.

    • 장점: 충분한 답을 찾을 수 있음
    • 단점: 특수경우에 힘들 수 있음(3~4개 더 해보고 판단해야함)
    • 직선거리의 합으로 표현
    • Sampling시에, curve잘 표현하기 위해서?
      • 2개점 해보고, 3개 해보고.. 이런식으로 하다 차이가 적어질 때 채택.
      • 단 예외가 있을 수 있으므로, 여러개 더 해보고 채택할 수 있음

    Time distance function

    • 시간에 따라 길이 변화

    Ease-in Ease-out function

    • 시작과 끝의 기울기를 0으로
    • Ease-in: sine함수. single cubic(3차함수). constant acceleration(상수로 가속 제어)

정리하자면

공간에 대한 보간 u = U(s)
시간에 대한 보간 s = S(t)
P = P(U(S(t)))
가속도 조건으로 속도, 거리 구하기

profile
예비 개발자

0개의 댓글