Chapter 13. Computer Animation 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 그림의 연속적인 시간에 따른 시각적 변화 Translation, rotation 등을 사용한 물체 위치의 변화에 추가로 Object size, color, transparency, surface texture 에서 time variation 을 디스플레이 Position, orientation, focal length 등 Camera parameter 의 변화 Illumination 과 rendering 에 관련된 lighting effect 의 변화 Motion sequence 를 생성하는 방법 Real-time animation Frame-by-frame animation 2010-1학기 Chapter 13. Computer Animation
Raster Methods for Computer Animation Animation을 real time에 생성하려면 continuous motion sequence 가 디스플레이되도록 빠른 속도로 motion frames을 생성해야 한다. 복잡한 animation 의 경우 프레임 생성 시간이 스크린 재생시간보다 많이 걸리기 때문에 엉뚱한 모션이나 파손된 프레임 결과를 가져오기도 한다. Double buffering Raster system으로 real time animation 생성을 하는 방법으로 two refresh buffers 사용 버퍼 하나에 애니메이션을 위한 한 프레임 생성 스크린이 버퍼로부터 리프레쉬 될 때 다른 버퍼에 다음 프레임을 생성 이 프레임이 완성되면 두 버퍼의 역할을 바꾸어서 첫 번째 버퍼에 다음 프레임이 생성하는 중에 refresh routine은 두 번째 버퍼를 사용한다. 번갈아하는 버퍼의 반복작업에 의해 애니메이션 생성 그래픽스 라이브러리가 double buffering을 활성화하는 한 함수와, 두 버퍼의 역할을 교환하는 함수를 갖는다. 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Two refresh buffers 를 교환하는 시간 가장 간단한 방법은 현재 refresh cycle 끝에서, 즉 electron beam 의 vertical retrace 중에, 두 버퍼가 교환된다. 프로그램에 의한 프레임 생성 시간이1/60 초인 refresh cycle 시간보다 적다면 motion sequence 는 screen refresh rate 와 동기화되어 디스플레이된다. 프레임 생성 시간이 screen refresh time의 정수 배에 가까울 경우엔 불규칙적인 애니메이션 frame rate 가 일어나게 됨. 2010-1학기 Chapter 13. Computer Animation
Raster operation을 이용한 애니메이션 픽셀값 사각형 배열의 블록 이동을 이용한 real-time raster animation 생성 게임 프로그램에서 자주 사용 물체를 한 위치에서 다른 위치로 이동시키는 방법은 물체의 모양을 정의하는 픽셀값 그룹을 새로운 위치로 이동시키면 된다(그림 13-1). 90도씩 회전시키는 것도 간단히 수행된다. 90도가 아닌 경우에는 회전되는 블록과 겹치는 픽셀 영역 부분을 계산해야 한다. 컬러테이블 변환을 이용하여 2차원 모션경로를 따라 물체 애니메이션 가능 먼저 모션 경로를 따라 연속적 위치에서의 물체를 미리 정의하여 연속적 픽셀값들을 컬러테이블에 설정해둔다. 물체의 첫 번째 위치에서 픽셀값들이 foreground color 로 설정되고, 물체의 다른 위치의 픽셀값들은 background color 로 설정 애니메이션 경로를 따라 연속적 위치에서의 물체의 컬러가 foreground color 가 되고 이전 위치에서는 background color 가 설정되어 애니메이션이 수행된다. 2010-1학기 Chapter 13. Computer Animation
Animation sequences 설계 애니메이션 개발 단계 스토리보드 레이아웃 물체 정의 키프레임 설계서 In-Between 프레임 생성 스토리보드 동작의 개요 기본 이벤트 집합으로 일련의 모션 정의 모션의 간단한 기술에 따라 개략적인 스케치로 구성 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 물체 정의 동작의 각 참여자에 대해 주어짐 폴리곤이나 스플라인 곡면과 같은 기본 모양(Shape) 로 정의 스토리상의 각 캐릭터 혹은 물체에 의해 수행되는 움직임 기술도 추가됨 키프레임(Key Frame) 애니메이션 열에서 특정 시간에서의 장면 기술 키프레임 내에서 각 물체나 캐릭터는 시간에 따라 물체의 위치가 주어진다. 일부 키프레임은 동작의 끝 부분에 주어지고 다른 키프레임들은 키프레임 사이에서 시간 간격이 너무 크지 않도록 둔다. 복잡한 모션에 대해서는 보다 많은 키프레임이 주어지고 간단하고 느리게 변화하는 모션에는 그보다 적게 키프레임이 주어진다. 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation In-betweens 키프레임 사이에 있는 중간 프레임들을 말함 전체 프레임수, In-betweens 의 총 수는 사용하는 디스플레이 미디어에 의해 결정된다. 필름은 초당 24 프레임 그래픽스 터미널은 초당 60 이상의 비율로 재생(refresh)된다. 보통 키프레임 사이에 3-5 in-betweens이 있도록 모션에 대한 시간 간격을 둔다. 모션에 지정된 속도에 따라 키프레임이 중복될 수도 있다. 예를 들어 중복됨이 없는 1분 짜리 필름을 만드려면 전체 1440프레임이 필요. 키프레임사이에 5 in-betweens가 요구하다면 288 키프레임 필요 2010-1학기 Chapter 13. Computer Animation
Traditional Animation Techniques 물체 변형(deformation), 애니메이션 프레임간에 간격 두기, 모션 예상, 마무리 동작, 동작 모으기 등 Squash and stretch // 납작하게하고 잡아당기고 Nonrigid object 를 위한 가속 효과 시뮬레이션 Timing 모션 프레임 사이에 간격을 둔다. 느리게 움직이는 물체는 좀 더 가까운 간격을 두도록 많은 수의 프레임을 두고, 빠르게 움직이는 물체는 모션 경로 상의 프레임 수를 적게 둔다. 모션 예상 앞으로 올 예상 모션을 나타내는 예비 동작을 생성하여 강조 예를 들어 만화 캐릭터가 달리기 전에 몸을 굽혀 한번 회전 마무리동작(Follow-through) // 끝까지 다하기 이전 모션을 강조 예를 들어 캐릭터가 공을 던진 후에도 계속하여 팔을 돌림 2010-1학기 Chapter 13. Computer Animation
General Computer-Animation Functions Wavefront 와 같은 소프트웨어 패키지가 개발되어 애니메이션 디자인 혹은 특수한 애니메이션 작업을 수행하게 됨 Animation functions 물체 모션 관리 물체 뷰 생성 카메라 모션 생성 In-betweens 프레임 생성 2010-1학기 Chapter 13. Computer Animation
Computer Animation Languages C, C++과 같은 General-purpose programming language을 사용할 수도 있고, 특수화된 애니메이션 언어가 개발 됨 Graphics editor, key-frame generator, in-between generator, standard graphics routine 포함 Animation specification Scene description 물체와 라이트의 위치 정의 광도 파라미터 정의: 광원의 강도 및 조명의 특성 카메라 파라미터 설정: 위치, 방향, 렌즈 특성 Action specification 물체와 카메라의 모션 경로 설계 일반 그래픽스 기능 뷰잉 및 투시 변환 기하변환 보이는 면 확인 렌더링 ㄱ인 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Keyframe systems 원래는 유저가 지정한 키프레임으로부터 in-betweens 를 생성하는 animation routines 로 설계되었다. 이러한 기능이 이제는 좀 더 일반적인 애니메이션 패키지의 구성요소가 되었다. 가장 간단한 경우에는 장면내 각 물체는 제한된 자유도(degree of freedom) 로 관절에서 연결된 rigid bodies 집합으로 정의된다. Robot arm: 6 degrees of freedom Arm sweep, shoulder swivel, elbow extension Pitch, yaw, roll 12 degrees of freedom: base translation, base rotation 추가로 2010-1학기 Chapter 13. Computer Animation
Figure 13-6 Degrees of freedom for a stationary, single-arm robot Elbow extension Yaw Shoulder swivel Pitch Roll Arm sweep Base 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Figure 13-7 Translational and rotational 6 degrees of freedom for the base of the robot arm 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Parameterized systems 물체의 움직임 특성을 물체 정의의 일부분으로 지정함 파라미터에 의해 자유도, 모션의 제한, 모양의 변화 등의 물체 특성을 제어한다. Scripting systems 물체 설계와 애니메이션 열을 유저 입력에 의한 스크립트로 정의 스크립트에 의해 다양한 물체와 모션의 라이브러리가 생성 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Key-Frame Systems In-betweens 은 키프레임시스템을 이용하여 두 키프레임으로부터 생성 모션 경로는 spline curve 로 운동학으로 기술하거나 애니메이션 시킬 물체에 작용하는 힘을 지정하는 물리적으로 정의한다. Cels (celluloid transparencies) 복잡한 장면에서는 프레임을 개별 구성요소인 cels(celluloid transparencies) 로 분할 장면내 캐릭터와 배경을 별도의 투명도로 분리하는 cartoon animation 로부터 온 용어 지정된 애니메이션 경로는 각 캐릭터의 다음 cel 을 얻는데 이용되며, 그 위치는 키프레임 시간으로 보간된다. 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 모핑(Morphing) 물체의 모양이 한 형태에서 다른 형태로 변환하는 것을 말함(metamorphosing) 주어진 두 키프레임에서, 각 프레임이 물체 변환을 지정하는 서로 다른 수의 선분을 가지고 있을 때, 폴리곤 선분의 수(혹은 폴리곤의 점의 수)가 두 프레임에 대해 같아지도록 프레임 중 하나를 조정한다. 두 키프레임의 물체를 구성하는 line segment 수가 다를 때, 먼저 폴리곤 선분 수 혹은 정점 수가 같도록 맞추어줘야 한다 (그림 13-8). (그림 13-8)에서 키프레임 k 에서 하나의 선분이 키프레임 k+1 에서 두 개 선분으로 변환된다. 이 경우 k 프레임내 정점 1, 2 사이에 하나의 정점을 추가한다. Linear interpolation을 이용하여 in-betweens 생성 프레임 k 에 첨가된 정점이 3’ 로 변화되도록 한다. (그림 13-11) (그림13-12) 모핑 예제 참고 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Figure 13-8 선분의 변화 키프레임 k 에서 1, 2사이의 선분이 키프레임 k+1 에서 두 개 연결된 선분으로 변화 1’ 1 3’ 2 2’ 키프레임 k 키프레임 k+1 2010-1학기 Chapter 13. Computer Animation
Figure 13-9 선형 보간(linear Interpolation)에 의한 선분의 변환 1’ 1 3’ 첨가된 점 2 2’ 중간프레임 키프레임 k 키프레임 k+1 2010-1학기 Chapter 13. Computer Animation
Figure 13-10 삼각형을 사각형으로 변환하는 선형 보간 첨가된 점 중간 프레임 키프레임 k 키프레임 k+1 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 모핑 전처리 규칙 키프레임의 선분 혹은 정점 추가를 위한 일반 규칙 두 개 연속 프레임에서 선분의 수를 각각 Lk, L k+1 이라고 할 때 선분의 최대수, 최소 수는 Lmax = max(Lk, L k+1), Lmin = min(Lk, L k+1) 다음 두 계산을 수행함 Ne = Lmax mod Lmin Lmax Ns = int Lmin 선분 균등화를 위한 전처리과정 1) Keyframemin 의 Ne 선분을 Ns +1 sections으로 나눔 2) Keyframemin 의 나머지 선분을 Ns sections으로 나눔 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 예: Lk = 15, Lk+1 = 11인 경우 Keyframk+1의 4개 선분을 2 sections으로 나누고 Keyframk+1의 나머지 선분들은 그대로 둔다. 정점의 수를 균등하게 할 경우에는 Vk, Vk+1 을 각각 두 개 연속 키프레임의 정점의 수라고 할 때 정점의 최대수, 최소수는 Vmax = max(Vk, Vk+1) Vmin = min(Vk, Vk+1) 다음 두 값을 계산 Nls = (Vmax –1) mod (Vmin – 1) Vmax -1 Np = int Vmin - 1 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 정점 균등화를 위한 과정 1) Np 포인트를 keyframemin 의 Nls 개 선분에 추가 2) Np – 1 포인트를 keyframemin 의 남은 선분에 추가 예: 삼각형에서 사각형으로 변화할 경우 Vk = 3, Vk+1 = 4이므로 Nls = 1, Np = 1 1개 포인트를 Keyframek 의 한 선분에 추가, 나머지 선분에는 아무런 포인트도 첨가하지 않음. 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 가속도 시뮬레이션 키프레임 간의 애니메이션 경로에는 curve-fitting 이 일반적으로 사용됨 키프레임의 정점 위치가 주어지면 선형 혹은 비선형 경로를 따라 위치를 맞출 수 있다. 그림13-3: 키프레임 위치의 비선형 위치 조정(fitting) 가속 시뮬레이션은 in-betweens의 시간 간격을 조정하여 얻을 수 있다. 모션이 일정한 속도로 진행되면(가속도 0), in-betweens 간에는 동일한 시간 간격을 사용(그림 13-14) t1, t2 사이에 n in-betweens 가 있는 경우 키프레임간의 시간 간격은 n+1 세부 간격으로 나눠져서, t2 – t1 t = n + 1 2010-1학기 Chapter 13. Computer Animation
Figure 13-3 Fitting keyframe vertex positions with nonlinear splines In-Between Key Frame k+1 Key Frame k 2010-1학기 Chapter 13. Computer Animation
Figure 13-14 일정 속도 모션을 위한 In-betweens 위치 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation j’th in-between은 t Bj = t1 + j t , j = 1, 2, …, n 이 시간 값을 이용하여 좌표 위치, 색 혹은 다른 물리적 파라미터 계산 속도 변화가 애니메이션 필름이나 만화에서 요구됨. 특히 모션 열의 처음과 끝 부분에서. 애니메이션 경로의 시작과 속도 늦춤 등은 스플라인이나 삼각함수를 이용하여 모델링 됨 가속도 모델링에는 포물선이나 3차 시간 함수가 이용됨 애니메이션 패키지에는 보통 가속도 시뮬레이션을 위한 삼각함수가 포함되어 있음 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 속도 증가 모델링을 위해서는, 위치의 큰 변화가 물체를 빨리 이동시키도록 프레임간의 시간간격을 증가시킨다. 시간 간격의 증가는 다음의 함수로 얻어짐 1 - cos , 0 < < / 2 n in-betweens를 위한 j’th in-between 에서의 시간은 j t Bj = t1 + t 1 - cos , j = 1, 2, …, n 2(n+1) t는 두 키프레임간 시간 차이 2010-1학기 Chapter 13. Computer Animation
Figure 13-15 삼감함수를 이용한 가속도 함수 1.0 1- cos tB1 tB5 0.5 t1 t2 t cos j 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 속도 감소 모델링은 sin 함수를 이용하여 얻어짐 sin , 0 < < / 2 n in-betweens의 시간 위치는 j t Bj = t1 + t sin , j = 1, 2, …, n 2(n+1) 2010-1학기 Chapter 13. Computer Animation
Figure 13-16 삼각함수를 이용한 속도 감소 함수 1.0 sin tB1 tB5 0.5 t1 t2 t j 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation 속도 증가와 속도 감소를 동시에 포함하는 모션의 경우 처음엔 in-betweens 시간 간격을 늘리고 다음에 감소시켜서 얻어짐. 이러한 함수 변화는 다음의 식으로 가능 ½ (1 - cos) , 0 < < / 2 j’th in-between 을 위한 시간은 다음의 식으로 얻어짐 1 – cos[ j / (n+1)] t Bj = t1 + t , j = 1, 2, …, n 2 2010-1학기 Chapter 13. Computer Animation
Figure 13-17 The trigometric accelerate-decelerate function 2010-1학기 Chapter 13. Computer Animation
모션 명세 (Motion Specifications) 모션의 열을 기술하는 일반적 방법은 모션 경로를 직접 명시하는 방법에서부터 모션을 생성하는 상호작용을 기술하는 방법으로까지 다양하다. 모션정의는 변환 파라미터, 모션 경로 파라미터, 물체에 작용하는 힘, 모션 생성을 위한 물체의 작용 등에 따라 다르다. Direct Motion Specification 기하 변환 파라미터를 직접 지정하여 모션을 정의 회전 각도와 이동 벡터를 직접 설정 또한 이러한 파라미터들이 특정 모션을 정의할 수 있도록 근사방정식 이용 예를 들어 공이 튀는 경로를 생성할 때 등(그림 13-18 참고) Y(x) = A | sin(x + 0) | e-kx A: initial amplitude (처음 공의 높이) : angular frequency 0 : phase angle k: damping constant 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Figure 13-18 Approximating the motion of a bouncing ball with a damped sine function 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Goal-Directed Systems 최종 결과를 이용하여 동작을 추상적으로 기술하는 일반 용어로 모션 정의 즉, 애니메이션을 모션의 최종상태를 이용하여 정의 모션 파라미터가 애니메이션 목표로부터 결정됨 예를 들어 특정 목적지로 물체를 walk 혹은 run 과 같은 애니메이션을 지정할 수 있다. 혹은 한 물체가 또 다른 물체를 집어 올리도록 하는 경우 해당 입력 명령어는 결과 작업을 수행하는 부분 모션을 이용하여 해석된다. 예를 들어 human motion 의 경우 몸체, 팔다리 등의 세부모션의 계층구조로 정의되고, “문까지 걷기” 등의 목표(Goal) 가 주어지면 몸체와 팔다리는 이 동작을 계산하는 모션을 수행한다. 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Kinematics and Dynamics 운동학이나 역학 정의에 의해 애니메이션 열을 생성 운동학적 방법에서는 모션의 원인이나 목표와는 관계없이 모션 파라미터(위치, 속도, 가속도)에 의해 애니메이션 정의 혹은 모션 경로를 spline curve 등으로 모션을 정의하기도 한다. Inverse kinematics 특정 시간에서 물체의 처음 위치와 종료 위치를 지정하면 시스템에 의해 모션 파라미터가 계산됨 예를 들어 가속도 0을 가정하면 물체의 움직임을 초기 위치부터 종료 위치까지 일정한 속도로 나타내면 된다. 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Dynamic description 속도와 가속도 계산을 위해 힘 방정식 필요 물체 행위를 힘의 영향에 의해 기술하는 것을 physically based modeling 이라고 함 예를 들어, 물체 모션에 영향을 미치는 힘의 종류에는 전자, 중력, 마찰력, 다른 기계적 힘이 포함된다. 예를 들어, 중력과 마찰력 처리를 위해서 뉴튼의 운동방정식이 필요하고 액체 흐름을 표현하기 위해서는 Euler or Navier-Strokes equations 필요 전자력을 위해서는 Maxwell equation 필요 Inverse Dynamics 물체의 처음과 끝 위치, 필요한 모션의 형태를 주고 힘을 계산함 2010-1학기 Chapter 13. Computer Animation
Articulated Figure Animation 회전하는 관절에서 연결된 고체(rigid) 들로 구성된 계층적 구조 애니메이션 물체는 움직이는 스틱 형태나 간단화된 뼈대형으로 모델링한 후에 피부, 머리, 옷 등을 나타내는 곡면들로 덮는다. 다리의 걷는 동작 표현(Fig. 13-20) Hip joint 가 수평의 선을 따라 translation 하고 hip, knee, angle 관절에 대해 연속적인 움직임 수행 똑바로 선 leg 에서(Fig. 13-20 (a)) 시작하여 첫 번째 모션은 knee 를 굽히고 hip 을 전진한다(b). 그 다음 leg 를 앞으로 돌려서 수직으로 하고, 이어서 뒤로 돌린다(c, d, e) 마지막 모션은 뒤로 더 돌려서 다시 똑바로 선 위치에 온다(f, g) 2010-1학기 Chapter 13. Computer Animation
Figure 13-19 A simple articulated figure 9 joints, 12 links (머리 빼고) 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Figure 13-20 A walking leg 2010-1학기 Chapter 13. Computer Animation
Chapter 13. Computer Animation Periodic Motions 반복되는 모션 패턴으로 애니메이션 시에 움직임이 정확하게 나타나는지 모션 샘플을 확인해야 함 즉, 모션이 프레임 생성 비율과 동기화되어서 충분한 프레임 수로 디스플레이되어야 함 샘플링 수가 적은 주기적 모션(Periodic motion) 디스플레이 예는 바퀴가 반대 방향으로 도는 것처럼 보이게 한다(그림 13-21, 그림 13-22 참고) 주기적 모션에서의 샘플링 비율은 모션 파라미터 조정에 의해 제어된다. 예를 들어 회전하는 물체의 모션은 각 회전에서 복수 프레임이 생성되도록 각도를 증가시킨다. 회전각도의 3도 증가는 한번 회전시 120 모션 단계를 생성하고, 4도 증가는 90 개 위치를 생성한다. 2010-1학기 Chapter 13. Computer Animation
Figure 3-21 Five positions for a red spoke during one cycle 2010-1학기 Chapter 13. Computer Animation
Figure 3-22 The first five film frames 2010-1학기 Chapter 13. Computer Animation